版本信息:
kubesphere:v3.1.0
Fluent Bit: v1.6.9
日志输出格式如下:
2021/07/01 10:03:42 [xxxxxxxx]Traceback (most recent call last):
File "/usr/local/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
日志落盘到/var/log/containers目录下格式如下:
2021-07-01T00:24:25.237387148+08:00 stderr F 2021/07/01 10:03:42 [xxxxxxxx]Traceback (most recent call last):
2021-07-01T00:24:25.237387148+08:00 stderr F File "/usr/local/lib/python3.9/runpy.py", line 197, in _run_module_as_main
2021-07-01T00:24:25.237387148+08:00 stderr F return _run_code(code, main_globals, None,
目前希望能将三行日志合并为一行,便于在es上查看日志。
查看官方文档,和项目 https://github.com/kubesphere/fluentbit-operator,以及fluent-bit官方文档。
第一步:选择Input,修改CRD,首先在tail中排除日志路径,再新建一个input,设置multiline和parserFirstline。
第二步:添加Parser,创建一个regex,用于匹配多行日志的第一行,regex如下
/(?<time>\d{4}\/\d{1,2}\/\d{1,2} \d{1,2}:\d{1,2}:\d{1,2})(?<message>.*)/
在https://rubular.com 中测试正则匹配正常。
在es中查看日志,发现还是单行的情况。推测是正则有问题,与官方文档对比,未发现明显bug。