当 rsyslog 拒绝 UDP 消息时,如何显示发送者的 IP 地址?

当 rsyslog 拒绝 UDP 消息时,如何显示发送者的 IP 地址?

环境是 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 版本。

相关内容