过滤后,Syslog 仍在接收条目以分离文件

过滤后,Syslog 仍在接收条目以分离文件

我正在尝试将远程设备放入单独的日志文件中,而不是主系统日志文件中。

我已经为远程设备创建了一个过滤器,使其转到每个主机的单独文件,但远程设备日志内容仍然最终出现在主系统日志中。我尝试了& ~& stop

常见问题但找不到有效的答案。rsyslog 5.8.6(U​​buntu 12 LTS)

/etc/rsyslog.d/20-external.conf

$template PerHostLog,"/var/log/external/%HOSTNAME%.log"
if $fromhost-ip != '127.0.0.1' then -?PerHostLog
#& ~
& stop

/etc/rsyslog.conf除启用远程日志记录的更改外,所有其他文件都相同。

每个主机的文件确实有内容,但它们仍然进入主系统日志文件。

调整配置或过滤器的最佳方法是什么,以确保它们保留在单独的文件中,而不是在 syslog 文件中。

知道我做错了什么吗?

答案1

将两个条件放在不同的行上:
if $fromhost-ip != '127.0.0.1' then -?PerHostLog
if $fromhost-ip != '127.0.0.1' then stop

答案2

如果您的过滤器正常工作,您可以按照以下线程编辑 /etc/rsyslog.conf 以停止重复:

https://serverfault.com/questions/711708/stop-crontab-from-filling-syslog-ubuntu-15-04/717244#717244

相关内容