

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

# 在 Amazon EKS 中監控
<a name="monitoring"></a>

在 Amazon EKS 中監控 可讓您深入了解 Kubernetes 工作負載的運作狀態、效能和安全性。如果沒有適當的監控，您會面臨服務中斷、安全漏洞，以及可能影響業務營運和增加成本的低效率資源使用率的風險。有效的監控可讓您主動識別和解決問題、最佳化資源用量，以及維持容器化應用程式的合規要求。透過實作全方位的監控解決方案，您可以確保高可用性、及早偵測異常狀況，並針對擴展和改善 Amazon EKS 基礎設施做出資料驅動型決策。

本節探討 Amazon EKS 監控的各個層面，包括不同的監控類型、可用的工具和最佳實務，以協助您為 Kubernetes 環境建置強大的監控策略。

**Topics**
+ [監控類型](monitoring-types.md)
+ [工具](monitoring-tools.md)
+ [實作高可用性](monitoring-ha-setup.md)
+ [最佳實務](monitoring-best-practices.md)
+ [進階考量](monitoring-considerations.md)

# Amazon EKS 中的監控類型
<a name="monitoring-types"></a>

Amazon EKS 中的有效可觀測性涉及基礎設施、應用程式和安全監控活動。

## 基礎設施監控
<a name="infrastructure"></a>

基礎設施監控是 Amazon EKS 可觀測性的基本元件，可讓您深入了解 Kubernetes 叢集基礎元素的運作狀態和效能。其核心涉及追蹤控制平面元件和工作者節點的生命體徵，並確保基礎平台保持穩定和高效。
+ **控制平面監控**至關重要，因為它會監督 API 伺服器、等資料庫和排程器等關鍵元件。透過監控 API 伺服器延遲，您可以快速識別可能影響應用程式部署或擴展操作的效能瓶頸。Etcd 效能監控會驗證叢集的狀態資料庫是否有效運作，並防止可能影響整個叢集的資料一致性問題。
+ **節點層級監控**同樣重要，因為它專注於執行容器化工作負載的運算資源。這包括追蹤 CPU 使用率、記憶體消耗量、磁碟 I/O，以及所有工作者節點的網路效能。了解這些指標有助於防止資源耗盡、最佳化節點擴展決策，並確保適當的容量規劃。
+ **網路監控**在維持 Pod、服務和外部資源之間的可靠通訊中扮演重要角色。透過監控網路輸送量、延遲和連線狀態，您可以及早識別連線問題，並確保順暢的應用程式通訊。儲存監控透過追蹤磁碟區效能、容量使用率和 I/O 模式來補充網路監控，以協助防止資料相關的瓶頸。

基礎設施監控可做為潛在問題的早期警告系統，啟用主動維護，並確保最佳資源配置。如果沒有強大的基礎設施監控，您會面臨意外停機時間、效能降低和資源使用效率低落的風險，這可能會大幅影響業務營運和成本。

## 應用程式監控
<a name="application"></a>

應用程式監控對於在您的 Amazon EKS 環境中維護運作狀態良好、效能良好且可靠的容器化應用程式至關重要。此監控層級著重於叢集內實際執行的工作負載，並提供應用程式如何運作、執行和與其他 服務互動的重要洞見。

應用程式監控包括容器層級監控、服務層級監控和分散式追蹤。
+ 在**容器層級**，應用程式監控會追蹤重要指標，例如容器運作狀態、重新啟動計數和資源耗用模式。這些指標可協助您識別可能耗用過多資源或經常重新啟動的問題容器，這可能表示潛在的問題，例如記憶體流失或組態問題。透過監控容器生命週期事件，您可以確保適當的應用程式行為，並快速疑難排解部署問題。
+ **服務層級監控**提供應用程式效能和可靠性指標的可見性，例如回應時間、錯誤率和請求輸送量。這些指標對於維護服務層級目標 (SLOs) 並確保正面的最終使用者體驗至關重要。您可以追蹤不同服務端點的延遲、識別效能瓶頸，以及監控錯誤模式以維護應用程式可靠性。
+ **分散式追蹤**是應用程式監控的另一個關鍵層面，特別是在微服務架構中。透過實作追蹤，您可以在請求通過不同服務時遵循請求、了解相依性，並識別效能瓶頸。這種end-to-end可見性可協助您最佳化服務互動，並針對跨越多個元件的複雜問題進行疑難排解。

