1

当我对消息使用 json 过滤器时,它会神奇地消失 - 永远不会到达弹性搜索。当我卸下过滤器时,一切正常。

样品_source-

{"message":"{\"id\":\"5563017afd801c1618603a7b\",\"date\":\"2015-05-23T15:30:00.000Z\",\"count\":485}","@version":"1","@timestamp":"2015-05-25T11:07:49.913Z","type":"app","env":"production","host":"production-server","tags":["event"]}

我使用节点应用程序node-lumberjack-protocol来发送消息。

这就是我的过滤器的样子

json {
    source => "message"
}

我究竟做错了什么?

编辑

当我给过滤器一个targetjson消息被解析并添加到目标字段。但我不知道那是什么。我希望将 JSON 的字段添加到事件的根目录中。阅读 json 过滤器的文档,我想如果我省略 ,就会发生这种情况target,不幸的是,似乎并非如此。

定义放置解析数据的目标字段。如果省略此设置,JSON 数据将存储在事件的根(顶层)。

4

1 回答 1

1

您可以使用输入codec将 json 消息添加到根。

例如,

input {
        stdin{
                codec => json
        }
}

output {
        stdout { codec => rubydebug }
}

输入:

{"id":"5563017afd801c1618603a7b","date":"2015-05-23T15:30:00.000Z","count":485}

输出:

{
        "id" => "5563017afd801c1618603a7b",
      "date" => "2015-05-23T15:30:00.000Z",
     "count" => 485,
  "@version" => "1",
"@timestamp" => "2015-05-27T03:45:33.094Z",
      "host" => "BEN_LIM"
}
于 2015-05-27T03:47:08.033 回答