syslog-ng:过滤未分类的消息

syslog-ng:过滤未分类的消息

我设置了一个配置,将消息分类并写入相应的文件(目标)。我想知道——是否可以将未被特定过滤器抓取的消息记录到文件中?

例如,有针对dhcpddhclientacpidsshd消息的过滤器。而我想要的是抓取不属于上述所有 4 个类别的消息。

我看到tags它们可用作内部每条消息结构。我尝试为每个类别设置一个标记,并像这样抓取未标记的内容:

rewrite r_set_routed { set-tag('routed'); };
filter f_untagged { not tags('routed'); };
filter f_dhcpd_program { program('dhcpd'); };
<...>
log { source(s_local); rewrite(r_set_routed); filter(f_dhcpd_program); destination(d_dhcpd_file); };
<...>
log { source(s_local); filter(f_untagged); destination(d_unfiltered_file); };

但这不起作用(看起来r_set_routed一个重写log {}不会影响其他log {})。我知道可以否定所有过滤器以生成不匹配上述所有内容的过滤器,但这是一种容易出错且肮脏的方式,我想避免这种情况。

答案1

在具有过滤器的日志路径中使用“flags(final)”选项,并在末尾记录未标记消息的日志路径。最后一个日志路径不需要过滤器或标志。有关详细信息,请参阅https://www.balabit.com/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/reference-logflags.html

相关内容