企業活動において関心の高い「システム運用」。前々回はPDCAの重要性とシステムの自動化について解説しました。今回は、システムの安定稼働に欠かせない監視について解説します。
システムの安定稼働と改善を図るために
システムの安定稼働を実現するためにはシステム全体の稼働状況を的確に把握する必要があります。つまり、ネットワークやサーバなどが正常に稼働しているか、そのハードウェア環境の上で動いているデータベースやWebアプリケーションサーバなどミドルウェアが正常に稼働しているかを統合的に監視します。そして、万が一障害が発生した場合は、原因の絞込みを行い、障害箇所の特定をアシスト。さらに、この障害の解決を促すため、運用管理者への通報を行います。一方、利用者サービスの向上を図るためには、これらの情報を管理・分析して絶え間ないシステム改善を図り続ける必要があります。
このように、システム全体を監視することが安定稼働と利用者サービスの向上とを導くのです。システム全体に分散している多くの運用や稼働に関する情報を収集して見える化することと、これらの多量の情報から、障害箇所が特定できるように障害に関する情報だけをフィルタリングします。
この運用をJP1では、モニタリングと言うカテゴリの製品でカバーしています。
システム全体の稼働状況を統合的に監視する
監視対象であるネットワーク、サーバ、OSやミドルウェアなどの運用・稼働状況を収集して1つの画面で全体を見渡します。このときポイントとなるのが多量の情報の加工です。対策が必要な緊急度の高い情報の選別、類似情報の破棄や集約を行い、さらに見やすくフォーマッティングするだけではなくグラフィカルな表示を駆使して直感的に運用・稼働状況を把握できます。
表 代表的な監視対象とその監視方式
分類 | 主な監視方式 |
ネットワークやサーバ | Pingによる監視
監視対象に対しパケットを定期的に発行することで動作状況を把握します |
SNMPによる監視SNMPと言う専用のプロトコルを使って、各機器の詳細情報を収集して監視します |
ログファイルによる監視
各機器が出力するsyslogと呼ばれるログファイルに記録されるメッセージを常時監視します |
コマンドなどによる監視
各機器がサポートするサービスコマンドを発行して得た情報で監視します |
OSやミドルウェア | OSの監視
CPU、メモリ、ディスクの使用率、プロセスやサービスの状況、ページングやディスク性能などを監視します |
仮想化ミドルの監視
仮想マシン単位のCPU、メモリ使用率などを監視します |
データベースの監視
キャッシュヒット率、テーブルスペース利用率、排他ロック状況などを監視します |
Webアプリケーションサーバの監視
Javaのメモリ管理状況、スレッドの状況、データベースのコネクションプーリング状況などを監視します |
バッチジョブサーバの監視
実行ジョブ数、滞留ジョブ数、エラージョブ数などを監視します |
障害が発生したことを運用管理者に通報する
監視する画面の見やすさや障害の予兆を検知するツールの機能が充実しても、運用管理者が画面を見続けることは事実上困難です。たとえ画面を見ながら監視するのが運用管理者の仕事であっても、トラブルの対応や定期メンテナンスで席をはずすこともあります。また、24時間連続運転するシステムでは、なおさら困難です。重要な傷害や障害の予兆を感知したとき、積極的に運用管理者に通報する手段が不可欠です。
通報は目に付くように赤色灯を点灯したり音声で警告したりする方法も考えられますが、最も効果的なのが携帯電話を活用した通報です。その場合、配慮するべきことは“誰”に通報するのかです。たとえば、運用管理者がシフト制の勤務体系を採用している場合は、通報する時点で勤務スケジュール管理と連動して誰に通報するかを確定することが重要です。また、どうしても、通報した相手が他の業務で手が離せない場合は、あらかじめ設定した通報順序に従ってエスカレーションを行い確実に伝達できるようにします。
障害が発生したら、発生した時点のログやスナップショットを採取して対策を講じるのが一般的な方法です。厄介なのが、応答性能に関する障害です。徐々に性能が低下したり、突然端末がダンマリになるような現象が発生した場合、何処に根本原因があるのかを特定するのが大変困難です。
性能障害の特定には多面的で時系列での情報収集が欠かせないのです。性能障害が発生した時点にさかのぼって、サーバの問題なのか、ネットワークの問題なのか、データベースの問題なのかと、問題箇所を絞り込んで行きます。またこのような問題が発生する場合は予兆があります。その予兆を感知して、早めの回避策を講じるのもシステムをダウンさせない効果的な手段です。
たとえば、CPU利用率が70%を超えたとか、HDの空き領域が30%以下に成ったなど“黄色信号”を設定して、暫定回避を促すことも大変重要なのです。
このような、多面的で時系列の性能情報を収集して予兆を感知したり、CPU利用率やHDの空き領域をリアルタイムで監視してアラートを上げるのが、JP1のアベイラビリティ管理です。その代表的な画面を図3に示します。