【发布时间】:2011-10-18 08:46:40
【问题描述】:
为了开发一个跨平台的系统日志客户端,我试图在不使用系统日志系统调用的情况下做到这一点。我正在用 C++ 开发这个客户端,现在在Linux 中进行测试。我要替换的旧系统日志客户端与系统日志系统调用完美配合。
至于如何,它根本行不通。跟踪不在/var/log/user.log 中,无论是在其他任何地方(greped)。但是当我使用netcat 在正确的端口上收听时,我确实收到了它。顺便说一句,端口514 不应该已经被使用了吗?
跟踪应该在UDP/514 上发送。我试图坚持使用 RFC 3164,但显然还是有问题。
如果有人能给我一个解决这个问题的提示,我真的很感激。
Trace: severity: 2 (Critical); facility: 23 (Local Use 7) ==> priority: 186
sh$> sudo nc -ul localhost -p 514
<186>Oct 18 10:36:03 hostname test_trace: | 10:36:03.242995 | CRIT | xxx-MAIN[5473-000] | 00000 | 0008 : main : user_msg
谢谢!
我想我在自己的问题中发现了问题:Rsyslog(我的系统日志服务器)没有正确侦听 UDP/514。
/etc/rsyslog.conf
$ModLoad imudp
$UDPServerAddress 0.0.0.0
$UDPServerRun 514
如果有人知道为什么它仍然不侦听 UDP/514,我将非常感激,因为我真的不明白为什么。
再次感谢您。
【问题讨论】:
标签: linux client udp syslog rsyslog