本文介绍 LogCollector 字段提取相关插件的使用方法。
您可以使用 delimiter 插件指定 LogCollector 通过分隔符模式提取日志字段。
说明
LogCollector V1.0.12 及后续版本支持该插件。如何查看 LogCollector 版本,请参考查看软件版本。
名称 | 类型 | 是否必选 | 说明 |
---|---|---|---|
field | String | 是 | 待 LogCollector 插件处理的字段名称。 |
delimiter | String | 是 | 分隔符。根据日志格式输入正确的分隔符,确保每段内容都能被准确提取。 说明
|
quote | String | 否 | 引用符。被引用符包裹的内容不会被分隔符分隔,而是被解析为一个完整的字段。 说明
|
keys | Array of String | 是 | field 指定的字段中,解析出的子字段对应的字段名(key)。每一个 key 的顺序应与解析出的字段一一对应,且数量一致,否则 LogCollector 插件配置执行失败。 说明 key 不能重复,也不能为空。 |
when | Object | 否 | 插件的执行条件,仅当执行条件判断为 true 时,才执行此插件。详细说明请参考插件执行条件。 |
trim_values.mode | String | 否 | trim_values 用于指定是否删除 value 两端的字符串,其中 mode 参数指定删除方式。
|
trim_values.chars | String | 否 | trim_values 用于指定是否删除 value 两端的字符串,其中 chars 参数指定删除的字符范围。默认为双引号(")。 |
allow_empty_values | Boolean | 否 | 如果 field 指定字段的字段值(value)经解析后,某个子字段值为空,是否保留此键值对。
|
allow_overwrite_keys | Boolean | 否 | 如果 keys 中指定的 key 与采集配置中已存在的 key 重复时,是否覆盖已存在 key 对应的字段。
|
原始日志:
"delimiter_key": "\"Click&&Here\"&&36&&bold&&text1&&250&&100&&#center#&&sun1.opacity = (sun1.opacity / 100) * 90;"
LogCollector插件处理配置
{ "processors":[ { "delimiter": { "field": "delimiter_key", "delimiter": "&&", "quote": "\"", "keys": [ "data", "size", "style", "name", "hOffset", "vOffset", "alignment", "onMouseUp" ], "trim_values": { "mode": "all", "chars": "#" }, "allow_overwrite_keys": true, "allow_empty_values": true } } ] }
处理结果
"data": "\"Click&&Here\"" "size": "36" "style": "bold" "name": "text1" "hOffset": "250" "vOffset": "100" "alignment": "center" "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
您可以使用 fullregex 插件指定 LogCollector 通过完整正则模式提取日志字段。
说明
LogCollector V1.0.12 及后续版本支持该插件。如何查看 LogCollector 版本,请参考查看软件版本。
名称 | 类型 | 是否必选 | 解释 |
---|---|---|---|
field | String | 是 | 待 LogCollector 插件处理的字段名称。 |
pattern | String | 是 | 正则表达式,一个捕获组对应一个解析出来的 value。 |
keys | Array of String | 是 | field 指定的字段中,解析出的子字段对应的字段名(key)。每一个 key 的顺序应与解析出的字段一一对应。 说明 key 不能重复,也不能为空。 |
when | Object | 否 | 插件的执行条件,仅当执行条件判断为 true 时,才执行此插件。详细说明请参考插件执行条件。 |
trim_values.mode | String | 否 | trim_values 用于指定是否删除 value 两端的字符串,其中 mode 参数指定删除方式。
|
trim_values.chars | String | 否 | trim_values 用于指定是否删除 value 两端的字符串,其中 chars 参数指定删除的字符范围。默认为双引号(")。 |
allow_empty_values | boolean | 否 | 如果 field 指定字段的字段值(value)经解析后,某个子字段值为空,是否保留此键值对。
|
allow_overwrite_keys | boolean | 否 | 如果 keys 中指定的 key 与采集配置中已存在的 key 重复时,是否覆盖已存在 key 对应的字段。
|
原始日志
"fullregex_key": "Click Here, 36, bold, text1, 250, 100, #center#, sun1.opacity = (sun1.opacity / 100) * 90;",
LogCollector 插件处理配置
{ "processors":[ { "fullregex": { "field": "fullregex_key", "pattern": "([\\s\\w]+),\\s(\\d+),\\s(\\w+),\\s(\\w+),\\s(\\d+),\\s(\\d+),\\s(\\S+\\w+\\S+),\\s(.*).*", "keys": [ "data", "size", "style", "name", "hOffset", "vOffset", "alignment", "onMouseUp" ], "trim_values": { "mode": "all", "chars": "#" }, "allow_overwrite_keys": true, "allow_empty_values": true } } ] }
处理结果
"data": "Click Here" "size": "36" "style": "bold" "name": "text1" "hOffset": "250" "vOffset": "100" "alignment": "center" "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
您可以使用 kv 插件提取日志字段。本文介绍 kv 插件的参数说明和配置示例。
说明
LogCollector V1.0.12 及后续版本支持该插件。如何查看 LogCollector 版本,请参考查看软件版本。
名称 | 类型 | 是否必选 | 解释 |
---|---|---|---|
field | String | 是 | 待 LogCollector 插件处理的字段名称。 |
when | Object | 否 | 插件的执行条件,仅当执行条件判断为 true 时,才执行此插件。详细说明请参考插件执行条件。 |
split_pattern | string | 否 | 键值对与键值对之间的分隔符。未指定该参数时,表示分隔符为空格。 |
quote | String | 否 | 引用符。被引用符包裹的内容不会被分隔符分隔,而是被解析为一个完整的字段。 说明
|
kv_split_pattern | string | 否 | 每个键值对中,key 与 value 之间的分隔符。未指定该参数时,表示分隔符为等号(=)。 |
trim_keys.mode | string | 否 | trim_keys 用于指定是否删除 key 两端的字符串,其中 mode 参数指定删除方式。
|
trim_keys.chars | string | 否 | trim_keys 用于指定是否删除 key 两端的字符串,其中 chars 参数指定删除的字符范围。默认为双引号(")。 |
trim_values.mode | String | 否 | trim_values用于指定是否删除 value 两端的字符串,其中 mode 参数指定删除方式。
|
trim_values.chars | String | 否 | trim_values 用于指定是否删除 value 两端的字符串,其中 chars 参数指定删除的字符范围。 默认为双引号(")。 |
allow_empty_values | boolean | 否 | 如果 field 指定字段的字段值(value)经解析后,某个子字段值为空,是否保留此键值对。
|
allow_overwrite_keys | boolean | 否 | 如果 keys 中指定的 key 与采集配置中已存在的 key 重复时,是否覆盖已存在 key 对应的字段。
|
原始日志
"kv_key": "data: \"Click,Here\", size: 36, style: bold, name: text1, hOffset: 250, vOffset: 100, #alignment#: #center#, onMouseUp: sun1.opacity = (sun1.opacity / 100) * 90;"
LogCollector 插件配置
{ "processors":[ { "kv": { "field": "kv_key", "split_pattern": ",", "kv_split_pattern": ":\\s+", "quote": "\"", "trim_keys": { "mode": "all", "chars": "#" }, "trim_values": { "mode": "all", "chars": "#" }, "allow_overwrite_keys": true, "allow_empty_values": true } } ] }
处理结果
"data": "\"Click,Here\"" "size": "36" "style": "bold" "name": "text1" "hOffset": "250" "vOffset": "100" "alignment": "center" "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"