【发布时间】:2021-05-06 21:20:11
【问题描述】:
我第一次尝试学习如何使用 logstash 的 grok 过滤器捕获日志文件中的不同字段,但无法正确解析它。我正在使用https://grokdebug.herokuapp.com/ 来测试我的工作。这是一个示例日志文件:
06/05/2021 15:08:48.591 - [aa.bbbbbbbbbbbbbbb.cccccccccc.ddddddd.EEEeeeEeeeeEeeeeee.ffffFffffFff] - [INFO] - some more text here (0:1): {"data":{"source":"ttyUSB0","timeTotal":"20","timeLeft":"10"},"somethingid":"main","secret":"aqdsaqlaxgaaaaaa444aa32aa1aa3aaa1aaaaaaawghhjuyeqbbjjga7a64aaa","type":"TEST","message":"SOMEMESSAGE","testid":"foo.bar1.1620313718583","timestamp":1620313728590}
我正在使用的 grok 表达式(并且不返回任何结果)是
%{DATESTAMP:timestamp} - (?<test_data>(?<=\[)([a-zA-Z\.\[\]])*) - (?<rest>(?<=\[)(\[(\w*)\]))
当我从 (?<test_data>(?<=\[)([a-zA-Z\.\[\]])*) 和 (?<rest>(?<=\[)(\[(\w*)\])) 中删除后向表达式 (?<=\[) 时,我得到以下结果:
test_data: [aa.bbbbbbbbbbbbbbb.cccccccccc.ddddddd.EEEeeeEeeeeEeeeeee.ffffFffffFff]rest: [INFO]
我希望得到的结果是:
test_data: aa.bbbbbbbbbbbbbbb.cccccccccc.ddddddd.EEEeeeEeeeeEeeeeee.ffffFffffFffrest: INFO
不胜感激帮助/解释我做错了什么
【问题讨论】: