
# 配置ICAgent结构化解析
云日志服务LTS支持通过ICAgent结构化解析对日志进行结构化处理。在创建日志接入时才能设置ICAgent结构化解析规则，支持单行-全文日志、多行-全文日志、JSON、分隔符、单行-完全正则、多行-完全正则、组合解析，您可以根据日志内容选择合适的解析规则。日志采集成功后，将结构化解析后的日志发送到指定的日志流上，您就可以对日志进行搜索与分析的操作。
以下场景需要配置ICAgent结构化解析，详细操作请参考：
- [云主机ECS文本日志接入LTS](https://support.huaweicloud.com/usermanual-lts/lts_04_1031.html)
- [裸金属服务BMS文本日志接入LTS](https://support.huaweicloud.com/usermanual-lts/lts_04_0522.html)
- [ServiceStage云主机日志接入LTS](https://support.huaweicloud.com/usermanual-lts/lts_07_0106.html)
- [云容器引擎CCE应用日志接入LTS](https://support.huaweicloud.com/usermanual-lts/lts_04_0511.html)
- [ServiceStage容器应用日志接入LTS](https://support.huaweicloud.com/usermanual-lts/lts_07_0104.html)
- [自建K8s应用日志接入LTS](https://support.huaweicloud.com/usermanual-lts/lts_04_1120.html)
#### 配置结构化解析
ICAgent只支持RE2风格的正则表达式，详细请参考[语法](https://github.com/google/re2/wiki/syntax)。
支持以下日志结构化解析规则。
表1解析规则类型 
| 类型                                                                         | 说明                                                                                                                                              |
|:---|:---|
| [单行-全文日志] | 使用换行符\\n作为一条日志的结束符，并将每一条日志保存在一个默认的键值content中。                                                                                                   |
| [多行-全文日志] | 适用于一条完整的日志数据跨占多行（例如Java程序日志）的原始日志。为了能让日志系统明确区分开每条日志，采用首行正则的方式进行匹配，当某行日志匹配上预先设置的正则表达式，就认为是一条日志的开头，而下一个行首出现作为该条日志的结束标识符。                          |
| [JSON]    | 适用于日志文本中每行内容为一条原始日志，且每条日志可按JSON解析规则提取为多个key-value键值对的日志解析模式。                                                                                    |
| [分隔符]     | 适用于日志文本中每行内容为一条原始日志，且每条日志可根据指定的分隔符提取为多个key-value键值对的日志解析模式。                                                                                     |
| [单行-完全正则]  | 适用于日志文本中每行内容为一条原始日志，且每条日志可按正则表达式提取为多个key-value键值对的日志解析模式。                                                                                       |
| [多行-完全正则]  | 适用于日志文本中一条完整的日志数据跨占多行（例如Java程序日志），且可按正则表达式提取为多个key-value键值对的日志解析模式。                                                                             |
| [组合解析]    | 当您的日志结构太过复杂，涉及多种解析模式，单种解析模式（如完整正则模式、JSON模式等）无法满足日志解析需求时，您可以使用组合解析规则解析日志，在插件配置下方输入插件语法（JSON格式）用来定义日志解析的流水线逻辑。您可添加一个或多个插件配置，ICAgent会根据处理配置顺序逐一执行。 |
   
 #### 单行-全文日志
单行-全文日志解析规则是使用换行符\\n作为一条日志的结束符，并将每一条日志保存在一个默认的键值content中。日志数据本身不进行日志结构化处理，也不会提取日志字段，日志属性的时间项由日志采集的时间决定。
**设置操作：**
1. 选择单行-全文日志。
2. 日志过滤默认关闭。如果需要从海量的日志数据中筛选出符合特定条件的记录，开启日志过滤开关，参考如下操作添加白名单规则或黑名单规则，白名单规则或黑名单规则添加上限为20个。
   图1日志过滤规则   
   ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002298880648.png "点击放大")
   - 设置白名单规则。添加的过滤规则为命中规则，即匹配上正则表达式的日志才会被采集上报。输入的Key值长度不能超过256个字符。
     1. 在白名单规则下方，单击"添加"，填写Key值和过滤规则（正则表达式）。新增多条白名单过滤规则时，支持选择And或Or的关系，即全部满足或满足任意白名单就可以被采集。单行/多行全文模式下，默认使用content作为全文的键{key}名。 例如只采集日志中包含hello的日志行，可配置采集规则为**.\*hello.\***
        
     
     2. 单击操作列的"校验"，在弹出的页面中校验规则的正确性，输入字段值，单击"校验"，提示校验成功。
        图2校验   
        ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002282816194.png "点击放大") 
     
     3. 校验成功后，单击"确定"或"关闭"退出校验页面。
      
   
   
   
   - 设置黑名单规则。添加的过滤规则为丢弃规则，即匹配上正则表达式的日志会被丢弃。输入的Key值长度不能超过256个字符。
     1. 在黑名单规则下方，单击"添加"，填写Key值和过滤规则（正则表达式）。新增多条黑名单过滤规则时，支持选择And或Or的关系，即全部满足或满足任意黑名单就可以被排除。单行/多行全文模式下，默认使用content作为全文的键{key}名。 例如不采集日志中包含hello的日志行，可配置采集规则为**.\*hello.\***
        
     
     2. 单击操作列的"校验"，在弹出的页面中校验规则的正确性，输入字段值，单击"校验"，提示校验成功。
     
     3. 校验成功后，单击"确定"或"关闭"退出校验页面。
      
    
3. 自定义标签前缀默认开启。开启结构化解析后，自定义元数据默认添加__labels__前缀，支持开关控制台该前缀的显示或隐藏。此功能依赖ICAgent版本，详见[ICAgent版本说明](https://support.huaweicloud.com/usermanual-lts/lts_02_0014.html#lts_02_0014__section7761151916252)。
**样例展示：**
在结构化解析配置中选择"单行-全文日志"模式，日志上报到LTS后，原始日志样例如下所示，经结构化处理后的日志数据上报到LTS的展示效果如[图3]所示。
- 原始日志样例：
  ```
  [2025-06-05_09:53:34] [WARNING] [MODULE_Mf0s2] - iZ4:f=t.+CU)dSPGRU<1r^IGt!,8SD
  ibP!wd.ey5S19V:yZRVD_3-GCX%c(h
  [2025-06-05_09:53:34] [WARNING] [MODULE_yPRzp] - ,+iaHEYx+(H-w7g.19s13XSK%ksNe4
  [2025-06-05_09:53:34] [INFO] [MODULE_TfNKq] - ):21:1^V)G%)X8A8zPE!iC$_m<z3H^
  KDhA7(W_iyeXk1)g3tm%c,m%!2!OeH
  !WwY4dIMBAz-U.ph@r!RxPvFNYKCyh
  [2025-06-05_09:53:34] [ERROR] [MODULE_naV0b] - fR5PxhHm(A5s5co-c)!PD%mWer37ww
  zZ3@(^vC#CELo;(BR=f_AhzJADlpR@
  V;ZLg3c)N,q-K5t,*ke7jPnY)s#5i2
  [2025-06-05_09:53:34] [INFO] [MODULE_5fMUb] - 6i%B0qSI.yDP3.o)C&U+dE%-Sabony
  G.7Pfr7xcx/NrX3SV%*ZVWgW+CGD;(
  -lJHB4ckm(=OQ,rx8zeYFGNtcK/Z)x
  ```
  
- 结果展示：
  图3单行日志上报结果   
  ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002363657829.png "点击放大") 
 
 #### 多行-全文日志
多行-全文日志是指一条完整的日志数据跨占多行（例如Java程序日志）。在这种情况下，以换行符\\n为日志的结束标识符就显得有些不合理，为了能让日志系统明确区分开每条日志，采用首行正则的方式进行匹配，当某行日志匹配上预先设置的正则表达式，就认为是一条日志的开头，而下一个行首出现作为该条日志的结束标识符。
使用多行-全文日志解析规则采集日志也会设置一个默认的键值content用于存放多行日志，且日志数据本身不进行日志结构化处理，也不会提取日志字段，日志属性的时间项由日志采集的时间决定。
**设置操作：**
1. 选择多行-全文日志。
2. 从"从已有日志中选择"或"从剪切板中粘贴"选择日志样例。
   - 从已有日志中选择：单击"从已有日志中选择"，在弹出框中通过选择不同时间段筛选日志，根据业务需求选择待操作的日志，单击"确定"。
   
   - 从剪切板中粘贴：单击"从剪切板中粘贴"，可将您剪切的日志内容复制到示例日志框中。
   
   
   ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000001950460120.png "点击放大")
   
3. 在"首行正则表达式"下方支持自动生成或手动输入正则表达式。首行正则表达式需要匹配首行完整内容，注意并非首行的开头内容。
   图4首行正则表达式   
   ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002027712253.png "点击放大") 
4. 日志过滤默认关闭。如果需要从海量的日志数据中筛选出符合特定条件的记录，开启日志过滤开关，参考如下操作添加白名单规则或黑名单规则，白名单规则或黑名单规则添加上限为20个。
   图5日志过滤规则   
   ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002298880648.png "点击放大")
   - 设置白名单规则。添加的过滤规则为命中规则，即匹配上正则表达式的日志才会被采集上报。输入的Key值长度不能超过256个字符。
     1. 在白名单规则下方，单击"添加"，填写Key值和过滤规则（正则表达式）。新增多条白名单过滤规则时，支持选择And或Or的关系，即全部满足或满足任意白名单就可以被采集。单行/多行全文模式下，默认使用content作为全文的键{key}名。 例如只采集日志中包含hello的日志行，可配置采集规则为**.\*hello.\***
        
     
     2. 单击操作列的"校验"，在弹出的页面中校验规则的正确性，输入字段值，单击"校验"，提示校验成功。
        图6校验   
        ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002282816194.png "点击放大") 
     
     3. 校验成功后，单击"确定"或"关闭"退出校验页面。
      
   
   
   
   - 设置黑名单规则。添加的过滤规则为丢弃规则，即匹配上正则表达式的日志会被丢弃。输入的Key值长度不能超过256个字符。
     1. 在黑名单规则下方，单击"添加"，填写Key值和过滤规则（正则表达式）。新增多条黑名单过滤规则时，支持选择And或Or的关系，即全部满足或满足任意黑名单就可以被排除。单行/多行全文模式下，默认使用content作为全文的键{key}名。 例如不采集日志中包含hello的日志行，可配置采集规则为**.\*hello.\***
        
     
     2. 单击操作列的"校验"，在弹出的页面中校验规则的正确性，输入字段值，单击"校验"，提示校验成功。
     
     3. 校验成功后，单击"确定"或"关闭"退出校验页面。
      
    
5. 自定义标签前缀默认开启。开启结构化解析后，自定义元数据默认添加__labels__前缀，支持开关控制台该前缀的显示或隐藏。此功能依赖ICAgent版本，详见[ICAgent版本说明](https://support.huaweicloud.com/usermanual-lts/lts_02_0014.html#lts_02_0014__section7761151916252)。
**样例展示：**
在结构化解析配置中选择"多行-全文日志"模式，日志上报到LTS后，原始日志样例如下所示，经结构化处理后的日志数据上报到LTS的展示效果如[图7]所示。
- 原始日志样例：
  ```
  [2025-06-05_09:59:45] [INFO] [MODULE_sNRWl] - eTp=hE17db6x_x-j4#ORu*O+7L#VWJ
  m2k(:E#,O_y@cO:M5gWvaDKE__+oRk
  vYvVY%&Y6Pl#MOl6@pN*Hm3hn^z#0M
  [2025-06-05_09:59:45] [INFO] [MODULE_lCg34] - ZiP/4Rzw*)jqf9&huZ(ZgT<g%BbJDG
  qPg.<(+I&JlVxmxcrMp<v:6u6y$@:_
  (;4pz5eJ$PV_AQw5vMu%I0t6n9w!@0
  [2025-06-05_09:59:45] [WARNING] [MODULE_463OX] - rkuHw.uepcTV_9OL!x09:DW#ol2xb1
  [2025-06-05_09:59:45] [WARNING] [MODULE_nmcyS] - *;cX$zspP)b0n:FcSf4#^zX.UMH8$/
  o0T10%bQIEn)tSo==FATOt&D)5epr_
  [2025-06-05_09:59:45] [INFO] [MODULE_iv5YJ] - 7k4rca7(N:q3kzulcASLI%k;:hKJFr
  ```
  首行正则表达式：
  ```
  ^\[\d{4}-\d{2}-\d{2}_\d{2}:\d{2}:\d{2}\]
  ```
  
- 结果展示
  图7多行日志上报结果   
  ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002363884849.png "点击放大") 
 
 #### JSON
JSON解析规则适用于日志文本中每行内容为一条原始日志，且每条日志可按JSON解析规则提取为多个key-value键值对的日志解析模式。若不需要提取key-value，可以参考[多行-全文日志]配置。
**设置操作：**
1. 选择JSON格式。
2. 日志过滤默认关闭。如果需要从海量的日志数据中筛选出符合特定条件的记录，开启日志过滤开关，参考如下操作添加白名单规则或黑名单规则，白名单规则或黑名单规则添加上限为20个。
   图8日志过滤规则   
   ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002298893662.png "点击放大")
   - 设置白名单规则。添加的过滤规则为命中规则，即匹配上正则表达式的日志才会被采集上报。输入的Key值长度不能超过256个字符。
     1. 在白名单规则下方，单击"添加"，填写Key值和过滤规则（正则表达式），Key值为日志字段名称。 新增多条白名单过滤规则时，支持选择And或Or的关系，即全部满足或满足任意白名单就可以被采集。
        例如只采集日志中包含hello的日志行，字段值填写hello，过滤规则为**.\*hello.\***
        
     
     2. 单击操作列的"校验"，在弹出的页面中校验规则的正确性，输入字段值，单击"校验"，提示校验成功。
        图9校验   
        ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002317305181.png "点击放大") 
     
     3. 校验成功后，单击"确定"或"关闭"退出校验页面。
      
   
   
   
   - 设置黑名单规则。添加的过滤规则为丢弃规则，即匹配上正则表达式的日志会被丢弃。输入的Key值长度不能超过256个字符。
     1. 在黑名单规则下方，单击"添加"，填写Key值和过滤规则（正则表达式），Key值为日志字段名称。 新增多条黑名单过滤规则时，支持选择And或Or的关系，即全部满足或满足任意黑名单就可以被排除。
        例如不采集日志中包含hello的日志行，字段值填写hello，过滤规则为**.\*hello.\***
        
     
     2. 单击操作列的"校验"在弹出的页面中校验规则的正确性，输入字段值，单击"校验"，提示校验成功。
     
     3. 校验成功后，单击"确定"或"关闭"退出校验页面。
      
    
