提问人:Bronco Oostermeyer 提问时间:11/3/2023 更新时间:11/3/2023 访问量:14
如何修复 Fluentbit 解析器不一致(使用 rubular)?
How to fix Fluentbit parser inconsistency (with rubular)?
问:
我正在尝试解析具有以下结构的字符串:
[2023/11/01@15:05:14.958+0100] P-3064 T-33556 I TSRV 3: (7129) Usr 5 set name to bronco.
有了 rubular.com,我得出了以下结论:
^\[(?<time>[^ ]*)\] (?<process>P.[\d]*) (?<thread>T.[\d]*) (?<severity>(I|W|F)) (?<component>[^\.]*): \((?<messagenumber>[\(\d\)]*)\) (?<message>.*)
这会在 rubular 网站上的预期字段中完美地分解字符串。
但是,当我将此表达式放在 FluentBit 解析器的正则表达式字段时,它只是将所有内容放在 JSON 的属性中。log
"}] db-log: [1699002010.566232300, {"log"=>"[2023/11/03@10:00:10.536+0100] P-3064 T-33556 I TSRV 3: (7129) Usr 5 set name to bronco.
我很困惑我在这里做错了什么?顺便说一句,时间不是解析时间,而是 FLuentbit 生成的时间。
更令人费解的是,当我使用
Regex ^\[(?<time>[^ ]*)\]\s(?<process>[^ ]*)\s(?<thread>[.]*)\s
我得到了正确的输出:
[14] db-log: [1699005722.832000000, {"process"=>"P-3064"}]
并且时间解析器正确。但是,当添加任何新字段时,一切都会失败,并且输出 JSON 只有该属性。log
答: 暂无答案
评论