gumadesu

日々の学びをアウトプット

入門監視を読みました

最近、入門監視読んで良かったので、概要とか感想まとめておきます。

本の概要

監視の知見が詰まった本。 大きく2部構成で、

  • 1部では筆者が今まで見てきた、監視するときに陥りがちなアンチパターンや、逆にうまくいった知見としてのデザインパターン
  • 2部では、何を監視すべきか?なぜ監視すべきか?どうやって監視するかといった監視の戦略

が書かれています。 よくある、特定のツールを用いたインストールや設定方法はなく、監視に対する考え方を学ぶことができます。

どんな人にオススメか?

  • 監視ってそもそも何?どこからやればいいの?という人
  • ZabbixやNagiosを入れてれば監視は完璧!と思ってる人
  • 監視なんて専任の人がやることでしょ?と思ってるアプリケーションエンジニア

よかったところ

本書で一番感銘を受けたのは「ユーザ視点で監視すべき」ということです。

私の今までの監視の理解は

  • 各サーバ単位で、OSメトリクス(CPU,Memory,Disk)、ポートの死活監視
  • 上記に異常が発生したら即アラートをする

だと思っていました。 しかし本書では、ユーザ視点での監視をすべきと言っています。

「ユーザ視点での監視」とは?

ユーザ視点の監視とは「ユーザ影響がないかどうか」をわかるようにする監視です。 WEBシステムの一般的な構成として、以下のようにロードバランサ等を用いてアプリケーションサーバを複数用意した冗長化構成とするかと思います。

https://d1.awsstatic.com/icons/jp/cdp/cdp-jp-biz-010_v3.25136014470e50bdb79424c9811490e25c14d9a0.png aws.amazon.com

よくやりがちなのは「どこかのサーバでエラーが出た場合にアラートを上げる」ことです。
画像の例でいくとAvailability Zone AのAWS EC2サーバが1台落ちてしまった場合などです。
本書では、これはアラート疲れをを起こすため良くないと紹介しています。

では、どうすべきか?

具体的には以下のようなチェックをすべきと紹介されています。

  • HTTPレスポンスコードのチェック
    • 200が帰ってきていること
    • 5XXが出ていないこと
  • レスポンスのレイテンシが低下していないこと

これを監視することで、ユーザ影響の有無を即座に察知することができます。
また、これをもっとブラッシュアップすることで

  • 「ユーザのXXX処理の失敗回数が5分間で5%以上の場合にアラートを上げる」
  • 「ユーザのXXX処理のレスポンスが1秒を超えた場合にアラートを上げる」

といった、よりユーザ目線なアラートを上げるこが可能となります。

終わりに

ここで紹介したユーザ視点での監視は、正直今まで考えられてなく為になりました。
他にも陥りがちなアンチパターンと、アラートを良くするためのデザインパターン等が記載されています。

個人的には、この本は、リファレンス的に手元に持っておきたいと思いました。
ページ数もあまり多くないので、まさに入門本として読みやすいのでおすすめです。