3. 上传原始日志。 打开上传原始日志开关后，原始日志将作为content字段的值上传到日志服务。
   
4. 上传解析失败日志。 打开上传解析失败日志开关后，原始日志将作为_content_parse_fail_字段的值上传到日志服务。
   
5. 关于开启或关闭"上传原始日志"和"上传解析失败日志"时，日志上报参考如下。
   图10结构化解析   
   ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002260245052.png "点击放大")
   表2日志上报说明 
   | 参数                                                                                                                                                                                           | 日志上报说明                                                                                                                                                                                                                                     |
   |:---|:---|
   | - 开启"上传原始日志"  - 开启"上传解析失败日志"   | - 解析成功：上报解析后日志和原始日志content字段。  - 解析失败：上报原始日志content字段和_content_parse_fail_字段。   |
   | - 开启"上传原始日志"  - 关闭"上传解析失败日志"        | - 解析成功：上报解析后日志和原始日志content字段。  - 解析失败：上报原始日志content字段。                  |
   | - 关闭"上传原始日志"  - 开启"上传解析失败日志"       | - 解析成功：上报解析后日志。  - 解析失败：上报_content_parse_fail_字段。                                    |
   | - 关闭"上传原始日志"  - 关闭"上传解析失败日志"           | - 解析成功：上报解析后日志。  - 解析失败：仅上报内置字段和label字段。                                              |
      
   
