Logstash处理http_poller返回JSON消息转字段报错求助
嘿,问题很明显啦——你用csv过滤器去解析JSON格式的内容,这可不太行!csv是用来处理逗号(或自定义分隔符)分隔的文本的,而你的message字段是标准的JSON结构,难怪会报数字格式错误,因为csv把整个JSON字符串当成了total_queue的取值,自然转不成数字。
直接换用json过滤器就搞定了,给你正确的配置:
filter { json { source => "message" target => "" # 空目标表示把解析后的字段直接放到根层级,不用嵌套到某个子字段里 } }
额外说明:
- 这个配置会自动把
message里的JSON解析成三个独立字段:total_queue、temp_queue、processed,而且它们会被自动识别为数字类型,不用额外写转换规则。 - 如果想保留原始的
message字段,不用额外设置(默认就是保留);要是想清理掉原始字段,加个remove_field => ["message"]就行。 - 顺便提一句,你原来的csv配置里第三个字段名写成了
hospital,但JSON里是processed,不过用json过滤器就完全不用操心字段名对应问题了,直接跟着JSON的键来生成字段。
内容的提问来源于stack exchange,提问作者Supergreenmini
相关产品推荐
相关产品推荐

