【GCP入門編・第17回】 Stackdriver Monitoring で Google Compute Engine を監視しよう!

【GCP入門編・第17回】 Stackdriver Monitoring で Google Compute Engine を監視しよう!

GCP

投稿日:2018/04/25

アプリケーションの運用をする中で、障害にいち早く気づくための監視は、なくてはならない存在です。ただ、監視ツールの設定は往々にして手間がかかるというイメージもあるかと思います。
この記事では、 Stackdriver の機能である Stackdriver Monitoring を利用して、 Compute Engine 、 App Engine に対して監視を設定する方法を紹介します。 Stackdriver Monitoring を利用することで、 GCP で運用するインフラやアプリケーションの監視は飛躍的に簡単になります。なくてはならないけど設定が面倒、そんな監視についてのイメージが払拭されることでしょう。

この記事の目的

  • Stackdriver のアカウントを作成して、使用準備をしよう。
  • Stackdriver Monitoring を使って、 Google Compute Engine の監視を行おう。

Stackdriver Monitoring の使用準備

Stackdriver を使用するためには、 Stackdriver のアカウントを作成する必要があります。 Stackdriver のアカウント作成は、 GCP のコンソール上から行うことができます。まずはブラウザでコンソールを開きましょう。
01.png
コンソールを開いたら、 Stackdriver のログイン画面に移動します。左側のメニューを表示し、 [Monitoring] をクリックします。
02.png
遷移したページに表示されている [Login with Google] をクリックすると、 OAuth のログイン画面が表示されます。 Stackdriver を使用する Google アカウントを選択して許可をクリックすることで、 Stackdriver のアカウント作成画面に移動します。
03.png
プロジェクトを選択し、 [Create Account] をクリックしましょう。アカウントの作成が行われ、監視するプロジェクトの選択画面が表示されます。 Stackdriver では、アカウントを作成したプロジェクト以外のプロジェクトを監視することもできます。この例では、 My Cloud Project のみを監視しますので、特に追加をせずに、 [Continue] をクリックします。
04.png
次に、 AWS の監視を行う場合のために、 AWS のアカウント追加画面が表示されます。こちらも特に設定は行わないため、 [Continue] をクリックします。
05.png
上図の通り、Stackdriver agent のインストールを解説する画面が表示されます。こちらは後ほど行いますので、ひとまず [Continue] をクリックしてスキップします。
06.png
“Get Reports by Email” という画面が表示されます。こちらは、 Stackdriver のレポートをどのくらいの頻度で受け取るのか選択する画面です。今回はデモですので、 “No report” を選択して、 [Continue] をクリックします。
07.png
“Finished Initial collection!” というメッセージが表示されたら、 Stackdriver の利用を開始できます。ここでひとまず、 GCP に戻り、監視対象のインスタンスを作成しましょう。

Stackdriver Monitoring を利用して Compute Engnine のインスタンスを監視する

GCP のコンソール上で、 Compute Engine を選択し、 [Create instance] をクリックしてインスタンスの作成を行います。【GCP入門編・第3回】 Google Compute Engine (GCE) でのインスタンス起動方法!を参考に、 Ubuntu 16.04 LTS のイメージを使ってインスタンスを起動し、 gcloud compute ssh でログインを行います。
ログインが完了したら、以下のコマンドで nginx をインストールします。今回は、インスタンス自体の監視と、 nginx の監視を設定します。

$ sudo apt-get install -y nginx

次に、以下のコマンドで、 Stackdriver の agent をインストールします。 agent は、インスタンスから CPU やメモリの使用率といったメトリクスを収集し、 Stackdriver Monitoring に送信するためのプログラムです。

$ curl -O https://repo.stackdriver.com/stack-install.sh
$ sudo bash stack-install.sh --write-gcm

08.png
以下のメッセージが表示されたら、 Stackdriver のエージェントの起動は成功です。

[ ok ] Restarting stackdriver-agent (via systemctl): stackdriver-agent.service.

次に、 loging agent をインストールします。

$ curl -sSO https://dl.google.com/cloudagents/install-logging-agent.sh
$ sudo bash install-logging-agent.sh

09.png
ここで、先ほどまでブラウザで開いていた、 Stackdriver のコンソールを開きます。コンソールを開いたら、左側に表示されるメニューの、 [Alerting] をクリックし、 [Uptime Checks] をクリックします。
10.png
右上の、 [Add Uptime Check] をクリックすると、 “New Uptime Check” というダイアログが開きます。自動で検出されたリソースに対する Uptime Check を追加するかどうか聞かれるかもしれませんが、この場合は [No thanks] をクリックして、手動で Uptime Check を追加する画面を表示します。
11.png
下に表示されているように、 Resource Type を “instance” に変更し、先ほど作成したインスタンスを選択します。 name を ”test-uptime-check” に変更し、 [Test] をクリックします。
12.png

responded with 200 (OK)

このようにテストが成功したことを確認し、 [Save] をクリックします。 Alerting Policy を追加するかどうか聞くダイアログが表示されますので、 [Create Alerting Policy] をクリックします。
13.png
Notifications の [Add Notification] をクリックし、 Email アドレスを入力して [Save] をクリックします。これで、設定した Uptime Check に対する通知ポリシーが作成されました。
14.png
以上で、監視の設定は完了です。10分ほど待つと、最初のチェックが走ります。10分程度待って、先ほどのインスタンスに設定した Nginx を試しに終了し、通知が届くかどうかチェックしてみましょう。以下のコマンドで、 Nginx を終了します。

$ sudo service nginx stop

そして、しばらく待っていると、以下のようなメールが Stackdriver から届きます。
15.png
Stackdriver コンソールに移動し、 Uptime Checks を開くと、以下のように Nginx へのアクセスが失敗したことがわかります。
16.png

おわりに

いかがでしたか。 Stackdriver Monitoring を使うことで、とても簡単にアプリケーションのエラー通知を追加することが可能です。今回は Nginx サーバーへのアクセスチェックを追加しましたが、この他にも、 CPU 使用量やメモリ使用量など、様々な監視項目を追加することが可能です。

同じシリーズの記事

GCP のメリットを最大限に活用しよう!

GCP・G Suite のご相談・
お見積り依頼はお気軽に
TEL.03-5840-8815
お問合せフォーム TEL.03-5840-8815