
Cloud Monitoring の指標なしアラートポリシーで Cloud Composer のスケジューラ停止を検知してみた #cm_google_cloud_adcal_2024
こんにちは!エノカワです。
この記事はクラスメソッドの Google Cloud アドベントカレンダー2024 の 8日目の記事です。
今回は、Cloud Monitoring を使って指標なしのアラートポリシーを作成し、Cloud Composer のスケジューラ停止を検知する方法を試してみましたので、その内容をご紹介します。
Cloud Monitoring の概要
Cloud Monitoring は Google Cloud が提供するフルマネージドの監視サービスです。
Google Cloud の各種サービスはもちろん、オンプレミス環境や AWS などのマルチクラウド環境も包括的に監視できます。
指標なしアラートポリシーとは
Cloud Monitoring のアラートポリシーは、リソースやアプリケーションの状態を監視し、特定の条件を満たした場合に通知を送る仕組みです。
通常のアラートポリシーは、CPU 使用率やエラー率などの指標がしきい値を超えた場合に通知を送信します。
一方で、指標なしアラートポリシーは、一定期間メトリクスのデータが収集されなかった場合にアラートをトリガーします。
つまり、リソースやサービスが完全に停止してしまい、そもそもメトリクスが生成されなくなるような状況を検出するのに役立ちます。
試したこと
今回は、Cloud Monitoring を使って指標なしのアラートポリシーを作成し、Cloud Composer のスケジューラを意図的に停止させて、アラートが正しく機能するかを検証しました。
アラートポリシー作成
指標なしのアラートポリシーを作成します。
事前に、監視対象の Cloud Composer 環境を作成しておきます。
スケジューラのハートビート指標を選択
作成した Cloud Composer 環境を選択します。

Cloud Composer のスケジューラは、正常に動作している場合、定期的にハートビートと呼ばれるシグナルを送信します。
このハートビートが途絶えると、スケジューラが停止していると判断できます。
モニタリング画面で「スケジューラのハートビート」指標を確認し、右上のベルアイコンをクリックしてアラート設定を行います。

通知ポリシーの作成
ポリシー作成画面が表示されたら、指標なしアラートポリシーの設定を行います。
ポリシー構成モード
[Select a metric] で Scheduler Heartbeats(スケジューラのハートビート)が選択されていることを確認し、画面下の [Next] をクリックします。

トリガーの設定
Condition types で Metric absenceを選択します。
これにより、一定期間スケジューラのハートビート指標データが収集されなかった場合にアラートがトリガーされます。
トリガーとなる不在時間は5分に設定しました。

アラートの通知と名前
通知を受け取るためのチャンネルを設定します。
今回はメール通知チャンネルを利用しました。

アラートの確認
アラート設定の内容を確認し、[ポリシーを作成] をクリックします。

作成したポリシーが一覧画面に表示されます。

Condition Type が不在になっていることが確認できます。

これで、スケジューラのハートビートに基づく指標なしアラートポリシーが完成しました。
Cloud Composer 環境を削除
スケジューラの停止をシミュレートするため、Cloud Composer 環境を削除します。
作成した環境を選択し、[削除] をクリックします。

確認ダイアログで [削除] をクリックします。

削除後、しばらくするとアラートメールが届きました。

メール本文中の [VIEW INCIDENT] をクリックすると、インシデント画面が表示されます。

スケジューラのハートビートが停止(Cloud Composer 環境が削除)されて 5分 が経過したため、指標なしアラートがトリガーされていることが確認できました。
まとめ
以上、Cloud Monitoring を使って指標なしのアラートポリシーを作成し、Cloud Composer のスケジューラ停止を検知する方法をご紹介しました。
通常のアラートポリシーでは、指標のしきい値をトリガーにすることが一般的ですが、指標そのものが収集されなくなるケースもあります。
そういった場合に、今回紹介した指標なしアラートが役立つのではないでしょうか。皆さんの参考になれば幸いです!
明日 12/09 は 根本夏瑠 さんです。よろしくお願いします!






