我正在尝试使用 logger 将事件发送到远程 syslog 服务器。syslog 服务器是运行默认 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 系统日志服务器上,tcpdump 也显示它们已被接收,并且它们显示在那里的 /var/log/messages 中。但是,我无法让记录器从 Ubuntu 12.04 客户端发送任何内容,即使该操作系统上的记录器有一个用于指定远程服务器的特殊开关。我尝试了命令行的许多变体:
logger -n <ip> Message
logger -n <ip> -d -P 514 Message
etc
tcpdump 甚至没有显示任何这些努力离开客户端服务器。它们似乎根本就没有发生过。
我正在从 sudo su shell 运行 logger。有趣的是,当我简单地使用 logger 向本地系统日志发送消息时,它似乎将其记录为来自我的帐户,但当我发送远程消息时,它将其记录为来自 logger。这可能是正常的,但我将其包括在内以提供详细信息。
我真的希望我遗漏了一些明显的东西,比如我尚未安装的依赖包,但我还没有发现它。如果不是这样,有人知道我该如何让它工作吗?
答案1
该错误已在 logger(1) 2.24.2-1 版本中修复。
一种解决方法是指定一个套接字(然后将其忽略):
logger -n <ip> -d -P 514 -u /tmp/ignored Message
这对我有用,logger from util-linux 2.20.1
在 Ubuntu 14.04 上使用。
看关联从hackru 的回答, 尤其消息 #15。
答案2
和你一样,我花了大约 40 分钟试图找出 Debian 上的日志器出了什么问题。幸运的是,我找到了解决方法。