我有一个可以在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调试器说它没问题?