Извлечение полей logstash c помощью grok для фильтрации в Kibana

У меня есть логи вида:

Server response. Body={"valid":[{"someId":"12345","someType":"somevalue123","isSome":true}],"invalid":[]}

Текущий конфиг pipeline:

    if [syslog_tag] =~ "json" {
      json {
        source => root_message
      }
      mutate {
        remove_field => ["root_message"]
      }
    }

Мне нужно извлечь поля (someType, someId, и т д..) для использования их в фильтре Кибаны

Вместо: message: "'someType':'somevalue123'" AND message: "'someId':'12345'"
Я хочу использовать someType: "somevalue123" AND someId: "12345"

Я пытался изменить конфиг pipeline таким образом:

    if [syslog_tag] =~ "json" {
      json {
        source => root_message
      }
      mutate {
        remove_field => ["root_message"]
      }
      grok {
        match => { message => "%{GREEDYDATA:message} Body=%{GREEDYDATA:json_message} "}
      }
      json {
        source => json_message
      }
      mutate {
        remove_filed => ["json_message"]
      }
    }

Но это не работает
Что мне следует изменить в конфиге чтобы достичь этого? Может мне нужно использовать kv?


Ответы (0 шт):