

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 检查应用程序负载均衡器目标的运行状况
检查目标运行状况

您可以检查已注册到目标组的目标的运行状况。有关运行状况检查失败问题的帮助，请参阅[问题排查：已注册目标未处于可用状态](load-balancer-troubleshooting.md#target-not-inservice)。

您可以使用运行状况检查日志来捕获有关对负载均衡器的注册目标进行的运行状况检查的详细信息，并将其作为日志文件存储在 Amazon S3 中。您可以使用这些运行状况检查日志来解决目标的问题。有关更多信息，请参阅 [Health 检查日志](load-balancer-health-check-logs.md)。

------
#### [ Console ]

**要检查目标的运行状况**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.amazonaws.cn/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格上的**负载均衡**下，选择**目标组**。

1. 选择目标组的名称以打开其详细信息页面。

1. **详细信息**选项卡会显示目标总数，以及处于各运行状况的目标数。

1. 在 **Targets** 选项卡上，**Status** 列指示每个目标的状态。

1. 如果状态是 `Healthy` 以外的任何值，则**状态详细信息**列将包含更多信息。

**接收有关运行状况不佳的目标的电子邮件通知**  
使用 CloudWatch 警报触发 Lambda 函数以发送有关不健康目标的详细信息。有关 step-by-step说明，请参阅以下博客文章：[识别负载均衡器的运行状况不佳的目标](https://www.amazonaws.cn/blogs/networking-and-content-delivery/identifying-unhealthy-targets-of-elastic-load-balancer/)。

------
#### [ Amazon CLI ]

**要检查目标的运行状况**  
使用 [describe-target-health](https://docs.amazonaws.cn/cli/latest/reference/elbv2/describe-target-health.html) 命令。此示例对输出进行筛选，以仅包括运行状况不良的目标。对于运行状况不良的目标，输出将包含原因代码。

```
aws elbv2 describe-target-health \
    --target-group-arn target-group-arn \
    --query "TargetHealthDescriptions[?TargetHealth.State!='healthy'].[Target.Id,TargetHealth.State,TargetHealth.Reason]" \
    --output table
```

下面是示例输出。

```
----------------------------------------------
|            DescribeTargetHealth            |
+--------------+---------+-------------------+
|  172.31.0.57 |  unused |  Target.NotInUse  |
|  172.31.0.50 |  unused |  Target.NotInUse  |
+--------------+---------+-------------------+
```

------

## 目标状态和原因代码


下表列出了每种目标状态的可能原因代码。

**目标状态为 healthy**  
未提供原因代码。

**目标状态为 initial**  
+  `Elb.RegistrationInProgress` - 目标正处于与负载均衡器的注册流程中。
+  `Elb.InitialHealthChecking` - 负载均衡器仍在向目标发送最低数量的运行状况检查，以确定其运行状况。

**目标状态为 unhealthy**  
+ `Target.ResponseCodeMismatch`：运行状况检查未返回预期的 HTTP 代码。
+ `Target.Timeout`：运行状况检查请求超时。
+ `Target.FailedHealthChecks`：负载均衡器在建立与目标的连接时收到错误，或目标响应格式错误。
+ `Elb.InternalError`：由于内部错误，运行状况检查失败。

**目标状态为 unused**  
+ `Target.NotRegistered` - 目标未注册到目标组
+ `Target.NotInUse` - 该目标组未被任何负载均衡器使用，或目标所在的可用区未启用其负载均衡器。
+ `Target.InvalidState` - 目标处于停止或终止状态。
+ `Target.IpUnusable` - 目标 IP 地址已保留，供负载均衡器使用。

**目标状态为 draining**  
+ `Target.DeregistrationInProgress` - 目标正处于注销过程中，且注销延迟期尚未到期。

**目标状态为 unavailable**  
+ `Target.HealthCheckDisabled`：目标组禁用了运行状况检查。