我的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 Debugger中获得此信息?

最佳答案

此模式:

^%{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}来 anchor 定正则表达式的开始并加快速度。

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

08-28 13:34