【问题标题】:RSyslog post processing and remote forwardingRSyslog 后处理和远程转发
【发布时间】:2018-06-29 09:36:03
【问题描述】:

我正在使用 Rsyslog 进行分布式日志收集。据我了解,Debian 上的日志流从journals 开始,然后到syslog socket,然后被rsyslog clients 拾取。在我的例子中,RS 客户端通过添加额外信息(如 time-generatedpriorityhostname 等)对收集的日志进行后处理。有 两个 /etc/rsyslog.d/*.conf 用于每个节点:

  1. 用于捕获本地日志并在终端上显示(转发到规范)
  2. 用于将日志转发到其他节点

最近,我遇到了以下问题: - 所有节点都有相同的配置,转发节点正在将后处理信息添加到日志中。收到时,在发送到终端之前,本地配置也在添加后处理信息(制作是两次)。 time generated 之类的某些信息不会重复,但主机名之类的信息会打印两次。我必须同时发布进程,因为日志服务器可能是 external or internal 并且转发的 v/s 本地日志应该看起来相同。

  • 这是处理分布式日志收集的最佳方式吗?
  • 如何避免重复的后处理字符串?
  • 为什么time-generated 没有被复制?

任何指针都会有帮助,谢谢!

规格: 节点:Debian Jessie、Systemd 215、Rsyslog 8.3.3 服务器:同上或外部 rsyslog 服务器

【问题讨论】:

    标签: logging debian rsyslog systemd-journal-remote


    【解决方案1】:

    在调试/挖掘文档后,这是我的观察结果:

    1. Rsyslog parser 尽最大努力识别日志格式,尤其是头部组件。
    2. %time-generated% 等属性如果识别正确,将不会在中继/收集器处复制。
    3. 虽然我的模板与 RFC5424 对齐,但解析器没有正确选择格式;因此重复。这是我用作参考的格式: <%PRI%>1 %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n
    4. 我切换到预定义的 RFC5424 模板 RSYSLOG_SyslogProtocol23Format,现在一切似乎都很好。

    希望这能回答所有问题。请随时进一步讨论这个问题:-) 一篇很好帮助我理解rsyslog解析器本质的文章是this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-30
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多