我想使用syslog-ng创建集中式日志记录。我必须覆盖多个办公室,其中有1-2个公共IP和多个其他服务器/设备运行在云端"。
只是对于云服务器一切正常,但是当我想从办公室中的不同设备收集日志时,我正在丢失设备的主机名/源IP信息。我只获得了外部公共IP。
syslog-ng版本是3.5.3,它运行在Ubuntu 14.04计算机上(在具有公共IP地址的云中)。
我的额外非默认配置文件是以下 /etc/syslog-ng/conf.d/logserver.conf :
source s_network_udp { syslog(ip(<syslog_server_public_ip>) transport("udp") keep-hostname(yes)); };
source s_network_tcp { tcp(ip(<syslog_server_public_ip>) port(514) keep-hostname(yes)); };
destination d_netlog { file("/var/log/remote/${HOST}.log"); };
log { source(s_network_udp); destination(d_netlog);};
log { source(s_network_tcp); destination(d_netlog);};
每个公共服务器都有自己的$ hostname.log文件,但对于办公设备,我只有一个大的 public_ip_of_office.log 文件。
syslog-ng.conf文件具有默认配置。我不确定NAT是否会导致问题。我没有使用任何中继功能,我只有1个syslog-ng服务器。
任何帮助都会很棒。
答案 0 :(得分:0)
Nat将隐藏源IP。它不是syslog-ng / syslog问题。
您可以使用keep-hostname()。 但我建议不要这样做。
如果您允许我,我会建议您改进设置的一些提示:
通过这种设置,中继将看到真正的源IP,并且它可以在ietf协议的sdata部分中添加几个元数据项,例如。 sourceIP。