多行切分
简介
processor_split_log_regex processor插件实现多行日志(例如Java程序日志)的采集。
版本
配置参数
| 参数 | 类型 | 是否必选 | 说明 | 
|---|---|---|---|
| Type | String | 是 | 插件类型 | 
| SplitKey | String | 是 | 切分依据的字段。 | 
| SplitRegex | String | 是 | 行首正则,只有匹配上的才认为是多行日志块的行首。 默认为.*,表示每行都进行切分。 | 
| PreserveOthers | Boolen | 否 | 是否保留其他非SplitKey字段。 | 
| NoKeyError | Boolean | 否 | 无匹配的原始字段时是否报错。如果未添加该参数,则默认使用false,表示不报错。 | 
样例
采集/home/test-log/路径下的multiline.log文件,并按行首正则进行多行切分。
- 输入
echo -e  '[2022-03-03 18:00:00] xxx1\nyyyyy\nzzzzzz\n[2022-03-03 18:00:01] xxx2\nyyyyy\nzzzzzz' >> /home/test-log/multiline.log- 采集配置
enable: trueinputs:  - Type: input_file    FilePaths:      - /home/test-log/*.logprocessors:  - Type: processor_split_log_regex    SplitRegex: \[\d+-\d+-\d+\s\d+:\d+:\d+]\s.*    SplitKey: content    PreserveOthers: trueflushers:  - Type: flusher_stdout    OnlyStdout: true- 输出
{    "__tag__:__path__": "/home/test-log/multiline.log",    "content": "[2022-03-03 18:00:00] xxx1\nyyyyy\nzzzzzz\n",    "__time__": "1657367638"}{    "__tag__:__path__": "/home/test-log/multiline.log",    "content": "[2022-03-03 18:00:01] xxx2\nyyyyy\nzzzzzz",    "__time__": "1657367638"}