我是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插件。我怎样才能做到这一点?
答案 0 :(得分:0)
您只需在json
过滤器后使用grok
过滤器:
filter {
grok {
match => [ "message", "%{TIMESTAMP_ISO8601:LogDate} %{LOGLEVEL:loglevel} %{WORD:threadName}:%{NUMBER:ThreadID} - %{GREEDYDATA:Line}" ]
}
json {
source => "Line"
}
}
另请注意,我已经修改了你的grok模式,以便在JSON数据之前排除-
。