用于logstash过滤器的Grep Json字符串

时间:2017-02-06 17:01:58

标签: json elasticsearch logstash logstash-grok

我是logstash的新手,并尝试浏览不同的博客/链接以详细了解它。我遇到了一个问题,我想解析嵌入在普通字符串行中的Json字符串。

输入字符串

  

2017-01-27 11:54:48 INFO PropertiesReader:33 -    {“timestamp”:1485518878968,“h”:“297268184dde”,“l”:“INFO”,“cN”:“org.com.logstash.demo”,“mN”:“loadProperties”,“m “:“加载   属性文件来自/ var / tmp / conf“}

我想提取突出显示的Json字符串并在Json上应用Json插件。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您只需在json过滤器后使用grok过滤器:

filter {
    grok { 
         match => [ "message", "%{TIMESTAMP_ISO8601:LogDate} %{LOGLEVEL:loglevel} %{WORD:threadName}:%{NUMBER:ThreadID} - %{GREEDYDATA:Line}" ] 
    }
    json {
        source => "Line"
    }
} 

另请注意,我已经修改了你的grok模式,以便在JSON数据之前排除-