入門 監視(1) 監視の定義となぜ、何を監視すべきか?
この記事について
この記事の対象読者は、システム監視系に興味のある初級者の方を対象にしています。
私は数年来業務でシステム監視系構築を行っていますが、昔も今も手探りでやっています。
つまり監視の専門家と呼ぶには拙い若輩者です。
参考にしてきたものはたくさんありますが、オライリー・ジャパン様が発行している『入門 監視』に特に影響を受けました。
続きものとするつもりですので、これからシステム監視系を構築される方のご参考になれば幸いです。
監視の定義
まずはやはり 監視とは何か? ということを抑えておくべきでしょう[1]。
監視とは、あるシステムやそのシステムのコンポーネントの振る舞いや出力を観測しチェックし続ける行為である。
Monitoring is the action of observing and checking the behavior and outputs of a system and its components over time.
この定義は、Greg Poirier氏よってMonitorama 2016というカンファレンスで紹介された(動画の14:13あたり)。
Monitorama PDX 2016 - Greg Poirier - Monitoring is Dead. Long Live Monitoring
こちらの動画では、システム作る人界隈では言葉を知ってて当たり前になってきている 観測可能性(Observability) についても触れられているのでぜひ一度見てみてください。
なぜ監視をするのか?
なぜ監視をするのか? この問いは非常に奥が深いなと思っています。
というのも、この問いの答えによって、何を監視すべきなのか?という話につながるからですね。
監視を行う理由としては:
- システム障害を発生させない(未然に防ぐ)ため
- システム障害が発生したら素早く検知するため
というものがパッと思い浮かびます。
しかし、セキュリティの面では:
- セキュリティインシデントを発生させない(未然に防ぐ)ため
- セキュリティインシデントが発生したら素早く検知するため
という話も出てきそうです。
さらに、アプリケーションのことを考えると:
- アプリケーションの予期せぬエラーが発生したら素早く検知するため
が出てきます。
また、障害やエラーといったマイナスな話だけではなく、
- 期待通りのアクセス数なのかを把握するため
- 期待通りのパフォーマンスなのかを確認するため
- 現状のリソース使用状況を確認し、作業計画を立てるため
などといった、「誰かが困る」話ではない面でも監視は役に立ちそうです。
つまりは、誰のための何のための監視なのかをよく意識して監視系を組むべきである という当たり前な答えになってしまいそうです。
『入門 監視』では、実際に経営者や事業責任者から受けることの多い質問として「サービスは動いている?」「ユーザへの影響はあるの?」などがあり、こうした経営層の関心事に深い認識を持ち、彼らが楽に仕事ができるようにすることで、監視がビジネスに提供する価値を明示できるようになると言います。
「サービス利用者に対しての影響を見えるようにする」 ことがシステム監視系を構築するスタート地点になりそうですね。
何を監視すべきか?
『入門 監視』では、「何を監視すべきか?」に対して次の6つの要素を挙げています。
- ビジネス
- フロントエンド
- アプリケーション
- サーバ
- ネットワーク
- セキュリティ
またSaaSの監視についてもそれらの話から発展させて触れられています。
これらそれぞれを深堀していく前に、次回はすべての要素に共通するシステム監視系のデザインパターンについて触れていきます。
-
かつて私が初めてDBサーバの運用を任されたときに監視について前任者に確認したところ、お手製のCシェルスクリプトがCRONによって動いており、閾値を超えるとアラートメールがsendmailでメール送信されるというものでした。そして、そのシェルが動いているかどうかは誰も知らないという恐ろしいものでした。監視の監視という変な話がありますが、やはりシステム監視系が動いていることを確認するのはシステム監視系の利用者でしょう。監視 系 のプロセスも観測できる状態にあることが要件と言えそうですよね。 ↩︎
Discussion