如何在logstash中为json格式的嵌套文件编写过滤器部分

时间:2018-01-22 11:48:38

标签: json logstash logstash-grok

我有以下日志文​​件。

proxyName

我想根据msg:{ "level":"error", "msg":"err:ERR_AUTH_PORTAL_USER,tenantid:7,reason:out of access period,code:EP05,username:Che,venueid:10,devicemac:##-##-##-##-##-##,apmac:##-##-##-##-##-##,ssid:Jetwig,timestamp:Jan 22 2018 09:05:31 UTC", "time":"2018-01-22T14:35:31+05:30" } 使用logstash grok过滤器过滤它们。我怎么能这样做?

这是我到目前为止所尝试的:

err:ERR_AUTH_PORTAL_USER

1 个答案:

答案 0 :(得分:1)

input { 
    file{
    type=>"json"
    path=>"logfile location"
    start_position => "beginning"
    }

}

filter {     

      json{
        source => "message"


     }   
}  

output {

    if[msg][err]=="ERR_AUTH_PORTAL_USER"{

    stdout { codec => rubydebug }

    mongodb {
    collection => "error"
    database => "dev"
    uri => "mongodb://localhost:27017"
    isodate => true

     }

    }

file{
        path => "/tmp/output.txt"
    }  

}

将此添加到您的conf文件

 mongodb {
    collection => "error"
    database => "dev"
    uri => "mongodb://localhost:27017"
    isodate => true

     }

是可选的