rsyslog 模板停止被忽略

rsyslog 模板停止被忽略

我尝试配置我的模板以进行远程日志记录,但停止语句被忽略,并且所有内容都重复记录在syslog生成的文件中%programname%.log。我希望传入的消息只记录在%programname%.log

ZABBIX是我的本地机器,rsyslog 守护进程在此运行。远程设备是 Sierra 无线设备,它们正在记录到ZABBIX。但 Sierras 的所有内容都重复记录。这是我的配置/etc/rsyslog.conf

$template remote-logs,"/media/jarne/Data/log/%FROMHOST%/%programname%.log", stop
:fromhost,isequal,"ZABBIX" stop
*.* ?remote-logs

我也尝试过: *.* ?remote-logs & stop*.* ?remote-logs;stop,但只出现错误。

有人能告诉我 stop 关键字如何工作以及在哪里有效吗?

我在 Ubuntu 18.04.3 上使用 rsyslog 版本 8.32.0。提前致谢!

答案1

如果你的主机名是小写的 zabbix,那么

:fromhost,isequal,"zabbix" stop
*.* ?remote-logs

应确保您的远程日志文件不包含本地消息,前提是这些行位于 rsyslog 配置的末尾。但是,那时阻止远程消息进入本地系统日志就太晚了。

如果你使用一种新的语法,它会更简单雷纳脚本你可以在其中写下类似

if ($fromhost == "zabbix") then {
  *.* /var/log/syslog
} else {
  *.* ?remote-logs
}

相关内容