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

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

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

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

環境:生產

技術:管理與治理 DevOps;營運; CloudNative

AWS 服務:Amazon CloudWatch

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. 使用 Logs 建立和更新的指標的 CloudWatch 日誌會串流至 CloudWatch。

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

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

技術堆疊

  • CloudWatch

  • AWS Lambda

  • Amazon SNS

工具

史詩

任務描述所需的技能

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

下載 lambda_function.py 檔案 (已連接),然後取代 AWS 文件 上aws-lambda-developer-guide儲存庫中的範例lambda_function.py檔案 GitHub。這為您提供了一個 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