我在 Ubuntu 14.0.1 上有一个 rsyslogd:
$ModLoad imtcp
$InputTCPServerRun 514
$template FILENAME,"/var/log/%fromhost%/syslog.log"
*.* ?FILENAME
如果运行
logger -p local0.crit -n 10.240.157.116 -u /dev/null test
在远程机器上,我可以使用 tcpdump 查看 rsyslogd-server 上的 syslog 数据包:
15:43:43.586827 IP 10.240.180.245.37261 > 10.240.157.116.514: SYSLOG local0.critical, length: 33
但是,远程主机的 rsyslogd-server 上没有写入任何日志。本地日志按预期写入 /var/log/rsyslogd-server-hostname/bla
答案1
根据记录器的手册页,“-n”将发送一个 UDP 数据包,这就是您在 tcpdump 中看到的(只有一个数据包,而不是 TCP 握手等)。
您的 rsyslogd 配置仅期望在 TCP (InputTCPServerRun) 上输入。
你可能想要:
$ModLoad imudp
$UDPServerRun 514