自訂應用程式指標在提供業務特定洞見方面扮演重要角色。這些可能包括訂單處理率、使用者登入頻率或交易成功率等指標。您可以將這些自訂指標與基礎設施和容器指標建立關聯，以更加了解基礎設施效能如何影響業務營運，並做出資料驅動的擴展和最佳化決策。

應用程式監控的重要性在於能夠提供應用程式運作狀態和效能的完整檢視。此監控可讓您維持高品質服務、快速解決問題，並持續最佳化您的應用程式以符合業務目標。

## 安全監控
<a name="security"></a>

Amazon EKS 中的安全監控是一項關鍵活動，可協助組織維護其 Kubernetes 環境的完整性、機密性和合規性。這種全面的安全方法結合了持續監控、威脅偵測和合規監控，以保護容器化工作負載免受潛在的安全風險和未經授權的存取。它包括身分驗證和授權監控、網路安全監控，以及組態和合規監控。
+ **身分驗證和授權監控**會追蹤所有存取叢集的嘗試，形成第一道防線。這包括監控 API 伺服器請求、追蹤成功和失敗的登入嘗試，以及稽核角色型存取控制 (RBAC) 變更。透過維護存取哪些資源和何時存取的詳細稽核日誌，您可以快速偵測潛在的安全漏洞、未經授權的存取嘗試或權限提升活動。這在維護嚴格存取控制至關重要的多租戶環境中尤為重要。
+ **網路安全監控**著重於偵測和防止 Pod 和服務之間未經授權的通訊。透過監控網路政策違規和不尋常的流量模式，您可以識別潛在的安全威脅，例如容器逸出嘗試或叢集內的橫向移動。這包括同時追蹤內部叢集通訊和外部流量模式，以確保容器僅與授權端點通訊，並遵循定義的安全政策。
+ **組態和合規監控**對於維護安全基準和滿足法規要求至關重要。它涉及持續掃描容器映像是否有漏洞、監控執行期安全性，以及追蹤可能影響安全性狀態的組態變更。定期合規稽核可確保遵守產業標準和組織安全政策，而組態偏離偵測有助於防止可能導致安全風險的未經授權變更。

Amazon EKS 中的安全監控提供必要的可見性和控制，以協助防範現代安全威脅，同時確保符合法規要求。透過實作全面的安全監控，您的組織可以維持強大的安全狀態、快速回應安全事件，並證明符合各種法規標準。

# Amazon EKS 的監控工具
<a name="monitoring-tools"></a>

本節討論三種 Amazon EKS 監控工具： AWS 監控服務、開放原始碼或專屬解決方案，以及專用工具。

## AWS 服務
<a name="monitoring-services"></a>
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)：全方位監控和記錄服務

  CloudWatch 構成 AWS 監控解決方案的骨幹，並為 Amazon EKS 環境提供廣泛的功能。它為精細容器和叢集指標提供 Container Insights，因此您可以監控效能、資源使用率和應用程式運作狀態。服務在日誌彙總和分析方面表現卓越，並支援跨容器和節點的集中式記錄。CloudWatch 自然與 整合 AWS 服務。它提供自動化警示組態，並支援自訂指標和儀表板，這使得它成為 Amazon EKS 監控的必要工具。
+ [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)：進階分散式追蹤平台

  X-Ray 透過提供複雜的分散式追蹤功能來提升可觀測性。其服務地圖視覺化提供應用程式架構和相依性的清晰洞見，詳細的請求追蹤有助於識別跨服務的效能瓶頸。X-Ray 可以透過複雜的微服務架構追蹤請求，這使得它對於疑難排解和最佳化非常寶貴，尤其是在跨越多個 的分散式系統中 AWS 服務。
