【问题标题】:Linux - Syslog clientLinux - 系统日志客户端
【发布时间】: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


    【解决方案1】:

    syslog() 调用写入 /dev/log,系统记录器读取此 unix 域套接字以获取消息。 UDP/514 用于网络传输。 所以不清楚你想要什么。

    【讨论】:

    • 感谢您的回答。你说的对。好吧,我想我只是错误地将我的系统日志服务器配置为与远程客户端一起工作。我需要让它监听 UDP/514,因为它显然不是它的默认行为。
    猜你喜欢
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 2021-05-15
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多