6. [自定义日志时间]。
   开启后可指定某一字段作为日志时间，或关闭此项使用日志被采集时间作为日志时间。
   
7. JSON解析层数。增加JSON解析层数配置，取值范围为1\~10，只能整数，默认值为1。 将JSON格式日志的字段展开，例如原始日志为{"key1":{"key2":"value"}}，解析1层日志为：{"key1":{"key2":"value"}}，解析2层日志为：{"key1.key2":"value"}。
   
8. JSON字符串解析：默认关闭。开启后支持解析转义后的JSON字符串为JSON对象，例如{"key1":"{\\"key2\\":\\"value\\"}"}解析为key1.key2:value。
9. 自定义标签前缀默认开启。开启结构化解析后，自定义元数据默认添加__labels__前缀，支持开关控制台该前缀的显示或隐藏。此功能依赖ICAgent版本，详见[ICAgent版本说明](https://support.huaweicloud.com/usermanual-lts/lts_02_0014.html#lts_02_0014__section7761151916252)。
**样例展示：**
在结构化解析配置中选择"JSON"模式，日志上报到LTS后，原始日志样例如下所示，经结构化处理后的日志数据上报到LTS的展示效果如[图11]所示。
- 原始日志样例：
  ```
  {"timestamp":"2025-06-05_10:32:08","level":"INFO","module":"MODULE_eJvyE","msg":"P^I^CBHYyIEo98@#R1gp5.io5jU:i!"}
  {"timestamp":"2025-06-05_10:32:08","level":"WARNING","module":"MODULE_ADPxy","msg":"/DfP7p=^w.rx<$,ep+oLrg@QVe<p0%"}
  {"timestamp":"2025-06-05_10:32:08","level":"WARNING","module":"MODULE_pEzEl","msg":"rPe%_T(vo_=b#PUrBXa&Sx9KYR2Y%y"}
  {"timestamp":"2025-06-05_10:32:08","level":"DEBUG","module":"MODULE_zk5l0","msg":"(c)PC<H.,wdlSG%=//hDZ=o5u/(a47"}
  {"timestamp":"2025-06-05_10:32:08","level":"INFO","module":"MODULE_stz3u","msg":"L@J3+_icq%2w_Vc,):hGbQ/b0i1oy+"}
  ```
  
- 结果展示：
  图11JSON日志上报结果   
  ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002363804765.png "点击放大") 
 
 #### 分隔符
分隔符解析规则适用于日志文本中每行内容为一条原始日志，且每条日志可根据指定的分隔符提取为多个key-value键值对的日志解析模式。若不需要提取key-value，可以参考[单行-全文日志]配置。
**设置操作：**
1. 选择分隔符。
2. 根据原始日志内容选择分隔符，或自定义其他需要的特殊字符作为分隔符。
3. 从"从已有日志中选择"或"从剪切板中粘贴"选择日志样例，单击"验证"，在提取结果下方查看结果。
   - 从已有日志中选择：单击"从已有日志中选择"，在弹出框中根据业务需求选择待操作的日志，单击"确定"。通过选择不同时间段筛选日志。
   
   - 从剪切板中粘贴：单击"从剪切板中粘贴"，可直接自动将您剪切的日志内容复制到示例日志框中。
   
   
   图12分隔符   
   ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000001991157850.png "点击放大") 
4. 日志过滤默认关闭。如果需要从海量的日志数据中筛选出符合特定条件的记录，开启日志过滤开关，参考如下操作添加白名单规则或黑名单规则，白名单规则或黑名单规则添加上限为20个。
   图13日志过滤规则   
   ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002298893662.png "点击放大")
   - 设置白名单规则。添加的过滤规则为命中规则，即匹配上正则表达式的日志才会被采集上报。输入的Key值长度不能超过256个字符。
     1. 在白名单规则下方，单击"添加"，填写Key值和过滤规则（正则表达式），Key值为日志字段名称。 新增多条白名单过滤规则时，支持选择And或Or的关系，即全部满足或满足任意白名单就可以被采集。
        例如只采集日志中包含hello的日志行，字段值填写hello，过滤规则为**.\*hello.\***
        
     
     2. 单击操作列的"校验"，在弹出的页面中校验规则的正确性，输入字段值，单击"校验"，提示校验成功。
        图14校验   
        ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002317305181.png "点击放大") 
     
     3. 校验成功后，单击"确定"或"关闭"退出校验页面。
      
   
   
   
   - 设置黑名单规则。添加的过滤规则为丢弃规则，即匹配上正则表达式的日志会被丢弃。输入的Key值长度不能超过256个字符。
     1. 在黑名单规则下方，单击"添加"，填写Key值和过滤规则（正则表达式），Key值为日志字段名称。 新增多条黑名单过滤规则时，支持选择And或Or的关系，即全部满足或满足任意黑名单就可以被排除。
        例如不采集日志中包含hello的日志行，字段值填写hello，过滤规则为**.\*hello.\***
        
     
     2. 单击操作列的"校验"在弹出的页面中校验规则的正确性，输入字段值，单击"校验"，提示校验成功。
     
     3. 校验成功后，单击"确定"或"关闭"退出校验页面。
      
    
