あさのひとりごと

3日坊主にならないように、全力を尽くします。 記事は個人のひとりごとです。所属する組織の意見を代表するほど、仕事熱心じゃないです。

【書評】「Mackerelサーバ監視実践入門」 を読みました!

クラウドサービスを使うと、あっという間にアプリケーションがローンチ出来る時代になりました。とても良い世界に向かっています。

しかし。

であるがゆえに、自社のサービスを差別化しビジネスにしていくのが難しく、深層学習のような高度な数理を必要とするインテリジェントなアプリや専門性の高い業務知識を要するアプリでないとなかなかマネタイズが。。。というとこもあり、エンジニアは勉強すべきことが山ほど増えてきています。

そんなわけなので、アプリのインフラの運用にかかる作業はクラウドに丸投げし、可能な限り自動化しないと命がいくつあっても足りません。特に、サービスが停止するとビジネス損失も大きいので、監視だけはしっかりしたい。しかしながら、毎日定時に帰り土日はゆっくりまったりしたい。

Mackerelは、はてなが提供している国産サーバ監視SaaSです。システム監視はプロのノウハウや技術が必要な部分がどうしても多いわけなので、SaaSを使うのがおすすめです。

ということで勉強のため、「Mackerelサーバ監視実践入門」 を読ませていただきました。

gihyo.jp

1章 Mackerelとはなにか

Mackerelは、はてなブログはじめはてなの自社サービスから生まれた監視サービスです。サーバ=「鯖」=Mackerelというダジャレ乙というところからはじまり、Mackerelのコアコンセプト/提供機能/基本アーキテクチャ/動作環境などがコンパクトにまとまっています。

Mackerelは、Push型アーキテクチャを採用しており、監視対象ノードにmackerel-agentを動作させてメトリックスを収集する構成です。

2章 Mackerelをはじめる

Mackerelのサインアップのしかたから始まり、管理画面の見方、収集できるメトリックの種類などが解説されています。なんと「カラー!!」うらやましいです。あと、Windows Serverの監視もできるのは知りませんでした!すばらしい!

3章 監視する

ここでは、具体的にMackerelでサーバを監視する手順が紹介されています。メトリック監視で監視ルールをどう設定すればよいかや、クラウドサービスの監視などでつかうURL外形監視の手順がスクリーンショット付きで丁寧に説明されています。

また、コラムでロードアベレージやcpuやdiskなどのシステムメトリックの意味か解説されていて、すばらしい!ノウハウたっぷりです。

4章 アラートを通知する

運用では閾値を超えたときにアラートを発生して管理者に通知しますが、Mackerelでは、メールやSlackだけでなくLINEやYammerなども利用できます。これらの設定のしかたが説明されています。

5章 プラグインを作る

mackerel-agentのプラグインを作る方法が解説されています。カスタムメトリックプラグイン/チェックプラグインメタデータプラグインが作成できます。シェルスクリプトでの例やGoでのヘルパーライブラリでの実装が紹介されています。かなり丁寧な説明なので、Goを書いたことがなくてもすぐ理解できると思います。

6章 各種ツール連携と運用の効率化

ここでは、MackerelAPIの紹介と、Fluentd/Chef/Capistrano/Serverspecとの連携について書かれています。ログを集約させたりChefで構成管理したりなどいろんなことができるんだなと初めて知りました。

7章 クラウド環境におけるMackerel

ここでは、MackerelをAzureおよびAWSで利用するための手順が解説されています。どちらも監視サービスを提供していますがお客さんによっては、同一のSaaSで監視したいという要件もあると思うので、チェックしておきたいと思いました。

あと、Herokuの監視とDockerプラグインの説明もありました。良いですね~~!

8章 発展的な機能

最後の章で、落穂拾い的にGitHubとの連携やグラフの便利な書き方、セキュリティに関するノウハウなどが紹介されています。また付録にMackerelの内部アーキテクチャが紹介されていて、面白いなぁと思いました。

まとめ

とても良い本でした。

わたしはゲームやマルチメディア系などいやゆるコンシューマ向けのシステムのことはよく知らないんですが、業務系システムでは「基幹システムのクラウド移行」「ハイブリットクラウド」「マルチクラウド」などなど、とにかくAzureとAWSが大盛況です。どちらも監視サービスを提供していますがお客さんによっては、同一のSaaSで監視したいという要件もあると思いますし、外形監視の要件もあるのでしっかり技術をチェック&ウォッチしておきたいと思いました。

業務系システムにはミッションクリティカルなものも多く、サービス停止がビジネスだけでなく社会基盤に大きな損失を与えるケースが多々あります。またステークホルダーが多く、非機能要件も複雑怪奇なため「運用設計」が、ものすごくものすごく大事です。

はてなのみなさんの極めて高い技術やノウハウを凝縮して煮詰めたMackerelは、国産SaaSということもありとても使いやすいので引き続き勉強していきたいと思いました。

Mackerelチームのみなさん、どうもありがとうございました!

これからもどんどん良いサービスをお願いします!

おわり

© 2017 ASA.