您可以使用 LogCollector 的 split_select 插件,按指定分隔符拆分指定字段的值,根据索引位置选取对应元素拼接为新的字段添加到日志中。
说明
LogCollector V2.2.5 及后续版本支持该插件。如何查看 LogCollector 版本,请参考2 查看软件版本。
名称 | 类型 | 是否必选 | 说明 |
---|---|---|---|
field | String | 是 | 待拆分的值的字段名称。 |
new_field | String | 是 | 存储拼接的值的新字段名称。 |
separator | String | 是 | 拆分 |
index | Object | 是 | 选取拆分后元素的索引范围。 |
keep_source | Boolean | 否 | 是否保留原始的 |
索引 index 参数说明:
名称 | 类型 | 是否必选 | 说明 |
---|---|---|---|
start_index | Integer | 是 | 索引的起始位置。 |
end_index | Integer | 是 | 索引的结束位置。 |
日志内容:
{ "path_info": "/usr/local/bin/app" }
LogCollector 的 split_select 插件处理器配置:
保留原始字段path_info
的值,按分隔符/
拆分,选择索引位置[1,2]的元素,将其保存到selected_path
字段。
{ "processors": [ { "split_select": { "field": "path_info", "new_field": "selected_path", "separator": "/", "index": { "start_index": 1, "end_index": 2 }, "keep_source": true } } ] }
处理结果:
说明
索引位置从指定的分隔符 "/"前开始。
{ "path_info": "/usr/local/bin/app", "selected_path": "usr/local" }
键值对日志如下:
{ "tags": "apple,banana,orange,grape" }
LogCollector 的 split_select 插件处理器配置如下:
不保留原始字段tags
的值,按分隔符,
拆分,选择拆分字段后的索引位置从2
到末尾的元素,将其保存到last_two_fruits
字段。
{ "processors": [ { "split_select": { "field": "tags", "new_field": "last_two_fruits", "separator": ",", "index": { "start_index": 2, "end_index": -1 }, "keep_source": false } } ] }
处理结果:
{ "last_two_fruits": "orange,grape" }
键值对日志如下:
{ "file_name": "report.final.docx", }
LogCollector 的 split_select 插件处理器配置如下:
保留原始字段file_name
的值,按分隔符.
拆分,选择拆分字段后的第一个元素,将其保存到base_name
字段。
{ "processors": [ { "split_select": { "field": "file_name", "new_field": "base_name", "separator": ".", "index": { "start_index": 0, "end_index": 0 }, "keep_source": true } } ] }
处理结果:
{ "file_name": "report.final.docx", "base_name": "report" }