5. 上传原始日志。 打开上传原始日志开关后，原始日志将作为content字段的值上传到日志服务。
   
6. 上传解析失败日志。 打开上传解析失败日志开关后，原始日志将作为_content_parse_fail_字段的值上传到日志服务。
   
7. 关于开启或关闭"上传原始日志"和"上传解析失败日志"时，日志上报参考如下。
   图15结构化解析   
   ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002260245052.png "点击放大")
   表3日志上报说明 
   | 参数                                                                                                                                                                                                                                                       | 日志上报说明                                                                                                                                                                                                                                                                                                 |
   |:---|:---|
   | - 开启"上传原始日志"  - 开启"上传解析失败日志"   | - 解析成功：上报解析后日志和原始日志content字段。  - 解析失败：上报原始日志content字段和_content_parse_fail_字段。   |
   | - 开启"上传原始日志"  - 关闭"上传解析失败日志"        | - 解析成功：上报解析后日志和原始日志content字段。  - 解析失败：上报原始日志content字段。                  |
   | - 关闭"上传原始日志"  - 开启"上传解析失败日志"       | - 解析成功：上报解析后日志。  - 解析失败：上报_content_parse_fail_字段。                                    |
   | - 关闭"上传原始日志"  - 关闭"上传解析失败日志"           | - 解析成功：上报解析后日志。  - 解析失败：仅上报内置字段和label字段。                                              |
      
   
8. [自定义日志时间]。
   开启后可指定某一字段作为日志时间，或关闭此项使用日志被采集时间作为日志时间。
   
9. 自定义标签前缀默认开启。开启结构化解析后，自定义元数据默认添加__labels__前缀，支持开关控制台该前缀的显示或隐藏。此功能依赖ICAgent版本，详见[ICAgent版本说明](https://support.huaweicloud.com/usermanual-lts/lts_02_0014.html#lts_02_0014__section7761151916252)。
**样例展示：**
在结构化解析配置中选择"分隔符"模式，日志上报到LTS后，原始日志样例如下所示，经结构化处理后的日志数据上报到LTS的展示效果如[图16]所示。
- 原始日志样例：
  ```
  [2025-06-05_10:04:26] [WARNING] [MODULE_vlQR1] - _4xi&#$Um2Ua*M.VHv1_L#CQzas-nC
  [2025-06-05_10:04:26] [WARNING] [MODULE_RzMii] - Bdp3_*Erlyun:pluL-BdU#y=MgN++7
  [2025-06-05_10:04:26] [DEBUG] [MODULE_q9161] - oxUZ#q#xn!oc5WS-<98IB*aH,:FLoj
  [2025-06-05_10:04:26] [DEBUG] [MODULE_Ze3vY] - L-g;ZQ%*n/ORiFSYM:#T)z;XxKjpVv
  [2025-06-05_10:04:26] [DEBUG] [MODULE_5ZCwd] - e)!6:CZk/MufokE)A5Kr<rBf9o=9x;
  ```
  在日志样例下方输入日志，选择空格分隔符，单击"验证"，提取key-value键值对，根据需要修改key值。
  ```
  [2025-06-05_09:53:34] [WARNING] [MODULE_yPRzp] - ,+iaHEYx+(H-w7g.19s13XSK%ksNe4
  ```
  ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002329816308.png "点击放大")
  
- 结果展示：
  图16分隔符日志上报结果   
  ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002329976148.png "点击放大") 
 
 #### 单行-完全正则
单行-完全正则解析规则适用于日志文本中每行内容为一条原始日志，且每条日志可按正则表达式提取为多个key-value键值对的日志解析模式。若不需要提取key-value，可以参考[多行-全文日志]配置。
**设置操作：**
1. 选择单行-完全正则。
2. 从"从已有日志中选择"或"从剪切板中粘贴"选择日志样例。
   - 从已有日志中选择：单击"从已有日志中选择"，在弹出框中根据业务需求选择待操作的日志，单击"确定"。通过选择不同时间段筛选日志。
   
   - 从剪切板中粘贴：单击"从剪切板中粘贴"，可直接自动将您剪切的日志内容复制到示例日志框中。
    
3. 在"提取正则表达式"下方输入要提取日志的正则表达式，单击"验证"，在提取结果下方查看结果。 或者单击"正则表达式自动生成"，在新打开的页面根据日志样例提取字段，输入key值，单击"确定"即可自动生成正则表达式，设置完成后，单击"确定"。
   图17提取正则表达式   
   ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002027730509.png "点击放大") 
4. 日志过滤默认关闭。如果需要从海量的日志数据中筛选出符合特定条件的记录，开启日志过滤开关，参考如下操作添加白名单规则或黑名单规则，白名单规则或黑名单规则添加上限为20个。
   图18日志过滤规则   
   ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002298893662.png "点击放大")
   - 设置白名单规则。添加的过滤规则为命中规则，即匹配上正则表达式的日志才会被采集上报。输入的Key值长度不能超过256个字符。
     1. 在白名单规则下方，单击"添加"，填写Key值和过滤规则（正则表达式），Key值为日志字段名称。 新增多条白名单过滤规则时，支持选择And或Or的关系，即全部满足或满足任意白名单就可以被采集。
        例如只采集日志中包含hello的日志行，字段值填写hello，过滤规则为**.\*hello.\***
        
     
     2. 单击操作列的"校验"，在弹出的页面中校验规则的正确性，输入字段值，单击"校验"，提示校验成功。
        图19校验   
        ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002317305181.png "点击放大") 
     
     3. 校验成功后，单击"确定"或"关闭"退出校验页面。
      
   
   
   
   - 设置黑名单规则。添加的过滤规则为丢弃规则，即匹配上正则表达式的日志会被丢弃。输入的Key值长度不能超过256个字符。
     1. 在黑名单规则下方，单击"添加"，填写Key值和过滤规则（正则表达式），Key值为日志字段名称。 新增多条黑名单过滤规则时，支持选择And或Or的关系，即全部满足或满足任意黑名单就可以被排除。
        例如不采集日志中包含hello的日志行，字段值填写hello，过滤规则为**.\*hello.\***
        
     
     2. 单击操作列的"校验"在弹出的页面中校验规则的正确性，输入字段值，单击"校验"，提示校验成功。
     
     3. 校验成功后，单击"确定"或"关闭"退出校验页面。
      
    
5. 上传原始日志。 打开上传原始日志开关后，原始日志将作为content字段的值上传到日志服务。
   
