在 Grok Debugger Kibana 中获取日志字段

Get fields of log in Grok Debugger Kibana

我的 apache 服务器中有一个应用程序的日志。

在 Kibana 中,我在消息字段中有以下信息:

INFO [20 jul 2018 09:25:21] PoolJDBC - [Pool Properties] NumConnections: 50 | NumBusyConnections: 2 | NumIdleConnections: 48

我需要得到这个字段:

Date / Time: 20 jul 2018 09:25:21
NumConnections: 50
NumBusyConnections: 2
NunIdleConnections: 48

如何在 Grok 调试器中获取此信息?

这个模式:

^%{LOGLEVEL} \[%{DATA:date}\].*NumConnections: %{INT:NumConnections} \| NumBusyConnections: %{INT:NumBusyConnections} \| NumIdleConnections: %{INT:NumIdleConnections}

给我这个结果:

date    20 jul 2018 09:25:21
NumConnections  50
NumBusyConnections  2
NumIdleConnections  48

我在开头使用了 ^%{LOGLEVEL} 以固定正则表达式的开头并加快速度。

另请注意,对于连接数部分,您可以使用 kv 过滤器,其中 | 作为字段拆分,: 作为值拆分:它应该给您相同的结果结果与上面的 grok 模式相同,但如果您的日志格式的那部分发生更改,将允许您的 logstash 配置继续工作。