GCP Stackdriver Monitoring 使ってみた感想/AWS CloudWatchとの比較 (2019年5月末時点)

[@koshi_life](https://twitter.com/koshi_life) です。

[Stackdriver Monitoring](https://cloud.google.com/monitoring/?hl=ja)を使いはじめて2週間ほど経ちました。とても便利なのでやや気が早いですが、一部AWSのCloudWatchで行っているモニタリング運用の移行を検討しています。

以下、Stackdriver Monitoringを使ってみた感想です。

# :heart_eyes: Good ここが素晴らしい！

ざっと４点。

## ①Webの死活監視が Uptime Checks で簡単に設定可能

CloudWatch単独機能ではWebの死活監視(URL監視)ができない[^1]
がStackdriverではURL監視の設定がサポートされており設定も簡単でした。

参考 [Stackdriver - 稼働時間チェックの管理](https://cloud.google.com/monitoring/uptime-checks/?hl=ja)

参考 Uptime Checks 設定画面
<img width="800" alt="Screen Shot 2019-06-03 at 1.42.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51734/a612258b-f754-3d9b-7a84-e516cd6693b0.png">


## ②アラート通知先の対応インテグレーションが豊富

Slackにてアラート通知させました。(以下、通知例)

<img width="500" alt="Slack.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51734/f17ce2c9-3ba1-ad8a-a615-d6f222b7d730.png">

AWSだとSNS経由でLambda設定するなど、やや設定が手間です。

参考 [Stackdriver - API による通知チャネルの管理](https://cloud.google.com/monitoring/alerts/using-channels-api?hl=ja)

## ③主要ミドルウェアのモニタリングAgentのサポートがある

Nginx,Apache,MySQL等の主要ミドルウェアの監視用プラグインのサポートがあります。[^2]

Nginx,MySQLのプラグイン導入してみましたが設定も簡単でした。

また、メトリクスは多く定義されていますが、抑えておきたいメトリクスにおいてはデフォルトのビューでグラフ化されているので監視の勘所のキャッチアップの助けになりました。

参考 [Stackdriver - サードパーティ製アプリケーションのモニタリング](https://cloud.google.com/monitoring/agent/plugins/?hl=ja)

参考 Nginxのデフォルトで描画されているグラフの一部
<img width="400" alt="Screen Shot 2019-06-03 at 1.26.04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51734/e192bfd1-a392-d55d-cdb5-3a9edd27060f.png">


## ④公式ドキュメントの充実、スムーズに導入できた

AWSもドキュメントは充実しているが、GCPのドキュメントも簡潔で整理されており、手順も極力少なくなるよう工夫が随所に読み取れた。

ワンライナー的なコマンドの成功率も高く、エラーが起きてもわかりやすいメッセージが出力され、比較的スムーズに導入ができた気がする。

また、AWS環境で設定する最小限の権限定義方法のTipsも載っており気になりどころもまとめられていて好印象。

[Stackdriver - 最小 AWS 権限](https://cloud.google.com/monitoring/support/minimal-aws-permissions)

[^1]: 2019年5月末時点。監視サーバ立てたりLambdaでやるなどの工夫が必要 [例1](https://qiita.com/d-yamanaka/items/50ce676d5a54a5e1bba4), [例2](https://qiita.com/zaburo/items/f1858c29404a306e49b3)
[^2]: BlueMedora製のプラグインも豊富です。[前回エントリー参照](https://qiita.com/koshilife/items/65e00560e6b465c00a24)

# :innocent: Bad もうちょっと！

以下２点期待したい。

## ①監視用エージェントがAmazon Linux2に非対応

GCP環境で利用しているインスタンスは問題なかったのですが、
私のAWS環境で利用中のほとんどのイメージがAmazon Linux2なので、Stackdriver Monitoring Agentが非対応のため導入できませんでした。残念。[^3]

[^3]: [この記事](https://qiita.com/ryo-sato/items/39854a848727e14a91ef)にもある通り、私の環境でもインストールできなかった。

ちなみに、AWS環境では以下イメージにはインストールができて、Stackdriver上で送信されたメトリクスを確認しています。

Amazon Linux1
Ubuntu Server 18.04 LTS
[CentOS 7](https://aws.amazon.com/marketplace/pp/B00O7WM7QW?ref=cns_srchrow)
[Debian GNU/Linux 9](https://aws.amazon.com/marketplace/pp/B073HW9SP3?ref=cns_srchrow)

## ②グラフでの色が指定ができるとなお嬉しい

CloudWatchだとグラフの色の設定が可能で、関連のある色を統一ができるが、Stackdriver上ではできない。

|GCP-Stackdriver|AWS-CloudWatch|
|:--|:--|
|<img width="400" alt="Screen Shot 2019-06-03 at 1.26.51.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51734/f66457e8-0787-e184-564c-bdf3e6e1963c.png">|<img width="400" alt="aws_CloudWatch_2019-06-03 at 1.32.27.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51734/13add6ed-853b-9870-694a-5fdaa852a809.png">|

# まとめ

雑めにCloudWatchとStackdriverを比較すると

AWSのCloudWatchはとても高機能だが設定やや複雑だが
Stackdriver Monitoringはデータ保存期間や細かいグラフ設定はやや機能劣位はあるが、よりライトに使い始めることができるサービスという印象です。

当分どちらにもお世話になると思いますが、Stackdriver Loggingの方も試してみたい。