REL 6: 如何監控工作負載資源?
日誌和指標是深入了解工作負載運作狀態的強大工具。您可以設定工作負載以監控日誌和指標,並在超過閾值或發生重大事件時傳送通知。監控可讓您的工作負載識別何時會超過低效能閾值或發生故障,以便自動復原來回應。
資源
Using Amazon CloudWatch Metrics
Publishing Custom Metrics
Using Amazon CloudWatch Dashboards
Using Canaries (Amazon CloudWatch Synthetics)
Amazon CloudWatch Logs Insights Sample Queries
AWS Systems Manager Automation
What is AWS X-Ray?
Debugging with Amazon CloudWatch Synthetics and AWS X-Ray
The Amazon Builders' Library: Instrumenting distributed systems for operational visibility
最佳實務:
-
監控工作負載的所有元件 (產生): 使用 Amazon CloudWatch 或第三方工具監控工作負載的元件。使用 Personal Health Dashboard 監控 AWS 服務
-
定義和計算指標 (彙總): 視需要儲存日誌資料並套用篩選條件以計算指標,例如特定日誌事件的計數,或是從日誌事件時間戳記計算的延遲
-
傳送通知 (即時處理和警示): 當重大事件發生時,需要知道的組織會收到通知
-
自動化回應 (即時處理和警示): 當偵測到事件時,使用自動化來採取措施,例如更換故障元件
-
儲存與分析: 收集日誌檔和指標歷史記錄,並分析這些檔案和歷史記錄,以瞭解更廣泛的趨勢和工作負載洞見
-
定期進行審查: 經常審查工作負載監控的實作方式,並根據重大事件和變更進行更新
-
透過您的系統監控請求的端對端追蹤: 使用 AWS X-Ray 或第三方工具,讓開發人員能夠更輕鬆地分析和偵錯分散式系統,以瞭解其應用程式及其基礎服務的執行成效。
改進方案
監控工作負載的所有元件 (產生)
- 定義您正在使用的所有 AWS 服務
- 為所有服務啟用記錄: AWS 在許多服務中提供記錄功能。如果某個服務沒有您想要等級的記錄功能,則可以從工作負載中新增記錄功能
- 啟用 Amazon S3 的記錄功能
Amazon S3 Server Access Logging - 啟用 Elastic Load Balancing 的記錄
Access logs for your application load balancer
Access Logs for Your Network Load Balancer
Enable Access Logs for Your Classic Load Balancer - 啟用 VPC Flow Logs
VPC Flow Logs - 啟用 CloudTrail 日誌
Creating a trail - 使用 Amazon CloudWatch Agent 將日誌資料從執行個體串流到 CloudWatch Logs
Install the CloudWatch agent on an Amazon EC2 instance - 使用 awslogs 日誌驅動程式搭配 Amazon ECS 將日誌資料串流到 CloudWatch Logs
Using CloudWatch Logs with container instances - AWS Lambda 自動將日誌資料串流到 CloudWatch Logs
Accessing Amazon CloudWatch Logs for AWS Lambda
- 啟用 Amazon S3 的記錄功能
AWS Services That Publish CloudWatch Metrics
- 指標可以單獨評估,也可以彙總評估
- 轉到 CloudWatch 主控台並瀏覽收集的指標
- 請參考文件以了解收集了哪些指標和維度
Amazon CloudWatch Logs Insights Sample Queries
Publish custom metrics
- 如果需要記憶體使用或磁碟消耗資訊,請使用 CloudWatch Agent 或 PutMetricData API
Monitoring memory and disk metrics for Amazon EC2 linux instances
- 將 CloudWatch Logs 用於常見日誌檔案
- 您可以將 CloudWatch Logs 用於大多數常見的日誌彙總使用案例
What are Amazon CloudWatch Logs?
- 您可以將 CloudWatch Logs 用於大多數常見的日誌彙總使用案例
- 將所有日誌儲存在 Amazon S3 或 Amazon S3 Glacier 中以進行長期儲存
- 您可以將 CloudWatch Logs 匯出至 Amazon S3。CloudTrail 和 Elastic Load Balancing 日誌將傳送到 Amazon
S3
Exporting log data to Amazon S3
- 您可以將 CloudWatch Logs 匯出至 Amazon S3。CloudTrail 和 Elastic Load Balancing 日誌將傳送到 Amazon
S3
定義和計算指標 (彙總)
- 指標篩選條件會定義術語與模式,以在傳送到 CloudWatch Logs 的日誌資料中尋找資料。CloudWatch Logs 使用這些指標篩選條件,將日誌資料轉成數值
CloudWatch 指標,讓您可以對其繪製圖表或設定警示
Searching and Filtering Log Data - 使用受信任的第三方來彙總日誌
- 請遵循第三方的指示。多數第三方產品可與 CloudWatch 和 Amazon S3 整合
- 有些 AWS 服務可以直接將日誌發佈到 Amazon S3。如此一來,如果您的日誌主要需求是儲存在 Amazon S3 中,則可以輕鬆讓產生日誌的服務直接將它們傳送到
Amazon S3,無須設定其他基礎設施
Sending Logs Directly to Amazon S3
傳送通知 (即時處理和警示)
- Amazon CloudWatch 儀表板是 CloudWatch 主控台中的可自訂首頁,您可用來在單一檢視中監控資源,甚至是監控分散在不同區域的資源
Using Amazon CloudWatch Dashboards - 當指標超過限制時建立警示
Using Amazon CloudWatch Alarms
自動化回應 (即時處理和警示)
AWS Systems Manager Automation
- 建立和使用 Systems Manager Automation 文件。當自動化執行運作時,這些會定義 Systems Manager 在受管執行個體和其他 AWS
資源上執行的動作
Working with Automation Documents (Playbooks)
Creating an EventBridge Rule That Triggers on an Event from an AWS Resource
- 清查您的所有提醒回應程序: 您必須先規劃提醒回應,再將任務排名
- 以必須採取的特定動作清查所有任務: 這些動作大多記錄在執行手冊中。您也必須擁有適用於意外事件提醒的程序手冊
- 檢查所有適用於自動化動作的執行手冊和程序手冊: 一般而言,如果某個動作可以受到定義,則很可能可以進行自動化
- 將容易出錯或耗時的活動排在第一位: 移除錯誤來源並縮短解決時間是最有益的
- 建立完成自動化的計畫: 維護作用中的計畫以自動化和更新自動化
- 檢查自動化機會的手動需求: 挑戰您的手動程序,以找出自動化的機會
儲存與分析
Analyzing Log Data with CloudWatch Logs Insights
Amazon CloudWatch Logs Insights Sample Queries
How do I analyze my Amazon S3 server access logs using Athena?
- 為您的伺服器存取日誌儲存貯體建立 S3 生命週期政策。設定生命週期政策以定期移除日誌檔案。這樣做可減少 Athena 針對每個查詢所分析的資料量
How Do I Create a Lifecycle Policy for an S3 Bucket?
定期進行審查
Using Amazon CloudWatch Dashboards
- 檢查指標中的趨勢: 比較指標值與歷史值,以查看是否有可能指出某項需要調查的趨勢。這些範例包括:增加延遲、減少主要業務功能,以及增加失敗回應
- 檢查指標中的異常值/異常: 平均值或中位數可以遮罩異常值。查看時間範圍內的最高和最低值,並調查極端分數的原因。隨著您持續消除這些原因,降低極端的定義可讓您持續改善工作負載效能的一致性
- 尋找行為中的急劇變化: 指標的數量或方向立即變更,可能表示應用程式有所變更,或您可能需要新增其他指標以追蹤的外部因素
透過您的系統監控請求的端對端追蹤
What is AWS X-Ray?
Debugging with Amazon CloudWatch Synthetics and AWS X-Ray