rsyslog 过滤器的问题

rsyslog 过滤器的问题

我必须在 rsyslog.conf 文件中制定一条规则,以便获取至少注意到优先级但特定路径的错误优先级的邮件日志。

这是我试图为此制定的规则:

mail.notice,!err        -/var/log/usomail.log

问题是它也记录了我的错误,但我不想这样做。我的规则有什么问题吗?

答案1

您使用逗号,来分隔mail.noticeand !err。然而,这是附加的,所以你是说接受消息 atmail.notice以及 all!err。你想说的是接受消息mail.notice除了mail.err

手册页rsyslog.conf确实表明了这一点,尽管它并不那么清楚:

您可以使用逗号 (',') 运算符在一条语句中指定具有相同优先级模式的多个设施。您可以根据需要指定任意数量的设施。请记住,仅采用此类语句中的设施部分,将跳过优先部分。

可以使用分号(“;”)分隔符为单个操作指定多个选择器。请记住,选择器字段中的每个选择器都能够覆盖前面的选择器。使用此行为,您可以从模式中排除一些优先级。

因此,解决方案是将逗号替换,为分号;并包含该设施,如下所示:

mail.notice;mail.!=err  -/var/log/usomail.log

中也有一个类似的例子syslog.conf手册页也。

相关内容