如何停止syslog在CentOS 5.8上侦听到514

我有一台CentOS 5.8机器(有常规的系统日志),由于某种原因,它正在侦听端口514,即使它不是以“-r”(接收远程系统日志消息)启动的。

# netstat -tulpn | grep 514 udp 0 0 0.0.0.0:514 0.0.0.0:* 2698/syslogd 

系统日志仅以“-m 0”启动:

 ps -ef | grep syslogd root 2698 1 0 15:55 ? 00:00:00 syslogd -m 0 

我已经尝试用“-m 0 -r”开始,只是为了检查是否有任何区别,但没有。

这台机器是一个客户端,只应该login到一个中央日志服务器 – 它不应该听自己。

我错过了什么?

我刚刚发现这个: https : //bugzilla.redhat.com/show_bug.cgi?id = 137205 。 从2010年的最新评论来看,这似乎是2004年的一个bug,至今还没有解决(只有8年了…)

我只是做了一些testing,并且在syslogd打开端口的时候,它看起来并没有实际处理或loggingUDP 514上的任何活动。你可以通过netcat发送数据来validation它:

 topher@nexus:~$ nc -u localhost 514 This is a test. This is another test. ^C 

然后检查日志文件。 我在两个RHEL5盒子上testing了它,如果不使用-r ,它实际上不会处理日志。

更新:我刚才想到的另一个解决scheme(或者真的是解决方法)是安装rsyslog(或syslog-ng)作为默认sysklogd的替代syslog守护进程。 这些备用系统日志守护进程都没有受到上述错误的困扰。

rsyslog是RHEL 6.x的默认系统日志守护程序,可作为RHEL / CentOS 5.2+的受支持软件包提供。 rsyslog正在积极开发(sysklogd是不是,并没有多年)。 rsyslog还支持许多高级特性和function。 如前所述,使用RHEL / CentOS 5.2+,从stock syslogd切换到rsyslog与yum install rsyslog rsyslog一样简单。

如果你决定更换你的系统日志守护进程,并且你希望有一些更清洁和更灵活的(在我看来),Syslog-NG值得一看。 configuration文件并不保持与旧的syslog.conf (rsyslog)的向后兼容性,因此乍一看似乎有些复杂,但对于复杂或高级的日志设置(特别是在中央日志主机上),Syslog-NG是一个很好的select。

这很奇怪 我在我的CentOS 5.8 VM上testing过,没有看到你描述的问题。 添加-r添加udp端口并删除-r并重新启动将其删除。 如果有帮助,我已经安装了sysklogd-1.4.1-46.el5。

GNU syslogd(AKA sysklogd)是inetutils一部分。 我已链接到源以显示它绑定到UDP端口的条件:

  • 头大约3/2012 (基于1.9.1)。 它检查AcceptRemote ,它只在使用-r调用syslogd时设置。

  • v1.6从2007年 。 除了上面的-r / AcceptRemote情况,当NoForward 没有被设置时,它也会被绑定。 这是默认的。 我怀疑你正在运行这个版本或类似的东西。 选项parsing器只有一个很长的选项来禁用它,– --no-forward ,显然这会打破你需要的function。

最后,在这里埋下来,我将提供真正的答案:任何花费在configurationGNU syslogd上的时间最好用其他的replace它。 复活节快乐 :-)