

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

# 主控台中的 Amazon ECS 事件擷取
<a name="task-lifecycle-events"></a>

Amazon ECS 主控台提供事件擷取功能，可透過 EventBridge 將服務動作和任務狀態變更等 Amazon ECS 產生的事件儲存到 Amazon CloudWatch Logs。此功能包含查詢介面，具有用於監控和故障診斷的篩選功能。

事件提供有關您的服務部署、服務、任務和執行個體如何運作的詳細資訊。您可以使用此資訊對任務或服務部署失敗進行故障診斷。

當您開啟事件擷取時，您可以存取 Amazon ECS 在您選擇的保留期間內產生的所有事件，延伸超過最後 100 個未篩選事件或僅顯示 1 小時的已停止任務的原生限制。

## 運作方式
<a name="task-lifecycle-events-overview"></a>

事件擷取使用 EventBridge 將事件儲存在預先定義的 Amazon CloudWatch Logs 日誌群組中。Amazon ECS 主控台提供預先建置的查詢和篩選選項，並將事件相互關聯，以直覺的形式提供任務生命週期。

您可以查詢和擷取下列類型的事件：
+ **服務動作事件** - 協助識別佈建或資源分配問題
+ **任務生命週期事件** - 協助識別任務或容器無法啟動或停止執行的原因

Amazon ECS 主控台可讓您一鍵設定事件擷取，並提供常用的查詢和篩選，而不需要您學習查詢語言或在多個主控台之間導覽。

## Event types (事件類型)
<a name="task-lifecycle-events-types"></a>

事件擷取會將所有 Amazon ECS 產生的事件儲存在下列類別中：

任務狀態變更事件  
容器停止和其他終止事件，可用於疑難排解或監控任務生命週期時間表。

服務動作  
像是達到穩定狀態、任務置放失敗或資源限制等事件。

服務部署狀態變更  
事件，例如進行中、已完成或失敗的部署，由斷路器和復原設定觸發，以監控服務部署的狀態。

容器執行個體狀態變更  
對於 EC2 和 Amazon ECS 受管執行個體上的工作負載，事件會顯示連線和中斷連線狀態。

## 日誌群組組態
<a name="task-lifecycle-events-log-group"></a>

當您開啟事件擷取時，Amazon ECS 會自動建立下列資源：
+ 名為 的 Amazon CloudWatch Logs 日誌群組 `/aws/events/ecs/containerinsights/${clusterName}/performance`
+ EventBridge 規則可從`aws.ecs`來源擷取所有事件，並將其轉送至日誌群組

您可以為日誌群組指定從 1 天到 10 年的保留期。預設保留期間為 7 天。

## 考量事項
<a name="task-lifecycle-events-limitations"></a>

