【问题标题】:Filebeat - Single Line Logs - No newline CharacterFilebeat - 单行日志 - 没有换行符
【发布时间】:2020-11-11 11:36:50
【问题描述】:

Filebeat 文档很清楚,不是以换行符结尾的日志不会被 filebeat 处理:Documentation

但是,我确实有许多日志,它们被写为单个 JSON 对象,在一行中,它们不以换行符结尾。我无法更改记录器以添加此换行符。

有没有人找到任何解决方案来强制 filebeat 读取这些不以换行符结尾的行?

'close_eof = true' 或多行选项似乎不起作用,我相信这是在读取换行符之前没有将行读入缓冲区?所以它会打开和关闭收割机,但没有任何东西被读入缓冲区。

任何帮助将不胜感激。

【问题讨论】:

    标签: logging elastic-stack filebeat


    【解决方案1】:

    您将输出发送到 Elasticsearch 还是 Logstash? 如果您将其发送到 Logstash,您可能希望使用分隔符选项在此处进行拆分:

    codec => json_lines {
      delimiter => "<some_sequence>"
    }
    

    【讨论】:

    • 问题的症结在于Filebeat无法将输出发送到Elasticsearch或Logstash。它不会接收事件,因为该行不以 CR/新行结尾。所以,虽然 Logstash 确实有办法处理这个问题,但我无法将它发送到 Logstash,我需要比安装在此端点上的 Logstash 更轻量级的东西,即 Filebeat(或其他一些托运人)。
    • 您可以使用带有“*”等模式的“多行”发送输出,然后按照我的建议使用 Logstash 中的“分隔符”选项
    猜你喜欢
    • 2018-08-24
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 2017-05-18
    • 2020-10-09
    • 1970-01-01
    • 2022-07-13
    • 1970-01-01
    相关资源
    最近更新 更多