我有一台CentOS 5.8机器(带有常规的syslog)由于某种原因正在侦听端口514,即使它没有以“-r”启动(接收远程syslog消息).
# netstat -tulpn | grep 514 udp 0 0 0.0.0.0:514 0.0.0.0:* 2698/syslogd
Syslog仅以“-m 0”开头:
ps -ef | grep syslogd root 2698 1 0 15:55 ? 00:00:00 syslogd -m 0
我尝试用“-m 0 -r”启动它,只是为了检查是否有任何差异,但没有.
这台机器是一个客户端,只应该登录到中央日志服务器 – 它不应该自己监听.
我错过了什么?
我刚刚发现这个:https://bugzilla.redhat.com/show_bug.cgi?id=137205.从2010年的最后评论来看,这似乎是2004年的一个错误,但仍未解决(仅仅8年……)
解决方法
我刚做了一些测试,虽然端口肯定是由syslogd打开的,但它看起来并不像是在UDP 514上实际处理或记录任何指向它的活动.您可以通过netcat发送数据来验证这一点:
topher@nexus:~$nc -u localhost 514 This is a test. This is another test. ^C
然后检查日志文件.我在两个RHEL5盒子上测试了它,如果没有使用-r,它实际上不会处理日志.
更新:我刚想到的另一个解决方案(或者,实际上,解决方法)是安装rsyslog(或syslog-ng)作为默认sysklogd的替换syslog守护程序.这些备用syslog守护进程都没有遇到上述错误.
rsyslog是RHEL 6.x的默认syslog守护程序,可作为RHEL / CentOS 5.2的受支持程序包使用. rsyslog正在积极开发中(sysklogd不是,多年来一直没有). rsyslog还支持许多高级特性和功能.如上所述,使用RHEL / CentOS 5.2,从库存syslogd切换到rsyslog就像yum install rsyslog一样简单.
如果您决定更换系统日志守护程序,并且您希望更清洁,更灵活(在我看来),Syslog-NG值得一看.配置文件不保持与旧syslog.conf(rsyslog确实)的向后兼容性,因此乍一看似乎有点复杂,但对于复杂或高级日志记录设置(特别是在中央日志主机),Syslog-NG是一个很好的选择.