「サービスの監視」と「インフラの監視」
システムのサービスを継続的に提供し続けるためには、どうしても「監視」が必要になります。
システムの監視を大きく分けると、「サービスの監視」と「インフラの監視」の2種類に分類できます。
「サービスの監視」とは、ユーザー目線の監視と言い換えることができます。エンドユーザーは様々な形でシステムを使いますが、システムが正常に作動しないとサービスを利用できなくなります。例えば、「Webページにアクセスして商品を買うことができる」というサービスを提供するには、URLの応答や画面の遷移などを監視し、システムをいつでも利用できるように維持し続けなければなりません。「インフラの監視」は、サーバーやネットワーク機器など、サービス提供に必要なインフラの稼働状況を監視し続けること。文字通りインフラの監視です。
基本的には、「サービスの監視」さえ実施できていれば、システムのサービス継続性は保たれていると言えます。
しかし、「サービスの監視」でエラーを検知した場合、それはエンドユーザーに対するサービス提供が停止したことを意味します。それでは結局、そのサービスは機会を損失してしまいます。そのため「インフラの監視」を通じて、障害の「予防」と「原因特定」を行うのです。
例えば先のようなWebサービスを提供する場合は、サーバーを2台用意して同じサービスを実行させておけば(冗長化)、片方のサーバーが故障してももう片方のサーバーでサービスは継続できます。つまり、障害を予防できるのです。しかし、表向きは問題ないので、「サービスの監視」では検知できません。これは「インフラの監視」で検知しなければならないのです。
また、サーバー1、2のデータ格納を司るデータベースサーバーが故障した場合は、やはりサービスは停止します。当然、「サービスの監視」で異常は検知できますが、「原因の特定」はできません。「インフラの監視」によって適切な監視ポイントを設けておくことが必要になるのです。
監視ポイントは、①何のサービスをどう監視するのか、②サービスを提供するために必要な要素は何か、③必要な要素はどう絡み合うのか、の順番に特定していきます。
①で必要なのはシステムの役割を定義することです。単純なWebシステムであれば、「Webページを表示することが役割」となり、Webページが表示されていることを確認し続けることイコール監視ということになります。②、③と考えていくと、WebサーバーやWebプロセス、データベースサーバーやデータベースプロセスが監視対象に挙がるでしょう。するとURLの応答監視、画面遷移監視、ログ監視といった監視ポイントが見えてくるはずです。
実際には、運用の中で発生した様々な問題も監視に取り入れ、運用しながら監視体制を強化していくことになります。
最近の統合運用管理ツールでは、オンプレミス、クラウドの環境を問わず監視管理機能を提供したり、監視オペレータの負担を軽減するフィルタリング機能を備えたものが登場しています。