grok模式在调试器中工作,但在logstash中不起作用

时间:2017-04-03 15:41:26

标签: regex logstash elastic-stack logstash-grok

我有一个可以在grok debugger中运行的grok模式,但是我无法在logstash中使用它。特别是,正则表达式失败了。基本上,我想匹配“源”字段中的字符串

“source”字段我想过滤:

/var/log/containers/my-container-190662183-f6wlm_logging_logstash-testing-10897cc1fe13d419f73b8c7929377a1f98366a648e85e71163c4fdaac278e256.log

Grok过滤器:

filter {
  grok {
    match => { "path" => "%{GREEDYDATA}/%{CONTAINERAPP:container}*" }
    patterns_dir => ["/root/patterns"]
  }
}

模式:

CONTAINERAPP .+(?=-\d)

请注意,我不是在这里尝试解析日志行,只是为匹配的模式指定一个字段。其他正则表达式产生“容器”字段,而不是我需要的字符串。

我的猜测是Oniguruma语法不支持这个特殊的正则表达式,但如果是这样的话,为什么grok调试器说它没问题?

0 个答案:

没有答案