在logstash

时间:2015-09-29 16:48:31

标签: logging filter logstash openedge grok

我已经成功过滤了我的日志,但好奇我是否可以提高效率或者更好"方式而不是使用大量的" NOTSPACE"。下面是我的示例日志以及我的grok过滤器。

****更新了更新版本******

[15/09/28@09:40:23.467-0700] P-000685 T-956770080 2 WS 4GLTRACE       Run shr/getpref.p " Traveler ID Format" [Main Block - docprep/frames.w @ 1016]

我的grok过滤器:

%{YEAR}/%{MONTHNUM}/%{MONTHDAY}@%{HOUR}:%{MINUTE}:%{SECOND}-%{INT:TIMEZONE}%{NOTSPACE:BRACKET}%{SPACE}%{NOTSPACE:PID}%{SPACE}%{NOTSPACE:T}%{SPACE}%{INT:NUM}%{SPACE}%{NOTSPACE:WS}%{SPACE}%{NOTSPACE:4GLTRACE}%{SPACE}%{NOTSPACE:STATUS}%{SPACE}%{NOTSPACE:MAINPROGRAM}%{GREEDYDATA:SUBPROGRAM}%{SPACE}%{NOTSPACE:BRACKET}

任何提示都将不胜感激!

1 个答案:

答案 0 :(得分:0)

你可以在你的模式中使用括号,但你必须逃避开头,所以:

\[ .... ] 

可以在您的日期/时间周围使用。

此外,您可以使用%{TIME}而不是三种单独的模式。

你的几个%{NOTSPACE}可能是%{WORD},当你重新访问grok {}时,这几个月可能更有意义。 %{WORD}是\ b \ w + \ b,包括字母数字字符和下划线。

当您知道只有一个文字空间时,您可以使用文字空间:

%{WORD} %{WORD}

这也将提高可读性。

我也尝试将GREEDYDATA保留为“最后的额外内容”。查看%{QS}以获取引用的字符串。