
# 开启链路追踪
WAF结合华为云日志服务（Log Tank Service，简称LTS）、应用性能管理服务（Application Performance Management，简称APM），实现链路追踪功能。开启该功能后，可根据访问日志信息，追踪完整的请求链路，获取请求的来源、经过的节点、响应时间等信息，帮助您快速定位和解决业务问题。
#### 背景信息
- **日志服务LTS**
  WAF开通**全量日志** 功能后，可将攻击日志、访问日志记录到**日志服务LTS** 中。链路追踪功能仅针对**访问日志**。
  
- **应用性能管理服务** **APM**
  WAF开启链路追踪功能，并关联APM应用后，如果请求经过WAF且能够正常到达源站，WAF可体现在APM的调用链的时序图中。关于APM调用链的信息，请参见[调用链](https://support.huaweicloud.com/usermanual-apm2/apm_07_0018.html)。
  
![](https://support.huaweicloud.com/usermanual-waf/public_sys-resources/note_3.0-zh-cn.png)
**日志服务LTS** 、**应用性能管理服务** **APM** 均会按流量单独计费。有关计费详情，请参见[LTS价格详情](https://www.huaweicloud.com/pricing.html#/lts)、[OpenTelemetry、SkyWalking以及Profiler计费项说明](https://support.huaweicloud.com/price-apm2/apm_07_0019.html)
#### 原理介绍
WAF链路追踪相当于给每一次请求发一张 "全程通行证"，标记经过WAF、源站服务器的所有请求，便于问题溯源。WAF在请求入站时植入标准TraceID、SpanID并随请求透传，同时将带链路标识的访问日志上报到**[日志服务 LTS](https://support.huaweicloud.com/productdesc-lts/lts-03201.html)** ，再由**[应用性能管理服务 APM](https://support.huaweicloud.com/productdesc-apm2/apm_01_0002.html)** 通过解析索引关联日志、串联调用节点，最终生成全链路时序追踪视图实现故障与耗时定位。其数据流转链路如[图1]所示。
图1链路追踪   
![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002576488718.png "点击放大")
各云服务作用如下：
- **WAF** ：流量入口埋点，生成链路标识、并将攻击日志、访问日志记录到日志服务 LTS。链路追踪功能仅针对**访问日志**。
- **LTS**：持久化存储WAF日志，提供结构化解析、索引检索能力。
- **APM** ：汇聚全链路Trace信息，绘制调用链时序图、分析耗时、定位慢接口、故障节点。关于APM调用链的信息，请参见[调用链](https://support.huaweicloud.com/usermanual-apm2/apm_07_0018.html)。
 
#### 计费说明
- 链路追踪功能不会在WAF侧单独收费。
- 链路追踪功能会在**LTS** 、**APM** 按流量单独计费。详细说明请参见[LTS价格详情](https://www.huaweicloud.com/pricing.html#/lts)、[OpenTelemetry、SkyWalking以及Profiler计费项说明](https://support.huaweicloud.com/price-apm2/apm_07_0019.html)。
  - 采样率越高，日志和链路数据量越大，费用越高。
  
  - 一般情况下，不建议在生产环境全采样，建议按比例低采样，即可满足排障需求。
   
 
#### 约束条件
| 功能     | 约束说明                                                                                                                                                                                                                                                                                                       |
|:---|:---|
| 接入方式限制 | - **云模式** **-CNAME** **接入** /**独享模式**接入：支持该功能。  - **云模式** **-ELB** **接入**：不支持。ELB接入模式链路无法做Trace透传，所以不支持该功能。                                           |
| 地域限制   | 以控制台实际为准。                                                                                                                                                                                                                                                                                                  |
| 其他     | - 链路追踪仅基于访问日志，攻击日志不参与。  - 首次记录链路追踪，需要在LTS日志组新增索引字段："x_apm_parent_span_id"、"x_apm_span_id"、"x_apm_trace_flags"、"x_apm_trace_id"、"x_apm_version"。   |
   
#### 前提条件
- 已通过[云模式-CNAME接入](https://support.huaweicloud.com/usermanual-waf/waf_01_0002.html)或[独享模式](https://support.huaweicloud.com/usermanual-waf/waf_01_0250.html)，将网站接入WAF。
- 已开通**日** **志服务** **LTS** ，并在WAF正确配置**全量日志** 功能，至少要开启**记录访问日志** 功能。具体操作，请参见[通过LTS记录WAF全量日志](https://support.huaweicloud.com/usermanual-waf/waf_01_0172.html)。
- [已开通应用性能管理服务APM](https://support.huaweicloud.com/qs-apm2/apm_02_0001.html)。
- 登录WAF控制台的IAM用户必须具有"APM FullAccess"权限，用于查询APM应用列表，并在开启链路追踪功能时绑定防护域名与APM应用。更多信息，请参见[WAF控制台的权限依赖](https://support.huaweicloud.com/usermanual-waf/waf_01_1111.html)。
 
#### 配置链路追踪
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在控制台左上角，单击![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
3. (可选) 如果您已开通企业项目，在左侧导航栏上方单击"按企业项目筛选"下拉框，选择您所在的企业项目。完成后，页面将为您展示该企业项目下的相关数据。
4. 在左侧导航栏，选择"资产管理 \> 防护对象"。
5. 在"防护对象"页面，单击目标防护域名。
6. 在"链路追踪"区域，参考[通过LTS记录WAF全量日志](https://support.huaweicloud.com/usermanual-waf/waf_01_0172.html)，确认并配置**日志组** 、**日志流**。
7. （可选）首次记录链路追踪信息的LTS日志组，需要在云日志服务(LTS)中[修改或配置云端结构化解析](https://support.huaweicloud.com/usermanual-lts/lts_0823.html)、[新增索引字段](https://support.huaweicloud.com/usermanual-lts/lts_05_0008.html)。
   
   需要新增的索引字段为："x_apm_parent_span_id"、"x_apm_span_id"、"x_apm_trace_flags"、"x_apm_trace_id"、"x_apm_version"。
   
   
8. 单击链路追踪开关，在"配置链路追踪"对话框，完成以下配置后，单击"确定"。 
   表1配置链路追踪参数说明 
   | 参数      | 说明                                                                                                                                                                                                                                                                                                                                                                                                             | 取值样例   |
   |:---|:---|:---|
   | 采样方式    | 选择链路追踪的采样方式，支持"全采样"、"按比例采样"。 - **全采样**：适合测试环境、小流量业务，全量溯源。  - **按比例采样**：适合生产大流量，控制成本、减少性能开销。                                                                                                                                                                  | 全采样    |
   | 采样率     | "采样方式"选择"按比例采样"后，还需要填写"采样率"。 采样率取值范围为0.01\~100.00，默认值为100，即采集率为100%，可根据业务需求适当调低采样率。                                                                                                                                                                                                                                                                                               | 100.00 |
   | 关联APM应用 | 选择关联的APM应用。如果请求经过WAF且能够正常到达源站，WAF可体现在APM的调用链的时序图中。 如果没有创建APM应用，可单击"创建APM应用"，在应用性能管理APM控制台，[创建APM应用](https://support.huaweicloud.com/usermanual-apm2/apm_07_0151.html)。 说明： 关联APM应用后，APM会按数据量单独计费。有关APM的计费详情，请参见[OpenTelemetry、SkyWalking以及Profiler计费项说明](https://support.huaweicloud.com/price-apm2/apm_07_0019.html)。 | --     |
      
   完成以上配置后，可参考如下方法，验证配置是否生效：
   - 访问防护域名产生真实请求。
   
   - 在LTS日志检索过滤TraceID相关字段，查看是否有WAF链路日志。
   
   - 进入APM控制台，查看调用链时序图，确认是否出现WAF节点。
   
   - 校验索引字段是否正常解析，无索引则链路关联失败。
    
   
   
 
