我正在尝试将远程设备放入单独的日志文件中,而不是主系统日志文件中。
我已经为远程设备创建了一个过滤器,使其转到每个主机的单独文件,但远程设备日志内容仍然最终出现在主系统日志中。我尝试了& ~
和& stop
。
常见问题但找不到有效的答案。rsyslog 5.8.6(Ubuntu 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