看起来 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
规则就应用了。