はじめに
今回はZabbixによるシステム監視について、想定される課題をベースによく利用される監視手法についてご紹介いたします。
- プロセス監視の必要性について
- 外形監視について
- 障害を未然に防ぐ方法について
課題① 提供するWEBサービスを監視したい
WEBサービスを立ち上げたけれど、その後の運用はどうすれば良いのか。
「監視システム」と聞くと、ネットワーク機器やサーバ機器の監視を連想しがちですが、WEBサービスの監視もエンドユーザへ滞りなく継続してサービスを提供する上でとても重要になります。
ではWEBサービスにはどのような監視が必要でしょうか。
まずは、WEBサービスを提供しているマシンの監視が必要となります。
マシンの監視は過去の記事「監視システム実装のススメ」で紹介されている以下の3つが基本となります。
- リソース監視
- 死活監視
- トラフィック監視
ただ上記だけでは実際にサービスを提供するためのソフトウェア、アプリケーションがきちんと動作しているかまではわかりません。「マシンは正常稼働しているけど、サービスが止まっている!」なんて事態にならないために、WEBサービスの監視では実際にサービスの提供を行うソフトウェアやアプリケーションの監視が必要です。
ソフトウェア/アプリケーションは様々な処理(プロセス)を起動させます。これらプロセスはマシンのCPU、メモリを消費して動作します。
この動作しているプロセスを監視することで、サービスが正しく動作しているか判断できます。
少し細かくなりますが、プロセスは親となる「親プロセス」、子となる「子プロセス」という形で動作している場合が多々あります。
ソフトウェア/アプリケーションによりますが、親プロセスだけではちゃんと動作せず、子プロセスがN個以上稼働していないと正しくサービスを提供できない場合があったりします。
その場合は、親+子の総プロセス数で監視を行うことで、「プロセスがN個以下となったら障害として検知」とすることができ、「ちゃんと動作している」ということを判断することができるようになります。
マシンの監視、プロセスの監視。これでマシン自体に何か起こっても、サービスに何か起こっても大丈夫!と思いきや、エンドユーザから「使えない!!」とクレームがありました。
WEBサイトにアクセスしてみると、確かにアクセスできません。
いったいなぜでしょうか?
一言にWEBサービスといっても、一つのマシンだけで完結しているとは限りません。
例えばユーザとサービスを提供するマシンの間に1つのマシンへのアクセス集中を防ぐためのロードバランサというマシンがいる場合があります。
このロードバランサに異常があった場合、WEBサービスを提供しているマシンやそのマシンで稼働しているソフトウェア/アプリケーションに異常がなくても、WEBサイトに繋がらない、という事態が発生します。
もちろん中間機器を監視することも重要ですが、もう一つできることがあります。それが外形監視とよばれるユーザ目線の監視方法です。
外形監視とは「Webページなどに実際のユーザがログインして操作する」というような動作を自動化して定期的に行い、その結果の返り値が正しいのか、遅延がないのかどうかを調べる監視方法です。
外形監視を行うことで、以下のことがわかります。
- Webページが正しく表示されるか
- ログインが正しくできるか
- Webページの応答スピードに問題はないか
外形監視は実際の利用者が行う操作のシナリオの作り込みが重要となり、大変な部分ではありますが、一旦作り込みを行えば定期的に処理を実行し、状況を確認、問題がある場合は通知するという事ができるため、障害の検知または未然に検知(レスポンスタイムの遅延など)することができます。
課題② トラブルを未然に防ぎたい
提供しているサービスのトラブル。「何か起こった際に検知する」ことはもちろん大事ですが、トラブルは未然に防ぐこともとても重要です。
障害の発生を未然に防ぐ方法は様々ありますが、マシン内のリソース不足によるサービス停止についてフォーカスをあてて考えたいと思います。
システムによっては何年経ってもリソースが枯渇しないものがありますが、例えば処理を行った際にローカルシステムにデータを保存するタイプのシステムだったらどうでしょうか?
その場合、日々データを溜め込み、何年後かにリソースが枯渇し、完全に枯渇した瞬間にサービスが停止してしまいます。
そうなる前に、計画を立てて新しいマシンに載せ替えるなどの対処が行えれば、サービスが停止することもなく、エンドユーザへの影響もなくすことができます。
では、いつその「何年後」が訪れるのでしょうか?
この「いつ、何年後」を予測するために、マシンに対し定期的に情報を収集し、グラフ化することで、グラフの流れから将来的にいつ頃リソースが枯渇するか予測でき、これを逆算して例えば半年前からリプレース計画を立て、実施できれば安心して運用できると思います。
最後に
監視は組み合わせ次第でシステムの安定稼働につなげる事ができるようになりますが、この組み合わせを正しく組むことが重要です。
組み合わせ、設定を誤ると、不必要なアラートが出たり、逆に必要なアラートが出なかったりすることがあります。
弊社では過去の監視実績から、お客様とご相談しながら、お客様環境にとっての効果的な監視方法についてご提案いたします。お気軽にご相談・お問い合わせください。