我有一个logstash配置,具有如下所示的过滤器:
filter {
grok {
match => { "message" => "%{GREEDYDATA:inputs}"}
}
json {
source => "inputs"
target => "parsedJson"
remove_field => ["inputs"]
}
mutate {
add_field => {
"serviceName" => "%{[parsedJson][serviceName]}"
"thread_name" => "%{[parsedJson][thread_name]}"
}
}
}
它正在工作,我正在Elastic / Kibana中获取字段/变量名称,例如serviceName和thread_name。但是,我还得到了一些多余的东西,我相信这是由于突变造成的:
unwanted grok output
如您所见,还有重复的其他“parsedJson。[field_name]”字段。我玩过json和mutate部分,但似乎无法弄清楚。任何帮助表示赞赏,谢谢。
最佳答案
在mutate过滤器中使用remove_field。
mutate {
remove_field => [ "[parsedJson][message]", "[parsedJson][serviceName]", "[parsedJson][thread_name]" ]
}