我已将远程选项添加到 /etc/sysconfig/syslog SYSLOGD_OPTIONS="-m0 -r " 并重新启动,它肯定在监听 syslog 端口;
# netstat -lnu | grep 514
udp 0 0 0.0.0.0:514 0.0.0.0:*
我甚至可以使用 tcpdump dst 端口 514 拦截传入的系统日志;
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
19:57:34.626128 IP 07701.com.syslog > i1106.com.syslog: SYSLOG user.critical, length: 75
19:57:56.254679 IP 07701.com.syslog > i1106.com.syslog: SYSLOG local5.critical, length: 76
但是系统日志警报永远不会进入日志文件 tail -f /var/log/message /var/log/remote
在我的系统记录器机器的顶部;
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
*.* /var/log/remote.log
该文件已创建且其中包含本地条目。
对于我做错的事情有什么建议吗?
编辑:看来停止防火墙可以让消息通过,所以显然 iptables 配置有些奇怪,阻止了这些消息;
答案1
我不清楚您是否在所有客户端上配置了 syslog。您的 tcpdump 似乎显示了入站 syslog 流量,但您可能需要检查您是否只看到来自一个远程 syslog 客户端的流量。确保在每台客户端计算机上也配置了 Syslogd。您需要添加一行,如下所示,syslog.example.org
您的 syslog 服务器在哪里:
# Log all messages to central syslog server
*.* @syslog.example.org
要验证此功能是否正常工作,请使用记录器(1)实用程序。我在一个窗口中在所有机器上运行这样的命令,通常是像 这样的循环for HOST in ALLOFMYHOSTS; do ssh $HOST 'logger'....
。
logger -t stefantest stefantest1
然后在连接到 syslog 的单独窗口中,我执行tail -f /var/log/YOURLOGFILE |grep stefantest
。这将确认 syslog 本身是否在每个主机上都正常工作。然后,从那里开始。