如何监控Azure应用程序网关后端服务器的请求负载分布
针对你用Azure应用网关做双服务器负载均衡、且启用SAML认证和Cookie会话亲和性的场景,可通过以下几种方式监控服务器间的负载分布:
通过Log Analytics查询访问日志
Azure应用网关的ApplicationGatewayAccessLog里包含了每个请求的后端服务器地址(backendServerAddress)和所属后端池(backendPoolName)信息。你可以在Log Analytics中编写Kusto查询来统计单台服务器的请求量:ApplicationGatewayAccessLog | where backendPoolName == "你的目标后端池名称" | summarize 总请求数 = count() by backendServerAddress | sort by 总请求数 desc还可以扩展查询,统计不同状态码的请求分布、平均响应耗时等,更全面评估每台服务器的负载压力。
查看后端服务器自身的访问日志
直接检查两台后端服务器的服务日志(比如IIS的访问日志、Nginx的access.log),日志里会记录所有发送到本机的请求数。对比两台服务器的日志数据,就能直观看到会话亲和性下的请求分布情况。如果是容器化部署的服务,确保容器日志已被采集并可查询。拆分Azure Monitor指标的维度
若你的应用网关是v2版本,部分默认指标支持按backendServer维度拆分。比如BackendResponseStatus指标,拆分后可以查看每台服务器返回的各类状态码请求数;BackendConnectionPoolConnectionCount指标则能展示每台服务器当前的连接数,辅助判断负载差异。自定义后端服务指标
可以在后端服务中添加自定义埋点,统计每台服务器的请求量、CPU使用率、内存占用等核心指标,将这些数据推送到Azure Monitor。之后在Azure仪表板中聚合展示这些指标,就能把请求负载和服务器资源负载结合起来分析,更精准判断负载分布是否合理。
内容的提问来源于stack exchange,提问作者Marcel

