使用 Amazon CloudWatch 異常偵測為自訂指標建立警示 - AWS 方案指引

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

使用 Amazon CloudWatch 異常偵測為自訂指標建立警示

由 Ram Kandaswamy (AWS) 和 Raheem Jiwani (AWS) 建立

Summary

在 Amazon Web Services (AWS) Cloud 上,您可以使用 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 使用 Amazon SNS 主題,在警示啟動時傳送電子郵件通知。
  1. 使用 CloudWatch Logs 建立和更新的指標的日誌會串流到 CloudWatch。

  2. 警示會根據閾值啟動,並將警示傳送至 SNS 主題。

  3. Amazon SNS 會傳送電子郵件通知給您。

技術堆疊

  • CloudWatch

  • AWS Lambda

  • Amazon SNS

工具

史詩

任務描述所需的技能

選項 1 - 使用 Lambda 函數建立自訂指標。

下載 lambda_function.py 檔案 (已連接),然後在 AWS 文件 GitHub 的 aws-lambda-developer-guide 儲存庫中取代範例lambda_function.py檔案。這為您提供了一個 Lambda 函數範例,將自訂指標傳送至 CloudWatch Logs。Lambda 函數使用 Boto3 API 與 CloudWatch 整合。 

執行 Lambda 函數後,您可以登入 AWS 管理主控台、開啟 CloudWatch 主控台,而且已發佈的指標可在已發佈的命名空間下使用。

DevOps 工程師,AWS DevOps

選項 2 – 從 CloudWatch 日誌群組建立自訂指標。

登入 AWS 管理主控台,開啟 CloudWatch 主控台,然後選擇日誌群組。選擇您要為其建立指標的日誌群組。 

選擇動作,然後選擇建立指標篩選條件。針對篩選條件模式,輸入您要使用的篩選條件模式。如需詳細資訊,請參閱 CloudWatch 文件中的篩選和模式語法。 

若要測試篩選條件模式,請在測試模式下輸入一或多個日誌事件。每個日誌事件都必須在一行內,因為 Log event messages (日誌事件訊息) 方塊中使用換行來分隔日誌事件。測試模式之後,您可以在指標詳細資訊下輸入指標的名稱和值。 

如需建立自訂指標的詳細資訊和步驟,請參閱 CloudWatch 文件中的為日誌群組建立指標篩選條件

DevOps 工程師,AWS DevOps

為您的自訂指標建立警示。

在 CloudWatch 主控台上,選擇警示,然後選擇建立警示。選擇選取指標,然後在搜尋方塊中輸入您稍早建立的指標名稱。選擇圖形指標索引標籤,並根據您的需求設定選項。

條件下,選擇異常偵測,而非靜態閾值。這會顯示以兩個標準預設偏差為基礎的頻帶。您可以設定閾值,並根據需求調整閾值。

選擇 Next (下一步)

注意

頻帶是動態的,取決於資料點的品質。當您開始彙總更多資料時,頻帶和閾值會自動更新。 

DevOps 工程師,AWS DevOps

設定 SNS 通知。

通知下,選擇要在警示處於ALARM狀態、OK狀態或INSUFFICIENT_DATA狀態時通知的 SNS 主題。

若要讓警示針對相同的警示狀態或不同警示狀態傳送多個通知,請選擇 Add notification (新增通知)。選擇 Next (下一步)。輸入警示的名稱與說明。名稱只能包含 ASCII 字元。然後選擇下一步

預覽和建立下,確認資訊和條件正確無誤,然後選擇建立警示

DevOps 工程師,AWS DevOps

相關資源

附件

若要存取與本文件相關聯的其他內容,請解壓縮下列檔案: attachment.zip