应用程序网关 - 后端运行状况

后端健康是 Azure 应用程序网关 报告,显示每个后端服务器的当前状态。 默认和自定义健康探针持续监控后端池中的服务器,网关只向能够接收流量的服务器发送流量。 本文解释了可能的后端健康状态,以及如何通过Azure门户、Azure CLI、REST API或Azure PowerShell查看报告。 利用报告识别不健康的服务器,并排查阻碍流量到达应用的问题。

后端运行状况报告

服务器运行状况报告的可能状态有:

  • 正常 - 应用程序网关探测从后端服务器收到预期的响应代码。
  • 不健康 ——探针未收到响应,或响应与预期的响应代码或正体不匹配。
  • 未知 ——应用网关控制平面无法与应用网关实例通信,或者无法 解析完全限定的域名(FQDN)。

关于不良未知状态的原因和解决方案,请参见 Azure 应用程序网关 中的后端健康问题故障排除

注意

后端健康报告会根据相应探针的刷新间隔进行更新。 刷新页面或发起后端健康API请求并不会立即更新报告。

查看后端健康状况的方法

你可以通过Azure门户、REST API、PowerShell和Azure CLI生成后端服务器健康报告。

应用网关门户提供后端健康报告,包含可视化和故障排除工具。 每一行显示目标服务器、其后端池、后端设置关联(包括端口和协议)以及最新探测收到的响应。 要了解报告是如何根据后端池、服务器和后端设置的数量构成的,请参阅 应用程序网关运行状况探测概述

对于 不健康未知 状态,你也可以使用提供以下工具的 “故障排除 ”链接:

  1. Azure 网络观察程序 连接故障排除——要了解如何使用该工具,请参见“管理连接故障排除”。

  2. 后端服务器证书可视化 ——可视化显示客户端、应用网关和后端服务器。 故障排除细节主要集中在应用网关与后端服务器之间的传输层安全(TLS)连接。

    后端健康详情截图,显示TLS连接异常,证书链顺序错误,以及预期的证书顺序。

阅读插图

  • 应用网关与后端服务器之间的红色连接线表示TLS连接存在问题。
  • 后端服务器块中的红色证书链线表示证书组件存在问题。 标签用于标识叶证书、中间证书和根证书,预期顺序列显示正确的顺序。
  • 应用网关或后端服务器块中的红字分别表示后端设置或服务器证书存在问题。
  • 利用错误位置和提供的解决方案来确定是更新应用网关后端设置还是后端服务器。

示例后端健康响应

响应标识每个后端地址池和后端设置集合。 对于每个服务器,字段 address 识别后端目标,字段 health 报告其当前状态。

以下代码片段演示了一个响应示例:

{
    "backendAddressPools": [
        {
            "backendAddressPool": {
                "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup/providers/Microsoft.Network/applicationGateways/applicationGateway01/backendAddressPools/appGatewayBackendPool"
            },
            "backendHttpSettingsCollection": [
                {
                    "backendHttpSettings": {
                        "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup/providers/Microsoft.Network/applicationGateways/applicationGateway01/backendHttpSettingsCollection/well-known-ca"
                    },
                    "servers": [
                        {
                            "address": "www.cloudflare.com",
                            "health": "Healthy",
                            "healthProbeLog": "Success. Received 200 status code"
                        }
                    ]
                }
            ]
        }
    ]
}

后续步骤