Google Stackdriverを使ってAWSのリソースをモニタリングしてみた。

はじめに

Stackdriverはもともと「AWSのモニタリング」をメインにしていたサービスです。 ですが、Googleが2014年に買収したため、「Google Stackdriver」にサービス名を変更してGCPNext16発表されました。 機能としては「リッチダッシュボード」、「アップタイムモニタリング」、「アラート」、「ログ解析」、「トレーシング」、「エラーレポート」、「プロダクションデバッグ」などがあります。 また、GCPとAWSの両方のクラウドプラットフォームを統合してモニタリングができます。

ということでAWSのリソースをモニタリングしてみます。


# Stackdriverの利用開始 [Stackdriver](http://www.stackdriver.com)のサイトへ行き「**Try the Free Beta**」をクリックします。 ![01_stackdriver01.png](/images/posts/da1b0ce6-3c374f69-ff6e-c4a3-e25e-6af868449aac.png)

GCPの「GOOGLE STACKDRIVER」のサイトへ移動するのでここにある「コンソールへ移動」をクリックします。(というか直接こっちのサイトへアクセスしても大丈夫です。) 01_stackdriver02.png

Stackdriverを利用するにはGCPが利用できる状態にしておく必要があります。 まだの場合は「コンソールへ移動」をクリックするとGCP利用登録画面へ移動します。


# GCPプロジェクトの作成 GCPのStackdriverのサービスへ移動するので、とりあえず今回は「**プロジェクトの作成」**をクリックします。 ![01_stackdriver03.png](/images/posts/89e45dc8-c5f58deb-a4bc-c01d-d625-becba06c61f0.png)

プロジェクト名を入力して「作成」をクリックします。 01_stackdriver04.png

Create a new Stack account」にチェックして「Continue」をクリックします。 01_stackdriver05.png

Create Account」をクリックします。 01_stackdriver06.png

このまま「Continue」をクリックします。 01_stackdriver07.png 01_stackdriver08.png

Log in to your Amazon IAM console and click Roles」をクリックしてAWSコンソールを開きます。 その際に「ACCOUNT ID」と「EXTERNAL ID」をチェックしておきます。 01_stackdriver09.png

ここで一旦、Stackdriverの設定は中断してAWS側の設定を行います。


# AWSロールの作成 ここではStackdriverがAWSリソース状況を取得できるようにするためのロールを作成します。

新しいロールの作成」をクリックします。 02_aws01.png

ロール名を「Stackdriver」を入力して「次のステップ」をクリックします。 02_aws02.png

クロスアカウントアクセスのロール」をチェックして「サードパーティのAWSアカウントユーザーに、アカウントへのアクセスを許可します。」を選択します。 02_aws03.png

先ほどStackdriverのコンソール画面に表示されていた「アカウントID」と「外部ID」を入力して「次のステップ」をクリックします。 02_aws04.png

ポリシーのアタッチで「ReadOnlyAccess」を選択して「次のステッップ」をクリックします。 02_aws05.png

内容を確認して問題無ければ「ロールの作成」をクリックします。 02_aws06.png

ここで「ロール ARN」をメモしておいてください。後ほど使います。 以上でAWS側の設定は完了です。Stackdriverの設定に戻ります。


# モニタリングの設定 先ほどメモした**ロール ARN**を「**Role ARN**」を入力し、「**Description of account**」にアカウントについての説明を入力したら「**Add AWS account**」をクリックします。 ![03_stackdriver01.png](/images/posts/5b12bccd-49da7a5e-97ab-0c2c-84c8-6a144c130ebb.png)

追加が確認されたら「Done」をクリックします。 03_stackdriver03.png

Launch monitoring」をクリックするとモニタリングが開始されます。 03_stackdriver04.png

最後に、レポートについて「日次」、「週次」、「受け取らない」のいずれかを選択して「Continue」をクリックしたら完了です。 03_stackdriver05.png

AWSの情報を取得するまで結構かかります。気長に待ちましょう。


# 確認 情報の取得が完了すると「**Resources**」のところにAWSで見たことある文字がずらっと表示されます。 ![04_stackdriver01.png](/images/posts/e5e6f25d-18d4487d-cc4a-a036-f602-13b85f56d5a2.png)

以上で無事取得が完了しました。

参考としてInstanceBlock Storage Volumeの様子を載せておきます。

■ Instances 04_stackdriver02.png

04_stackdriver05.png

■ Block Storage Volumes 04_stackdriver03.png

04_stackdriver04.png

あと、レポートはこんな感じに届きます。 05_report01.png 簡単なサマリーが表示され、「Group」のリンクをクリックするとモニター画面が開くようになっています。


# おわりに AWSの初期情報を取得するのに時間はかかりますが、思った以上に導入は簡単でした。何よりもAWS側のロールは「ReadOnlyAccess」だけで良いので安心です。

ただ、IAMロール作成時にちゃんと「ロールの作成」をクリックしてから作成が完了していない状態でStackdriverの設定に戻ってしまうとAWSリソース情報が取得できないのでクリックのし忘れに注意してください。「当たり前でしょ!」と言うと思いますが、何気に忘れてしまいそうなポイントかなと感じました。。。はい。忘れました。。。

それと、他にもエージェントを入れるとプロセスのモニタリングもできるみたいなので、そこについても試してみようと思います。