我有一个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]" ]
    }

08-28 13:25