想ひ出のへっぽこBlogⅡ from35

~ 自身の備忘録および学習促進のためにブログります。~

想ひ出13: GCP/StackDriverでAWSと連携 & Slackアラート

f:id:moqrin3:20181201120144p:plain
StackDriver

おはようございます、moqrinです。

今回は簡単なサーバー運用監視をしてみたく、Stackdriverをいじってみました。
Stackdriver、シンプルな画面で使いやすいですよね。

そんなStackdriverでAWSのリソースを監視してSlackアラートを投げたくなったので
やってみました。対象はEC2インスタンスです。

やったこと

1. Stackdriver でAWSと連携する
2. サービス アカウントを作成(エージェントを使用する場合)
3. 鍵をインスタンスに格納する(エージェントを使用する場合)
4. エージェントのインストール
5. Stackdriver でアラートを設定する
6. 確認
7. オマケのUptimeCheckアラート確認

1. Stackdriver でAWSと連携する

この辺は公式通りで、また参考となる記事がいくつもございますので、
そちらをご覧頂ければと思います。
基本的に画面で言われた通りに行えば大丈夫です。

Amazon EC2用のクイックスタート
Google Stackdriver でAWSと連携してみた

2. サービス アカウントを作成

IAMと管理からサービスアカウントを作成します。

今回はモニタリングとログ収集をしたいので、こんな感じで設定します。
(モニタリングはモニタリング指標の書き込みで問題ないと思います。)

サービス アカウント名: Agent service account
役割:
モニタリング > [モニタリング編集者]
ログ > [ログ書き込み]

f:id:moqrin3:20181201120335p:plain

3. 鍵をインスタンスに格納する

StackdriverにAWSのリソースが書き込みができるように対象インスタンス上で設定します。
まず、鍵をインスタンスに転送します。
ほんで、秘密鍵ファイル名を下記に変更して

application_default_credentials.json
/etc/google/auth

に格納します。
(ディレクトリがなければ作っちゃいます)

4. エージェントのインストール

Stackdriver Monitoring エージェントと Stackdriver Logging エージェントをインストールします。

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

f:id:moqrin3:20181201120515p:plain

ちなみに、サービスアカウントを入れていないとコケます。
(ワタクシは入れずに進めていて最初コケました・・・。マヌケですねー。。)

エージェントが動作していることを確認します。

ps ax | grep fluentd
ps ax | grep collectd

こんな感じでAGENTタブが増えて表示されますね。

f:id:moqrin3:20181201120427p:plain

5. Stackdriver でアラートを設定する

ここでドハマりしました。。
なんと、現在(2018/9/20)、AWSのはnew UIじゃないと設定できないという鬼仕様!
どうしても指標が表示されないゾ・・・

f:id:moqrin3:20181201120629p:plain

new UIにopt in して設定します。

f:id:moqrin3:20181201120654p:plain

Slackにアラートを投げるようにします。

f:id:moqrin3:20181201120731p:plain

画面で促される通りに設定すれば特に問題ないのですが、以下参考URLです。 Stackdriver Monitoring でメールや Slack による通知を設定しよう!

6. 確認

とりあえず、サーバーで負荷かけてやります。

yes >> /dev/null

アラートがきます。
負荷止めます。
すると連絡が来ます。

f:id:moqrin3:20181201120817p:plain

やったーー。

7. オマケのUptimeCheckアラート確認

UptimeCheckの設定をします。

f:id:moqrin3:20181201120904p:plain

アラートの設定をします。

ところで、これ最短が5分間なんです。
長くない??

f:id:moqrin3:20181201120923p:plain

nginxだかapacheだかを止めてやります。

systemctl stop httpd

アラートが来ます。
(復活もしています。)

f:id:moqrin3:20181201121036p:plain

やったーー。

参考:

Amazon EC2用のクイックスタート
Google Stackdriver でAWSと連携してみた
Monitoring エージェントのインストール
Stackdriver Monitoring でメールや Slack による通知を設定しよう!