入門監視を読みました
最近、入門監視読んで良かったので、概要とか感想まとめておきます。
本の概要
監視の知見が詰まった本。 大きく2部構成で、
- 1部では筆者が今まで見てきた、監視するときに陥りがちなアンチパターンや、逆にうまくいった知見としてのデザインパターン
- 2部では、何を監視すべきか?なぜ監視すべきか?どうやって監視するかといった監視の戦略
が書かれています。 よくある、特定のツールを用いたインストールや設定方法はなく、監視に対する考え方を学ぶことができます。
どんな人にオススメか?
- 監視ってそもそも何?どこからやればいいの?という人
- ZabbixやNagiosを入れてれば監視は完璧!と思ってる人
- 監視なんて専任の人がやることでしょ?と思ってるアプリケーションエンジニア
よかったところ
本書で一番感銘を受けたのは「ユーザ視点で監視すべき」ということです。
私の今までの監視の理解は
- 各サーバ単位で、OSメトリクス(CPU,Memory,Disk)、ポートの死活監視
- 上記に異常が発生したら即アラートをする
だと思っていました。 しかし本書では、ユーザ視点での監視をすべきと言っています。
「ユーザ視点での監視」とは?
ユーザ視点の監視とは「ユーザ影響がないかどうか」をわかるようにする監視です。 WEBシステムの一般的な構成として、以下のようにロードバランサ等を用いてアプリケーションサーバを複数用意した冗長化構成とするかと思います。
よくやりがちなのは「どこかのサーバでエラーが出た場合にアラートを上げる」ことです。
画像の例でいくとAvailability Zone AのAWS EC2サーバが1台落ちてしまった場合などです。
本書では、これはアラート疲れをを起こすため良くないと紹介しています。
では、どうすべきか?
具体的には以下のようなチェックをすべきと紹介されています。
- HTTPレスポンスコードのチェック
- 200が帰ってきていること
- 5XXが出ていないこと
- レスポンスのレイテンシが低下していないこと
これを監視することで、ユーザ影響の有無を即座に察知することができます。
また、これをもっとブラッシュアップすることで
- 「ユーザのXXX処理の失敗回数が5分間で5%以上の場合にアラートを上げる」
- 「ユーザのXXX処理のレスポンスが1秒を超えた場合にアラートを上げる」
といった、よりユーザ目線なアラートを上げるこが可能となります。
終わりに
ここで紹介したユーザ視点での監視は、正直今まで考えられてなく為になりました。
他にも陥りがちなアンチパターンと、アラートを良くするためのデザインパターン等が記載されています。
個人的には、この本は、リファレンス的に手元に持っておきたいと思いました。
ページ数もあまり多くないので、まさに入門本として読みやすいのでおすすめです。