当我在消息上使用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"
}
我做错了什么?
修改
当我向target
过滤器提供json
时,会解析该消息并将其添加到目标字段。但我不知道那是什么。我希望将JSON的字段添加到事件的根目录中。阅读json过滤器的documentation,我想如果我省略target
就会发生这种情况,遗憾的是它似乎不是这样。
定义用于放置已解析数据的目标字段。如果省略此设置,则JSON数据将存储在事件的根(顶层)。
答案 0 :(得分: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"
}