+ [AWS Distro for OpenTelemetry](https://aws-otel.github.io/)：統一可觀測性架構

  Distro for OpenTelemetry 提供統一的資料收集功能與跨平台支援，因此非常適合混合環境。此服務與其他 整合 AWS 服務，支援自訂檢測，並提供實作全方位監控解決方案的彈性，同時維持與業界標準的相容性。
+ [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)：企業級視覺化

  Amazon Managed Grafana 為資料視覺化和分析提供全受管服務。它提供與其他 AWS 服務內建安全功能的無縫整合，以及企業級可擴展性。服務可簡化儀表板的建立和管理，同時提供進階功能，例如跨帳戶資料來源存取和與 的整合 AWS IAM Identity Center。
+ [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html)：高可用性、安全、受管監控

  Amazon Managed Service for Prometheus 是一種全受管、與 Prometheus 相容的監控服務。它提供自動化擴展、高可用性和安全指標擷取和查詢。此服務與 Amazon EKS 無縫整合，並消除管理 Prometheus 伺服器的操作開銷。

## 開放原始碼或專屬解決方案
<a name="monitoring-open-source"></a>

上一節所述的 AWS 工具提供無縫整合和受管服務。本節中列出的開放原始碼工具透過提供彈性和廣泛的自訂選項 AWS 服務 來補充 。了解每個工具的功能和使用案例，可協助您設計最符合您特定需求的監控策略。
+ [Prometheus](https://docs.aws.amazon.com/eks/latest/userguide/deploy-prometheus.html)：指標收集工具組

  Prometheus 是在 Kubernetes 環境中收集指標的開放原始碼解決方案。其時間序列資料庫和 PromQL 查詢語言可實現複雜的指標分析。平台的服務探索功能會自動適應動態 Kubernetes 環境，其警示管理系統可讓您隨時掌握重大問題。Prometheus 提供廣泛的整合選項，使其成為全面指標監控的多樣化選擇。
+ [Grafana](https://grafana.com/docs/grafana-cloud/monitor-infrastructure/kubernetes-monitoring/configuration/config-other-methods/config-aws-eks/)：進階視覺化引擎

  Grafana 透過其視覺化功能，將複雜的監控資料轉換為可行的洞見。平台會建立自訂儀表板，結合來自多個來源的資料，並提供基礎設施和應用程式指標的統一檢視。其支援各種資料來源和警示管理功能，可提供全方位的監控。Grafana 可協助您視覺化即時和歷史資料，以便識別趨勢並做出明智的決策。
+ [Fluent Bit](https://fluentbit.io/)：統一記錄層

  此記錄解決方案提供 Kubernetes 環境的日誌收集和管理。其原生 Kubernetes 整合可確保從容器和節點無縫收集日誌，而其對多個輸出目的地的支援可提供日誌儲存和分析的彈性。日誌剖析和篩選等進階功能可讓您根據特定需求處理和路由日誌。Fluent Bit 的輕量性質使其特別適合容器化環境。
+ [Datadog](https://www.datadoghq.com/blog/eks-monitoring-datadog/)：全堆疊可觀測性

  Datadog 提供具有原生 Kubernetes 支援的全方位監控功能。它提供基礎設施監控、應用程式效能監控 (APM)、日誌管理和即時分析。您可以使用平台的自動服務探索和廣泛的整合目錄進行 Amazon EKS 監控，以及其機器學習功能來偵測異常並預測潛在問題。
+ [新複本](https://docs.newrelic.com/docs/infrastructure/amazon-integrations/connect/eks-add-on/)：應用程式效能監控

  New Relic 提供應用程式效能和基礎設施運作狀態的可見性。其 Kubernetes 整合提供詳細的容器洞見、分散式追蹤和自訂儀表板。平台可協助您將應用程式效能與基礎設施指標相互關聯，因此您可以快速識別並解決問題。
+ [Elastic Stack (ELK Stack)](https://aws.amazon.com/opensearch-service/resources/the-benefits-of-the-elk-stack/)：日誌分析和搜尋

  ELK Stack 結合了 Elasticsearch、Logstash 和 Kibana，以提供日誌管理和分析功能。它提供進階搜尋功能、視覺化工具和機器學習功能。您可以使用 堆疊來處理來自 Amazon EKS 環境的大量日誌資料。

## 專用工具
<a name="monitoring-special"></a>

您可以根據您的特定監控需求、操作規模和組織偏好設定，混合和比對下列工具。關鍵是建立監控堆疊，提供全面的可見性，同時保持可管理且符合成本效益。
+ [kube-state-metrics (KSM)](https://github.com/kubernetes/kube-state-metrics)：Kubernetes 狀態監控

  此附加元件服務會接聽 Kubernetes API 伺服器，並產生物件狀態的指標。它提供部署、Pod 和其他 Kubernetes 資源運作狀態的洞見。
+ [Kubernetes 指標伺服器](https://docs.aws.amazon.com/eks/latest/userguide/metrics-server.html)：資源指標

  此指標伺服器會從 kubelet 收集資源指標，並透過 Kubernetes 指標 API 公開它們。它提供水平 Pod 自動擴展和基本 CPU 和記憶體指標。
+ [Kubecost](https://github.com/kubecost/cost-analyzer-helm-chart)：Kubernetes 成本監控

  Kubecost 等工具為 EKS 叢集提供詳細的成本分析和最佳化建議。它們可協助您了解和最佳化不同命名空間、部署和服務之間的雲端支出。

# 實作 Amazon EKS 監控解決方案的高可用性
<a name="monitoring-ha-setup"></a>

Amazon EKS 監控的強大高可用性 (HA) 策略對於確保 Kubernetes 環境的持續可見性至關重要。本節討論在監控基礎設施的不同層面實作 HA 的完整方法。

## 架構備援和可擴展性
<a name="architecture"></a>

建置高可用性的監控系統從適當的架構設計開始。監控元件應分散到多個 AWS 可用區域，以防止區域故障。這包括為 Prometheus 伺服器、日誌收集器和警示管理員等關鍵監控元件實作水平擴展。您可以使用 Amazon Managed Service for Prometheus 和 Amazon Managed Grafana 等 AWS 受管服務，協助降低營運開銷，同時確保高可用性。設定自動容錯移轉機制，以在元件故障期間維持服務連續性，並實施運作狀態檢查和自動復原程序。

## 彈性資料儲存策略
<a name="data-storage"></a>

資料儲存彈性是維護監控系統可靠性的基礎。實作分散式儲存解決方案可確保即使個別儲存節點故障，指標資料和日誌仍可存取。這包括跨多個可用區域設定適當的資料複寫，以及使用不同的儲存後端進行備援。為歷史資料建立定期備份程序，並針對各種失敗案例記錄復原程序。對於 Prometheus 等時間序列資料庫，實作遠端儲存解決方案有助於將儲存考量與資料收集分開，並改善整體系統可靠性。

## 備援提醒管理
<a name="alert-mgmt"></a>

警示管理需要特別注意 HA 設定。部署備援警示管理員可確保即使在系統故障期間，重要通知仍可送達預期的收件人。設定多個通知管道，例如電子郵件、簡訊、Slack 和 PagerDuty，以提供替代通訊路徑。使用警示重複資料刪除機制，以防止在部分系統故障期間產生警示風暴，以及確保永遠不會遺漏關鍵警示的備用通知方法。實作警示相互關聯有助於在容錯移轉案例期間維護內容，並防止來自備援系統的重複通知。

## 負載平衡和服務探索
<a name="load-balancing"></a>

適當的負載平衡對於維持穩定的監控服務至關重要。 AWS Application Load Balancer 會將傳入監控流量分配到多個端點，運作狀態檢查可確保流量只會路由至運作狀態良好的執行個體。服務探索機制可協助監控元件自動適應環境中的變更，例如新增節點或服務。使用 DaemonSets 在所有節點上一致地部署監控代理程式，以確保隨著叢集擴展而全面涵蓋範圍。

## 其他 HA 考量事項
<a name="ha-considerations"></a>

網路彈性：
+ 實作備援網路路徑。
+ 跨可用區域設定適當的子網路設計。
+ [AWS Direct Connect](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/aws-direct-connect.html) 搭配備份路由使用 。
+ 設定適當的安全群組和網路存取控制清單 （網路 ACLs)。

監控監視器：
+ 部署次要監控系統。
+ 實作跨區域監控。
+ 設定無回應系統的提醒。
+ 定期測試容錯移轉程序。

容量規劃：
+ 監控資源用量趨勢。
+ 實作預測擴展。
+ 定期測試效能。

資料管理：
+ 實作資料保留政策。
+ 設定指標彙總。
+ 規劃資料生命週期管理。
+ 定期最佳化儲存體。

復原程序：
+ 文件復原程序。
+ 定期測試災難復原。
+ 盡可能實作自動化復原。
+ 識別並實作明確的呈報路徑。

透過實作這些高可用性實務，您可以確保 Amazon EKS 監控基礎設施保持可靠性和彈性，即使在各種故障情況下，也能持續了解 Kubernetes 環境。這些 HA 組態的定期測試和更新可確保它們在環境演進時保持有效。

# 在 Amazon EKS 中監控的最佳實務
<a name="monitoring-best-practices"></a>

## 策略實作方法
<a name="implementation"></a>

成功的 Amazon EKS 監控策略從規劃良好的分階段實作方法開始。
+ 首先識別和監控直接影響業務營運和應用程式可靠性的關鍵指標。此基礎應包含基本基礎設施指標、關鍵應用程式效能指標和關鍵安全性指標。根據營運需求和經驗教訓逐漸擴展監控涵蓋範圍，並確保每個新增項目都提供有意義的價值。
+ 使用基礎設施即程式碼 (IaC) 工具，例如 Terraform 或 來實作自動化部署程序 CloudFormation ，以確保一致性和可重複性。
+ 測試和驗證監控系統，以協助維持可靠性和準確性。
+ 持續精簡監控參數，以符合不斷變化的業務需求。

## 有效的資料管理
<a name="data-mgmt"></a>

適當的資料管理對於維護高效且符合成本效益的監控解決方案至關重要。
+ 實作明確的資料保留政策，在歷史分析需求與儲存成本之間取得平衡。
+ 針對不同的指標類型設定適當的取樣率：關鍵指標的頻率較高，較不關鍵指標的頻率較低。
+ 使用指標彙總來減少資料量，同時保持有意義的洞察，尤其是長期趨勢分析。
+ 實作集中式記錄系統 （例如 CloudWatch Logs) 的系統性日誌保留和封存程序，以管理儲存成本並保持對重要資料的存取。
**注意**  
Amazon EKS 1.21 版或更新版本中的 kubelet 會自動處理容器層級日誌輪換。
+ 考慮為日誌儲存實作hot-warm-cold架構，以最佳化存取速度和成本效益。

## 警示組態和管理
<a name="alert-config"></a>

警示組態需要仔細考慮以維持有效性，而不會造成警示疲勞。
+ 根據服務水準目標 (SLOs) 和歷史效能模式，定義明確、可行的閾值。
+ 實作分層警示嚴重性系統，以清楚區分需要立即關注的關鍵問題，以及較不緊急的問題。
+ 確保提醒提供足夠的內容和可行的資訊，以便快速解決問題。
+ 建立明確的呈報程序，並定義不同警示嚴重性的擁有權和回應時間。
+ 定期檢閱和精簡警示組態，以協助維持其相關性和有效性。

## 資源最佳化
<a name="resource"></a>

持續監控資源使用率對於維護具成本效益的操作至關重要。
+ 在所有叢集元件中實作全面的資源監控，包括節點、Pod 和持久性磁碟區。
+ 根據實際使用模式和效能需求設定自動擴展，以確保有效率的資源使用率，同時維持效能。
+ 使用成本分配標籤來追蹤不同團隊、應用程式或環境的資源耗用量。
+ 定期分析資源效率指標，以識別最佳化機會並實作改善。
+ 考慮實作成本管理工具來追蹤和最佳化雲端支出。

## 安全
<a name="security"></a>

安全考量應該是監控策略不可或缺的一部分。
+ 為所有監控元件實作[最低權限存取原則](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_permissions_least_privileges.html)，以確保使用者和服務只有他們所需的許可。
+ 啟用全面的稽核記錄，以追蹤監控系統的所有存取和變更。
+ 定期執行監控組態和存取模式的安全審查，以識別潛在的漏洞。
+ 對傳輸中和靜態的敏感監控資料實作加密。
+ 整合安全性監控與現有的安全性資訊和事件管理 (SIEM) 系統，以獲得全面的安全性可見性。

# Amazon EKS 中的進階監控考量事項
<a name="monitoring-considerations"></a>

效能最佳化：
+ 最佳化指標收集間隔。
+ 設定有效率的查詢模式。
+ 實作指標預先彙總。
+ 使用適當的儲存解決方案。

合規與控管：
+ 維護稽核線索。
+ 實作合規監控。
+ 提供定期合規報告。
+ 文件監控程序。

災難復原：
+ 定期備份監控組態。
+ 文件復原程序。
+ 測試復原程序。

持續改進：
+ 定期監控檢閱工作階段。
+ 最佳化效能週期。
+ 根據事件更新監控。
+ 納入使用者意見回饋。

這些最佳實務提供架構，以實作和維護 Amazon EKS 環境的有效監控解決方案。定期檢閱和更新這些實務，使其與您的組織需求和業界標準保持一致。監控不是一次性設定，而是需要定期關注和改進的持續程序。