配置 Rsyslog 以停止记录某些消息

配置 Rsyslog 以停止记录某些消息

我想停止 rsyslog 记录这些消息。

[168707.740364] TCP: Peer 192.168.100.1:46199/41503 unexpectedly shrunk window 2027330493:2027331431 (repaired)

我在 /etc/rsyslog.conf 中尝试了这个但消息仍然被记录下来。

if $msg contains 'unexpectedly' then /dev/null

有人能给我指出正确的方向吗?

答案1

如果你使用较新版本的 rsyslog(例如 7),你需要执行

& stop

在您的消息之后。如果不这样做,您将

warning: ~ action is deprecated, consider using the 'stop' statement instead [try http://www.rsyslog.com/e/2307 ]

答案2

rsyslog 需要一个语句来在匹配后停止记录。在已有的 if 语句后立即添加此行。

& ~

您可能还需要将这两个语句在 conf 文件中上移,以便在其他可能将它们记录到消息中的语句之前对其进行解析。我将 rsyslog 配置更改为如下所示

/etc/rsyslog.conf ($IncludeConfig /etc/rsyslog.d/*.conf)
/etc/rsyslog.d/40-specificdaemon.conf
/etc/rsyslog.d/99-general.conf

这确保了我想要的顺序,并使配置管理可以轻松推出更新。

答案3

命令是“$stop”,而不是“$ stop”。两者有很大区别。

答案4

这两个命令似乎可以帮我停止记录包含“意外收缩”的行:

echo ":msg, contains, \"unexpectedly shrunk\" stop"|sudo tee -a /etc/rsyslog.d/123-custom.conf
sudo systemctl restart rsyslog.service && systemctl status rsyslog.service

该 .conf 文件包含:

:msg, 包含, “意外缩小” 停止

您可以在使用另一个您不想记录的字符串的同时在第二行添加相同的文本。 Journalctl 继续显示该行,但日志文件不再包含它。

相关内容