Kibana。从@message中提取包含JSON的字段

时间:2018-06-08 07:44:30

标签: elasticsearch lucene kibana logstash-grok

我想从包含json的@message字段中提取Kiabana字段。 例如:

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'
} 

拥有“动作”和“应用程序”字段,我希望能够找到命中应用程序的前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 :(得分:1)

如果"审核"的内容实际上是json格式,你可以使用过滤器插件" json"

json{
    source => "Audit"
}

它将为您解析并创建所有内容。你不需要grok / add_field。