跳至內容

如何使用 EventBridge 為 CloudWatch 警示建立自訂回應?

3 分的閱讀內容
0

我想使用 Amazon EventBridge 透過我的 Amazon CloudWatch 警示執行自訂動作。

簡短描述

您可以使用與 EventBridge 整合的 CloudWatch 警示來自動修復或復原您的環境。

您可以使用 EventBridge 規則來監控 CloudWatch 警示中的組態變更,例如建立更新刪除。您也可以使用規則來監控狀態變更,例如確定警示不足。您可以將規則與任何支援的目標建立關聯。

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

當 CloudWatch 遇到狀態變更時,它會傳送 Amazon Simple Notification Service (Amazon SNS) 通知或調用 AWS Lambda 函數。或者,它可能會使用 Amazon Elastic Compute Cloud (Amazon EC2) 或 AWS Auto Scaling 動作進行回應。

您可以使用 EventBridge 規則來建立自訂動作。發生狀態變更時,EventBridge 規則會調用目標以執行自訂回應。您必須在與 CloudWatch 警示相同的區域中建立規則。

建立資源以執行自訂動作

請確定您所建立用來執行自訂動作的資源是 EventBridge 支援的目標。

建立 CloudWatch 警示

請完成下列步驟:

  1. 開啟 CloudWatch console (CloudWatch 主控台)。
  2. 在導覽窗格中,選擇 Alarms (警示),然後選擇 All alarms (所有警示)。
  3. 選擇 Create alarm (建立警示)。
  4. 選擇 Select metric (選取指標)。
  5. 選擇 Graphed metrics (圖表化指標) 索引標籤。
  6. 選取 Statistic (統計資料),例如 Average (平均值)、Maximum (最大值) 或 p99
  7. 選取 Period (期間),例如 1 分鐘
  8. 選擇 Select metric (選取指標)。
  9. Conditions (條件) 中,選取 threshold type (閾值類型)、alarm condition (警示條件) 和 threshold value (閾值) 的值。
    **注意:**這些參數會決定警示何時變更狀態。
  10. 選擇 Next (下一步)。
  11. Configure Actions (設定動作) 頁面的 Notification (通知) 區段中,選擇 Remove (移除)。
    **注意:**該動作由對應的 EventBridge 目標提供。
  12. 選擇 Next (下一步)。
  13. 輸入警示的名稱和說明。然後,選擇 Next (下一步)。
  14. Preview and create (預覽並建立) 下,檢閱警示組態。然後,選擇 Create alarm (建立警示)。

**注意:**如需如何設定 CloudWatch 警示的詳細資訊,請參閱根據靜態閥值建立 CloudWatch 警示

建立 EventBridge 規則

請完成下列步驟:

  1. 開啟 EventBridge console (EventBridge 主控台)。
  2. 在導覽窗格中,選擇 Rules (規則)。
  3. 選擇 Create rule (建立規則)。
  4. 輸入 Name (名稱)。
  5. (選用) 輸入規則的說明。
  6. Event bus (事件匯流排) 中,選擇 AWS 預設事件匯流排
  7. Rule type (規則類型) 中,選擇 Rule with an event pattern (具有事件模式的規則)。
  8. 選擇 Next (下一步)。
  9. Creation method (建立方法) 中,選擇 Custom pattern (JSON editor) (自訂模式 (JSON 編輯器))。
  10. Event Pattern (事件模式) 中,複製並自訂其中一種範例事件模式。以下範例會在特定警示更新時,因 CloudWatch 警示組態變更而觸發:
{
  "source": ["aws.cloudwatch"],
  "detail-type": ["CloudWatch Alarm Configuration Change"],
  "detail": {
    "alarmName": ["NGiNX 4XX Responses"],
    "operation": ["update"]
  }
}

以下範例會在特定命名空間與指標更新時,因 CloudWatch 警示組態變更而觸發:

{
  "source": ["aws.cloudwatch"],
  "detail-type": ["CloudWatch Alarm Configuration Change"],
  "detail": {
    "configuration": {
      "metrics": {
        "metricStat": {
          "metric": {
            "name": ["CPUUtilization"],
            "namespace": ["AWS/EC2"]
          }
        }
      }
    }
  }
}

以下範例會在特定警示處於警示狀態時,因 CloudWatch 警示狀態變更而觸發:

{
  "source": ["aws.cloudwatch"],
  "detail-type": ["CloudWatch Alarm State Change"],
  "detail": {
    "alarmName": ["NGiNX 4XX Responses"],
    "state": {
      "value": ["ALARM"]
    }
  }
}
  1. 選擇 Next (下一步)。
  2. Select target(s) (選取目標) 區段中,選擇執行自訂邏輯的目標,然後選擇 Next (下一步)。
  3. 將任何相關標籤新增至規則,然後選擇 Next (下一步)。
  4. 選擇 Create rule (建立規則)。

驗證規則

請執行下列動作:

  • 請確認該規則會在監控警示組態的情況下觸發,例如建立更新刪除警示
  • 請確認該規則會在監控警示狀態時觸發。使用 SetAlarmState API 作業暫時變更警示狀態。

下列 AWS CLI 命令範例會強制警示進入警示狀態:

aws cloudwatch set-alarm-state \\--alarm-name "NGiNX 4XX Responses" \\  
\--state-value ALARM \\  
\--state-reason "Validation Testing"

若要確認您的 EventBridge 規則是否調用了目標,請使用 TriggeredRules、Invocations 和 FailedInvocations 指標。若要尋找指標,請瀏覽至您的規則,然後在 EventBridge console (EventBridge 主控台) 中選擇 Monitoring (監控) 索引標籤。或者,在 AWS/Events 命名空間中的 CloudWatch console (CloudWatch 主控台) 中檢視指標。

相關資訊

警示事件和 EventBridge

AWS 官方已更新 1 年前