【发布时间】:2013-08-02 22:39:55
【问题描述】:
我正在尝试构建一个基于 Ruby (1.9.1) 的系统日志服务器,并且从一开始就遇到了一个非常基本的问题。
这是我的(非常基本的)代码:
#!/usr/bin/env ruby
require 'socket'
require 'io/wait'
require 'syslog'
class Server
def initialize
@listener = UDPSocket.new
@listener.bind("192.168.253.5", "514")
getdata
end
def getdata
while true
@text, @sender = @listener.recvfrom(9000)
p @listener
p @text
p @sender
end
end
end
x = Server.new
一切正常,只是它不显示消息的功能或严重性:
#<UDPSocket:fd 5>
"<189>49: *Mar 1 00:24:37.862: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/8, changed state to down"
["AF_INET", 56970, "192.168.253.10", "192.168.253.10"]
Tcpdump 可以很好地显示此信息(“local7”设施,“notice”严重性):
15:18:01.987542 IP 192.168.253.10.56970 > 192.168.253.5.514: SYSLOG local7.notice, length: 115
如何检查发送给我的 UDP 数据包,以便收集系统日志消息的功能和严重性?
【问题讨论】: