RSyslog post 处理和远程转发
RSyslog post processing and remote forwarding
我正在使用 Rsyslog 进行分布式日志收集。据我了解,Debian 上的日志流从 journals
开始,然后到 syslog socket
,然后由 rsyslog clients
获取。在我的例子中,RS 客户端正在 post 处理通过添加额外信息收集的日志,如 time-generated
、priority
、hostname
等。有 两个 /etc/rsyslog.d/*.conf
在每个节点上使用:
- 用于捕获本地日志并在终端上显示(转发到规范)
- 用于转发日志到其他节点
最近,我 运行 遇到以下问题:
- 所有节点都具有相同的配置,转发节点正在将 post 处理信息添加到日志中。收到时,在发送给终端之前,本地配置也在添加post处理信息(制作两次)。 time generated
等某些信息不会重复,但主机名等信息会打印两次。我两次都必须 post 处理,因为日志服务器可能 external or internal
并且转发的 v/s 本地日志应该看起来相同。
- 这是处理分布式日志收集的最佳方式吗?
- 如何避免重复 post 处理字符串?
- 为什么
time-generated
没有重复?
任何指点都会很有帮助,谢谢!
规格:
节点:Debian Jessie、Systemd 215、Rsyslog 8.3.3
服务器:同上或外部 rsyslog 服务器
在 debugging/digging 进入文档后,这是我的观察结果:
Rsyslog parser
尽力识别日志格式,尤其是 header 部分。
- 像
%time-generated%
这样的属性,如果识别正确,将不会在 relay/collector 处重复。
- 虽然我的模板符合 RFC5424,但解析器没有正确选择格式;因此重复。这是我用来参考的格式:
<%PRI%>1 %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n
- 我切换到预定义的 RFC5424 模板
RSYSLOG_SyslogProtocol23Format
,现在一切似乎都很好。
希望这能解决所有问题。请随时进一步讨论这个问题:-)
一篇帮助我理解 rsyslog 解析器本质的非常好的文章是 this
我正在使用 Rsyslog 进行分布式日志收集。据我了解,Debian 上的日志流从 journals
开始,然后到 syslog socket
,然后由 rsyslog clients
获取。在我的例子中,RS 客户端正在 post 处理通过添加额外信息收集的日志,如 time-generated
、priority
、hostname
等。有 两个 /etc/rsyslog.d/*.conf
在每个节点上使用:
- 用于捕获本地日志并在终端上显示(转发到规范)
- 用于转发日志到其他节点
最近,我 运行 遇到以下问题:
- 所有节点都具有相同的配置,转发节点正在将 post 处理信息添加到日志中。收到时,在发送给终端之前,本地配置也在添加post处理信息(制作两次)。 time generated
等某些信息不会重复,但主机名等信息会打印两次。我两次都必须 post 处理,因为日志服务器可能 external or internal
并且转发的 v/s 本地日志应该看起来相同。
- 这是处理分布式日志收集的最佳方式吗?
- 如何避免重复 post 处理字符串?
- 为什么
time-generated
没有重复?
任何指点都会很有帮助,谢谢!
规格: 节点:Debian Jessie、Systemd 215、Rsyslog 8.3.3 服务器:同上或外部 rsyslog 服务器
在 debugging/digging 进入文档后,这是我的观察结果:
Rsyslog parser
尽力识别日志格式,尤其是 header 部分。- 像
%time-generated%
这样的属性,如果识别正确,将不会在 relay/collector 处重复。 - 虽然我的模板符合 RFC5424,但解析器没有正确选择格式;因此重复。这是我用来参考的格式:
<%PRI%>1 %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n
- 我切换到预定义的 RFC5424 模板
RSYSLOG_SyslogProtocol23Format
,现在一切似乎都很好。
希望这能解决所有问题。请随时进一步讨论这个问题:-) 一篇帮助我理解 rsyslog 解析器本质的非常好的文章是 this