Извлечение полей 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?