Grep Json 用于 logstash 过滤器的字符串
Grep Json String for logstash filter
我是 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":"load
property file from /var/tmp/conf"}
我想提取突出显示的 Json 字符串并在 Json 上应用 Json 插件。我怎样才能做到这一点?
您只需在 grok
过滤器之后使用 json
过滤器:
filter {
grok {
match => [ "message", "%{TIMESTAMP_ISO8601:LogDate} %{LOGLEVEL:loglevel} %{WORD:threadName}:%{NUMBER:ThreadID} - %{GREEDYDATA:Line}" ]
}
json {
source => "Line"
}
}
另请注意,我稍微修改了您的 grok 模式以排除 JSON 数据之前的 -
。
我是 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":"load property file from /var/tmp/conf"}
我想提取突出显示的 Json 字符串并在 Json 上应用 Json 插件。我怎样才能做到这一点?
您只需在 grok
过滤器之后使用 json
过滤器:
filter {
grok {
match => [ "message", "%{TIMESTAMP_ISO8601:LogDate} %{LOGLEVEL:loglevel} %{WORD:threadName}:%{NUMBER:ThreadID} - %{GREEDYDATA:Line}" ]
}
json {
source => "Line"
}
}
另请注意,我稍微修改了您的 grok 模式以排除 JSON 数据之前的 -
。