

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

# 運作狀態檢查日誌
<a name="load-balancer-health-check-logs"></a>

Elastic Load Balancing 提供運作狀態檢查日誌，可擷取已註冊目標運作狀態檢查狀態的詳細資訊，包括運作狀態檢查失敗時的失敗原因。EC2 執行個體、IP 地址和 Lambda 函數目標支援運作狀態檢查日誌。每個日誌項目都包含運作狀態檢查請求類型或連線、時間戳記、目標地址、目標群組 ID、運作狀態和原因碼等資訊。您可以使用這些運作狀態檢查日誌來分析目標運作狀態模式、監控運作狀態轉換，以及疑難排解問題。

運作狀態檢查日誌是選用功能，預設為停用。啟用負載平衡器的運作狀態檢查日誌後，Elastic Load Balancing 會擷取日誌，並將其儲存為壓縮檔案，存放在您指定的 Amazon S3 儲存貯體中。您可以隨時停用運作狀態檢查日誌。

您將需支付 Amazon S3 的儲存費用，但 Elastic Load Balancing 將日誌檔傳送到 Amazon S3 所使用的頻寬不需要付費。如需有關儲存費用的詳細資訊，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)。

**Topics**
+ [運作狀態檢查日誌檔案](#health-check-log-file-format)
+ [運作狀態檢查日誌項目](#health-check-log-entry-format)
+ [範例日誌項目](#health-check-log-file-entries)
+ [設定日誌交付通知](#health-check-log-event-notifications)
+ [處理運作狀態檢查日誌檔案](#health-check-log-processing-tools)
+ [啟用 Application Load Balancer 的運作狀態檢查日誌](enable-health-check-logging.md)
+ [停用 Application Load Balancer 的運作狀態檢查日誌](disable-health-check-logging.md)

## 運作狀態檢查日誌檔案
<a name="health-check-log-file-format"></a>

Elastic Load Balancing 每 5 分鐘發佈每個負載平衡器節點的日誌檔。當大量目標連接到負載平衡器或設定小型運作狀態檢查間隔時 （例如，每 5 秒），負載平衡器可以交付多個日誌。

運作狀態檢查日誌的檔案名稱使用以下格式：

```
{{bucket}}[/{{prefix}}]/AWSLogs/{{aws-account-id}}/elasticloadbalancing/{{region}}/{{yyyy}}/{{mm}}/{{dd}}/health_check_log_{{aws-account-id}}_elasticloadbalancing_{{region}}_app.{{load-balancer-id}}_{{end-time}}_{{ip-address}}_{{random-string}}.log.gz
```

*bucket*  
S3 儲存貯體的名稱。

*prefix*  
(選用) 儲存貯體的字首 (邏輯階層)。您指定的字首不得包含字串 `AWSLogs`。如需詳細資訊，請參閱[使用字首組織物件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html)。

`AWSLogs`  
我們在您指定的儲存貯體名稱和可選字首之後，增加了以 `AWSLogs` 開頭的檔案名稱部分。

*aws-account-id*  
擁有者的帳戶 AWS ID。

*region*  
負載平衡器和 S3 儲存貯體的區域。

*yyyy*/*mm*/*dd*  
傳遞日誌的日期。

*load-balancer-id*  
負載平衡器的資源 ID。如果資源 ID 包含任何斜線 (/)，斜線會換成句點 (.)。

*end-time*  
記錄間隔結束的日期和時間。例如，結束時間 20140215T2340Z 的日子檔案包含在 23:35 和 23:40 (UTC 或 Zulu 時間) 之間發出的請求項目。

*ip-address*  
處理請求之負載平衡器節點的 IP 地址。對於內部負載平衡器，這是私有 IP 地址。

*random-string*  
系統產生的隨機字串。

以下是含字首的日誌檔案名稱範例：

```
s3://amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/health_check_log_123456789012_elasticloadbalancing_us-east-2_app.my-loadbalancer.1234567890abcdef_20220215T2340Z_172.160.001.192_20sg8hgm.log.gz
```

以下是不含字首的日誌檔案名稱範例：

```
s3://amzn-s3-demo-logging-bucket/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2022/05/01/health_check_log_123456789012_elasticloadbalancing_us-east-2_app.my-loadbalancer.1234567890abcdef_20220215T2340Z_172.160.001.192_20sg8hgm.log.gz
```

日誌檔案可存放於儲存貯體任意長時間，但您也可以定義 Amazon S3 生命週期規則，自動封存或刪除日誌檔案。如需詳細資訊，請參閱《*Amazon S3 使用者指南*》中的[物件生命週期管理](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html)。

## 運作狀態檢查日誌項目
<a name="health-check-log-entry-format"></a>

Elastic Load Balancing 會記錄目標運作狀態檢查結果，包括該負載平衡器所有已註冊目標的失敗原因。每個日誌項目都包含對已註冊目標所做的單一運作狀態檢查結果的詳細資訊。

**Topics**
+ [語法](#health-check-log-entry-syntax)
+ [錯誤原因代碼](#health-check-error-reason-codes)

### 語法
<a name="health-check-log-entry-syntax"></a>

下表依序說明運作狀態檢查日誌項目的欄位。所有欄位以空格分隔。當我們新增欄位時，會將它新增至日誌項目的結尾。當我們準備發佈新欄位時，您可能會在欄位發佈之前看到額外的結尾 "-"。請確定您將日誌剖析設定為在上次記錄欄位後停止，並在我們發佈新欄位後更新日誌剖析。


| 欄位 （位置） | Description | 
| --- | --- | 
| 類型 (1) | 運作狀態檢查請求或連線的類型。可能的值如下所示 (忽略任何其他值)：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/application/load-balancer-health-check-logs.html) | 
| 時間 (2) | 在目標上啟動運作狀態檢查時的時間戳記，格式為 ISO 8601。 | 
| 延遲 (3) | 完成目前運作狀態檢查所經過的總時間 （以秒為單位）。 | 
| target\_addr (4) | 目標的 IP 地址和連接埠，格式為 IP：Port。如果目標是 Lambda 函數，則為 Lambda 的 ARN。 | 
| target\_group\_id (5) | 與目標相關聯的目標群組名稱。 | 
| 狀態 (6) | 運作狀態檢查的狀態。如果運作狀態檢查成功，則此值為 `PASS` 。在運作狀態檢查失敗時，值為 `FAIL` | 
| status\_code (7) | 從運作狀態檢查請求的目標收到的回應碼。 | 
| reason\_code (8) | 如果運作狀態檢查失敗，則失敗的原因。請參閱 [錯誤原因代碼](#health-check-error-reason-codes) | 

### 錯誤原因代碼
<a name="health-check-error-reason-codes"></a>

如果目標運作狀態檢查失敗，負載平衡器會在運作狀態檢查日誌中記錄下列其中一個原因代碼。


| Code | Description | 
| --- | --- | 
| `RequestTimedOut` | 等待回應時運作狀態檢查請求逾時 | 
| `ConnectionTimedOut` | 運作狀態檢查失敗，因為 TCP 連線嘗試逾時 | 
| `ConnectionReset` | 由於連線重設，運作狀態檢查失敗 | 
| `ResponseCodeMismatch` | 目標回應運作狀態檢查請求的 HTTP 狀態碼不符合設定的狀態碼 | 
| `ResponseStringMismatch` | 目標傳回的回應內文不包含目標群組運作狀態檢查組態中設定的字串 | 
| `InternalError` | 內部負載平衡器錯誤 | 
| `TargetError` | 目標傳回 5xx 錯誤碼以回應運作狀態檢查請求 | 
| `GRPCStatusHeaderEmpty` | GRPC 目標回應具有不含值的 grpc-status 標頭 | 
| `GRPCUnexpectedStatus` | GRPC 目標以非預期的 grpc-status 回應 | 

## 範例日誌項目
<a name="health-check-log-file-entries"></a>

以下是運作狀態檢查日誌項目的範例。請注意，範例文字只會出現在多行上，使其更容易閱讀。

以下是成功運作狀態檢查的範例日誌項目。

```
http 2025-10-31T12:44:59.875678Z 0.019584011 172.31.20.97:80 HCLogsTestIPs PASS 200 -
```

以下是失敗運作狀態檢查的範例日誌項目。

```
http 2025-10-31T12:44:58.901409Z 1.121980746 172.31.31.9:80 HCLogsTestIPs FAIL 502 TargetError
```

## 設定日誌交付通知
<a name="health-check-log-event-notifications"></a>

若要在 Elastic Load Balancing 將日誌交付至 S3 儲存貯體時接收通知，請使用 Amazon S3 事件通知。Elastic Load Balancing 使用 [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)、[CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) 和 [POST 物件](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)將日誌交付至 Amazon S3。為了確保您收到所有日誌交付通知，請在組態中包含所有這些物件建立事件。

如需詳細資訊，請參閱[《Amazon Simple Storage Service 使用者指南》中的 Amazon S3 事件通知](https://docs.aws.amazon.com/AmazonS3/latest/userguide/EventNotifications.html)。 **

## 處理運作狀態檢查日誌檔案
<a name="health-check-log-processing-tools"></a>

運作狀態檢查日誌檔案會壓縮。如果您下載檔案，則必須先將其解壓縮才能看到資訊。

如果您的網站上有許多需求，負載平衡器產生的日誌檔可能有好幾 GB 的資料。您可能無法逐行處理這麼龐大的資料。因此，您可能需要使用提供平行處理解決方案的分析工具。例如，您可以使用下列分析工具來分析和處理運作狀態檢查日誌：
+ Amazon Athena 是一種互動式查詢服務，可讓您使用標準 SQL 輕鬆分析 Amazon S3 中的資料。
+ [Loggly](https://documentation.solarwinds.com/en/success_center/loggly/content/admin/s3-ingestion-auto.htm)
+ [Splunk](https://splunk.github.io/splunk-add-on-for-amazon-web-services/)
+ [Sumo Logic](https://www.sumologic.com/application/elb/)