跳至內容

如何設定自訂 CloudWatch 警示通知?

1 分的閱讀內容
0

我想要為狀態變更建立 Amazon CloudWatch 警示通知,以包含觸發警示的日誌事件。

簡短描述

您可以設定指標篩選器以符合特定的日誌事件,例如包含 AccessDeniedUnauthorizedOperations 錯誤的 AWS CloudTrail 事件。然後,使用 CloudWatch Logs 取得指標。若要監控指標,請建立 CloudWatch 警示。

預設情況下,使用 Amazon Simple Notification Service (Amazon SNS) 的 CloudWatch 警示會傳送包含警示和指標詳細資訊的預先格式化通知。若要確定導致狀態變更的原因,您可以將觸發 CloudWatch 警示的日誌事件合併到通知中。

若要在警示狀態改變時呼叫 AWS Lambda 函式,請使用 CloudWatch 警示的直接 Lambda 整合。然後,Lambda 函式可以發佈包含相關日誌事件的自訂通知。

解決方法

**先決條件:**確保您有現有的 CloudWatch 警示,可以監控來自指標篩選器的自訂指標。如需詳細資訊,請參閱根據靜態閾值建立 CloudWatch 警示

建立 AWS Lambda 函式

設定 Lambda 函式以執行下列動作:

  • 剖析 CloudWatch 警示事件詳細資訊,例如警示名稱、描述、時間戳記和狀態改變的原因。您可以將詳細資訊合併到自訂訊息中。

  • 使用 CloudWatch Logs Insights 分析相關 CloudWatch 日誌群組中的日誌資料。
    當警示改變狀態時,Lambda 函式會發出 StartQuery API 呼叫來針對日誌群組執行查詢。以下範例查詢總結了因 AccessDeniedUnauthorizedOperation 錯誤而失敗的 CloudTrail API 呼叫:

    filter (errorCode="AccessDenied" or errorCode="UnauthorizedOperation")
    | stats count(*) as Hits by errorCode, errorMessage, sourceIPAddress, userIdentity.arn
    | sort Hits desc
  • 使用 GetQueryResults 來擷取對應的結果。

  • 使用 Amazon SNS Publish API,傳遞包含警示詳細資訊和 CloudWatch Logs Insights 查詢結果的自訂訊息。

相關資訊

如何自訂預設的 Amazon SNS 電子郵件主旨行?

AWS 官方已更新 7 個月前