使用事件擷取時，請考慮下列事項：
+ 事件擷取會儲存所有事件以簡化操作。您無法在 Amazon ECS 主控台中設定規則，以僅擷取特定事件。
+ Amazon ECS 主控台提供預先定義的查詢條件。對於進階查詢，請使用 Amazon CloudWatch Logs Logs Insights 直接查詢日誌群組。
+ Amazon ECS 主控台不提供即時結尾功能。直接將 Amazon CloudWatch Logs 用於即時結尾。
+ 當您停用事件擷取時，會刪除 EventBridge 規則。
+ 事件擷取會產生 EventBridge 資料擷取、Amazon CloudWatch Logs 儲存和查詢執行的額外費用。

  如需 EventBridge 定價的資訊，請參閱 [EventBridge 定價](https://aws.amazon.com/eventbridge/pricing/)。

  如需 CloudWatch 定價的相關資訊，請參閱 [CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

## 事件型疑難排解
<a name="task-lifecycle-events-troubleshooting"></a>

使用 Amazon ECS 產生的事件來回答常見的疑難排解問題。

### 任務失敗分析
<a name="task-lifecycle-events-task-failures"></a>

您可以檢閱`STOPPED`任務狀態變更事件、停止代碼和容器結束代碼，以判斷任務在執行時無法啟動或失敗的原因。

您可以檢閱置放失敗的服務動作事件和資源限制資訊，以判斷任務因資源限制而無法置放的原因

### 常見的任務失敗案例
<a name="task-lifecycle-events-common-issues"></a>

最常見的異常任務失敗與下列問題有關：
+ CI/CD 服務部署失敗
+ 自動擴展失敗
+ 任務重新平衡失敗
+ 異常容器結束，例如out-of-memory(OOM) 錯誤

異常任務失敗會產生具有 `EssentialContainerExited`或 `TaskFailedToStart` 停止程式碼`STOPPED`的任務狀態變更事件。您可以依這些停止代碼進行篩選，以檢查容器執行和停止行為。

# 開啟現有 Amazon ECS 叢集的事件擷取
<a name="turn-on-event-capture-existing-cluster"></a>

您可以在現有的 Amazon ECS 叢集上啟用事件擷取，透過 EventBridge 將 Amazon ECS 產生的事件存放在 Amazon CloudWatch Logs 中。此功能可協助您監控任務失敗、服務部署和其他叢集活動，並進行疑難排解。

啟用事件擷取後，Amazon ECS 會建立下列資源：
+ 名為 的 Amazon CloudWatch Logs 日誌群組 `/aws/events/ecs/containerinsights/${clusterName}/performance`
+ 從`aws.ecs`來源擷取所有事件的 EventBridge 規則

**歷史記錄**索引標籤會顯示在叢集檢視中，可讓您查詢任務生命週期事件和服務動作。事件擷取會立即開始，並根據您指定的保留期間存放所有 Amazon ECS 產生的事件。

## 先決條件
<a name="turn-on-event-capture-prerequisites"></a>
+ 現有的 Amazon ECS 叢集
+ 修改叢集設定和建立 Amazon CloudWatch Logs 資源的適當 IAM 許可

## 使用主控台開啟事件擷取
<a name="turn-on-event-capture-procedure"></a>

1. 開啟主控台，網址為 [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)。

1. 在導覽窗格中，選擇**叢集**。

1. 選取您要啟用事件擷取的叢集。

   「叢集詳細資訊」頁面隨即顯示。

1. 選擇 **Configuration (組態)**。

1. 在 **ECS 事件**區段中，選擇**開啟事件擷取**。

   隨即顯示**開啟事件擷取**對話方塊。

1. 針對**過期事件**，選擇 Amazon CloudWatch Logs 日誌群組的保留期間。預設值為 7 天。

1. 選擇 **Turn on (開啟)**。

# 檢視 Amazon ECS 服務和任務狀態變更事件
<a name="viewing-state-events"></a>

Amazon ECS 主控台提供事件擷取功能，可透過 EventBridge 將服務動作和任務狀態變更等 Amazon ECS 產生的事件儲存到 Amazon CloudWatch Logs。此功能包含具有篩選功能的查詢界面，可增強監控和故障診斷。

事件提供有關您的服務部署、服務、任務和執行個體如何運作的詳細資訊。您可以使用此資訊對任務或服務部署失敗進行故障診斷。

您可以使用下列任一條件來篩選事件：
+  部署 ID （僅適用於服務詳細資訊頁面） 
+ 開始時間
+ 結束時間 
+ 服務名稱 （僅適用於叢集詳細資訊頁面、服務詳細資訊頁面，這會預設為目前的服務） 
+ 任務 ID 
+ 任務上次狀態 
+ 任務定義系列 
+ 任務定義修訂 

## 在叢集層級檢視事件
<a name="view-cluster-procedure"></a>

1. 開啟主控台，網址為 [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)。

1. 選擇 **Clusters (叢集)**。

   叢集清單頁面隨即顯示。

1. 選擇 叢集。

   「叢集詳細資訊」頁面隨即顯示。

1. 在**歷史記錄**下，決定要檢視的事件。

   1. 若要檢視服務動作事件，請選擇**服務動作事件**。

   1. 若要檢視任務狀態變更事件，請選擇**任務狀態變更事件**。

   1. （選用） 在**查詢條件**中，輸入您要檢視之事件的篩選條件。

1. 選擇 **Run query** (執行查詢)。

   事件會顯示在清單中。

1. 若要檢視事件的完整詳細資訊，請選擇事件。

## 在服務層級檢視
<a name="tasks-procedure"></a>

1. 開啟主控台，網址為 [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)。

1. 在**叢集**頁面上，選擇叢集。

1. 在「叢集詳細資訊」頁面上的**服務**區段中，選擇所需服務。

   服務詳細資訊頁面隨即顯示。

1. 在**歷史記錄**下，決定要檢視的事件。

   1. 若要檢視服務動作事件，請選擇**服務動作事件**。

   1. 若要檢視任務狀態變更事件，請選擇**任務狀態變更事件**。

   1. （選用） 在**查詢條件**中，輸入您要檢視之事件的篩選條件。

1. 選擇 **Run query** (執行查詢)。

   事件會顯示在清單中。

1. 若要檢視事件的完整詳細資訊，請選擇事件。