用于mysql日志的Logstash Grok模式

时间:2018-05-29 06:26:13

标签: logstash logstash-grok

这是我正在解析的示例日志模式。我正在使用grok,但这并不像我预期的那样

180528 8:46:26 2 Query  SELECT 1

要解析此日志,我的grok模式是

%{NUMBER:date} %{NOTSPACE:time}%{INT:pid}%{GREEDYDATA:message}

并在grok调试器中为此输出

> {   "date": [
>     [
>       "180528"
>     ]   ],   "time": [
>     [
>       "8:46:2"
>     ]   ],   "pid": [
>     [
>       "6"
>     ]   ],   "message": [
>     [
>       " 2 Query\tSELECT 1"
>     ]   ] }

如果你在输出中观察到,pid正在从时间中提取,而实际的pid是2正在消息中合并。不知道这里出了什么问题。

1 个答案:

答案 0 :(得分:0)

为什么不能将您的时间与TIME模式匹配?将它与等于NOTSPACE的{​​{1}}匹配是没有意义的,并匹配任何非空白字符(等于\S+

您可以使用[^\r\n\t\f\v ]模式作为时间价值,使用TIME作为INT,如下所示,

pid

这会给你,

%{NUMBER:date}\s%{TIME:time}\s%{INT:pid}\s%{GREEDYDATA:message}