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関連のブログを書いていけたらと思っています。