Cloud Monitoring の指標なしアラートポリシーで Cloud Composer のスケジューラ停止を検知してみた #cm_google_cloud_adcal_2024

Cloud Monitoring の指標なしアラートポリシーで Cloud Composer のスケジューラ停止を検知してみた #cm_google_cloud_adcal_2024

Clock Icon2024.12.08

こんにちは!エノカワです。

この記事はクラスメソッドの 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-monitoring-cloud-composer-scheduler-heartbeat-absent_01

Cloud Composer のスケジューラは、正常に動作している場合、定期的にハートビートと呼ばれるシグナルを送信します。
このハートビートが途絶えると、スケジューラが停止していると判断できます。

モニタリング画面で「スケジューラのハートビート」指標を確認し、右上のベルアイコンをクリックしてアラート設定を行います。

cloud-monitoring-cloud-composer-scheduler-heartbeat-absent_02

通知ポリシーの作成

ポリシー作成画面が表示されたら、指標なしアラートポリシーの設定を行います。

ポリシー構成モード

[Select a metric]Scheduler Heartbeats(スケジューラのハートビート)が選択されていることを確認し、画面下の [Next] をクリックします。

cloud-monitoring-cloud-composer-scheduler-heartbeat-absent_03

トリガーの設定

Condition typesMetric absenceを選択します。
これにより、一定期間スケジューラのハートビート指標データが収集されなかった場合にアラートがトリガーされます。

トリガーとなる不在時間は5分に設定しました。

cloud-monitoring-cloud-composer-scheduler-heartbeat-absent_04

アラートの通知と名前

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

cloud-monitoring-cloud-composer-scheduler-heartbeat-absent_05

アラートの確認

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

cloud-monitoring-cloud-composer-scheduler-heartbeat-absent_06

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

cloud-monitoring-cloud-composer-scheduler-heartbeat-absent_07

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

cloud-monitoring-cloud-composer-scheduler-heartbeat-absent_08

これで、スケジューラのハートビートに基づく指標なしアラートポリシーが完成しました。

Cloud Composer 環境を削除

スケジューラの停止をシミュレートするため、Cloud Composer 環境を削除します。
作成した環境を選択し、[削除] をクリックします。

cloud-monitoring-cloud-composer-scheduler-heartbeat-absent_09

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

cloud-monitoring-cloud-composer-scheduler-heartbeat-absent_10

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

cloud-monitoring-cloud-composer-scheduler-heartbeat-absent_11

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

cloud-monitoring-cloud-composer-scheduler-heartbeat-absent_12

スケジューラのハートビートが停止(Cloud Composer 環境が削除)されて 5分 が経過したため、指標なしアラートがトリガーされていることが確認できました。

まとめ

以上、Cloud Monitoring を使って指標なしのアラートポリシーを作成し、Cloud Composer のスケジューラ停止を検知する方法をご紹介しました。

通常のアラートポリシーでは、指標のしきい値をトリガーにすることが一般的ですが、指標そのものが収集されなくなるケースもあります。
そういった場合に、今回紹介した指標なしアラートが役立つのではないでしょうか。皆さんの参考になれば幸いです!

明日 12/09 は 根本夏瑠 さんです。よろしくお願いします!

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.