我正在使用Rsyslog进行分布式日志收集。根据我的理解,Debian上的日志流程从journals
开始,再到syslog socket
,然后由rsyslog clients
获取。在我的例子中,RS客户端通过添加time-generated
,priority
,hostname
等额外信息来对收集的日志进行后处理。 2 {{ 1}}在每个节点上使用:
最近,我遇到了以下问题:
- 所有节点具有相同的配置,转发节点将后处理信息添加到日志中。收到之后,在发送到终端之前,本地配置还添加了后处理信息(制作两次)。某些信息(如/etc/rsyslog.d/*.conf
)不会重复,但主机名等信息会被打印两次。我必须在两个时间都发布进程,因为日志服务器可能是time generated
,转发的v / s本地日志应该看起来一样。
external or internal
没有重复?任何指针都会有所帮助,谢谢!
规格: 节点:Debian Jessie,Systemd 215,Rsyslog 8.3.3 服务器:与上述相同或外部rsyslog服务器
答案 0 :(得分:0)
调试/挖掘文档后,我的观察结果如下:
Rsyslog parser
尽力识别日志格式,尤其是标题组件。%time-generated%
等属性,如果识别正确,将不会在中继/收集器上重复。<%PRI%>1 %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n
RSYSLOG_SyslogProtocol23Format
,现在看来一切都很好。希望这能解决所有问题。请随时进一步讨论这个问题:-) 一篇非常好的文章帮助我理解了rsyslog解析器的本质是this