云日志服务 LTS-ICAgent结构化解析规则说明:组合解析

时间:2024-12-04 18:26:19

组合解析

适用于多格式嵌套的日志(例如:分隔符+JSON),根据语法自定义配置解析规则。

  1. 选择组合解析。
  2. 从“从已有日志中选择”或“从剪切板中粘贴”选择日志样例,在插件配置下方输入配置内容。
  3. 您可以根据日志内容参考以下插件语法自定义设置:
    • 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

      被解析后的日志中是否保留原始字段。

  4. 参考示例:
    [
            {
                "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": "*"
                    }
                }
            }
        ]
support.huaweicloud.com/usermanual-lts/lts_07_0072.html