diffeasy Advent Calendar 2018 の16日目の記事です。
「世界中の“むずかしい”を簡単に」を経営理念に活動している株式会社diffeasyの宮原(@tomoyoshi_de) です。
私たちは普段GoogleCloudPlatformを利用してサーバーサイドのシステムを構築しています。
以下、構築例です。
- バックエンド
- GoogleComputeEngine
- nginx
- Ruby on Rails
- puma
- CloudSQL
- CloudStorage
- 負荷分散
- GoogleComputeEngine
- フロントエンド
- FirebaseHosting
- Vue.js
- FirebaseHosting
システムを運用していく中で適応する監視ツールが「StackDriver」、「Mackerel」の2つがあるので比較検討しました。
最初はCloudSQLはStackDriverでしか見れないと思い、使い分けよう!ぐらいの気持ちでした。
が、まとめていくうちにMackerelでも設定できることに気付きました。すみません。。
外形監視が無料で設定できることぐらいがStackDriverに優位性があるぐらいで、、
結論は、完全にMackerelの勝利です!
評価基準
- 設定の容易さ
- 監視種類
- 通知の種類
- 価格
①設定の容易さ
StackDriver
初期設定
GCEに対してのStackDriverは特にGCE上でコマンドを打たなくてもOKです。
https://cloud.google.com/monitoring/quickstart-lamp
Stackdriver エージェントのインストールをすることでLogをGCPの管理画面で監視可能です。
どのAPIがいつ実行されたかのログはバッチリに見ることができそうです。
Mackerel
初期設定
[結果]
導入設定の容易さはあまり変わらないと感じます。
が、英語か日本語かということで日本人はMackerel優位に立ちそうな気がします。
②監視の種類
どちらも基本的な監視はあるので、pluginを比較します。
StackDriver
pluginを使うことでメジャーどころには対応しています。
https://cloud.google.com/monitoring/agent/plugins/
StackDriverのサービス群は、監視以外のログ参照、トレース、デバッカーがあります。
こちらにはMackerelにはない優位性がありそうですが、対応言語が限られており、私たちが主に使うRubyonRailsはβ版だったりと、私は設定を挫折しました。。
名前 | サービス |
---|---|
Stackdriver Logging | ログデータやイベントを格納、検索、分析、モニタリング、通知可能 |
Stackdriver Error Reporting | クラウドサービスで発生したクラッシュをカウントして分析、集計可能 |
Stackdriver Trace | アプリケーションから収集したデータをほぼリアルタイムでアプリケーションのパフォーマンスを自動的に分析されて、アプリケーションのパフォーマンス低下やパフォーマンス上のボトルネックを確認可能。 |
Stackdriver Debugger | 本番環境のアプリケーションの状況を分析し、コードの任意の位置でのアプリケーションの状態を停止せずに調べることが可能。 |
Mackerel
監視項目
- ホストメトリック監視:CPUメモリなどのしきい値監視
- ホスト死活監視:ホストが生きてるかを監視
- サービスメトリック監視:
- 外形監視:URLによる監視(有料)
mackerel-agentが便利
以下のgithubを見ていただくと早いのですが、キャプチャを貼るのを諦めるぐらい数多くに対応しています。
https://github.com/mackerelio/mackerel-agent-plugins
GoogleCloudPlatformを使用しており、GoogleComputeEngineだけではなく、CloudSQL等のSQLは無理かなーと思ったら、プラグインコマンドに以下のようにオプション項目追加することでいけました。
Mackerel凄い…
mackerel-plugin-mysql -host=127.0.0.1 -username=<username> -password=<password>
nginxも以下ブログに詳しく書かれており、あっさりできました。
https://soudai.hatenablog.com/entry/mackerel-plugin-nginx
[結果]
圧倒的Mackerel勝利。
③通知の種類
StackDriver
海外のサービスなので、以下の通りです。SlackがあるからギリOKという感じ。
Mackerel
グループ設定により多彩に設定可能。
ちょっと読解難易度高めな印象。
https://mackerel.io/ja/docs/entry/howto/alerts
[結果]
圧倒的Mackerel勝利。
④価格
StackDriver
無料枠があり、ほぼ無料でいける。
https://cloud.google.com/stackdriver/pricing
Mackerel
Freeでも十分恩恵を受けることが出来る。
インフラエンジニア目線だと監視項目10個は少ないのだろう。サービス拡大時に有償化を検討したい。
https://mackerel.io/ja/pricing/
[結果]
ほぼ無料でいけるため、引き分け。
まとめ
国産を贔屓目に見ることなく、Mackerel凄いです。
日本の運用監視の未来は明るいと思います。
少し玄人向けと思われるpluginがあるので、ある程度チェック機能をパッケージ化してもいいかもと思います。まず私たちの理想の組み合わせは整理します。
ただ、GAEやHerokuを利用することでそもそも監視を気にしなくて良い日が来るのか…?と考えつつ、そちらはProductionで試したいと思います。