
# 解析器规则说明
租户采集功能主要用于数据中转业务使用定制化Logstash，解析器是对Logstash中filter部分的无码化封装。目前，支持如下类型的Logstash插件：
表1支持的类型 
| 解析器      | 对应Logstash中的插件 | 说明                                                                                                                          |
|:---|:---|:---|
| kv解析     | kv             | 键值对解析，解析规则请参见[表2]。          |
| mutate解析 | mutate         | mutate解析，解析规则请参见[表3]。     |
| grok解析   | grok           | 正则解析，解析规则请参见[表4]。          |
| date解析   | date           | 时间解析，解析规则请参见[表5]。          |
| drop解析   | drop           | 报文删除。无具体规则，选择该规则，即可删除当前传入的日志记录。                                                                                             |
| prune解析  | prune          | 黑白名单解析，解析规则请参见[表6]。       |
| csv解析    | csv            | csv格式解析，解析规则请参见[表7]。      |
| 函数解析     | ruby           | 云脑自封装ruby解析，解析规则请参见[表8]。 |
| json解析   | json           | json处理转化，解析规则请参见[表9]。     |
| Split解析  | split          | 切割解析，解析规则请参见[表10]。          |
| Clone解析  | clone          | 克隆解析，解析规则请参见[表11]。       |
| uuid解析   | uuid           | uuid解析，解析规则请参见[表12]。     |
   
 表2kv解析 
| 解析规则   | 对应的Logstash配置项         | 类型      | 默认值            | 是否必填 | 描述          |
|:---|:---|:---|:---|:---|:---|
| 源字段    | source                 | string  | source         | 是    | 要解析的字段      |
| 目标字段   | target                 | string  | message        | 否    | 目标字段        |
| 字段切割   | field_split            | string  | ,              | 否    | 字段切割        |
| 值切割    | value_split            | string  | =              | 否    | 字段切割        |
| 去除字段空格 | trim_key               | string  | --             | 否    | 去除key中的空格   |
| 去除值空格  | trim_value             | string  | --             | 否    | 去除value中的空格 |
| 允许重复   | allow_duplicate_values | boolean | true           | 否    | 允许重复        |
| 默认字段   | default_keys           | array   | --             | 否    | 添加key       |
| 排除字段   | exclude_keys           | array   | --             | 否    | 排除key       |
| 包含字段   | include_keys           | array   | --             | 否    | 包含key       |
| 前缀匹配   | prefix                 | string  | --             | 否    | 前缀匹配        |
| 递归解析   | recursive              | boolean | true           | 否    | 递归解析        |
| 字段转化   | transform_key          | string  | --             | 否    | key的转换      |
| 添加字段   | add_field              | hash    | --             | 否    | 添加字段        |
| 添加Tag  | add_tag                | array   | --             | 否    | 添加tag       |
| 移除字段   | remove_field           | array   | --             | 否    | 移除字段        |
| 移除Tag  | remove_tag             | array   | --             | 否    | 移除tag       |
| ID标记   | id                     | string  | --             | 否    | ID标记        |
| 空白策略   | whitespace             | string  | strict/lenient | 否    | 空白策略        |
| 字段修剪   | remove_char_key        | string  | \<\>\[\](),    | 否    | 字段修剪        |
   
 表3mutate解析 
| 解析规则    | 对应的Logstash配置项 | 类型     | 默认值 | 是否必填 | 描述      |
|:---|:---|:---|:---|:---|:---|
| 类型转化    | convert        | hash   | --  | 否    | 类型转化    |
| 数组联合    | join           | hash   | --  | 否    | 数组联合    |
| 转为小写    | lowercase      | array  | --  | 否    | 转化为小写   |
| 默认字段    | coerce         | hash   | --  | 否    | 默认字段    |
| 字段改名    | rename         | hash   | --  | 否    | 字段改名    |
| 字段改值    | replace        | hash   | --  | 否    | 字段改值    |
| 字段分割    | split          | hash   | --  | 否    | 字段分割    |
| 去除空格    | strip          | array  | --  | 否    | 去除空格    |
| 更新字段    | update         | hash   | --  | 否    | 更新字段    |
| 转化大写    | uppercase      | array  | --  | 否    | 转化为大写   |
| 添加字段    | add_field      | hash   | --  | 否    | 添加字段    |
| 添加Tag   | add_tag        | array  | --  | 否    | 添加tag   |
| 移除字段    | remove_field   | array  | --  | 否    | 移除字段    |
| 移除Tag   | remove_tag     | array  | --  | 否    | 移除tag   |
| ID标记    | id             | string | --  | 否    | ID标记    |
| 字段复制    | copy           | hash   | --  | 否    | 字段复制    |
| gsub值替换 | gsub           | array  | --  | 否    | gsub值替换 |
   
 表4grok解析 
