Kibana.Извлечь поля из @message, содержащие JSON - PullRequest
0 голосов
/ 08 июня 2018

Я хотел бы извлечь в полях Kiabana из поля @message, которое содержит JSON.Например:

Audit{
uuid='xxx-xx-d3sd-fds3-f43',
action='/v1.0/execute/super/method', 
resultCode='SUCCESS', 
browser='null', 
ipAddress='192.168.2.44', 
application='application1', 
timeTaken='167'
} 

Имея поля "action" и "application", я надеюсь найти 5 самых популярных запросов к приложению.

Я начал с чего-то похожего на это:

filter {
    if ([message]~ = "Audit") {
        grok {
            match => {
                "message" => "%{WORD:uuid}, %{WORD:action}, %{WORD:resultCode}, %{WORD:browser}, %{WORD:ipAddress}, %{WORD:application}, %{NUMBER:timeTaken}"
            }
            add_field => ["action", "%{action}"]
            add_field => ["application", "%{application}"]
        }
    }
}

Но, похоже, это слишком далеко от реальности.

1 Ответ

0 голосов
/ 11 июня 2018

Если содержимое «Audit» действительно в формате json, вы можете использовать плагин фильтра «json»

json{
    source => "Audit"
}

. Он будет выполнять синтаксический анализ и создавать все.Вам не нужно grok / add_field.

...