【问题标题】:Logstash not storing data in correct format on ESLogstash 未在 ES 上以正确格式存储数据
【发布时间】:2019-01-18 20:35:09
【问题描述】:

我的设置如下:

  1. 应用程序正在将日志写入文件:file.json。
  2. 文件中的每一行都包含一条我想要存储在 ES 索引中的 json 记录。
  3. 我已将 logstash 配置为从此文件中读取数据并将数据存储在 ES 上。

但是 logstash 并没有将完整的 json 记录作为源存储在 ES 中。而是将完整的 json 放在一个字段中。

更多详情

Logstash 配置:

input {
    file {
        type => "json"
        path => "file.json"
        start_position => beginning
    }
}

output {
         elasticsearch {
             hosts => [ "10.1.1.1:9200" ]
             index => "index-name"
    }
}

文件.json:

{"name":"John", "age":31, "city":"Abc"}

在 ES 中存储的记录:

"hits" : {
    "total" : 1,
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "index_name",
        "_type" : "doc",
        "_id" : "eHD8KGUBy7HkgIAhGQln",
        "_score" : 1.0,
        "_source" : {
          "type" : "json",
          "host" : "qa-box",
          "@version" : "1",
          "message" : "{name:John,age:31,city:Abc}",
          "@timestamp" : "2018-08-11T12:35:34.184Z",
          "path" : "file.json"
        }
      }
    ]
  }

【问题讨论】:

    标签: elasticsearch logstash elastic-stack


    【解决方案1】:

    我认为你需要一个过滤器来像 JSON 一样对待它:

    input {
        file {
            type => "json"
            path => "file.json"
            start_position => beginning
        }
    }
    filter {
      json {
        source => "message"
      }
    }
    output {
             elasticsearch {
                 hosts => [ "10.1.1.1:9200" ]
                 index => "index-name"
        }
    }
    

    【讨论】:

      【解决方案2】:

      Logstash 默认将输入视为纯文本并将其存储在message 字段中。 你应该像@dwjv所说的那样使用json过滤器。

      此外,如果您想删除原始的messagefield(并且您可能想删除由logstash 生成的额外字段,例如pathhost),您也可以使用mutate 过滤器,如下所示:

      filter {
        json {
          source => "message"
        }
        mutate {
          remove_field => [ "message", "path", "host" ]
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-28
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 2018-02-09
        • 1970-01-01
        • 2013-06-20
        相关资源
        最近更新 更多