6. 上传解析失败日志。 打开上传解析失败日志开关后，原始日志将作为_content_parse_fail_字段的值上传到日志服务。
   
7. 关于开启或关闭"上传原始日志"和"上传解析失败日志"时，日志上报参考如下。
   图20结构化解析   
   ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002260245052.png "点击放大")
   表4日志上报说明 
   | 参数                                                                                                                                                                                                                                                                 | 日志上报说明                                                                                                                                                                                                                                                                                                           |
   |:---|:---|
   | - 开启"上传原始日志"  - 开启"上传解析失败日志"   | - 解析成功：上报解析后日志和原始日志content字段。  - 解析失败：上报原始日志content字段和_content_parse_fail_字段。   |
   | - 开启"上传原始日志"  - 关闭"上传解析失败日志"        | - 解析成功：上报解析后日志和原始日志content字段。  - 解析失败：上报原始日志content字段。                  |
   | - 关闭"上传原始日志"  - 开启"上传解析失败日志"       | - 解析成功：上报解析后日志。  - 解析失败：上报_content_parse_fail_字段。                                    |
   | - 关闭"上传原始日志"  - 关闭"上传解析失败日志"           | - 解析成功：上报解析后日志。  - 解析失败：仅上报内置字段和label字段。                                              |
      
   
8. [自定义日志时间]。
   开启后可指定某一字段作为日志时间，或关闭此项使用日志被采集时间作为日志时间。
   
9. 自定义标签前缀默认开启。开启结构化解析后，自定义元数据默认添加__labels__前缀，支持开关控制台该前缀的显示或隐藏。此功能依赖ICAgent版本，详见[ICAgent版本说明](https://support.huaweicloud.com/usermanual-lts/lts_02_0014.html#lts_02_0014__section7761151916252)。
**样例展示：**
在结构化解析配置中选择"单行-完全正则"模式，日志上报到LTS后，原始日志样例如下所示，经结构化处理后的日志数据上报到LTS的展示效果如[图21]所示。
- 原始日志样例：
  ```
  [2025-06-05_10:10:45] [DEBUG] [MODULE_qqQeu] - +XPLj#eMaBGoL.kF*e@E7OcWzihN=F
  [2025-06-05_10:10:45] [WARNING] [MODULE_6Fjpv] - 60QkLDc-53A^<!e_FJ#FW9)x0C00%7
  [2025-06-05_10:10:45] [ERROR] [MODULE_mK3Ib] - J$7DqL.dR&7^CG(qPSjY2vprb+2nfm
  [2025-06-05_10:10:45] [INFO] [MODULE_73x94] - rs3yPQ!(lJ9^$zZQW8U1-3YQRu,3;@
  [2025-06-05_10:10:45] [WARNING] [MODULE_JczuV] - Wsc9Q@L%7itQF3SUallKEd3vQS1&E)
  ```
  输入提取正则表达式，单击"验证"，提取key-value键值对，根据日志内容修改key值方便识别。
  ```
  ^\[(\S*)\]\s\[(\S*)\]\s\[(\S*)\]\s-\s(.*)
  ```
  ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002363974557.png "点击放大")
  
- 结果展示：
  图21单行-完全正则日志上报结果   
  ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002363894645.png "点击放大") 
 
 #### 多行-完全正则
多行-完全正则解析规则适用于日志文本中一条完整的日志数据跨占多行（例如Java程序日志），且可按正则表达式提取为多个key-value键值对的日志解析模式。若不需要提取key-value，可以参考[多行-全文日志]配置。配置多行-完全正则模式时，您需要先输入日志样例，使用首行正则表达式匹配首行完整内容，自定义提取正则表达式。
**设置操作：**
1. 选择多行-完全正则。
2. 从"从已有日志中选择"或"从剪切板中粘贴"选择日志样例。
   - 从已有日志中选择：单击"从已有日志中选择"，在弹出框中根据业务需求选择待操作的日志，单击"确定"。通过选择不同时间段筛选日志。
   
   - 从剪切板中粘贴：单击"从剪切板中粘贴"，可直接自动将您剪切的日志内容复制到示例日志框中。
    
3. 在"首行正则表达式"下方支持自动生成或手动输入正则表达式。首行正则表达式需要匹配首行完整内容，注意并非首行的开头内容。 "首行正则表达式"用于识别多行日志的行首，例如以下日志示例：
   ```
   2024-10-11 10:59:07.000 a.log:1 level:warn
     no.1 log
   2024-10-11 10:59:17.000 a.log:2 level:warn
     no.2 log
   ```
   完整的多行是：
   ```
   2024-10-11 10:59:07.000 a.log:1 level:warn
   no.1 log
   ```
   首行则是：
   ```
   2024-10-11 10:59:07.000 a.log:1 level:warn
   ```
   首行正则示例：\^\\d{4}-\\d{2}-\\d{2}\\d{3}:\\d{2}:\\d{2}\\.\\d{3}$，由于每个首行的日期是唯一的，因此可以根据日期来生成首行正则。
   
4. 在"提取正则表达式"下方输入要提取日志的正则表达式，单击"验证"，在提取结果下方查看结果。 或者单击"正则表达式自动生成"，在新打开的页面根据日志样例提取字段，输入key值，单击"确定"即可自动生成正则表达式，设置完成后，单击"确定"。
   提取结果显示的是"提取正则表达式"执行的结果，而不是"首行正则表达式"执行的结果，"首行正则表达式"执行的结果需要到目标日志流查看。
   如果"首行正则表达式"手动输入的正则表达式有误，则会导致无法查看上报的日志流数据。
   图22设置正则表达式   
   ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002027861441.png "点击放大") 
5. 日志过滤默认关闭。如果需要从海量的日志数据中筛选出符合特定条件的记录，开启日志过滤开关，参考如下操作添加白名单规则或黑名单规则，白名单规则或黑名单规则添加上限为20个。
   图23日志过滤规则   
   ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002298893662.png "点击放大")
   - 设置白名单规则。添加的过滤规则为命中规则，即匹配上正则表达式的日志才会被采集上报。输入的Key值长度不能超过256个字符。
     1. 在白名单规则下方，单击"添加"，填写Key值和过滤规则（正则表达式），Key值为日志字段名称。 新增多条白名单过滤规则时，支持选择And或Or的关系，即全部满足或满足任意白名单就可以被采集。
        例如只采集日志中包含hello的日志行，字段值填写hello，过滤规则为**.\*hello.\***
        
     
     2. 单击操作列的"校验"，在弹出的页面中校验规则的正确性，输入字段值，单击"校验"，提示校验成功。
        图24校验   
        ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002317305181.png "点击放大") 
     
     3. 校验成功后，单击"确定"或"关闭"退出校验页面。
      
   
   
   
   - 设置黑名单规则。添加的过滤规则为丢弃规则，即匹配上正则表达式的日志会被丢弃。输入的Key值长度不能超过256个字符。
     1. 在黑名单规则下方，单击"添加"，填写Key值和过滤规则（正则表达式），Key值为日志字段名称。 新增多条黑名单过滤规则时，支持选择And或Or的关系，即全部满足或满足任意黑名单就可以被排除。
        例如不采集日志中包含hello的日志行，字段值填写hello，过滤规则为**.\*hello.\***
        
     
     2. 单击操作列的"校验"在弹出的页面中校验规则的正确性，输入字段值，单击"校验"，提示校验成功。
     
     3. 校验成功后，单击"确定"或"关闭"退出校验页面。
      
    
