You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Application Gateway与Azure Application Insights的日志关联方法咨询

Azure Application Gateway与Application Insights日志关联实现方法

核心关联逻辑

两者原生支持W3C Trace Context分布式跟踪标准,通过全局唯一的traceId字段即可实现端到端链路的关联,无需额外做复杂的字段适配。

前置配置要求

  • 开启Application Gateway的诊断日志导出,需同时勾选访问日志,如果使用WAF功能需同步勾选防火墙日志,日志建议导出到共享的Log Analytics工作区,可直接和同工作区的Application Insights日志做关联查询
  • 为Application Gateway启用W3C格式的访问日志,该格式默认携带traceparent字段,字段中第二分段即为全链路统一的traceId
  • 后端业务应用集成的Application Insights SDK需开启W3C分布式跟踪支持,主流语言的高版本SDK默认已启用该配置,无需额外调整

具体关联操作方法

1. Kusto查询直接关联(最常用)

在Log Analytics工作区中执行以下Kusto语句,即可直接关联两类日志,查询全链路请求数据:

// AppGw访问日志与App Insights请求关联示例
AzureDiagnostics
// 筛选AppGw访问日志
| where ResourceType == "APPLICATIONGATEWAYS" and OperationName == "ApplicationGatewayAccess"
// 从traceparent字段提取全链路traceId
| extend appgw_traceId = tostring(split(traceparent_s, "-")[1])
| join kind=inner (
    // 筛选App Insights的请求日志
    appRequests
    | extend appins_traceId = tostring(traceId)
) on $left.appgw_traceId == $right.appins_traceId
// 自定义输出需要的字段
| project 
    客户端IP = clientIP_s,
    请求域名 = host_s,
    请求路径 = requestUri_s,
    AppGw响应状态码 = httpStatus_d,
    应用处理结果 = success,
    应用处理耗时 = duration,
    全链路跟踪ID = appgw_traceId

2. 自定义头补充关联(兼容特殊场景)

如果部分老旧应用不支持W3C跟踪标准,可在Application Gateway的转发规则中配置注入自定义请求头X-AppGw-Request-ID,取值为AppGw内置的请求ID,后端应用收到该请求头后将其作为自定义属性上报到Application Insights,即可通过该自定义字段实现两类日志的关联。

全链路映射关系构建方案

  • 单请求链路映射:通过traceId可串联单条请求从进入AppGw、WAF检测、路由转发、后端应用处理、返回响应的全流程,可直接定位故障发生的层级
  • 批量资源映射:可基于请求域名、路径前缀匹配AppGw的后端池配置,关联到对应后端服务绑定的Application Insights实例,批量构建「AppGw监听规则→后端服务资源→应用监控实例」的映射关系表
  • 业务维度映射:可在关联查询中补充业务标签(比如所属业务线、服务等级),实现从顶层接入设备到业务应用的多维度映射

内容的提问来源于stack exchange,提问作者Muthukumar Shanmugasundaram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 18:27:07