複合アラームの作成 - Amazon CloudWatch

複合アラームの作成

複合アラームは、他のアラームのアラーム状態を監視してアラーム状態を決定するアラームです。

複合アラームを使用すると、アラームノイズの低減に役立ちます。状態の変化を通知するように複合アラームを設定したが、基盤となるメトリクスアラームがそれ自体で通知を送信しないように設定した場合、複合アラームのアラーム状態が変更されたときにのみ通知されます。たとえば、CPU 使用率とディスク読み取りオペレーションの両方に基づいてメトリクスアラームを作成し、これらのアラームに対してアクションを実行しないように指定できます。次に、ALARM 状態になり、両方のメトリクスアラームが ALARM 状態である場合にだけ通知する複合アラームを作成できます。

複合アラームでは、基礎となるアラームはすべて、同じ AWS リージョンおよび同じアカウントに存在する必要があります。

現在、複合アラームで実行できるアラームアクションは、SNS トピックへの通知だけです。

ルール式

複合アラームには、複合アラームの状態を決定するために評価される他のアラームを指定するルール式が含まれます。ルール式で参照するアラームごとに、アラームが ALARM 状態、OK 状態、または INSUFFICIENT_DATA 状態のどれである必要があるかを指定する関数を指定します。演算子 (AND、OR、NOT) を使用して、複数の関数を 1 つの式で組み合わせることができます。括弧を使用して、式内の関数を論理的にグループ化することができます。

ルール式は、メトリクスアラームと他の複合アラームの両方を参照できます。

関数には以下が含まれます。

  • ALARM("alarm-name or alarm-ARN") は、指定されたアラームが ALARM 状態である場合に TRUE になります。

  • OK("alarm-name or alarm-ARN") は、指定されたアラームが OK 状態である場合に TRUE になります。

  • INSUFFICIENT_DATA("alarm-name or alarm-ARN") は、指定されたアラームが INSUFFICIENT_DATA 状態である場合に TRUE になります。

  • TRUE は常に TRUE と評価されます。

  • FALSE は常に FALSE と評価されます。

TRUE と FALSE は、複雑な AlarmRule 構造をテストしたり、アラーム動作をテストしたりするのに便利です。

次に、AlarmRule の例をいくつか示します。

  • ALARM(CPUUtilizationTooHigh) AND ALARM(DiskReadOpsTooHigh) は、DiskReadOpsTooHigh アラームと DiskReadOpsTooHigh アラームの両方が ALARM 状態である場合に限り、複合アラームが ALARM 状態になることを指定します。

  • ALARM(CPUUtilizationTooHigh) AND NOT ALARM(DeploymentInProgress) は、CPUUtilizationTooHigh が ALARM 状態で、DeploymentInProgress が ALARM 状態でない場合に、アラームが ALARM 状態になることを指定します。この例では、既知のデプロイ期間中にアラームノイズが減ります。

  • (ALARM(CPUUtilizationTooHigh) OR ALARM(DiskReadOpsTooHigh)) AND OK(NetworkOutTooHigh) は、CPUUtilizationTooHigh または DiskReadOpsTooHigh が ALARM 状態で、NetworkOutTooHigh が OK 状態の場合に、ALARM 状態になります。これは、ノイズを防ぐために複合アラームを使用する別の例です。このルールにより、既知のネットワーク問題も発生している場合に、高い CPU またはディスク使用率に関するアラームアクションが通知されないようになります。

AlarmRule 式には、最大 100 個の「子」アラームを指定できます。AlarmRule 式には、最大 500 個の要素を含めることができます。要素は、子アラーム、TRUE または FALSE ステートメント、および括弧です。括弧のペアは 1 つの要素としてカウントされます。

ルール式には、少なくとも 1 つの子アラーム、少なくとも 1 つの TRUE ステートメント、または FALSE ステートメントを含める必要があります。

複合アラームを作成するには

  1. https://console.aws.amazon.com/cloudwatch/ にある CloudWatch コンソールを開きます。

  2. ナビゲーションペインで、[Alarms] を選択します。

  3. アラームのリストで、新しい複合アラームで参照する既存のアラームの横にあるチェックボックスをオンにします。次に、[Create composite alarm] を選択します。

  4. [Conditions] ボックスで、複合アラームで使用するルール式を指定します。最初に、選択したアラームが一覧表示され、OR 論理演算子によって結合されます。これらのアラームのそれぞれに、ALARM 状態が指定されています。

    作成中の複合アラームのアラーム条件を変更できます。

    1. リストされた基本アラームごとに、必要な状態を ALARM から OK または INSUFFICENT_DATA に変更できます。

    2. 各 OR 演算子を AND または NOT に変更できます。括弧を追加して、論理演算子をグループ化することもできます。

    3. 複合アラーム条件にさらにアラームを追加できます。[Conditions] ボックスに現在表示されているアラームを削除することもできます。

    たとえば、CPUUtilizationTooHigh または DiskReadOpsTooHigh が ALARM 状態で、同時に NetworkOutTooHigh が OK 状態である場合に ALARM 状態になる複合アラームを作成するには、次の条件を指定できます。

    (ALARM("CPUUtilizationTooHigh") OR ALARM("DiskReadOpsTooHigh")) AND OK("NetworkOutTooHigh")
  5. アラームの状態に問題がなければ、[次へ] を選択します。

  6. [通知] で、複合アラームの状態が変化したときに通知する SNS トピックを選択します。

    アラームで一切通知を送信しない、または一切アクションを実行しないようにするには、[削除] を選択します。

    同じアラーム状態または複数の異なるアラーム状態について複数の通知を送信するには、[Add notification (通知の追加)] を選択します。

  7. 完了したら、[次へ] を選択します。

  8. アラームの名前と説明を入力します。名前には ASCII 文字のみを使用します。続いて、[次へ] を選択します。

  9. [Preview and create (プレビューして作成)] で、情報と条件が正しいことを確認し、アラームの作成] を選択します。

注記

複合アラーム A が複合アラーム B に依存し、複合アラーム B も複合アラーム A に依存する複合アラームのループまたはサイクルを作成することも考えられます。このシナリオでは、削除するアラームに依存する複合アラームが常にまだ存在しているため、サイクルの一部となっている複合アラームを削除することはできません。

このような状況から抜け出すには、サイクルの複合アラームの 1 つのルールを変更して、サイクルを作成する依存関係を削除することで、サイクルを中断する必要があります。サイクルを中断する最も簡単な方法は、アラームの 1 つの AlarmRuleFalse に変更することです。

さらに、CloudWatch が評価パスでサイクルを検出すると、複合アラームの評価が停止します。