云日志服务 LTS-ICAgent结构化解析规则说明:组合解析
组合解析
适用于多格式嵌套的日志(例如:分隔符+JSON),根据语法自定义配置解析规则。
- 选择组合解析。
- 从“从已有日志中选择”或“从剪切板中粘贴”选择日志样例,在插件配置下方输入配置内容。
- 您可以根据日志内容参考以下插件语法自定义设置:
- processor_regex
表1 正则提取 参数
类型
说明
source_key
string
原始字段名。
regex
string
正则表达式()中为提取字段。
keys
string
为提取的内容指定字段名。
keep_source
boolean
是否保留原始字段。
keep_source_if_parse
boolean
解析错误是否保留原始字段。
- processor_split_string
表2 分隔符解析 参数
类型
说明
source_key
string
原始字段名。
split_sep
string
分隔符字符串。
keys
string
为提取的内容指定字段名。
keep_source
boolean
被解析后的日志中是否保留原始字段。
split_type
char/special_char/string
分隔类型,支持char-单字符、special_char-不可见字符、string-字符串。
keep_source_if_parse_error
boolean
解析错误是否保留原始字段。
- processor_split_key_value
表3 键值对分割 参数
类型
说明
source_key
string
原始字段名。
delimiter
string
键值对之间的分隔符,默认值为制表符\t。
separator
string
单个键值对中键与值之间的分隔符,默认值为半角冒号(:)。
keep_source
boolean
被解析后的日志中是否保留原始字段。
- processor_add_fields
表4 添加字段 参数
类型
说明
fields
json/object
待添加的字段名和字段值。键值对格式,支持添加多个。
- processor_drop
表5 丢弃字段 参数
类型
说明
drop_keys
string
丢弃的字段列表。
- processor_rename
表6 重命名字段 参数
类型
说明
source_keys
string
待重命名的原始字段。
destkeys
string
重命名后的字段。
- processor_json
表7 json展开提取 参数
类型
说明
source_key
string
原始字段名。
keep_source
string
被解析后的日志中是否保留原始字段。
expand_depth
int
json展开的深度。默认值为0,表示不限制。1表示当前层级,以此类推。
expand_connector
string
json展开时的连接符,默认值为下划线(_)。
prefix
string
json展开时,对字段名附加的前缀。
keep_source_if_parse_error
boolean
解析错误是否保留原始字段。
- processor_filter_regex
表8 过滤器 参数
类型
说明
include
json/object
key为日志字段,value为匹配的正则表达式。
exclude
json/object
key为日志字段,value为匹配的正则表达式。
- processor_gotime
表9 提取时间 参数
类型
说明
source_key
string
原始字段名。
source_format
string
原始时间的格式。
source_location
int
原始时间的时区。参数值为空时,表示logtail所在主机或容器的时区。
dest_key
string
解析后的目标字段。
dest_format
string
解析后的时间格式。
dest_location
int
解析后的时区。参数值为空时,表示本机时区。
set_time
boolean
是否将解析后的时间设置为日志时间。
keep_source
boolean
被解析后的日志中是否保留原始字段。
- processor_regex
- 参考示例:
[ { "type": "processor_regex", "detail": { "source_key": "content", "regex": "*", "keys": [ "key1", "key2" ], "multi_line_regex": "*", "keep_source": true, "keep_source_if_parse_error": true } }, { "type": "processor_split_string", "detail": { "split_sep": ".", "split_type": ".", "split_keys": [ "key1", "key2" ], "source_key": "context", "keep_source": true, "keep_source_if_parse_error": true } }, { "type": "processor_add_fields", "detail": { "fields": [ { "key1": "value1" }, { "key2": "value2" } ] } }, { "type": "processor_drop", "detail": { "drop_keys": [ "key1", "key2" ] } }, { "type": "processor_rename", "detail": { "source_key": [ "skey1", "skey2" ], "dest_keys": [ "dkey1", "dkey2" ] } }, { "type": "processor_json", "detail": { "source_key": "context", "expand_depth": 4, "expand_connector": "_", "prefix": "prefix", "keep_source": true, "keep_source_if_parse_error": true } }, { "type": "processor_gotime", "detail": { "source_key": "skey", "source_format": "ydm", "source_location": 8, "dest_key": "dkey", "dest_format": "ydm", "dest_location": 8, "set_time": true, "keep_source": true, "keep_source_if_parse_error": true } }, { "type": "processor_filter_regex", "detail": { "include": { "ikey1": "*", "ikey2": "*" }, "exclude": { "ekey1": "*", "ekey1": "*" } } } ]