rsyslog:丢弃多条消息

rsyslog:丢弃多条消息

如何使用 rsyslog 一次丢弃多条消息?这不起作用,我无法找到有效的示例:

# Do not log any keepass and chmomium messages
if $programname == 'chromium.desktop'       then /dev/null
if $programname == 'keepass2.desktop'       then /dev/null

& stop

下面的解决方案有效,但在检查时显示错误rsyslogd -N1 -f <config_file>

rsyslogd: version 8.4.2, config validation run (level 1), master config /etc/rsyslog.d/00-discard.conf
rsyslogd: CONFIG ERROR: there are no active actions configured. Inputs will run, but no output whatsoever is created. [try http://www.rsyslog.com/e/2103 ]
rsyslogd: run failed with error -2103 (see rsyslog.h or try http://www.rsyslog.com/e/2103 to learn what that number means)

答案1

该行的& stop意思是“重复前一个选择器”,并执行“停止”操作,停止对所选消息的进一步处理。因此,您需要将其放在每个if ...选择行之后。但是,由于您的操作是写入/dev/null,因此您也可以让第一行执行您想要的操作,即

if $programname == 'chromium.desktop'       then stop
if $programname == 'keepass2.desktop'       then stop

答案2

这里描述了另一种丢弃消息的方法:丢弃不需要的消息

只需检查“programname”属性,而不是像示例中那样检查“msg”属性。

:programname, contains, "chromium.desktop" ~

:programname, contains, "keepass2.desktop" ~

相关内容