【问题标题】:Parse logs in Logstash or filebeat and transform them as JSON to pull Elasticsearch在 Logstash 或 filebeat 中解析日志并将其转换为 JSON 以拉取 Elasticsearch
【发布时间】:2019-03-21 22:08:11
【问题描述】:

我正在使用filbeat将日志发送到logstash,然后将它们存储在elasticsearch中。

我的日志文件包含如下字符串:

MESSAGE: { "url": "http://IP:PORT/index.html" , "msg": "aaa" }
MESSAGE: { "url": "http://IP:PORT/index_2.html" , "msg": "bbb" }

我想在 Elasticsearch 中只存储 JSON 对象。 我正在努力使用一些正则表达式来解析数据,然后将它们转换为 JSON 以发送到 Elasticsearch 的索引。 有什么帮助吗?我应该把逻辑去掉“MESSAGE :”吗?

【问题讨论】:

    标签: logstash elastic-stack filebeat


    【解决方案1】:

    您需要拆分您的消息,一部分仅包含 MESSAGE:,您可以忽略,另一部分包含 json,然后您将其发送到 json 过滤器。

    尝试以下方法:

    filter {
        grok {
            match => { "message" => "MESSAGE:%{SPACE}%{GREEDYDATA:json_message}"
        }
        json {
            source => "json_message"
        } 
    }
    

    这将获取您的原始消息并应用grok 过滤器以仅获取名为json_message 的字段中的json 部分,然后json 过滤器将解析此字段并创建字段url 和@987654329 @为每个事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-21
      • 1970-01-01
      • 2019-05-24
      相关资源
      最近更新 更多