本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon CloudWatch 設計和實作記錄和監控
Khurram Nizami,Amazon Web Services (AWS)
2023 年 4 月 (文件歷史記錄)
本指南可協助您針對使用 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體、Amazon Elastic Container Service (Amazon ECS)、Amazon Elastic Kubernetes Service (Amazon EKS)、 和內部部署伺服器的工作負載,使用 Amazon CloudWatch 和相關的 Amazon Web Services () 管理和控管服務來設計和實作記錄和監控。AWSAmazon EC2 https://docs.aws.amazon.com//AmazonECS/latest/developerguide/Welcome.html AWS Lambda 本指南適用於在 AWS 雲端管理工作負載的營運團隊、DevOps 工程師和應用程式工程師。
您的記錄和監控方法應以 AWS Well-Architected Framework 的六個支柱
本指南不會廣泛討論安全性或成本最佳化的記錄和監控,因為這些是需要深入評估的主題。有許多 AWS 服務支援安全記錄和監控,包括 AWS CloudTrail、AWS Config、Amazon Inspector、Amazon Detective、Amazon Macie、Amazon GuardDuty 和 AWS Security Hub CSPM。您也可以使用 AWS Cost Explorer、 AWS Budgets和 CloudWatch 帳單指標進行成本最佳化。
下表概述記錄和監控解決方案應處理的六個區域。
| 擷取和擷取日誌檔案和指標 | 識別、設定系統和應用程式日誌和指標 AWS ,並將其傳送至來自不同來源的服務。 |
| 搜尋和分析日誌 | 搜尋和分析 日誌以進行操作管理、問題識別、故障診斷和應用程式分析。 |
| 監控指標和警示 | 識別工作負載中的觀察和趨勢並對其採取行動。 |
| 監控應用程式和服務可用性 | 透過持續監控服務可用性,減少停機時間並改善您達到服務水準目標的能力。 |
| 追蹤應用程式 | 追蹤系統和外部相依性中的應用程式請求,以微調效能、執行根本原因分析,以及疑難排解問題。 |
| 建立儀表板和視覺化 | 建立專注於系統和工作負載相關指標和觀察的儀表板,這有助於持續改善和主動發現問題。 |
CloudWatch 可以滿足大多數的記錄和監控需求,並提供可靠、可擴展且靈活的解決方案。除了用於監控和分析的 CloudWatch 記錄整合之外,許多 AWS 服務也會自動提供 CloudWatch 指標。CloudWatch 也提供代理程式和日誌驅動程式,以支援各種運算選項,例如伺服器 (雲端和內部部署)、容器和無伺服器運算。本指南也涵蓋下列用於記錄和監控 AWS 的服務:
-
AWS Systems Manager Distributor、Systems Manager State Manager 和 Systems Manager Automation 可自動化、設定和更新 EC2 執行個體和內部部署伺服器的 CloudWatch 代理程式
-
Amazon OpenSearch Service 用於進階日誌彙總、搜尋和分析
-
Amazon Route 53 運作狀態檢查和 CloudWatch Synthetics 來監控應用程式和服務可用性
-
Amazon Managed Service for Prometheus 用於大規模監控容器化應用程式
-
AWS X-Ray 用於應用程式追蹤和執行時間分析
-
Amazon Managed Grafana 可視覺化和分析來自多個來源的資料 (例如 CloudWatch、Amazon OpenSearch Service 和 Amazon Timestream)
您選擇的 AWS 運算服務也會影響記錄和監控解決方案的實作和組態。例如,Amazon EC2、Amazon ECS、Amazon EKS 和 Lambda 的 CloudWatch 實作和組態不同。
應用程式和工作負載擁有者通常會忘記記錄和監控,或是設定和實作不一致。這表示工作負載進入生產時可觀測性有限,這會導致識別問題的延遲,並增加故障診斷和解決這些問題所需的時間。您的記錄和監控解決方案至少必須解決作業系統 (OS) 層級日誌和指標的系統層,以及應用程式日誌和指標的應用程式層。本指南提供建議的方法,以解決不同運算類型的這兩個層,包括下表中概述的三種運算類型。
| 長時間執行和不可變的 EC2 執行個體 | 在多個 AWS 區域或帳戶中跨多個作業系統 OSs) 的系統和應用程式日誌和指標。 |
| 容器 | Amazon ECS 和 Amazon EKS 叢集的系統與應用程式日誌和指標,包括不同組態的範例。 |
| 無伺服器 | Lambda 函數的系統與應用程式日誌和指標,以及自訂的考量。 |
本指南提供記錄和監控解決方案,以解決 CloudWatch 和下列領域的相關 AWS 服務:
-
規劃 CloudWatch 部署 – 規劃 CloudWatch 部署的考量事項,以及集中 CloudWatch 組態的指導方針。
-
為 EC2 執行個體和內部部署伺服器設定 CloudWatch 代理程式 – 系統層級和應用程式層級記錄和指標的 CloudWatch 組態詳細資訊。
-
Amazon EC2 和內部部署伺服器的 CloudWatch 代理程式安裝方法 – 安裝 CloudWatch 代理程式的方法,包括跨多個區域和帳戶使用 Systems Manager 自動部署。
-
在 Amazon ECS 上記錄和監控 – Amazon ECS 中針對叢集層級和應用程式層級記錄和指標設定 CloudWatch 的指引。
-
在 Amazon EKS 上記錄和監控 – 在 Amazon EKS 中為叢集層級和應用程式層級記錄和指標設定 CloudWatch 的指引。
-
Amazon EKS 上的 Prometheus 監控 – 介紹並比較 Amazon Managed Service for Prometheus 與 Prometheus 的 CloudWatch Container Insights 監控。
-
的記錄和指標 AWS Lambda – 為您的 Lambda 函數設定 CloudWatch 的指引。
-
搜尋和分析 CloudWatch 中的日誌 – 使用 Amazon CloudWatch Application Insights、CloudWatch Logs Insights 分析日誌,以及將日誌分析擴展至 Amazon OpenSearch Service 的方法。
-
使用 CloudWatch 的警示選項 – 推出 CloudWatch 警示和 CloudWatch 異常偵測,並提供警示建立和設定的指引。
-
監控應用程式和服務可用性 – 介紹並比較 CloudWatch Synthetics 和 Route 53 運作狀態檢查,以進行自動可用性監控。
-
使用 追蹤應用程式 AWS X-Ray – 使用 X-Ray for Amazon EC2、Amazon ECS、Amazon EKS 和 Lambda 進行應用程式追蹤的簡介和設定
-
使用 CloudWatch 的儀表板和視覺化 – CloudWatch Dashboards 簡介,可改善 AWS 工作負載的可觀測性。
-
CloudWatch 與 AWS 服務的整合 – 說明 CloudWatch 如何與各種 AWS 服務整合。
-
用於儀表板和視覺化的 Amazon Managed Grafana – 介紹並比較 Amazon Managed Grafana 與 CloudWatch 的儀表板和視覺化。
本指南中會針對這些領域使用實作範例,也可以從AWS 範例 GitHub 儲存庫