こんにちは。システム監視設計の基礎 第3弾としてアプリケーション監視について記載します。アプリケーション監視は、ユーザ目線からややシステム目線となります。システムはアプリケーションの集合体です。どれが停止しても正常なサービスはできません。しっかりと監視できるように設計することが重要です。
アプリケーション監視とは
アプリケーション監視は、アプリケーションの状態を監視することです。状態といっているのは、プロセスが起動しているのか?停止しているのか?障害中なのか?であったり、どのくらい処理時間かかったのか?だったりもします。監視の要素は多岐にわたります。
アプリケーションの数が多くなると大変ですが、一つ一つ目的に応じて設計する必要があります。
アプリケーションの起動状態確認
起動自他確認は、非常にわかりやすい監視設計です。本来起動しているべきプロセスが停止していないか?停止しているはずのプロセスが起動していないか?などを監視します。各プロセスがこの時はこの状態であるべきということを事前に設計する必要があります。
多くの監視ソフトでは、各プロセスの状態を監視できるようになっています。例えば起動中なのか停止中なのかです。グラフィカルな画面から監視できることが多いので、直感的にプロセス状態を理解できる面が強いです。
万が一プロセスがダウンした場合も通常であればエラーメッセージが出力するかと思いますので、急なダウンなどはメッセージ監視で拾うことも可能です。
アプリケーションの処理時間確認
アプリケーションの処理時間の監視も必要です。後日処理時間を確認するだけではなく、処理時限を超過しそうな場合は警告メッセージを出力させることも検討が必要となります。例えば午前10時までに完了しなければいけない処理であれば、少し前でワーニングメッセージを出力させることが非常に重要となってきます。これだけでも処理遅延時の初動対応の遅れを防げます。
また毎日動くような処理では、日々の処理状態を分析することで、サービス状態やユーザ利用状態の傾向を掴むことが可能です。
アプリケーションのメッセージ設計
個人的にはアプリケーション監視においてメッセージ設計は非常に重要だと思っています。アプリケーションが一つだけのシステムはありません。そうするとのその中で統一的なメッセージ設計が必要となります。簡単言えばルール作りです。
あるアプリケーションではワーニングの事象が、一方ではエラーだと運用フェーズで混乱してしまいます。そのため、アプリケーション間でこういう事象はエラー、こういう事象はワーニングと色分けする対応が非常に大切となってきます。
さらにこのメッセージが出力したらこういう対応をすると手順まで作成しておきましょう。これがいざ障害が発生した時に混乱しないために一番重要なためです。個々の事象はパターンが多くて大変でもグルーピングして対応することでも混乱がおきません。
まとめ
アプリケーション監視は、プロセスの状態監視、メッセージ監視など複数の監視観点があります。これらは設計が終了した後に考えるのでは手遅れです。運用でなんとかしようではなく、設計時からしっかり検討しておくようにしましょう。
【監視設計シリーズリンク】