

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 檢查 Application Load Balancer 目標的運作狀態
<a name="check-target-health"></a>

您可以檢查已向目標群組註冊的各個目標的運作狀態。如需運作狀態檢查失敗的說明，請參閱[故障診斷：已註冊的目標不在服務中](load-balancer-troubleshooting.md#target-not-inservice)。

您可以使用運作狀態檢查日誌來擷取對負載平衡器已註冊目標執行的運作狀態檢查詳細資訊，並將其儲存為 Amazon S3 中的日誌檔案。您可以使用這些運作狀態檢查日誌來疑難排解目標的問題。如需詳細資訊，請參閱[運作狀態檢查日誌](load-balancer-health-check-logs.md)。

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

**檢查目標的運作狀態**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格的 **Load Balancing** (負載平衡) 中，選擇 **Target Groups (目標群組)**。

1. 選擇目標群組的名稱，以開啟其詳細資訊頁面。

1. **詳細資訊**索引標籤會顯示目標總數，以及每個運作狀態的目標數量。

1. 在 **Targets (目標)** 標籤上，**Status (狀態)** 欄指出各目標的狀態。

1. 如果狀態是 `Healthy` 以外的任何值，則**狀態詳細資料**資料欄會包含更多資訊。

**接收有關狀態不良目標的電子郵件通知**  
使用 CloudWatch 警示來觸發 Lambda 函數，以傳送運作狀態不佳目標的詳細資料。如需逐步指示，請參閱下列部落格文章：[Identifying unhealthy targets of your load balancer](https://aws.amazon.com/blogs/networking-and-content-delivery/identifying-unhealthy-targets-of-elastic-load-balancer/) (識別負載平衡器狀態不良的目標)。

------
#### [ AWS CLI ]

**檢查目標的運作狀態**  
使用 [describe-target-health](https://docs.aws.amazon.com/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  |
+--------------+---------+-------------------+
```

------

## 目標狀態和原因代碼
<a name="target-states-reason-codes"></a>

下列清單顯示每個目標狀態的可能原因代碼。

**目標狀態為 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` - 目標群組的運作狀態檢查已停用。