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