当找不到相应的标记时,我尝试将其中一个模式保留为空。但不知何故,下一场比赛将被替换。
我有一个logline,如下所示
[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里。任何人都可以帮助如何实现此功能。
发布于 2017-10-21 02:32:25
我删除了可选表达式"?“在tid之后,它起作用了。谢谢
https://stackoverflow.com/questions/46854455
复制相似问题