本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon CloudWatch 異常偵測為自訂指標建立警示
Ram Kandaswamy 和 Raheem Jiwani,Amazon Web Services
Summary
在 Amazon Web Services (AWS) 雲端上,您可以使用 Amazon CloudWatch 建立警示,以監控指標並傳送通知,或在超過閾值時自動進行變更。
若要避免受到靜態閾值的限制,您可以根據過去的模式建立警示,並在特定指標超出正常操作時段時通知您。例如,您可以從 Amazon API Gateway 監控 API 的回應時間,並接收有關無法滿足服務層級協議 (SLA) 的異常通知。
此模式說明如何針對自訂指標使用 CloudWatch 異常偵測。模式說明如何在 Amazon CloudWatch Logs Insights 中建立自訂指標,或使用 AWS Lambda 函數發佈自訂指標,然後使用 Amazon Simple Notification Service (Amazon SNS) 設定異常偵測和建立通知。
先決條件和限制
先決條件
- 作用中的 AWS 帳戶 
- 現有的 SNS 主題,設定為傳送電子郵件通知。如需詳細資訊,請參閱《Amazon SNS 文件》中的 Amazon SNS 入門。 
- 使用 CloudWatch Logs 設定的現有應用程式。 
限制
- CloudWatch 指標不支援毫秒時間間隔。如需一般和自訂指標精細程度的詳細資訊,請參閱 Amazon CloudWatch FAQs - 。 
架構

該圖顯示以下工作流程:
- 使用 CloudWatch Logs 建立和更新的指標的日誌會串流至 CloudWatch。 
- 警示會根據閾值啟動,並將警示傳送至 SNS 主題。 
- Amazon SNS 會傳送電子郵件通知給您。 
技術堆疊
- CloudWatch 
- AWS Lambda 
- Amazon SNS 
工具
- Amazon CloudWatch 提供可靠、可擴展且靈活的監控解決方案。 
- AWS Lambda 是一種運算服務,可協助您執行程式碼,而無需佈建或管理伺服器。 
- Amazon Simple Notification Service (Amazon SNS) 是一種受管服務,可將訊息從發佈者傳遞給訂閱者。 
史詩
| 任務 | 描述 | 所需的技能 | 
|---|---|---|
| 選項 1 - 使用 Lambda 函數建立自訂指標。 | 下載  執行 Lambda 函數之後,您可以登入 AWS 管理主控台、開啟 CloudWatch 主控台,而且已發佈的指標可在已發佈的命名空間下使用。 | DevOps 工程師,AWS DevOps | 
| 選項 2 – 從 CloudWatch 日誌群組建立自訂指標。 | 登入 AWS 管理主控台,開啟 CloudWatch 主控台,然後選擇日誌群組。選擇您要為其建立指標的日誌群組。 選擇動作,然後選擇建立指標篩選條件。針對篩選條件模式,輸入您要使用的篩選條件模式。如需詳細資訊,請參閱 CloudWatch 文件中的篩選和模式語法。 若要測試篩選條件模式,請在測試模式下輸入一或多個日誌事件。每個日誌事件都必須在一行內,因為 Log event messages (日誌事件訊息) 方塊中使用換行來分隔日誌事件。測試模式之後,您可以在指標詳細資訊下輸入指標的名稱和值。 如需建立自訂指標的詳細資訊和步驟,請參閱 CloudWatch 文件中的為日誌群組建立指標篩選條件。 | DevOps 工程師,AWS DevOps | 
| 為您的自訂指標建立警示。 | 在 CloudWatch 主控台上,選擇警示,然後選擇建立警示。選擇選取指標,然後在搜尋方塊中輸入您先前建立的指標名稱。選擇圖形化指標索引標籤,並根據您的需求設定選項。 在條件下,選擇異常偵測,而非靜態閾值。這會顯示以兩個標準預設偏差為基礎的頻帶。您可以設定閾值,並根據需求調整閾值。 選擇下一步。 注意頻帶是動態的,取決於資料點的品質。當您開始彙總更多資料時,頻帶和閾值會自動更新。 | DevOps 工程師,AWS DevOps | 
| 設定 SNS 通知。 | 在通知下,選擇要在警示處於 若要讓警示針對相同的警示狀態或不同警示狀態傳送多個通知,請選擇 Add notification (新增通知)。選擇下一步。輸入警示的名稱與說明。名稱只能包含 ASCII 字元。然後選擇下一步。 在預覽和建立下,確認資訊和條件正確無誤,然後選擇建立警示。 | DevOps 工程師,AWS DevOps | 
相關資源
附件
若要存取與本文件相關聯的其他內容,請解壓縮下列檔案: attachment.zip