Logstash json过滤器不添加字段到事件的根[编辑]



当我在消息上使用json过滤器时,它神奇地消失了-永远不会到达elasticsearch。当我把过滤器取下来时,一切都正常了。

样本_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"
}

我做错了什么?

编辑

当我给json过滤器一个target时,消息被解析并添加到目标字段。但我不这么认为。我希望将JSON的字段添加到事件的根。阅读json过滤器的文档,我认为如果我省略target,将会发生这种情况,不幸的是,它似乎不是这样。

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

您可以使用输入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"
}

相关内容

  • 没有找到相关文章

最新更新