| 解析规则  | 对应的Logstash配置项 | 类型      | 默认值     | 是否必填 | 描述     |
|:---|:---|:---|:---|:---|:---|
| 正则匹配  | match          | hash    | --      | 是    | 正则匹配   |
| 第一匹配  | break_on_match | boolean | true    | 否    | 正则匹配跳出 |
| 覆盖字段  | overwrite      | array   | message | 否    | 覆盖字段   |
| 添加字段  | add_field      | hash    | --      | 否    | 添加字段   |
| 添加Tag | add_tag        | array   | --      | 否    | 添加tag  |
| 移除字段  | remove_field   | array   | --      | 否    | 移除字段   |
| 移除Tag | remove_tag     | array   | --      | 否    | 移除tag  |
| ID标记  | id             | string  | --      | 否    | ID标记   |
   
 表5date解析 
| 解析规则   | 对应的Logstash配置项 | 类型     | 默认值       | 是否必填 | 描述       |
|:---|:---|:---|:---|:---|:---|
| 正则匹配   | match          | array  | --        | 是    | 正则       |
| 目标字段   | target         | string | timestamp | 是    | 目标字段     |
| 添加字段   | add_field      | hash   | --        | 否    | 添加字段     |
| 添加Tag  | add_tag        | array  | --        | 否    | 添加tag    |
| 移除字段   | remove_field   | array  | --        | 否    | 移除字段     |
| 移除Tag  | remove_tag     | array  | --        | 否    | 移除tag    |
| ID标记   | id             | string | test      | 否    | ID标记     |
| locale | locale         | string | --        | 否    | locale   |
| 时区     | timezone       | string | +8:00     | 否    | timezone |
   
 表6prune解析 
| 解析规则  | 对应的Logstash配置项   | 类型    | 默认值 | 是否必填 | 描述    |
|:---|:---|:---|:---|:---|:---|
| 黑名单字段 | blacklist_names  | array | --  | 否    | 黑名单字段 |
| 黑名单值  | blacklist_values | array | --  | 否    | 黑名单值  |
| 白名单字段 | whitelist_names  | array | --  | 否    | 白名单字段 |
| 白名单值  | whitelist_values | array | --  | 否    | 白名单值  |
   
 表7csv解析 
| 解析规则 | 对应的Logstash配置项     | 类型      | 默认值     | 是否必填 | 描述   |
|:---|:---|:---|:---|:---|:---|
| 解析字段 | source             | string  | message | 否    | 解析字段 |
| 列字段  | columns            | array   | --      | 否    | 列字段  |
| 切割符  | separator          | string  | ,       | 否    | 切割符  |
| 跳过空列 | skip_empty_columns | boolean | true    | 否    | 跳过空列 |
   
 表8函数解析 
| 解析规则 | 对应的Logstash配置项 | 类型        | 默认值 | 是否必填 | 描述   |
|:---|:---|:---|:---|:---|:---|
| 长度过滤 | filter_length  | number    | 10  | 否    | 长度过滤 |
| 设置时间 | set_time       | ruby_time | 123 | 否    | 设置时间 |
   
 表9json解析 
| 解析规则  | 对应的Logstash配置项       | 类型      | 默认值     | 是否必填 | 描述         |
|:---|:---|:---|:---|:---|:---|
| 解析字段  | source               | string  | message | 是    | 解析源        |
| 跳过异常  | skip_on_invalid_json | boolean | true    | 否    | 跳过异常json解析 |
| 添加字段  | add_field            | hash    | null    | 否    | 添加字段       |
| 添加Tag | add_tag              | array   | null    | 否    | 添加tag      |
| 移除字段  | remove_field         | array   | null    | 否    | 移除字段       |
| 移除Tag | remove_tag           | array   | null    | 否    | 移除tag      |
| 目标字段  | target               | string  | message | 否    | 目标字段       |
   
 表10split解析器解析规则 
| 解析规则 | 对应的Logstash配置项 | 类型     | 默认值     | 是否必填 | 描述      |
|:---|:---|:---|:---|:---|:---|
| 字段   | field          | string | message | 是    | 需要切割的字段 |
   
 表11clone解析器解析规则 
| 解析规则 | 对应的Logstash配置项 | 类型    | 默认值 | 是否必填 | 描述        |
|:---|:---|:---|:---|:---|:---|
| 克隆   | clones         | array | --  | 是    | 需要克隆的字段列表 |
   
 表12uuid解析器解析规则 
| 解析规则 | 对应的Logstash配置项 | 类型      | 默认值  | 是否必填 | 描述   |
|:---|:---|:---|:---|:---|:---|
| 目标字段 | target         | string  | uuid | 是    | 目标字段 |
| 是否覆盖 | overwrite      | boolean | true | 是    | 是否覆盖 |
   