6. 上传原始日志。 打开上传原始日志开关后，原始日志将作为content字段的值上传到日志服务。
   
7. 上传解析失败日志。 打开上传解析失败日志开关后，原始日志将作为_content_parse_fail_字段的值上传到日志服务。
   
8. 关于开启或关闭"上传原始日志"和"上传解析失败日志"时，日志上报参考如下。
   图25结构化解析   
   ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002260245052.png "点击放大")
   表5日志上报说明 
   | 参数                                                                                                                                                                                                                                                                 | 日志上报说明                                                                                                                                                                                                                                                                                                           |
   |:---|:---|
   | - 开启"上传原始日志"  - 开启"上传解析失败日志"   | - 解析成功：上报解析后日志和原始日志content字段。  - 解析失败：上报原始日志content字段和_content_parse_fail_字段。   |
   | - 开启"上传原始日志"  - 关闭"上传解析失败日志"        | - 解析成功：上报解析后日志和原始日志content字段。  - 解析失败：上报原始日志content字段。                  |
   | - 关闭"上传原始日志"  - 开启"上传解析失败日志"       | - 解析成功：上报解析后日志。  - 解析失败：上报_content_parse_fail_字段。                                    |
   | - 关闭"上传原始日志"  - 关闭"上传解析失败日志"           | - 解析成功：上报解析后日志。  - 解析失败：仅上报内置字段和label字段。                                              |
      
   
9. [自定义日志时间]。
   开启后可指定某一字段作为日志时间，或关闭此项使用日志被采集时间作为日志时间。
   
10. 自定义标签前缀默认开启。开启结构化解析后，自定义元数据默认添加__labels__前缀，支持开关控制台该前缀的显示或隐藏。此功能依赖ICAgent版本，详见[ICAgent版本说明](https://support.huaweicloud.com/usermanual-lts/lts_02_0014.html#lts_02_0014__section7761151916252)。
**样例展示：**
在结构化解析配置中选择"多行-完全正则"模式，日志上报到LTS后，原始日志样例如下所示，经结构化处理后的日志数据上报到LTS的展示效果如[图26]所示。
- 原始日志:
  ```
  [2025-06-05_10:14:19] [ERROR] [MODULE_JI1bU] - PFs^7BLiq:E^5e$ja5=450.e1E7p4Q
  o^$(Xbyjhdjb#N6On$;q(x0$#IO@go
  [2025-06-05_10:14:19] [WARNING] [MODULE_rg02h] - vvAUN29a)ZYcz/fWm$%/v_h&!;:oY%
  [2025-06-05_10:14:19] [ERROR] [MODULE_Cbwrf] - P=wLJ;fNamE/u(TN!7uvF+ObDl8/2F
  ;X$uqRR!7^7a^mE!uI.R)9F-km1.Al
  UA8(!*oB9kgp@zoC<HAy<@wgN#7#SH
  [2025-06-05_10:14:19] [INFO] [MODULE_FmHmo] - a+OnTZbUPcv&KNl$=<orJrgvZ^^n02
  [2025-06-05_10:14:19] [DEBUG] [MODULE_G027Q] - o!7pv-znpU$R=vs4Dhk;=v2Rhl7k%)
  O^fKR$0d-rPqQmhZd_=_4nQ_wvV+tu
  X<C#dm$Ud$P$KCrFWV(0nMdT<c_2/y
  ```
  首行正则表达式支持自动生成或手动输入。
  ```
  ^\[\d{4}-\d{2}-\d{2}_\d{2}:\d{2}:\d{2}\]
  ```
  输入提取正则表达式，单击"验证"，提取key-value键值对，根据日志内容修改key值方便识别。
  ```
  ^\[(\S*)\]\s\[(\S*)\]\s\[(\S*)\]\s-\s(.*)
  ```
  ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002329816324.png "点击放大")
  
- 结果展示：
  图26多行-完全正则日志上报结果   
  ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002329976168.png "点击放大") 
 
 #### 组合解析
