logstash grok 模式将标签留空



当找不到相应的标签时,我试图将其中一个模式留空。 但不知何故,下一场比赛正在被替换。

我有一个如下的日志

[2017-10-19 09:41:07,204: INFO/Worker-5] <test id = '123:4567', name = 'example_testcase'><TID:0b46030ee6f14055b41b796a4eebfef2><RID:01234567>POST some url to post

我在下面尝试了这个 grok 模式匹配

^[%{TIMESTAMP_ISO8601:timestamp}%{DATA}%{LOGLEVEL:log_level}/%{DATA:work_id}]%{SPACE}(?:<%{DATA:message_headers}>)?(<TID:%{DATA:tid}>)?(<RID:%{BASE10NUM:rid}>)?%{GREEDYDATA:log_message}

只要找到message_headers,这就可以很好地工作,如果没有找到,则消息头将被 TID 替换。前任:

[2017-10-19 09:41:07,204: INFO/Worker-5] <TID:0b46030ee6f14055b41b796a4eebfef2><RID:01234567>POST some url to post

然后 grok 模式,应message_headers留空。 相反,TID坐在message_headers。任何人都可以帮助如何实现此功能。

我在 tid 之后删除了可选表达式"?",它可以工作。 谢谢

最新更新