我目前正在将日志发送到 rsyslog 服务器(ironport 代理),该服务器在端口 514 上接收 udp 数据包。我知道,因为我在端口 514 上检查了 tcpdump,并且看到了很多系统日志消息。
但问题是,我无法将这些消息重定向到文件中。我尝试了很多在网上(以及这里)看到的东西,但它不起作用。执行此操作的正确方法是什么?如果这里有人知道我的问题的答案:roll:
提前致谢
答案1
在接收系统日志消息的服务器上,在 UDP 端口 514 上,您需要添加以下配置:
$ModLoad imudp
$UDPServerRun 514
$AllowedSender UDP, 10.42.0.0/15 127.0.0.1
$template RemoteStore, "/var/log/remote/%HOSTNAME%/%timegenerated:1:10:date-rfc3339%"
:source, !isequal, "localhost" -?RemoteStore
:source, isequal, "last" ~
确保您允许正确的发件人 ( replace 10.42.0.0/15
),重新启动 rsyslog。然后,您将在 中找到您的远程登录/var/log/remote/$hostname/YYYY-MM-DD
。
另外/CentOS 的具体情况:您的防火墙很有可能已启用。如果是这样,则可能会丢弃 UDP 端口 514 的入站流量。检查您的防火墙状态 ( systemctl status firewall
)。如果启用,请尝试添加规则。
# firewall-cmd --get-default-zone
public
# firewall-cmd --zone=public --add-port=514/udp
# firewall-cmd --permanent
# firewall-cmd --reload
您可能需要检查 SELinux。如果启用,请确保它允许 rsyslog 接收到端口 514 的 UDP 流量。
答案2
我最近对这个同样的问题感到摸不着头脑。我尝试了 SYN 的上述两个建议 - 仍然没有骰子。 :(
在 RHEL 7 上我终于发现我需要添加一个“ACCEPT”规则/etc/sysconfig/iptables:
-A INPUT -m state --state NEW -m udp --dport 514 -j ACCEPT
它必须出现在文件中任何“REJECT”规则之前。一旦到位,一切就都是黄金了! :)