当您的日志结构太过复杂，涉及多种解析模式，单种解析模式（如Nginx模式、完整正则模式、JSON模式等）无法满足日志解析需求时，您可以使用组合解析规则解析日志，在插件配置下方输入插件语法（JSON格式）用来定义日志解析的流水线逻辑。您可添加一个或多个插件配置，ICAgent会根据处理配置顺序逐一执行。
**设置操作：**
1. 选择组合解析。
2. 从"从已有日志中选择"或"从剪切板中粘贴"选择日志样例，在插件配置下方输入配置内容。
3. 您可以根据日志内容参考以下插件语法自定义设置。输入插件配置后，您可以单击"验证"，即可在提取结果下方显示解析结果。您可以通过[4]提供的日志示例，了解插件配置的用法。
   - processor_regex
     表6正则提取 
     | 参数                         | 类型       | 说明             |
     |:---|:---|:---|
     | source_key                 | string   | 原始字段名。         |
     | multi_line_regex           | string   | 首行正则表达式。       |
     | regex                      | string   | 正则表达式()中为提取字段。 |
     | keys                       | string数组 | 为提取的内容指定字段名。   |
     | keep_source                | boolean  | 是否保留原始字段。      |
     | keep_source_if_parse_error | boolean  | 解析错误是否保留原始字段。  |
        
     
   
   - processor_split_string
     表7分隔符解析 
     | 参数                         | 类型                       | 说明                                          |
     |:---|:---|:---|
     | source_key                 | string                   | 原始字段名。                                      |
     | split_sep                  | string                   | 分隔符，根据split_type填写。                         |
     | 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
     表8键值对分割 
     | 参数               | 类型                       | 说明                                          |
     |:---|:---|:---|
     | source_key       | string                   | 原始字段名。                                      |
     | split_sep        | string                   | 键值对之间的分隔符，默认值为制表符\\t。                       |
     | split_type       | char/special_char/string | 分隔类型，支持char单字符、special_char不可见字符、string字符串。 |
     | expand_connector | string                   | 单个键值对中键与值之间的分隔符，默认值为半角冒号（:）。                |
     | keep_source      | boolean                  | 被解析后的日志中是否保留原始字段。                           |
        
     
   
   - processor_add_fields
     表9添加字段 
     | 参数     | 类型          | 说明                        |
     |:---|:---|:---|
     | fields | json/object | 待添加的字段名和字段值。键值对格式，支持添加多个。 |
        
     
   
   - processor_drop
     表10丢弃字段 
     | 参数        | 类型       | 说明       |
     |:---|:---|:---|
     | drop_keys | string数组 | 丢弃的字段列表。 |
        
     
   
   - processor_rename
     表11重命名字段 
     | 参数          | 类型       | 说明         |
     |:---|:---|:---|
     | source_keys | string数组 | 待重命名的原始字段。 |
     | dest_keys   | string数组 | 重命名后的字段。   |
        
     
   
   - processor_json
     表12json展开提取 
     | 参数                         | 类型       | 说明                                                                             |
     |:---|:---|:---|
     | source_key                 | string   | 原始字段名。                                                                         |
     | keep_source                | boolean  | 被解析后的日志中是否保留原始字段。                                                              |
     | expand_depth               | int      | json展开的深度。默认值为0，表示不限制。1表示当前层级，以此类推。                                            |
     | expand_connector           | string   | json展开时的连接符，默认值为英文符号点（.）                                                       |
     | prefix                     | string   | json展开时，对字段名附加的前缀。                                                             |
     | keep_source_if_parse_error | boolean  | 解析错误是否保留原始字段。                                                                  |
     | parse_escaped_json         | boolean  | 支持解析转义后的JSON字符串为JSON对象。                                                        |
     | keys                       | string数组 | 字段被解析后，保留需要上报的字段；如果使用了prefix字段增加了前缀，则keys里的字段需要写加了前缀后的字段名称（ICAgent7.4.3版本后支持）。 |
        
     
   
   - processor_filter_regex
     表13过滤器 
     | 参数      | 类型          | 说明                       |
     |:---|:---|:---|
     | include | json/object | key为日志字段，value为匹配的正则表达式。 |
     | exclude | json/object | key为日志字段，value为匹配的正则表达式。 |
        
     
   
   - processor_gotime
     表14提取时间 
     | 参数              | 类型      | 说明                           |
     |:---|:---|:---|
     | source_key      | string  | 原始字段名。                       |
     | source_format   | string  | 原始时间的格式。                     |
     | source_location | int     | 原始时间的时区。参数值为空时，表示所在主机或容器的时区。 |
     | set_time        | boolean | 是否将解析后的时间设置为日志时间。            |
     | keep_source     | boolean | 被解析后的日志中是否保留原始字段。            |
        
     
   
   - processor_base64_decoding
     表15base64解码 
     | 参数                         | 类型      | 说明                |
     |:---|:---|:---|
     | source_key                 | string  | 原始字段名。            |
     | dest_key                   | string  | 解析后的目标字段。         |
     | keep_source_if_parse_error | boolean | 解析错误是否保留原始字段。     |
     | keep_source                | boolean | 被解析后的日志中是否保留原始字段。 |
        
     
   
   - processor_base64_encoding
     表16base64编码 
     | 参数          | 类型      | 说明                |
     |:---|:---|:---|
     | source_key  | string  | 原始字段名。            |
     | dest_key    | string  | 解析后的目标字段。         |
     | keep_source | boolean | 被解析后的日志中是否保留原始字段。 |
        
     
    
4. 结合以下参考示例日志，提供多种插件组合使用的方法。
   原始日志示例：（以下日志示例仅供参考，请以实际日志为准）
   ```
   2025-03-19:16:49:03 [INFO] [thread1] {"ref":"https://www.test.com/","curl":"https://www.test.com/so/search?spm=1000.1111.2222.3333&q=linux%20opt%testabcd&t=&u=","sign":"1234567890","pid":"so","0508":{"sign":"112233445566 English bb Error, INFO, error bb&&bb","float":15.25,"long":15},"float":15.25,"long":15}
   ```
   通过插件配置组合使用解析字段，完整插件配置参考如下，您可以直接复制以下插件配置，单击"验证"，即可查看解析结果。
   ```
   [{
           "detail": {
               "keys": ["nowtime", "level", "thread", "jsonmsg"],
               "keep_source": true,
               "regex": "(\\d{4}-\\d{2}-\\d{2}:\\d{2}:\\d{2}:\\d{2})\\s+\\[(\\w+)\\]\\s+\\[(\\w+)\\]\\s+(.*)",
               "source_key": "content"
           },
           "type": "processor_regex"
       }, {
           "detail": {
               "expand_connector": ".",
               "expand_depth": 4,
               "keep_source": true,
               "source_key": "jsonmsg"           
           },
           "type": "processor_json"
       }, {
           "detail": {
               "keep_source": true,
               "keep_source_if_parse_error": true,
               "keys": [
                   "key1",
                   "key2",
                   "key3"
               ],
               "source_key": "0508.sign",
               "split_sep": ",",
               "split_type": "char"
           },
           "type": "processor_split_string"
       }, {
           "detail": {
               "keep_source": true,
               "keep_source_if_parse_error": true,
               "keys": [
                   "a1",
                   "a2",
                   "a3"
               ],
               "regex": "^(\\w+)(?:[^ ]* ){1}(\\w+)(?:[^ ]* ){2}([^\\$]+)",
               "source_key": "key1"
           },
           "type": "processor_regex"
       }
   ]
   ```
   接下来分步介绍示例中用到的插件配置和解析结果。
   1. 将原始日志示例复制到组合解析下方的日志样例中。 原始日志示例：（以下日志示例仅供参考，请以实际日志为准）
      ```
      2025-03-19:16:49:03 [INFO] [thread1] {"ref":"https://www.test.com/","curl":"https://www.test.com/so/search?spm=1000.1111.2222.3333&q=linux%20opt%testabcd&t=&u=","sign":"1234567890","pid":"so","0508":{"sign":"112233445566 English bb Error, INFO, error bb&&bb","float":15.25,"long":15},"float":15.25,"long":15}
      ```
      图27日志示例   
      ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002260316916.png "点击放大") 
   
   2. 分析原始日志示例结果如下：**日志时间** 为2025-03-19:16:49:03，**日志级别** 为\[INFO\]，**线程号** 为\[thread1\]，**日志内容** 如下，该日志内容是一个完整的JSON文本。
      ```
      {"ref":"https://www.test.com/","curl":"https://www.test.com/so/search?spm=1000.1111.2222.3333&q=linux%20opt%testabcd&t=&u=","sign":"1234567890","pid":"so","0508":{"sign":"112233445566 English bb Error, INFO, error bb&&bb","float":15.25,"long":15},"float":15.25,"long":15}
      ```
      
   
   3. 按照日志时间、日志级别、线程号、日志内容提取日志验证，每一部分都是用空格来隔开，但是考虑JSON文本中也可能含有空格，就不选择分隔符插件来提取，使用**正则提取插件（processor_regex）** 提取。
      正则表达式参考如下：
      **日志时间**提取为nowtime：(\\d{4}-\\d{2}-\\d{2}:\\d{2}:\\d{2}:\\d{2})
      **日志级别**提取为level：\\\[(\\w+)\\\]
      **线程号**提取为thread：\\\[(\\w+)\\\]
      **日志内容**提取为jsonmsg：(.\*)
      每部分中间都是空格分割，完整的提取正则表达式：(\\d{4}-\\d{2}-\\d{2}:\\d{2}:\\d{2}:\\d{2})\\s+\\\[(\\w+)\\\]\\s+\\\[(\\w+)\\\]\\s+(.\*)
      **正则提取插件（processor_regex）** 配置如下，需要将regex参数的值替换为正则表达式，同时将正则表达式里的\\替换为\\\\用于转义。
      ```
      [{
              "detail": {
                  "keys": ["nowtime", "level", "thread", "jsonmsg"],
                  "regex": "(\\d{4}-\\d{2}-\\d{2}:\\d{2}:\\d{2}:\\d{2})\\s+\\[(\\w+)\\]\\s+\\[(\\w+)\\]\\s+(.*)",
                  "source_key": "content"
              },
              "type": "processor_regex"
      }]
      ```
      
   
   4. 将配置内容复制到插件配置框中，单击"验证"，在提取结果下方即可显示提取结果，key和value值提取正确。
   
   5. 接下来可以使用JSON插件（processor_json）将日志内容（jsonmsg）进行JSON展开。（每个插件配置{}中间需要加英文逗号隔开）
      ```
      , {
              "detail": {
                  "expand_connector": ".",
                  "expand_depth": 4,
                  "keep_source": true,
                  "source_key": "jsonmsg",
                  "source_location": 8
              },
              "type": "processor_json"
          }
      ```
      将JSON插件（processor_json）配置追加到正则提取插件（processor_regex）配置后面，单击"验证"，在提取结果下方即可显示提取结果。
      
   
   6. 如果您需要将JSON提取得到的0508.sign字段进一步分割，可以使用分隔符解析插件（processor_split_string）中的","进行分隔拆分，提取key1，key2，key3字段。
      ```
      ,{
              "detail": {
                  "keys": [
                      "key1",
                      "key2",
                      "key3"
                  ],
                  "source_key": "0508.sign",
                  "split_sep": ",",
                  "split_type": "char"
              },
              "type": "processor_split_string"
          }
      ```
      将分隔符解析插件（processor_split_string）配置追加到JSON插件（processor_json）配置后面，单击"验证"，在提取结果下方即可显示key1，key2，key3字段。
      
   
   7. 您还可以将key1使用**正则提取插件（processor_regex）** 提取出a1，a2，a3等字段。
      ```
      , {
              "detail": {
                  "keep_source": true,
                  "keep_source_if_parse_error": true,
                  "keys": [
                      "a1",
                      "a2",
                      "a3"
                  ],
                  "regex": "^(\\w+)(?:[^ ]* ){1}(\\w+)(?:[^ ]* ){2}([^\\$]+)",
                  "source_key": "key1"
              },
              "type": "processor_regex"
          }
      ```
      将**正则提取插件（processor_regex）**配置追加到分隔符解析插件（processor_split_string）配置后面，单击"验证"，在提取结果下方即可显示a1，a2，a3字段。
      
    
 
 #### 自定义日志时间
