环境是 Ubuntu 12.04.4 LTS 和 rsyslog 5.8.6。
我已将 rsyslog 配置为通过标准端口 514 通过 UDP 接收消息。它允许一个特定主机向其发送消息:
$AllowedSender UDP, 192.168.4.1
当我从不同的服务器发送消息时,它会拒绝该消息并记录:
rsyslogd: UDP message from disallowed sender discarded
是否可以配置 rsyslog 以包含被拒绝的发件人的 IP 地址?
答案1
我下载了版本 5 源代码(https://github.com/rsyslog/rsyslog/archive/v5-stable.zip)并看着插件/imudp/imudp.c。在此文件中,这是一条硬编码消息,没有显示发件人弗罗米内特IP地址:
if(glbl.GetOption_DisallowWarning) {
time_t tt;
datetime.GetTime(&tt);
if(tt > ttLastDiscard + 60) {
ttLastDiscard = tt;
errmsg.LogError(0, NO_ERRCODE,
"UDP message from disallowed sender discarded");
}
}
我还发现工具/syslogd.c包含现在未使用的残余物修改消息反序列化()确实显示了来自主机价值。
errmsg.LogError(0, NO_ERRCODE,
"UDP message from disallowed sender %s discarded",
(char*)fromHost);
我不确定为什么 Rainer 决定不保留该功能。他确实在这里讨论了这部分代码的一些性能问题:http://blog.gerhards.net/2009/11/acls-imudp-and-accepting-messages.html
无论如何,如果我想显示发送者的 IP 地址,我似乎必须编译我自己的 rsyslogd 版本。