Logstash 如何从日志解析json

Logstash 如何从日志解析json,logstash,kibana,elastic-stack,Logstash,Kibana,Elastic Stack,我是Logstash/Kibana(ELK stack)的新手,我不知道如何从我的日志中解析给定的json,并在Kibana中添加“message”和“application”属性作为字段 <30>Jan 30 17:52:43 bts/cit-bts-pms-middleware-dev:sprint-01/cit-bts-pms-middleware-dev[862]: {"timestamp":"2017-01-30T17:52:43.713+00:00","message":

我是Logstash/Kibana(ELK stack)的新手,我不知道如何从我的日志中解析给定的json,并在Kibana中添加“message”和“application”属性作为字段

<30>Jan 30 17:52:43 bts/cit-bts-pms-middleware-dev:sprint-01/cit-bts-pms-middleware-dev[862]: {"timestamp":"2017-01-30T17:52:43.713+00:00","message":"Error processing.", "application": "fooApp"}
Jan 30 17:52:43 bts/cit bts pms中间件开发:sprint-01/cit bts pms中间件开发[862]:{“时间戳”:“2017-01-30T17:52:43.713+00:00”,“消息”:“错误处理”,“应用程序”:“fooApp”}
Tks all

您可能必须使用插件才能读取JSON格式的内容。输入可能如下所示:

input {
    file {
       type => "json"
       path => "/pathto/your.log"
       codec => json
    }
} 
事实上,这应该起到作用

您仍然可以使用类似于以下内容的过滤器。但是,如果使用以下选项,请确保删除编解码器:

filter {
  json {
    source => "message"
  }
}

一旦使用logstash将字段添加到每个ES记录中,您应该能够在Kibana

中访问它们,谢谢@Darth_Vader,但我的日志部分是JSON。我用正则表达式解决了这个问题:
filter{grok{break_on_match=>false match=>[“message”、“(?(?[“message”、”(?(?[“message”、“(?(?[“message”),”(?(?[“message”、“(?)哦,好的。我不知道你的日志部分是json。对此感到抱歉。