logstash csv过滤器来处理引用的文本

时间:2018-01-08 15:29:29

标签: elasticsearch logstash

我正在使用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"
#      }
}
}

先谢谢

1 个答案:

答案 0 :(得分:0)

由于您的输入已经是JSON,因此您根本不需要使用codec => json过滤器。

只需在http_poller输入中添加input { http_poller { ... codec => json <--- add this } } filter { #remove csv } ,您的事件就会获得JSON输入中的所有字段。

on_message()