NRIネットコム Blog

NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

Cloud Monitoring入門  障害検知メールを飛ばそう

本記事は  【Advent Calendar 2024】  9日目の記事です。
🌟🎄  8日目  ▶▶ 本記事 ▶▶  10日目  🎅🎁

こんにちは。横田です。 本ブログでは、Google CloudのCloud Monitoringを使用してエラー検知メールを飛ばす方法について話します。 想定する読者層は以下の通りです。

  • Google Cloud勉強中の人
  • Cloud Monitoringを触り始めた人

1. はじめに

使用するサービスはCompute EngineとCloud Monitoringです。 Webサーバが停止/起動するとメール通知を飛ばすというシンプルなモノです。 Cloud Monitoringについて少し説明します。 Google Cloud上で動作する各種サービスの異常を監視・検知するサービスです。 サービスの異常状況を伝えるために通知先を設定でき、通知先はSlackやメール、Pub/Sub(Google Cloudのメッセージングサービス) などがあります。 GUIで操作します。参考にしたサイトは下記になります。

Cloud Monitoring のドキュメント  |  Google Cloud

一般的なアラート ポリシーの設定  |  Cloud Monitoring  |  Google Cloud

2. 実装

実装していきます。

2.1 インスタンス作成

まずは今回の監視対象となるインスタンスの作成をします。 検索窓に「Compute Engine」と入力し、表示された検索結果「Compute Engine」をクリックします。

「インスタンスを作成」から設定値を入力します。名前やリージョン、マシン構成は任意で良いです。 今回使用したスペックを表に載せています。 入力が完了すると「作成」をクリックします。

設定項目 設定値
マシンタイプ e2-medium
OSバージョン Debian GNU/Linux 12 (bookworm)
補足

Opsエージェントの導入方法を記載します。(本ブログでは使用していません。) OpsエージェントはインスタンスのCPU利用率やログデータなどを収集することが出来るエージェントです。 インスタンス作成時にOpsエージェントのチェックボックスをONにしインスタンスを作成すれば導入できます。

インスタンス作成後にOpsエージェントを導入したい場合はコンソール上からSSH接続し、下記コマンドでOpsエージェントをインストールしてください。

curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh
sudo bash add-google-cloud-ops-agent-repo.sh --also-install

実装に戻ります。 ターミナルからApacheWebサーバを追加します。

「SSH」をクリックしてターミナルを起動し、下記コマンドを実行します。 続行確認のメッセージが表示されたときは「Y」を入力しEnterを押下します。

sudo apt-get update
sudo apt-get install apache2

インスタンスの設定完了です。

2.2 アラートポリシー作成

次にインスタンスを監視しエラー通知を飛ばすためにアラートポリシーを作成します。

2.2.1 通知先の追加

今回の通知先はメールです。 前述したように、SlackやWebhook、Pub/Subを通知先として設定することが出来ます。

検索窓に「Monitoring」と入力し、表示された検索結果「Monitoring」をクリックします。

コンソールの左メニューで「アラート」をクリック。 「Edit notification channels」をクリックします。

ページを下にスクロールし、Email欄の「Add New」をクリック。 メールアドレスと表示名(任意)を入力し「Save」をクリックします。

通知先の追加完了です。

2.2.2 HTTP監視エラーの通知設定

Cloud Monitoringのコンソールメニューで「稼働時間チェック」をクリック。 「稼働時間チェックを作成」をクリックします。

下記のように設定を行い「続行」をクリックします。「Instance*」は作成したインスタンスを選択してください。

「レスポンスの検証」はデフォルトで良いです。 「アラートと通知」では「通知チャネル」のプルダウンから先ほど作成した通知先を選択し、「続行」をクリックします。

「Title*」を任意で設定し「Test」をクリック。200(OK) が返されるので「Create」をクリックします。

ポリシーの作成完了です。

メール件名から何の通知か分かるように少し設定を変更します。 Cloud Monitoringのコンソールメニューで「アラート」をクリック。 下までスクロールし先ほど作成したポリシーをクリックします。

画面上段にある「Edit」をクリック。次の画面で「通知と名前」をクリックします。

「通知の件名」に任意の値を入力し、画面下にある「ポリシーを保存」をクリックします。

エラー通知完成です。

2.2.3 HTTP監視復旧の通知設定

エラー通知と一緒に復旧通知も作成されているので対応は不要です。

2.3 メール確認

正しく実装されているか確認します。 Webサーバを落とすことでエラー通知は飛びますが、今回はGUI操作のインスタンス停止からメールを飛ばします。 Webサーバを落としてメール確認するときはコンソール上からSSH接続し、下記コマンドを停止/起動時に実行してください。

sudo systemctl stop apache2
sudo systemctl start apache2

メール確認をしていきます。 Compute Engineのコンソールを開きます。 作成したVMインスタンスを選択し、「停止」をクリックします。

数分待つとメールが届きます。

エラーメールが届いたことを確認し、Compute Engineのコンソール画面から「開始」をクリックします。

数分待つとメールが届きます。

メール確認完了です。

3. まとめ

本ブログでは、Cloud Monitoringを使用してWebサーバの停止/起動時にエラー通知を飛ばしました。

  • Cloud Monitoringはサービスを監視し通知を飛ばすことが可能
  • Cloud MonitoringはGUI操作

ここまでお読みいただき、ありがとうございました。 これからもGoogle Cloud関連のブログを書いていけたらと思っています。