开启自定义日志时间后，使用自定义日志内容的时间作为日志搜索页面日志内容的时间，请参考[表17]设置参数。关闭自定义日志时间后使用日志采集时间作为日志搜索页面日志内容的时间。
常见的时间标准、示例及对应的时间表达式如下[表19]。
 表17参数配置表 
| 参数        | 说明                                                                                                                                                                                                                                                                                                                                                                                                               | 示例                  |
|:---|:---|:---|
| 时间字段key名称 | 已提取字段的名称。单击下拉框选择已提取的字段，该字段为string或long类型。                                                                                                                                                                                                                                                                                                                                                                        | test                |
| 字段value   | 已提取的字段value，选择字段key后，将自动填充。                                                                                                                                                                                                                                                                                                                                                                                      | 2023-07-19 12:12:00 |
| 时间格式      | 默认情况下，云日志服务LTS中的日志时间戳精确到秒，因此时间格式只需配置到秒，无需配置毫秒、微秒等信息。请参考[表18]。 - 若时间格式填写错误或指定字段不存在，将使用日志被采集时间作为日志时间。  - 对结构化解析进行字段名称修改、字段删除、字段类型修改等操作，都需要重新校验时间字段。   | yyyy-MM-dd HH:mm:ss |
| 操作        | 单击![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000002363932205.png)校验图标，提示"时间格式和字段value匹配成功"则表示校验成功。                                                                                                                                                                                                                                                                                          | -                   |
   
 表18常见时间格式 
| 时间格式      | 说明                     | 示例          |
|:---|:---|:---|
| EEE       | 星期的缩写。                 | Fri         |
| EEEE      | 星期的全称。                 | Friday      |
| MMM       | 月份的缩写。                 | Jan         |
| MMMM      | 月份的全称。                 | January     |
| dd        | 每月第几天，十进制，范围为01\~31。   | 07, 31      |
| HH        | 小时，24小时制。              | 22          |
| h         | 小时，12小时制。              | 11          |
| MM        | 月份，十进制，范围为01\~12。      | 08          |
| mm        | 分钟，十进制，范围为00\~59。      | 59          |
| a         | am或pm。                 | am、pm       |
| h:mm:ss a | 12小时制的时间组合。            | 11:59:59 am |
| HH:mm     | 小时和分钟组合。               | 23:59       |
| ss        | 秒数，十进制，范围为00\~59。      | 59          |
| yy        | 年份，十进制，不带世纪，范围为00\~99。 | 04、98       |
| yyyy      | 年份，十进制。                | 2004、1998   |
| d         | 每月第几天，十进制，范围为1\~31。    | 7、31        |
| %s        | Unix时间戳。               | 147618725   |
   
 表19示例 
| 示例                             | 时间表达式                       | 时间标准    |
|:---|:---|:---|
| 2022-07-14T19:57:36+08:00      | yyyy-MM-dd'T'HH:mm:ssXXX    | 自定义     |
| 1548752136                     | %s                          | 自定义     |
| 27/Jan/2022:15:56:44           | dd/MMM/yyyy:HH:mm:ss        | 自定义     |
| 2022-07-24T10:06:41.000        | yyyy-MM-dd'T'HH:mm:ss.SSS   | 自定义     |
| Monday, 02-Jan-06 15:04:05 MST | EEEE, dd-MMM-yy HH:mm:ss Z  | RFC850  |
| Mon, 02 Jan 2006 15:04:05 MST  | EEE, dd MMM yyyy HH:mm:ss Z | RFC1123 |
| 02 Jan 06 15:04 MST            | dd MMM yy HH:mm Z           | RFC822  |
| 02 Jan 06 15:04 -0700          | dd MMM yy HH:mm Z           | RFC822Z |
| 2023-01-02T15:04:05Z07:00      | yyyy-MM-dd'T'HH:mm:ss Z     | RFC3339 |
| 2022-12-11 15:05:07            | yyyy-MM-dd HH:mm:ss         | 自定义     |
| 2025-02-24T05:24:07.085Z       | yyyy-MM-dd'T'HH:mm:ss.SSSZ  | 自定义     |
   
