Logstash grok方括号

时间:2015-07-16 15:05:48

标签: logstash logstash-grok

我尝试使用以下日志记录格式获取某种grok模式:

*Sun 07:05:18.372 INFO  [main] [userID] perf - 0ms - select x from y

我遇到的问题是方括号中的字段,我在这里注释为userID。有时这个字段是填充的,有时则不是。如果我使用下面的grok模式:

*%{DAY:Day} %{TIME:Time} %{LOGLEVEL:Loglevel}\s+(\[%{WORD:module}\]\s+)(\[%{HOSTNAME:id}\]\s+)%{GREEDYDATA:logline}*

只要UserID字段中有一些数据,它就会正确解析。如果该字段为空(例如下面),则它不匹配。任何想法都感激不尽!

*Sun 07:05:18.372 INFO  [main] [] perf - 0ms - select x from y

2 个答案:

答案 0 :(得分:5)

您是否尝试使用反斜杠转义括号? 与\[%{WORD:module}\]

中一样

答案 1 :(得分:0)

问题不是关于[]一个简单的零或更多运算符的转义(?)应该这样做:

(?\[%{WORD:module}?]\s+)

(第二次?)