从 syslog 中过滤 docker 消息

从 syslog 中过滤 docker 消息

看起来 docker 正在向 syslog 写入重复的消息。例如

Mar  6 23:53:45 ip-xx-xxx-xxx-xx docker[45287]: 2019/03/06 23:53:45  GET 200  xx.xxx.xxx.xxx /cas/78008842b495e4cf1706b0932ee2b52288e8aa7fc9bcc07308dac831f9ddd9dc
Mar  6 23:53:45 ip-xx-xxx-xxx-xx 0531bc03a15a[2921]: 2019/03/06 23:53:45  GET 200  xx.xxx.xxx.xxx /cas/78008842b495e4cf1706b0932ee2b52288e8aa7fc9bcc07308dac831f9ddd9dc

消息的内容相同,我想从系统日志中过滤掉其中一条。

进程ID 2921对应/usr/bin/dockerd

进程ID 45287对应/usr/bin/docker run

我不认为该日志被 syslog 标记,但我已尝试以下操作并将其放入/etc/rsyslog.d/docker.conf。我仍然看到此消息。

:programname, equals, "docker" ~
if ($programname == 'docker') then ~

也尝试过

if $programname == 'docker' then /dev/null
& stop

重新启动 rsyslog 然后检查,但消息仍然显示。 sudo service rsyslog restart

答案1

经过一番研究,我似乎必须用rsyslog.d数字前缀命名文件。例如,我将文件保存为,/etc/rsyslog.d/docker.conf在将其更改为后,/etc/rsyslog.d/01-docker.conf规则就应用了。

相关内容