合併警示 - Amazon CloudWatch

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

合併警示

使用 CloudWatch 時,您可將多個警示合併為一個複合警示,以針對整個應用程式或資源群組建立摘要性的彙總運作狀態指標。複合警示可監控其他警示的狀態來判斷其狀態。您可使用布林邏輯來定義規則,以合併這些受監控警示的狀態。

您可使用複合警示來減少警示雜訊,但只能在彙總層級執行動作。例如,您可建立一個複合警示,以在與 Web 伺服器相關的任何警示觸發時,向 Web 伺服器團隊傳送通知。若其中任何警示進入 ALARM 狀態,複合警示會自行進入 ALARM 狀態,並向您的團隊傳送通知。如果與您的 Web 伺服器相關的其他警示也進入 ALARM 狀態,您的團隊不會因新的通知而超載,因為複合警示已通知其現有情況。

您還可使用複合警示來建立複雜的警示條件,並且只有在滿足許多不同條件時才會執行動作。例如,您可建立合併 CPU 警示和記憶體警示的複合警示,並且只有在 CPU 警示和記憶體警示都觸發時才會通知您的團隊。

使用複合警示

您在使用複合警示時有兩個選項:

  • 設定您只想在複合警示層級執行的動作,並建立不含處理動作的基礎監控警示

  • 在複合警示層級設定不同的動作集。例如,在出現普遍問題的情況下,複合警示動作可能會讓不同的團隊參與。

複合警示僅可執行下列動作:

  • 通知 Amazon SNS 主題

  • 調用 Lambda 函數

  • 在 Systems Manager Ops Center 中建立 OpsItems

  • 在 Systems Manager Incident Manager 中建立事件

注意

複合警示中的所有基礎警示皆必須與您的複合警示處於相同帳戶和相同區域。但是,如果您在 CloudWatch 跨帳戶觀察功能的監控帳戶中設定複合警示,則基礎警示可監看不同來源帳戶和監控帳戶本身中的指標。如需詳細資訊,請參閱CloudWatch 跨帳戶可觀測性

每個複合警示可以監控 100 個基礎警示,150 個複合警示可以監控單一個基礎警示。

規則表達式

所有複合警示都包含規則表達式。規則表達式會告訴複合警示要監控哪些其他警示,並從何判斷其狀態。規則表達式可以參照指標警示和複合警示。當您參照規則表達式中的警示時,您可以為警示指定一個函數,以決定警示將處於下列三種狀態中的哪一種:

  • ALARM (警示)

    如果警示處於 ALARM 狀態,則 ALARM (“alarm-name 或 alarm-ARN”) 為 TRUE。

  • OK

    如果警示處於 OK 狀態,則 OK (“alarm-name 或 alarm-ARN”) 為 TRUE。

  • INSUFFICIENT_DATA

    如果給定的警示處於 INSUFFICIENT_DATA 狀態,則 INSUFFICIENT_DATA (“alarm-name 或 alarm-ARN”) 為 TRUE。

注意

TRUE 永遠評估為 TRUE,FALSE 永遠評估為 FALSE。

範例表達式

請求參數 AlarmRule 支援使用邏輯運算子 ANDORNOT,讓您可以將多個函數組合成單一運算式。下列範例運算式顯示如何在複合警示中設定基礎警示:

  • ALARM(CPUUtilizationTooHigh) AND ALARM(DiskReadOpsTooHigh)

    此表達式指定複合警示僅在 CPUUtilizationTooHighDiskReadOpsTooHigh 處於 ALARM 時進入 ALARM

  • ALARM(CPUUtilizationTooHigh) AND NOT ALARM(DeploymentInProgress)

    此表達式指定複合警示在 CPUUtilizationTooHigh 處於 ALARMDeploymentInProgress 不處於 ALARM 時進入 ALARM。這是一個複合警示的範例,用來減少部署期間的警示干擾。

  • (ALARM(CPUUtilizationTooHigh) OR ALARM(DiskReadOpsTooHigh)) AND OK(NetworkOutTooHigh)

    此表達式指定複合警示在 (ALARM(CPUUtilizationTooHigh)(DiskReadOpsTooHigh) 處於 ALARM(NetworkOutTooHigh) 處於 OK 時進入 ALARM。這是一個複合警示的範例,每當發生網路問題時,若有任何基礎警示不處於 ALARM 便不會向您發送通知,藉此減少警示干擾。