![rSyslog - 所有 (UDP) 远程消息的规则](https://linux22.com/image/695476/rSyslog%20-%20%E6%89%80%E6%9C%89%20(UDP)%20%E8%BF%9C%E7%A8%8B%E6%B6%88%E6%81%AF%E7%9A%84%E8%A7%84%E5%88%99.png)
有没有办法创建一个 rsyslog 规则,将所有传入的 udp 流量处理到不同的文件(与为子系统编写规则的方式相同)
例如我会做这样的事情
udp.* /var/log/remoteSrv
我最接近的了解是如何根据远程系统更改文件,但我只是想知道日志是来自本地机器还是来自远程服务器。
http://www.rsyslog.com/storing-messages-from-a-remote-system-into-a-specific-file/
谢谢您的帮助
答案1
您可以使用链接中的信息来获取类似以下内容,并将其放在配置文件的开头附近:
$ModLoad imudp
$UDPServerRun 514
# do this in FRONT of the local/regular rules
if $fromhost-ip != '127.0.0.1' then /var/log/remoteSrv
& stop
# local/regular rules, like
*.* /var/log/syslog.log
这会将不是来自本地主机的消息过滤127.0.0.1
到所需的日志文件,然后隐藏它们(stop
)。然后,您可以对剩余的消息使用已有的规则,例如最后一行中给出的规则。