Cloud Monitoringの静観設定(Snooze)を使ってみた

記事タイトルとURLをコピーする

こんにちは!G-genの片岡です。本記事では、Cloud Monitoring で利用可能な監視の静観設定(Snooze)について見ていきます。 ノイズアラートをどう抑止するか、頭を悩ませていた日々から開放される日も近そうですね!

Cloud Monitoring 振り返り

Cloud Monitoring では、アラートポリシーを用いて、アラートを通知する条件と方法を定義することができます。
例えば Google Compute Engine (以下GCE) の運用において、VMの負荷や稼働状況を収集し、指定した条件に応じてメールやSlack 通知を行うことで、事象に素早く気付くことが可能となります。

Cloud Monitoring の概要及び基本機能については、以下の記事で解説しています。

blog.g-gen.co.jp

モニタリング

今回は、GCE のリソースモニタリングとアラートの設定例を取り上げていきます。
検証用 VMは、Debian GNU/Linux 11 (bullseye)で、Apache2 HTTP Server をインストールした環境を利用しています。

Ops エージェント

Cloud Monitoring はデフォルトで標準的な指標(Google Cloud の指標)を取得することができます。
一方で、メモリ使用率 , ディスク使用率 , スワップ利用率 等は「Ops エージェント」を VM にインストールすることで取得可能となります。

MonitoringダッシュボードVM Instances を確認すると、作成した直後のVMはエージェントが "未検出” の状態です。
Opsエージェントがインストールされていない場合、メモリ使用率ディスク使用率の指標が取得できていません。

Ops エージェントのセットアップ

今回はこちらの手順を参考に、Opsエージェントのインストールを行っていきます。
インストールコマンドを実行後、数分でOpsエージェントが検出されます。

*インストール後、数分経ってもエージェントステータスが"未検出"の場合、VM にアタッチされているサービスアカウントに、以下のロールが付与されているかご確認ください。

  • モニタリング指標の書き込み (roles/monitoring.metricWriter)

その他要件については、こちらをご確認ください。

正常にインストールが完了すると、先程まで取得できていなかったメモリ使用率ディスク使用率の指標が取得できています。

アラート設定

次の3つのポリシー作成を行います。
1."Google Cloud の指標" を用いた CPU utilization ポリシー
2."Ops エージェントの指標” を用いた Memory utilization ポリシー
3. 稼働時間チェックを用いたポリシー

Monitoringアラートからポリシーの作成を行います。

1.CPU utilization

CPU使用率がしきい値を超えた場合に、メール通知を行うポリシーを作成します。
アラート条件を指標から選択します。

本設定では、1分間のCPU 使用率をしきい値と比較します。

今回はしきい値を 80%より上 と定義しました。

通知チャンネルを設定します。今回はメールでの通知とします。

アラート ポリシー名 を設定します。

2.Memory utilization

メモリ使用率がしきい値を超えた場合に、メール通知を行うポリシーを作成します。
アラート条件を指標から選択します。
本設定では、1分間のメモリ使用率をしきい値と比較します。
今回はしきい値を 80%より上 と定義しました。
通知チャンネルを設定します。今回はメールでの通知とします。
アラート ポリシー名 を設定します。

3.稼働時間チェック

Monitoring稼働時間チェックから設定を行います。
GCE で稼働しているサービスエンドポイントにアクセスできなくなった場合に、メール通知を行うポリシーを作成します。

以下の通り設定を行います。

動作確認

1.CPU負荷をかけてみる

  • 以下のコマンドを負荷状況に応じて複数回実行
yes > /dev/null &

設定した通りに、アラートがトリガーされました。

2.メモリ負荷をかけてみる

  • 以下のコマンドを負荷状況に応じて複数回実行
/dev/null < $(yes) &

設定した通りに、アラートがトリガーされました。

3.VMインスタンスを停止してみる

  • コンソールからVMインスタンスを停止
    設定した通りに、アラートがトリガーされました。

静観設定(Snooze)設定

定期的なバックアップ処理、ウイルススキャン、各種バッチ処理によるリソース消費のスパイク時、またはメンテナンス時など、特定の期間においてアラート発報を抑止したいといったニーズがあるかと思います。Snooze機能を使うことで、アラート発報を一定期間無効にすることが可能です。

ここまで設定してきたアラートを用いて、Snooze機能を検証してみます。
Monitoringアラート 画面中段に "Snoozes" という項目ができています。

ユースケース①:緊急メンテナンス等で、今から30分間アラート発報を無効にしたい場合
ユースケース②:毎日22:00から24:00までアラート発報を無効にしたい場合

最後に、停止する対象アラートを選択して設定完了です。
実際に、Snooze期間内に上記同様の動作確認3項目を実施しましたが、インシデントとしてはカウントされずアラート発報を抑止できました。
指定した期間が終わると、Snoozeが解除され通常のアラート動作が再開されます。 Snooze期間内の場合は、手動でSnoozeを終了することも可能です。
事前にメンテナンスウィンドウを設定しておくことで、ノイズアラートの撲滅に貢献できる機能となります。
曜日単位での設定やラベリングによる対応等、今後の機能拡張にも期待したいところです。

片岡 義就 (記事一覧)

クラウドソリューション部

2022年7月 G-genにジョイン。
前職ではAWSをはじめインフラ全般の設計構築、販促企画に従事。お客様にとって最適なクラウドジャーニーを伴走支援すべく、スキルUPに奔走中。