アラームの組み合わせ
CloudWatch では、複数のアラームを 1 つの複合アラームにまとめて、アプリケーション全体またはリソースグループ全体にわたってまとめて集計されたヘルスインジケーターを作成できます。複合アラームとは、他のアラームの状態をモニタリングして自身の状態を判定するアラームです。ブール論理を使用して、モニタリング対象アラームのステータスを組み合わせるルールを定義します。
複合アラームを使用すると、集約したレベルでのみアクションを実行すればよいので、アラームのノイズを低減できます。例えば、ウェブサーバーに関連するアラームがトリガーされた場合にウェブサーバーチームに通知を送信する複合アラームを作成できます。これらのアラームのいずれかが ALARM 状態になると、複合アラームは ALARM 状態になり、チームに通知を送信します。ウェブサーバーに関連する他のアラームが ALARM 状態になっても、複合アラームは現状を既に通知しているので、チームが新しい通知で過負荷になることはありません。
また、複合アラームを使用して複雑なアラーム条件を作成し、さまざまな条件が満たされた場合にのみアクションを実行することもできます。例えば、CPU アラームとメモリアラームを組み合わせた複合アラームを作成して、CPU アラームとメモリアラームの両方がトリガーされた場合にのみチームに通知することができます。
複合アラームを使用する
複合アラームを作成するには、次の 2 つの方法があります。
複合アラームレベルでのみ実行したいアクションを設定し、基礎となるモニタリング対象アラームはアクションなしで作成する
複合アラームレベルでは異なるアクションのセットを設定する。例えば、問題が広範囲に及ぶ場合、複合アラームアクションには別のチームを従事させることができます。
複合アラームでは次のアクションのみを実行できます。
Amazon SNS トピックへの通知
Lambda 関数を呼び出す
Systems Manager Ops Center での OpsItems の作成
Systems Manager Incident Manager でのインシデントの作成
注記
複合アラームの基盤となるすべてのアラームは、複合アラームと同じアカウントおよびリージョンに存在する必要があります。ただし、CloudWatch のクロスアカウントオブザーバビリティモニターリングアカウントで複合アラームを設定した場合、基盤となるアラームが、異なるソースアカウントとモニターリングアカウント自体のメトリクスを監視できます。詳細については、「CloudWatch のクロスアカウントオブザーバビリティ」を参照してください。
1 つの複合アラームで 100 の基盤となるアラームを監視でき、1 つのアラームは 150 の複合アラームで監視できます。
ルール式
すべての複合アラームには、ルール式が含まれています。ルール式は、複合アラームに監視および状態を判別するアラームを指示するものです。ルール式では、メトリクスアラームと複合アラームを参照できます。ルール式でアラームを参照するときは、アラームが次の 3 つのうちのどの状態になるかを決定する関数をアラームに指定します。
アラーム
指定されたアラームが 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
は、論理演算子 AND
、OR
、および NOT
の使用をサポートしています。これにより、複数の関数を 1 つの式に組み合わせることができます。次の式の例は、複合アラームで基盤となるアラームを設定する方法を示しています。
ALARM(CPUUtilizationTooHigh) AND ALARM(DiskReadOpsTooHigh)
この式は、
CPUUtilizationTooHigh
およびDiskReadOpsTooHigh
がALARM
状態である場合のみ、複合アラームがALARM
状態になることを指定しています。ALARM(CPUUtilizationTooHigh) AND NOT ALARM(DeploymentInProgress)
この式は、
CPUUtilizationTooHigh
がALARM
状態で、DeploymentInProgress
がALARM
状態ではない場合、複合アラームがALARM
状態になることを指定しています。これは、デプロイ期間中にアラームのノイズを低減する複合アラームの例です。(ALARM(CPUUtilizationTooHigh) OR ALARM(DiskReadOpsTooHigh)) AND OK(NetworkOutTooHigh)
この式は、
(ALARM(CPUUtilizationTooHigh)
または(DiskReadOpsTooHigh)
がALARM
状態で、(NetworkOutTooHigh)
がOK
状態である場合、複合アラームがALARM
状態になることを指定しています。これは、ネットワークの問題が発生している間、基盤となるアラームのいずれかがALARM
状態ではない場合に通知を送信しないことで、アラームのノイズを低減する複合アラームの例です。