

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

# AMS Accelerate 中 Amazon EKS 的監控和事件管理
<a name="acc-mon-inc-mgmt-eks"></a>

Amazon EKS 的監控和事件管理會監控您的 Amazon EKS 資源是否有故障、效能降低和安全問題。AMS Accelerate 會設定和部署 Amazon Managed Service for Prometheus 警示管理員規則、監控警示，然後在觸發這些警示時執行事件管理。Amazon EKS 的監控和事件管理依賴 AMS 警示管理員，並利用原生 AWS 服務，例如 [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/grafana/latest/userguide/prometheus-data-source.html)、[Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)、[Amazon GuardDuty](https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html)、 [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)和 [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)。

**注意**  
Amazon EKS 的監控和事件管理不支援 AWS GovCloud (US) Windows 節點或 Windows 容器。

# 什麼是 AMS Accelerate 中 Amazon EKS 的監控和事件管理？
<a name="acc-what-is-mon-inc-eks"></a>

Amazon EKS 的監控和事件管理提供下列項目：
+ 一種預設組態，可針對您選取的 Amazon EKS 叢集，在您的受管帳戶中建立、管理和部署監視器和政策。
+ 監控基準，可讓您的 Amazon EKS 工作負載具有更高的可用性，即使您未為 Amazon EKS 叢集設定任何其他監控。如需詳細資訊，請參閱[AMS Accelerate 中 Amazon EKS 監控和事件管理的基準警示](acc-baseline-eks-alerts.md)。
+ 為您的 Amazon EKS 叢集設定的基準監控所產生的通知。這些通知稱為提醒。當有即將發生、持續發生、下降或潛在故障、效能降低或安全問題時，就會產生警示。提醒的範例包括 Prometheus 提醒、事件或來自 AWS 服務的問題清單，例如 Amazon GuardDuty。
+ 警示調查，並指導您可以採取的適當修補動作。如需詳細資訊，請參閱 [AMS Accelerate 中的事件報告和服務請求](https://docs.aws.amazon.com/managedservices/latest/accelerate-guide/acc-supp-ex.html)。
+ 盡可能修復 AMS 操作的警示和事件並取得您的核准，以防止或減少對應用程式的影響。如需詳細資訊，請參閱 [AMS Accelerate 中的事件報告和服務請求](https://docs.aws.amazon.com/managedservices/latest/accelerate-guide/acc-supp-ex.html)。
+ 選用的預先定義 Amazon Managed Grafana 儀表板，可讓您查看資源使用率、效能、CoreDNS 的運作狀態、作用中提醒和先前已解決的提醒。如果您使用 AMS 提供的範本設定 Amazon Managed Grafana，則可以開啟 Amazon Managed Grafana 主控台來檢視 Amazon EKS 叢集的指標和提醒。

# Amazon EKS 的監控和事件管理如何在 AMS Accelerate 中運作
<a name="acc-how-mon-inc-mgmt-eks-works"></a>

**產生：**作為 EKS 加入監控和事件管理的一部分，AMS 會為您在受管帳戶中選取的 Amazon EKS 叢集設定基準監控。AMS 使用 Amazon Managed Service for Prometheus 警示管理員規則和 Amazon CloudWatch 事件規則的組合來設定基準監控。叢集中的 AMS 設定 Prometheus 伺服器會抓取您的 Prometheus 指標並將其遠端寫入相同區域中的 Amazon Managed Service for Prometheus 端點。觸發 Prometheus 警示管理員規則或產生 CloudWatch 事件時，基準監控組態會產生警示。

**彙總：**AMS 透過將資源導向 AMS 管理的 Amazon Simple Notification Service 主題，將資源產生的所有提醒傳送至 AMS 監控系統。

**處理和影響分析：**AMS 會分析警示，然後根據其影響的可能性進行處理。AMS 會將警示分類如下：
+ **具有已知客戶影響的提醒：**對於這些提醒，AMS 會使用事件[管理程序建立新的事件](https://docs.aws.amazon.com/managedservices/latest/accelerate-guide/acc-manage-incidents.html)報告。
+ **具有不確定客戶影響的提醒：**對於這些提醒，AMS 會傳送事件報告。在許多情況下，這些提醒會要求您驗證影響，AMS 才能採取行動。對於此類提醒，AMS 會傳送包含詳細資訊的[提醒通知](acc-baseline-eks-alerts.md#acc-alerts-and-actions)，並檢查提醒是否需要緩解動作。AMS 提供在通知中緩解動作的選項。如果您的回覆確認警示是事件，則 AMS 會觸發建立新事件報告，並啟動事件管理程序。收到「無客戶影響」或三天內完全沒有回應的任何服務通知都會標記為已解決。此外，對應的提醒會標示為已解析。
+ **沒有客戶影響的提醒：**如果在評估之後，AMS 判斷提醒沒有任何客戶影響，則提醒會關閉。

## AMS 責任矩陣 (RACI)
<a name="acc-raci-matrix"></a>

AMS 負責、負責、諮詢和告知，或 RACI 矩陣會將主要責任指派給客戶或 AMS 以進行各種活動。下表概述了客戶和 AMS 在使用 Amazon EKS 監控和事件管理的應用程式中活動的責任。
+ **R** 代表負責執行任務以達成任務的一方。
+ **** 代表責任方。
+ **C** 代表已諮詢的對象；尋求意見的對象，通常是主題專家；以及與之進行雙邊溝通的對象。
+ **我**代表知情；收到進度通知的一方，通常只在完成任務或可交付項目時。


| 活動 | 客戶 | AMS | 
| --- | --- | --- | 
| 探索 AMS 需求 | I | R | 
| 啟用叢集存取的 AMS 許可 (RBAC) | R | C | 
|  如果工作者節點尚未存在，請在其上安裝 Amazon EC2 Systems Manager Agent  | R | C | 
|  視需要在 AMS 命名空間中部署 AMS 叢集上元件，例如 Prometheus、Prometheus Node Exporter 和 kube-state-metrics。 | C | R | 
|  在 AMS 控制平面中佈建 Amazon Managed Service for Prometheus | I | R | 
|  在 AMS 控制平面中設定 Prometheus 警示管理員 | I | R | 
|  提供 Amazon Managed Grafana 範本並協助設定 | C | R | 
|  啟用 GuardDuty EKS 稽核日誌監控 | C | R | 
|  啟用 Amazon EKS 控制平面記錄 | I | R | 
|  監控 Amazon EKS 控制平面的運作狀態和效能 | I | R | 
|  監控 Amazon EKS 叢集 （叢集、節點、工作負載、Pod、API Server 和 CoreDNS) 的運作狀態和效能 | I | R | 
|  分類警示並提供 Amazon EKS 的事件回應 | I | R | 
|  在事件期間執行診斷命令 | I | R | 
|  在事件期間分析日誌 （控制平面和 Pod 日誌） | I | R | 
|   AWS 網路問題的事件回應 | I | R | 
|  回應 GuardDuty EKS 稽核日誌監控問題清單 | I | R | 
|  針對盡可能修復事件的動作提供客戶指引 | I | R | 

# AMS Accelerate 中 Amazon EKS 監控和事件管理的基準警示
<a name="acc-baseline-eks-alerts"></a>

 驗證警示後，AMS 會為 Amazon EKS 啟用下列警示，然後為您選取的 Amazon EKS 叢集進行監控和事件管理。服務水準協議 (SLAs) 和服務水準目標 (SLOs回應時間取決於您選擇的帳戶服務層 (Plus、Premium)。如需詳細資訊，請參閱 [AMS Accelerate 中的事件報告和服務請求](https://docs.aws.amazon.com/managedservices/latest/accelerate-guide/acc-supp-ex.html)。

## 提醒和動作
<a name="acc-alerts-and-actions"></a>

下表列出 AMS 採取的 Amazon EKS 警示和個別動作：


| 警示 | 閾值 | 動作 | 
| --- | --- | --- | 
|  容器 OOM 已終止 | 過去 10 分鐘內重新啟動的容器總數至少為 1，且 Pod 中的 Kubernetes 容器已在過去 10 分鐘內因「OOMKilled」而終止。 | AMS 會調查 OOM 刪除是否因為達到容器限制或記憶體超額遞交而導致，然後建議您採取修正動作。 | 
|  Pod 任務失敗 | Kubernetes 任務無法完成。失敗是透過至少有一個失敗的任務狀態來表示。 |  AMS 會調查 Kubernetes 任務或對應 Cron 任務失敗的原因，然後為您提供修正動作的建議。 | 
|  StatefulSet Down | 準備好提供流量的複本數量，與每個 StatefulSet 的現有複本目前數量不符至少 1 分鐘。 |  AMS 透過檢閱 Pod 事件中的錯誤訊息和 Pod 日誌中的錯誤日誌程式碼片段，判斷 Pod 為何未就緒，然後建議您採取修正動作。 | 
|  HPA 擴展功能 | 由於狀態條件「AbleToScale」至少 2 分鐘為 false，Horizontal Pod Autoscaler (HPA) 無法擴展。 |  AMS 會判斷哪些 Kubernetes Horizontal Pod Autoscaler (HPA) 無法為其後續工作負載資源擴展 Pod，例如部署或 StatefulSet。 | 
|  HPA 指標可用性 | 由於狀態條件「ScalingActive」至少 2 分鐘為 false，Horizontal Pod Autoscaler (HPA) 無法收集指標。 |  AMS 會判斷 HPA 為何無法收集指標，例如與伺服器組態問題或 RBAC 授權問題相關的指標。 | 
|  Pod 未就緒 | Kubernetes Pod 會維持在非執行中狀態 （例如待定、未知或失敗） 超過 15 分鐘。 |  AMS 會調查受影響的 Pod (s) 以取得詳細資訊、檢閱 Pod 日誌是否有相關的錯誤和事件，然後為您提供修正動作的建議。 | 
|  Pod 損毀迴圈 | 在 1 小時期間內，Pod 容器至少每 15 分鐘重新啟動一次。 |  AMS 會調查 Pod 未啟動的原因，例如資源不足、另一個容器鎖定的檔案、另一個容器鎖定的資料庫、服務相依性失敗、外部服務的 DNS 問題，以及設定錯誤。 | 
|  Daemonset 排程錯誤 | 至少有一個 Kubernetes Daemonset Pod 在 10 分鐘內排程錯誤。 |  AMS 會判斷為什麼 Daemonset 排程在節點上，而節點不應該執行。當將錯誤的 Pod nodeSelector/taints/affinities 套用到 Daemonset Pod 或節點 （節點集區） 上色且未排定要移出的現有 Pod 時，可能會發生這種情況。 | 
|  Kubernetes API 錯誤 | Kubernetes API 伺服器錯誤率在 2 分鐘內超過 3%。 |  AMS 會分析控制平面日誌，以判斷造成此警示的錯誤數量和類型，並識別主節點或等自動擴展群組的任何資源爭用問題。如果 API 伺服器未復原，AMS 會與 Amazon EKS 服務團隊互動。 | 
|  Kubernetes API 延遲 | 對 Kubernetes API 伺服器提出請求的第 99 個百分位數延遲在 2 分鐘內超過 1 秒。 |  AMS 會分析控制平面日誌，以判斷導致延遲的錯誤數量和類型，並識別主節點或等自動擴展群組的任何資源爭用問題。如果 API 伺服器未復原，AMS 會與 Amazon EKS 服務團隊互動。 | 
|  Kubernetes 用戶端憑證即將到期 | 用於向 Kubernetes API 伺服器進行身分驗證的用戶端憑證將在 24 小時內過期。 |  AMS 會傳送此通知，通知您叢集憑證將在 24 小時內過期。 | 
|  節點未就緒 | 節點「就緒」條件狀態至少為 false 10 分鐘。 |  AMS 會調查節點條件和事件，例如網路問題，以防止 kubelet 存取 API 伺服器。 | 
|  節點高 CPU | CPU 負載在 5 分鐘內超過 80%。 |  AMS 會判斷一或多個 Pod 是否使用異常大量的 CPU。然後，AMS 會與您確認請求、限制和 Pod 活動是否如預期。 | 
|  偵測到節點 OOM 刪除 | 在 4 分鐘的時段內，節點至少會報告一個主機 OOM 刪除。 |  AMS 會判斷 OOM 終止是否因為達到容器限制或節點過度遞交而導致。如果應用程式活動正常，AMS 會建議您提出超額承諾和修訂 Pod 限制的請求和限制。 | 
|  節點連線限制 | 在 5 分鐘內，目前連線追蹤項目數量與上限的比率超過 80%。 |  AMS 建議您了解每個核心的建議連線值。Kubernetes 節點會設定與節點的總記憶體容量成比例的 conntrack 最大值。高負載應用程式，特別是在較小的節點上，可以輕鬆超過連接最大值，導致連線重設和逾時。 | 
|  節點時鐘未同步 | 2 分鐘期間的最小同步狀態為 0，以秒為單位的最大錯誤為 16 或更高。 |  AMS 會判斷網路時間通訊協定 (NTP) 是否已安裝並正常運作。 | 
|  Pod 高 CPU | 容器的 CPU 用量在 3 分鐘的速率內超過 80%，持續至少 2 分鐘。 |  AMS 會調查 Pod 日誌，以判斷耗用大量 CPU 的 Pod 任務。 | 
|  Pod 高記憶體 | 在 2 分鐘內，容器的記憶體用量超過其指定記憶體限制的 80%。 |  AMS 會調查 Pod 日誌，以判斷耗用大量記憶體的 Pod 任務。 | 
|  CoreDNS 關閉 | CoreDNS 已從 Prometheus 目標探索消失超過 15 分鐘。 |  這是一個重要提醒，指出內部或外部叢集服務的網域名稱解析已停止。AMS 會檢查 CoreDNS Pod 的狀態、驗證 CoreDNS 組態、驗證指向 CoreDNS Pod 的 DNS 端點、驗證 CoreDNS 限制，並在您的核准下啟用 CoreDNS 除錯記錄。 | 
|  CoreDNS 錯誤 | CoreDNS 會在 10 分鐘內傳回超過 3% DNS 請求的 SERVFAIL 錯誤。 |  此提醒可能表示應用程式發生問題或組態錯誤。AMS 會檢查 CoreDNS Pod 的狀態、驗證 CoreDNS 組態、驗證指向 CoreDNS Pod 的 DNS 端點、驗證 CoreDNS 限制，並在您的核准下啟用 CoreDNS 除錯記錄。 | 
|  CoreDNS 延遲 | DNS 請求持續時間的第 99 個百分位數超過 4 秒，持續 10 分鐘。 |  此提醒 表示 CoreDNS 可能超載。AMS 會檢查 CoreDNS Pod 的狀態、驗證 CoreDNS 組態、驗證指向 CoreDNS Pod 的 DNS 端點、驗證 CoreDNS 限制，並在您的核准下啟用 CoreDNS 除錯記錄。 | 
| CoreDNS 轉送延遲 | CoreDNS 轉送請求至 kube-dns 的回應時間第 99 個百分位數，在 10 分鐘的期間內超過 4 秒。 |  當 CoreDNS 不是授權伺服器或沒有 Domanin 名稱的快取項目時，CoreDNS 會將 DNS 請求轉送到上游 DNS 伺服器。此提醒表示 CoreDNS 可能過載，或上游 DNS 伺服器可能有問題。AMS 會檢查 CoreDNS Pod 的狀態、驗證 CoreDNS 組態、驗證指向 CoreDNS Pod 的 DNS 端點、驗證 CoreDNS 限制，並在您的核准下啟用 CoreDNS 除錯記錄。 | 
|  CoreDNS 轉送錯誤 | 超過 3% 的 DNS 查詢在 5 分鐘內失敗。 |  當 CoreDNS 不是授權伺服器或沒有 Domanin 名稱的快取項目時，CoreDNS 會將 DNS 請求轉送到上游 DNS 伺服器。此提醒會向上游 DNS 伺服器發出可能組態錯誤或問題訊號。AMS 會檢查 CoreDNS Pod 的狀態、驗證 CoreDNS 組態、驗證指向 CoreDNS Pod 的 DNS 端點、驗證 CoreDNS 限制，並在您的核准下啟用 CoreDNS 除錯記錄。 | 

# AMS Accelerate 中 Amazon EKS 監控和事件管理的需求
<a name="acc-requirements"></a>

這些是 Amazon EKS for AMS Accelerate 監控和事件管理的支援和/或必要資源
+ **支援的 Kubernetes 版本：**請參閱《[Amazon EKS 使用者指南》中的 Amazon EKS Kubernetes 版本](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html)。 ****
+ **節點類型：**支援 Amazon EKS 受管節點。不支援 Windows 節點和容器。
+ **Kubernetes 叢集存取：**AMS 需要 system：masters RBAC 叢集角色和叢集使用者。
+ **Amazon EC2 節點上的 SSM 代理程式：** Bottle Rocket 和 Amazon EKS AMIs 都已預先安裝 SSM 代理程式。請確定您的自訂 AMIs 和 Amazon EC2 節點上安裝 SSM Agent。
+ **Service Quotas** 如需詳細資訊，請參閱 [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP_quotas.html) 和 [Amazon Managed Grafana ](https://docs.aws.amazon.com/grafana/latest/userguide/AMG_quotas.html)的服務配額。
+ **支援 AWS 的區域：**    
<a name="available-regions-table"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/managedservices/latest/accelerate-guide/acc-requirements.html)
**注意**  
af-south-1、非洲 （開普敦） 和 ap-east-1、亞太區域 （香港） 中 Amazon EKS 叢集的指標 AWS 區域分別匯出至相同 中的 AMS 監控服務。然後，這些指標 AWS 區域 會在 AMS 監控服務中傳輸到處理和儲存它們的不同區域。如需 AMS 監控服務用來存放指標的區域，請參閱上表。

# 在 AMS Accelerate 中加入 Amazon EKS 的監控和事件管理
<a name="acc-mon-inc-mgmt-eks-onboarding"></a>

執行下列步驟以加入 Amazon EKS 的監控和事件管理。

1. **啟用 Amazon EKS 成本最佳化標籤：**請參閱《**Amazon EKS 使用者指南**》中的[標記您的資源以進行計費](https://docs.aws.amazon.com/eks/latest/userguide/eks-using-tags.html#tag-resources-for-billing)。

1. **開始加入 EKS 的監控和事件管理：**請聯絡您的 Cloud Service Delivery Manager (CSDM)，其中包含要加入的帳戶 IDs和叢集名稱。

1. **驗證需求：**您的雲端架構師 (CA) 會在加入開始之前驗證是否符合所有[需求](acc-requirements.md)。

1. **更新 Kubernetes 角色型存取控制 (RBAC)：**AMS 會共用`eksctl`命令以實作這些變更。您可以檢閱這些變更，然後部署。您必須部署 RBAC 更新，讓 AMS 具有代表您執行命令的許可。這些更新包括將 AMS IAM 角色映射至 Kubernetes 使用者、為 AMS 建立新的 Kubernetes 叢集角色，以及將 AMS Kubernetes 叢集角色繫結至使用者。

1. **部署叢集元件：**AMS 會在叢集上的 AMS 受管命名空間中部署下列元件：
   + Prometheus 伺服器
   + Prometheus 節點匯出工具 （不適用於 AWS Fargate)
   + kube-state-metrics

1. **執行 Prometheus 組態更新：**AMS 設定 Prometheus 為指標啟用遠端寫入。

1. **（選用） 設定儀表板：**您的 CA 可協助您在帳戶中設定 Amazon Managed Grafana 儀表板。

**注意**  
加入 Amazon EKS 叢集之後，AMS 會分析警示訊號並執行基準評估，以識別叢集中現有的問題。基準評估完成後，AMS 會透過 Trusted Advisor 分享問題清單和修復建議，以及可用來解決叢集問題的服務請求。從評估中，AMS 會調整我們的帳戶層級警示閾值，以建立 EKS 叢集專屬的 Amazon EKS 監控基準。為了消除這些調查結果的重複 AMS 回應，我們調整監控以排除這些警示訊號。我們會重新調整監控，以在 CSDM 通知我們基礎問題已修復時包含訊號。

# AMS Accelerate 中的 Amazon EKS 監控和事件管理離線
<a name="acc-mon-inc-mgmt-eks-offboarding"></a>

使用帳戶 IDs和叢集名稱通知雲端服務交付管理員 (CSDM)，以開始離職程序。在您離職後，系統會暫停警示處理、指標儲存和指標查詢，並根據預設[的 Amazon Managed Service for Prometheus 資料保留政策](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP_quotas.html)刪除指標。

AMS 會執行下列離職步驟：



1. AMS 會停用傳送給您和 AMS Operations 的提醒。

1. AMS 會從 Amazon EKS 叢集中移除 Prometheus 執行個體。

1. AMS 會移除您帳戶中安裝的其他 AWS 資源，例如 IAM 角色和 AWS Config 規則。

完成這些步驟後，您必須完成下列離職步驟：

1. 使用 從 `eksctl`移除 Kubernetes RBAC `aws-auth` 許可`ConfigMap`。

1. 如果您先前已安裝，請移除您設定為連線至 AMS 的 Amazon Managed Grafana 執行個體。