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

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

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

由拉姆·坎達斯瓦米(AWS)和拉希姆吉瓦尼(AWS)創建

環境:生產

技術:管理與治理;營運 DevOps;雲端原生

AWS 服務:Amazon CloudWatch

Summary

在 Amazon Web Services (AWS) 雲端上,您可以使用 Amazon 建立警示 CloudWatch 來監控指標並傳送通知,或在超出閾值時自動進行變更。

為了避免受到靜態臨界值的限制,您可以根據過去的模式建立警示,並在特定測量結果在正常作業時段之外時通知您。例如,您可以從 Amazon API Gateway 監控 API 的回應時間,並接收有關異常情況的通知,以防止您達成服務等級協議 (SLA)。

此模式說明如何針對自訂量度使用 CloudWatch 異常偵測。該模式向您展示如何在 Amazon CloudWatch 日誌洞見中建立自訂指標,或使用 AWS Lambda 函數發佈自訂指標,然後使用 Amazon 簡單通知服務 (Amazon SNS) 設定異常偵測並建立通知。

先決條件和限制

先決條件

 

限制

架構

該圖顯示以下工作流程:

  1. 使用由記錄建立和更新之指標的 CloudWatch 記錄會串流至 CloudWatch。

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

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

技術, 堆

  • 雲觀察

  • AWS Lambda

  • Amazon SNS

工具

  • Amazon Cloudwatch — CloudWatch 提供可靠、可擴展且靈活的監控解決方案。

  • AWS Lambda — L ambda 是一種運算服務,可協助您執行程式碼,而無需佈建或管理伺服器。

  • Amazon SNS — 亞馬遜簡單通知服務 (Amazon SNS) 是一種受管服務,可提供從發佈者到訂閱者的訊息傳遞。

史诗

任務描述所需技能
選項 1-使用 Lambda 函數建立自訂指標。

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

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

DevOps 工程師, AWS DevOps
選項 2 — 從 CloudWatch 日誌組創建自定義指標。

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

選擇「動作」,然後選擇「建立量度篩選」 在「篩選模式」中,輸入您要使用的濾鏡模式。如需詳細資訊,請參閱 CloudWatch 文件中的篩選器和模式語法。 

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

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

DevOps 工程師, AWS DevOps
為您的自定義指標創建警報。

在 CloudWatch 主控台上,選擇 [警示],然後選擇 [建立鬧鐘]。選擇選取測量結果,然後在搜尋方塊中輸入您先前建立的測量結果名稱。選擇圖形指標索引標籤,並根據您的需求設定選項。

在「條件」下,選擇「異常偵測」而非「靜態閾值」。這會根據兩個標準預設偏差向您展示區帶。您可以設定閾值並根據您的需求進行調整。

選擇下一步

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

DevOps 工程師, AWS DevOps
設定 SNS 通知。

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

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

在 [預覽並建立] 底下,確認資訊和條件正確無誤,然後選擇 [建立鬧鐘]。

DevOps 工程師, AWS DevOps

相關資源

附件

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