我已经用一些docker容器设置了一个主机,其中logspout用于将所有日志转发到syslog:
docker run --name="logspout" -d \
--restart=unless-stopped \
--volume=/var/run/docker.sock:/var/run/docker.sock \
--log-opt tag="logspout" \
gliderlabs/logspout \
syslog://host-01.example.com:514
所有日志都在/ var / log / syslog
中由于它变得混乱,我现在想将它们拆分成每个容器的文件。
当我将rsyslog配置为使用其他文件时,如下所示:
munin-server.* /var/log/munin.log
我在系统日志中收到以下消息:
May 9 12:44:39 docker-host-01 rsyslogd: [origin software="rsyslogd" swVersion="8.16.0" x-pid="13893" x-info="http://www.rsyslog.com"] start
May 9 12:44:39 docker-host-01 rsyslogd-2222: command 'KLogPermitNonKernelFacility' is currently not permitted - did you already set it via a RainerScript command (v6+ config)? [v8.16.0 try http://www.rsyslog.com/e/2222 ]
May 9 12:44:39 docker-host-01 rsyslogd-2184: action 'munin-server' treated as ':omusrmsg:munin-server' - please use ':omusrmsg:munin-server' syntax instead, 'munin-server' will not be supported in the future [v8.16.0 try http://www.rsyslog.com/e/2184 ]
May 9 12:44:39 docker-host-01 rsyslogd-3000: user name 'munin-se...' too long - ignored [v8.16.0]
May 9 12:44:39 docker-host-01 rsyslogd-2207: error during parsing file /etc/rsyslog.d/40-default.conf, on or before line 5: warnings occured in file '/etc/rsyslog.d/40-default.conf' around line 5 [v8.16.0 try http://www.rsyslog.com/e/2207 ]
是否可以通过某种方式更改名称(例如 munin-server )?还是该消息具有误导性?
答案 0 :(得分:0)
您使用的旧式语法期望selector的形式为 facility.priority ,但是设施集是固定的,并且不包含任意字符串。
您需要的是例如旧式property filter作为选择器。它的形式为:属性,[!]操作,“值” ,后跟操作。
所以您可以尝试类似的
:tag, isequal, "logspout" /var/log/munin.log
如果您的选项-log-opt tag="logspout"
可以设置syslog标签属性,或者
:msg, contains, "munin-server" /var/log/munin.log
或
:programname, startswith, "munin-server" /var/log/munin.log
取决于此字符串在记录的项目中出现的位置。确保在第1列中启动选择器。