我正在使用http_poller插件来点击我用来监控服务状态的网页。这是那些没有进一步改进资源的旧服务之一。 http_poller运行正常,并在消息字段中包含以下内容
{"total_queue":0,"temp_queue":0,"processed":1926}
我想将消息字段过滤为3个字段,如下
total_queue:0
temp_queue:0
处理:1926年
到目前为止,我的过滤器语法已经导致了
error"=>{"type"=>"mapper_parsing_exception", "reason"=>"failed to parse [total_queue]", "caused_by"=>{"type"=>"number_format_exception", "reason"=>"For input string: \"{\"total_queue\":0,\"temp_queue\":0,\"processed\":1612}\""}}}}}
这就是我一直在玩的。
filter {
csv {
columns => ["total_queue", "temp_queue", "hospital"]
source => "message"
separator => " "
skip_empty_columns => true
quote_char => "$"
# convert => {
# "column1" => "integer"
# "column2" => "integer"
# "column3" => "integer"
# }
}
}
先谢谢
答案 0 :(得分:0)
由于您的输入已经是JSON,因此您根本不需要使用codec => json
过滤器。
只需在http_poller输入中添加input {
http_poller {
...
codec => json <--- add this
}
}
filter {
#remove csv
}
,您的事件就会获得JSON输入中的所有字段。
on_message()