我已经将这个问题发布到 Server Fault 并且作为一个受人尊敬的问题被两次投票,但不幸的是,就答案而言,它一直是蟋蟀,所以我正在尝试在这里发布它,因为这个论坛似乎非常活跃。如果对有人可以帮助我的网站有任何其他建议,我也将不胜感激。
我正在尝试使用记录器将事件发送到远程系统日志服务器。系统日志服务器是运行默认 rsyslogd 的 Ubuntu 12.04。“客户端”服务器都是 Ubuntu 12.04 和 SLES11SP1。在 SLES11 上,我可以成功地将事件发送到 syslog 服务器。Tcpdump 显示它们是从 SLES 客户端成功发送的:
CEIDMLDAP-LS02:~ # tcpdump udp -n dst portrange 514
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
11:07:58.865116 IP 10.192.0.108.34249 > 10.192.3.104.514: SYSLOG user.notice, length: 59
11:09:07.921309 IP 10.192.0.108.34249 > 10.192.3.104.514: SYSLOG user.notice, length: 77
在 Ubuntu syslog 服务器上,tcpdump 还显示它们正在被接收,并且它们显示在 /var/log/messages 中。但是,即使该操作系统上的 logger 具有用于指定远程服务器的特殊开关,我也无法让 logger 从 Ubuntu 12.04 客户端发送任何内容。我尝试了许多命令行变体:
logger -n <ip> Message
logger -n <ip> -d -P 514 Message
etc
tcpdump 甚至没有将这些努力显示为离开客户端服务器。它们似乎根本就没有发生过。
我正在从 sudo su shell 运行记录器。有趣的是,当我简单地使用 logger 向本地 syslog 发送消息时,它似乎将其记录为来自我的帐户,但当我发送远程时,它会将其记录为来自 logger。这可能是正常的,但我将其包括在内以供详细说明。
我真的希望我错过了一些明显的东西,比如我尚未安装的依赖包,但我还没有发现它。如果不是这样,有没有人知道我如何才能让它工作?