Как избавиться от лишних полей и значений после преобразования grok ввода в json? - PullRequest
0 голосов
/ 21 октября 2019

У меня есть конфигурация 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]}"
    }
  }
}

Это работает, и я получаю имена полей / переменных, такие как serviceName и thread_name в Elastic / Kibana. Тем не менее, я также получаю некоторые нежелательные дополнительные вещи, которые, я полагаю, связаны с мутацией:

нежелательный вывод Grok

, как вы можете видеть, есть дополнительные "parsedJson. [field_name] "поля, которые повторяются. Я играл с json и mutate, но я не могу понять это. Любая помощь приветствуется, спасибо.

1 Ответ

0 голосов
/ 23 октября 2019

Используйте remove_field в фильтре мутаций.

mutate {
        remove_field => [ "[parsedJson][message]", "[parsedJson][serviceName]", "[parsedJson][thread_name]" ]
    }
...