(A)主たる実施形態
以下では、本発明の監視システム及び監視プログラムの実施形態を、図面を参照しながら詳細に説明する。
この実施形態では、例えばSNMPを用いて監視装置が被監視装置の運用状態を監視するシステムにおいて、パケットロス等の障害が発生した際に、監視装置が自動的に経路上の装置や機器からパケット情報(SNMPパケット)を取得するパケットキャプチャを行い、障害発生箇所を解析するシステムに、本発明を適用する場合を例示する。
(A−1)実施形態の構成
図1は、実施形態に係る監視システムの全体的な構成イメージを示す構成図である。図1において、実施形態に係る監視システム10は、監視装置1、被監視装置2−1及び2−2を有する。
図1では、監視装置1の監視対象とする被監視装置が2台の場合を例示するが、被監視装置の数は特に限定されるものではない。なお、被監視装置の共通構成を説明する場合には、被監視装置2と表記して説明する。
また、図1では、監視装置1と被監視装置2−1及び2−2とがネットワーク5を介して接続している場合を例示し、監視装置1はネットワーク5上のルータ3−1と接続し、被監視装置2−1はネットワーク5上のルータ3−2と接続し、被監視装置2−3はネットワーク5上のルータ3−3と接続しているものとする。
被監視装置2は、監視装置1によりSNMPを用いて運用状態を監視されるものである。被監視装置2は、例えばCPU、ROM、RAM、EEPROM、入出力インタフェース部、通信部等を有するものであり、CPUが、ROMに格納される処理プログラムを実行してソフトウェア処理により、被監視装置2の機能を実現するものである。
また、被監視装置2は、汎用OS(例えばLinux(登録商標)等)により構築されており、被監視装置2が具備するネットワークインタフェースのポートを通過するパケット情報をファイル(キャプチャファイル)に保持するものである。パケット情報のファイルには、キャプチャファイル名が付与されている。また、キャプチャファイルには、SNMPパケットのヘッダ情報や、SNMPのプロトコル情報、PDU Type(コマンドタイプ)、Request ID(コマンド識別子)等が記録される。つまり、キャプチャファイルには、通過したSNMPパケットのコマンドタイプやコマンド識別子等を含むものである。
図1に示すように、被監視装置2は、機能的に、SNMPエージェント21、管理情報としてのMIB情報(図1ではMIBと表記)22を有している。
SNMPエージェント21は、後述するSNMPマネージャ13からのSNMPリクエストに応じて、MIB22を参照してSNMPレスポンスをSNMPマネージャ13に送信するものである。SNMPエージェント21は、既存のSNMPエージェントを適用することができる。
MIB22は、被監視装置2の状態を示す管理情報である。MIB22における管理情報は、例えば、RFC1156に規定される情報(MIB1)や、RFC1213に規定される情報(MIB2)や、独自に定義した情報とすることができる。
ルータ3−1〜3−3は、監視装置1と被監視装置2との間に介在するネットワーク機器の一例である。図1では、ネットワーク機器の一例としてルータ3−1〜3−3を例示しているが、監視装置1と被監視装置2との間のネットワーク機器であれば、ネットワーク機器がスイッチ装置等であっても良い。
ネットワーク機器としてのルータ3−1〜3−3は、この実施形態において、監視装置1によるパケットキャプチャの対象装置となり得る。ネットワーク機器であるルータ3−1〜3−3は、パケットキャプチャの実行コマンドであるtcpdumpコマンドを実装していない。そのため、ルータ3−1〜3−3は、ポートミラーリング機能を有してキャプチャ情報(キャプチャファイル)を転送する。具体的には、ルータ3−1〜3−3はミラーポートを介してキャプチャ用装置32と接続している。また、ルータ3−1〜3−3は、特定の通信ポートを通過するパケットをコピーしてミラーポートに転送するポートミラーリング機能を有する。これにより、特定の通信ポートを通過するパケットを、ミラーポートを介してキャプチャ用装置32に転送することができる。
キャプチャ用装置32は、監視装置1からのキャプチャ要求に従って、ルータ3−1〜3−3を通過するパケットのパケット情報を監視装置1に送信するものである。キャプチャ用装置32は、例えばOSとして汎用OS(例えばLinux(登録商標))とする情報処理装置(例えば、サーバ、パーソナルコンピュータ等)を適用することができる。
キャプチャ用装置32は、接続するルータ等のネットワーク機器のモニターポートからミラーポートに転送されたパケットのパケット情報をファイル(キャプチャファイル)として保持する。つまり、キャプチャ用装置32は、ネットワーク機器のモニターポートとミラーポートとを対応付けて管理しておき、どのモニターポートからポートミラーリングされたパケットであるかを管理する。
パケット情報のファイルには、キャプチャファイル名が付与されている。また、キャプチャファイルには、SNMPパケットのヘッダ情報や、SNMPのプロトコル情報、PDU Type(コマンドタイプ)、Request ID(コマンド識別子)等が記録される。つまり、キャプチャファイルには、通過したSNMPパケットのコマンドタイプやコマンド識別子等を含むものである。
監視装置1は、SNMPを用いて監視対象である被監視装置2の運用状態を監視するものである。
また、監視装置1は、SNMPを用いた監視においてパケットロス等の障害が発生した際、当該監視装置1と被監視装置2との間の通信経路上に存在する装置・機器(以下、キャプチャ対象装置ともいう)の通信ポートを通過するSNMPパケットのパケット情報を取得(キャプチャ)し、監視装置1と被監視装置2との間の経路上で障害が発生したものと疑わしい箇所(被疑箇所)を解析する再現試験を行うものである。
監視装置1は、例えばGUI(Graphical User Interface)制御等により、保守端末14に対して、各被監視装置2のネットワークトラフィック情報、CPUやメモリの使用率、ハードウェアの稼働状況等の画面情報を与える。保守端末14に表示させる画面は、様々な表示形式を適用することができ、被監視装置2のネットワーク構成のマップ表示や、各装置状態の種類に応じてグラフ化表示等とすることができる。また、各被監視装置2の装置状態情報に応じて警告アラーム音の出力や表示色を変えて出力させるようにしても良い。
ここで、キャプチャ対象装置とは、監視装置から被監視装置までの間でパケット通信に関与する装置であって、被疑箇所の切り分けのためにパケット情報を取得する対象とする装置をいう。キャプチャ対象装置は、監視装置1及び被監視装置2を含むと共に、通信経路上に存在するネットワーク機器(例えば、ルータやスイッチ装置等)も含むものである。
監視装置1は、例えばCPU、ROM、RAM、EEPROM、入出力インタフェース部、通信部等を有するものであり、CPUが、ROMに格納される処理プログラムを実行してソフトウェア処理により、監視装置1の機能を実現するものである。図1に示すように、監視装置1は、機能的に、被監視装置2のSNMPを用いて運用状態を管理するSNMPマネージャ13、監視アプリケーション12、キャプチャ制御部11を有する。
SNMPマネージャ13は、SNMPによって、ネットワーク上の被監視装置2の状態を管理するものである。SNMPマネージャ13は、既存のSNMPマネージャを適用することができる。
例えば、SNMPマネージャ13は、被監視装置2のSNMPエージェント21に対して、被監視装置2の状態を示す管理情報(MIB情報)の取得要求を行い、被監視装置2からのMIB情報に基づいて被監視装置2の状態を管理する。より具体的には、SNMPマネージャ13は、SNMPエージェント21から被監視装置2の状態(状態値)が設定状態(設定値)に達した旨を示すTRAPの受信や、被監視装置2のMIB情報22(被監視装置2のMIBに格納される全部又は一部のMIB情報)の取得などを行う。SNMPマネージャ13は、被監視部2から取得したMIB情報22に基づいて、ネットワークシステムに接続されている被監視装置2の稼働状況や、サービスの稼働状況、システムリソース(システムパフォーマンス)の状況、ネットワークトラフィック量、システムログに記録される特定のメッセージの有無、システムログの急激な増加(又は減少)等を管理する。
監視アプリケーション12は、被監視装置2の状態を監視するアプリケーションである。監視アプリケーション12は、SNMPマネージャ13に対してMIB情報22の取得要求を指示したり、キャプチャ制御部11に対してパケット情報のキャプチャ要求を指示したりするものである。ここで、SNMPマネージャ13が被監視装置2に対してMIB情報22の取得要求を送信したが、SNMPマネージャ13が被監視装置2から応答を受信しない場合に、監視アプリケーション12は、障害検出と見做し、キャプチャ制御部11に対してキャプチャの実行要求を行う。
また、監視アプリケーション12は、例えば、SNMPマネージャ13により管理される被監視装置2の状態情報を保守端末14のディスプレイに表示させたり、被監視装置2との間の経路情報を表示したり、キャプチャ制御部11によりキャプチャされたパケット情報の収集結果を表示したり、被疑箇所を示したりするものである。
キャプチャ制御部11は、監視アプリケーション12からパケット情報のキャプチャの実行要求の通知を受けると、当該監視装置1と被監視装置2との間の経路上の装置・機器の通信ポートを通過するパケットのパケット情報を取得するキャプチャ処理の実行開始又は停止、キャプチャ情報の蓄積、キャプチャ情報の解析、問題事象の再現確認等を行うものである。
図3は、実施形態に係るキャプチャ制御部11の機能的な構成を示す機能構成図である。
図3において、実施形態に係るキャプチャ制御部11は、キャプチャ制御機能部111、キャプチャ実行機能部112、キャプチャ蓄積機能部113、キャプチャ情報データベース114、キャプチャ解析機能部115、データベース116を有する。
キャプチャ制御機能部111は、キャプチャ制御部11が行う、キャプチャ実行機能、キャプチャ蓄積機能、キャプチャ解析機能の実行制御を行うものである。また、キャプチャ制御機能部111は、ユーザインタフェースである保守端末14と接続し、保守者操作による各種要求に対して応答する機能を有する。
キャプチャ実行機能部112は、キャプチャ制御機能部111の制御の下、キャプチャ対象装置に対して、パケットキャプチャの実行開始及び停止を行うものである。
キャプチャ実行機能部112は、被監視装置2との間で監視制御パケットの送受信を確認することができるコマンドを用いてパケットキャプチャを行う。例えば、被監視装置2のOSが汎用OS(例えばLinux(登録商標)の場合)、キャプチャ実行機能部112は、OS標準で提供されるtcpdumpコマンドを用いることができる。勿論、tcpdumpコマンドに限定されるものではない。
また、キャプチャ実行機能部112は、パケットキャプチャによりキャプチャ対象装置からキャプチャファイルを収集するものである。このとき、キャプチャ実行機能部112は、収集したキャプチャファイルを一時的に保存用の記憶領域に保存するようにする。これは、後述するキャプチャ蓄積機能部113が、収集されたキャプチャファイルの内容から所定のテーブル形式のキャプチャ情報を形成してキャプチャ情報データベース114に蓄積するので、収集したキャプチャファイルを一時的に保持するためである。例えば、監視装置1のファイル保存用ディレクトリにキャプチャファイルを転送することで一時的にキャプチャファイルを保存することができる。
キャプチャ実行機能部112は、監視アプリケーション12から障害検出の通知を受けたことをトリガとしてパケットキャプチャの実行を開始する。
ここで、障害検出は、例えば、SNMPマネージャ13が被監視装置2に対してMIB情報22の取得要求を行ったが、SNMPマネージャ13が被監視装置2からの応答を受信しない場合とすることができる。より具体的には、SNMPマネージャ13が取得要求先である被監視装置2(SNMPエージェント21)のIPアドレスを保持しておき、SNMPマネージャ13がSNMPマネージャ21からの応答受信の有無を管理することで実現できる。監視アプリケーション12は、応答受信がない被監視装置2のIPアドレスを含む障害通知をキャプチャ制御機能部111に通知することでパケットキャプチャの実行を開始させることができる。このとき、例えば、被監視装置2への取得要求時から所定時間経過しても応答受信がない場合に障害検出としても良い。また、所定のリトライ回数を設定し、取得要求の回数がリトライ回数を超えた場合に障害検出としても良い。
キャプチャ蓄積機能部113は、キャプチャ制御機能部111の制御の下、キャプチャ実行機能部112により各キャプチャ対象装置から収集されたキャプチャファイルに保存されているパケット情報を読み出して、データベース116のキャプチャ情報テーブル54に蓄積するものである。キャプチャ蓄積機能部113は、キャプチャ実行機能部112によるパケットキャプチャが停止した後、キャプチャ制御機能部111からの指示に従って、キャプチャ情報の蓄積処理を開始する。
キャプチャ解析機能部115は、キャプチャ制御機能部111の制御の下、データベース116のキャプチャ情報テーブル54に蓄積されているパケット情報を解析して、パケットロス発生箇所を切り分けるものである。
データベース116は、パケットキャプチャの実行に必要な各種情報を記憶するものである。図3に示すように、データベース116は、経路情報テーブル51、装置情報テーブル52、フィルタ条件テーブル53、キャプチャ情報テーブル54、キャプチャ実行テーブル55を有する。
経路情報テーブル51は、監視装置1から被監視装置2までの間の経路上でパケットが経由する装置の一覧情報である。経路情報テーブル51は、キャプチャ実行機能部112がパケット情報をキャプチャするキャプチャ対象装置を決定する際に利用されるものである。つまり、障害通知に係る被監視装置2との間のトラフィック解析を行う際に、キャプチャ実行機能部112が、経路情報テーブル51を参照して当該被監視装置2までの経路上のキャプチャ対象装置を決定する。
図4は、実施形態に係る経路情報テーブル51の構成例を示す構成図である。図4に示すように、経路情報テーブル51は、被監視装置2の識別情報(例えばIPアドレス)を示す項目「被監視装置」と、監視装置1から被監視装置2までの経路上で経由する全てのキャプチャ装置の識別情報をパケット伝送方向の順に登録した項目「経由装置1」〜「経由装置N(Nは整数)」とを対応付けたものである。項目「経由装置」に登録するデータは、例えば、予めコンフィグファイルに定義しておき、監視装置1の起動時に読み込むようにしても良いし、又は保守端末14のユーザインタフェースから登録するようにしても良い。例えば、図4の第1行目の例の場合、監視装置1から「被監視装置(IPアドレス):192.162.2.100」までの間の経由装置は、「経由装置1:192.168.0.1」、…、「経由装置N:192.162.2.10」であることを示す。
装置情報テーブル52は、パケット情報をキャプチャするキャプチャ対象装置が、被監視装置2であるか又はネットワーク機器(例えばルータやスイッチ装置等)であるかを認識するための情報である。
図5は、実施形態に係る装置情報テーブル52の構成例を示す構成図である。図5に示すように、装置情報テーブル52は、装置の識別情報(例えばIPアドレス)を示す項目「装置」と、装置種別を示す項目「装置種類」と、項目「キャプチャ用装置」と、項目「モニターポート」と、項目「ミラーポート」とを対応付けたものである。
ここで、項目「装置種類」は、装置(キャプチャ対象装置)が、被監視装置2であるか又はネットワーク機器であるかを示す情報である。例えば、「装置種類:1」は被監視装置2であることを示し、「装置種類:2」はネットワーク機器であることを示す。なお、「装置種類」の分類数は、被監視装置2とネットワーク機器の2種類に限定されるものではない。
また、キャプチャ対象装置がネットワーク機器の場合、ネットワーク機器はパケットキャプチャ機能がない。そのため、ネットワーク機器からパケットキャプチャを行うために、ネットワーク機器が有するポートミラーリング機能を利用し、キャプチャ用装置32上でキャプチャする必要がある。そのため、図5に示すように、追加情報として、キャプチャ用装置32のIPアドレスを示す項目「キャプチャ用装置」、ネットワーク機器の特定の通信ポートのモニターポート番号を示す項目「モニターポート番号」、ネットワーク機器の特定の通信ポートに対応するミラーポート番号を示す項目「ミラーポート」を有する。項目「キャプチャ用装置」と、項目「モニターポート」と、項目「ミラーポート」に登録するデータは、予めコンフィグファイルに定義しておき、監視装置1の起動時に読み込んでもよいし、保守端末14のユーザインタフェースから登録してもよい。
フィルタ条件テーブル53は、キャプチャ対象装置毎に、パケットキャプチャのフィルタリング条件を示す情報である。フィルタ条件テーブル53は、キャプチャ実行機能部112が、パケットキャプチャを行う際、tcpdumpコマンド実行時のパラメータ指定に利用する。
図6は、実施形態に係るフィルタ条件テーブル53の構成例を示す構成図である。図6に示すように、フィルタ条件テーブル53は、項目「装置」、項目「LANインタフェース」、項目「プロトコル」、項目「ポート」、項目「キャプチャファイル名」を対応付けたものである。項目「装置」はキャプチャ対象装置の識別情報(例えばIPアドレス)である。項目「LANインタフェース」は、キャプチャ対象装置のLANインタフェース名である。項目「プロトコル」はキャプチャ対象装置からパケットキャプチャする際に利用するプロトコルであり、項目「ポート」は、キャプチャ対象装置からパケットキャプチャに利用するポート番号である。項目「キャプチャファイル名」は、キャプチャ対象装置から取得するキャプチャファイルのファイル名である。
フィルタ条件テーブル53において、キャプチャ対象装置がネットワーク機器の場合は、キャプチャ用装置でキャプチャするためのフィルタリング条件を設定する必要がある。フィルタ条件テーブル53の各項目に登録するデータは、予めコンフィグファイルに定義しておき、装置監視システム起動時に読み込んでもよいし、保守端末のユーザインタフェースから登録してもよい。
キャプチャ情報テーブル54は、キャプチャ蓄積機能部115により各キャプチャ対象装置から収集したキャプチャファイルに含まれるパケット情報を登録したものである。キャプチャ情報テーブル54に登録されるパケット情報は、キャプチャ解析機能部115によりパケットロス発生箇所の切り分けに利用される。
図7は、実施形態に係るキャプチャ情報テーブル54の構成例を示す構成図である。図7に示すように、キャプチャ情報テーブル54は、項目「装置」、項目「タイムスタンプ」、項目「PDUType(コマンドタイプ)」、項目「RequestID(コマンド識別子)」を対応付けたものである。
図7において、項目「タイムスタンプ」は、キャプチャ対象装置が送信したパケット情報の送信時刻を示すものであり、例えば、(HH(時):MM(分):SS(秒).ミリ秒))が登録される。
また、項目「PDUType(コマンドタイプ)」は、SNMPで定義されているPDUType(コマンドタイプ)が登録される。つまり、キャプチャ対象装置から収集したパケット情報がどのPDUTypeに関する情報であるかを示す情報を登録する。例えば、「PDUType(コマンドタイプ)」に登録される「a0」はSNMPエージェント21にMIB情報の要求を示す「GetRequest」、「a1」は管理対象オブジェクトインスタンスの値を増加させながら、SNMPエージェントから全てのMIB情報を要求する「GetNextRequest」、「a2」はGetRequestコマンドやGetNextRequestコマンドに対する応答である「GetResponse」等を示す。
項目「RequestID(コマンド識別子)」は、SNMPで定義されているSNMPパケットのRequestID(コマンド識別子)が登録される。つまり、キャプチャ対象装置から収集したパケット情報(SNMPパケット)のRequestIDが登録される。
キャプチャ実行テーブル55は、パケットキャプチャの実行状況及び解析結果(パケットロス発生箇所)を示す情報である。キャプチャ実行テーブル55は、パケットキャプチャの実行状況及び解析結果を管理するために利用する。
図8は、実施形態に係るキャプチャ実行テーブル55の構成例を示す構成図である。図8に示すように、キャプチャ実行テーブル55は、項目「実行中フラグ」、被監視装置2の識別情報(例えばIPアドレス)を示す項目「被監視装置」、項目「問題再現回数」、項目「最大実行時間」、項目「キャプチャ開始時刻」、項目「キャプチャ終了時刻」、項目「解析結果」を対応付けたものである。
図8において、項目「実行中フラグ」は、被監視装置2に関連するパケットキャプチャが実行中であるか否かを示す情報である。例えば「実行中フラグ:1」はパケットキャプチャ実行中である旨を示し、「実行中フラグ:0」は実行中でない旨(終了した旨)を示す。
項目「問題再現回数」は、被監視装置2に関するパケットキャプチャの停止条件であり、被監視装置2に関する障害発生通知の回数が登録される。項目「最大実行時間」は、キャプチャ開始時刻からの実行時間によりキャプチャ停止するための条件である。項目「キャプチャ開始時刻」、項目「キャプチャ終了時刻」は、パケットキャプチャの開始した時刻又は終了した時刻である。項目「解析結果」は、被監視装置2に関するパケットキャプチャの解析結果(パケットロス発生箇所)が登録される。例えば、項目「解析結果」には、パケットロスが発生した装置のIPアドレスが登録される。
図8において、項目「実行中フラグ」、項目「監視対象装置」、項目「キャプチャ開始時刻」、項目「キャプチャ終了時刻」は、キャプチャ制御機能部111が登録又は更新する。項目「問題再現回数」、項目「最大実行時間」は、予めコンフィグファイルに定義しておき、キャプチャ制御機能部111がパケットキャプチャを開始する契機に読み込んで登録するようにしても良い。項目「解析結果」は、キャプチャ解析機能部115が解析結果を更新する。
保守端末14は、監視装置1と接続して、監視装置1がSNMPにより監視した被監視装置2の状態結果や監視装置1がパケットキャプチャにより解析した障害発生箇所等の解析結果を表示したり、保守者操作により各種設定等を行ったりするものである。
(A−2)実施形態の動作
次に、この実施形態の監視システム10におけるSNMPパケットのキャプチャによる被疑箇所の解析処理の動作を、図面を参照しながら詳細に説明する。
図9は、実施形態に係る監視システム10におけるSNMPパケットのキャプチャによる被疑箇所の解析処理を説明する説明図である。
図9は、実施形態に係る監視システム10における全体的な処理の流れを示しており、例えば、図9に記載の(a)等の記号は、以下で説明する各処理手順に対応する番号である。
以下では、適宜、動作フローチャートを用いながら、実施形態の処理動作の処理手順を順番に説明する。
(a)障害発生の通知
まず、監視装置1において、SNMPマネージャ13が、被監視装置2に対して、SNMPによる管理情報の取得要求を行う。例えば、SNMPマネージャ13が、被監視装置2のSNMPエージェント21に対してMIB22の取得要求であるSNMPリクエストを送信する。監視アプリケーション12は、SNMPマネージャ13のSNMPリクエストに対するSNMPレスポンスの有無を監視しており、被監視装置2のSNMPエージェント21からSNMPレスポンスの受信があるか否かを確認する。
そして、SNMPエージェント21からのSNMPレスポンスが受信されない場合、監視アプリケーション12は、当該被監視装置2に関する監視について障害が発生したと判断し、キャプチャ制御機能部111に対して障害発生通知を行う。
監視アプリケーション12は、SNMPリクエストに対するレスポンスがない場合、SNMPマネージャ13からSNMPリクエストの宛先IPアドレスを取得する。これにより、障害発生に係る被監視装置2を決定することができる。
また、監視アプリケーション12は、決定した障害発生に係る被監視装置2のIPアドレスを含む情報を障害発生通知としてキャプチャ制御機能部111に与える。これにより、キャプチャ制御機能部111に対して、パケットキャプチャに係る被監視装置2を認識させることができる。
なお、ここでは、被監視装置2に対するMIB22の取得要求(SNMPリクエスト)のレスポンスがない場合に、障害検出とするが、障害検出はこれに限定されない。例えば、SNMPエージェント21がTRAPを送信すべきことをSNMPマネージャ13が認識している場合に、TRAP受信がないとき障害が発生したと判断するようにしても良い。
(b)パケットキャプチャ開始/終了
監視アプリケーション12から障害発生通知を受けると、キャプチャ制御機能部111は、キャプチャ実行機能部112に対して、パケットキャプチャの開始要求又は終了要求を行う。
キャプチャ制御機能部111は、図8のキャプチャ実行テーブル55の項目「実行中フラグ」を参照し、被監視装置2に対するパケットキャプチャが実行中であるか否かを確認することで、パケットキャプチャの開始要求を行うか判断する。
また、パケットキャプチャの終了要求は、被監視装置2に関する障害発生通知の回数が図8のキャプチャ実行テーブル55の項目「問題再現回数」に達した場合、又は、パケットキャプチャ開始からの実行時間が、図8のキャプチャ実行テーブル55の項目「最大実行時間」に達した場合に行われる。これにより、障害に係る問題事象の再現確率が低い場合でも、問題再現回数又は最大実行時間に応じて処理を停止させることができる。
なお、パケットキャプチャの終了要求は、項目「問題再現回数」又は項目「最大実行時間」のどちらか一方の条件を満たした場合に行うようにしても良い。
例えば、項目「問題再現回数」を設定しないでおけば、項目「最大実行時間」のみの条件でパケットキャプチャの終了要求が行われるようにすることができる。
図10は、実施形態に係るキャプチャ制御機能部111によるパケットキャプチャの開始要求又は終了要求の処理を示すフローチャートである。
図10において、まず、キャプチャ制御機能部111は、パケットキャプチャの開始要求を行うか否かの判定をするために、図8のキャプチャ実行テーブル55の項目「実行中フラグ」を参照する。そして、障害発生通知に含まれる被監視装置2のIPアドレスを用いて、被監視装置2に対するパケットキャプチャが実行中であるか否かを確認する(S101)。パケットキャプチャの開始要求は、被監視対象2に対するパケットキャプチャが未実行であることが条件である。
図8のキャプチャ実行テーブル55の項目「実行中フラグ」が実行中の場合、
被監視装置2に対するパケットキャプチャが既に実行されているため、キャプチャ制御機能部111は、メモリに保持する問題再現カウンタの値をインクリメントする(S102)。そして、問題再現カウンタの値が図8のキャプチャ実行テーブル55の項目「問題再現回数」の設定値に達した場合(S103)、キャプチャ制御機能部111は、キャプチャ実行機能部112に対して、当該被監視装置2に対するパケットキャプチャの終了要求を行い(S104)、図8のキャプチャ実行テーブル55の項目「キャプチャ終了時刻」に終了時刻を記録する(S105)。なお、問題再現カウンタの値が図8のキャプチャ実行テーブル55の項目「問題再現回数」の設定値に達していない場合(S103)には、パケットキャプチャの終了要求は行わない。
一方、図8のキャプチャ実行テーブル55の項目「実行中フラグ」が未実行の場合、被監視装置2に対するパケットキャプチャがまだ実行されていないため、キャプチャ制御機能部111は、キャプチャ実行機能部112に対して、当該被監視装置2に対するパケットキャプチャの開始要求を行う(S106)。このとき、キャプチャ制御機能部111は、図8のキャプチャ実行テーブル55の項目「実行中フラグ」に実行中を示すフラグを設定し、項目「被監視装置」に被監視装置2のIPアドレスを登録し、項目「問題再現回数」及び項目「最大実行時間」にパケットキャプチャの終了条件となる設定値を設定し、項目「キャプチャ開始時刻」に開始時刻を登録する(S107)。
図11は、実施形態に係るキャプチャ制御機能部111によるキャプチャ実行時間によるパケットキャプチャの終了要求の処理を示すフローチャートである。
図11において、キャプチャ制御機能部111は、被監視対象2に対するパケットキャプチャの実行時間を監視している。ここで、キャプチャ制御機能部111は、現在時刻から、図8のキャプチャ実行テーブル55の項目「キャプチャ開始時刻」に設定されている時刻を差し引いた時間を、実行時間とする(S151)。
そして、パケットキャプチャの実行時間が、図8のキャプチャ実行テーブル55の項目「最大実行時間」の設定値に達した場合(S152)、キャプチャ制御機能部111は、当該被監視装置2に対するパケットキャプチャの終了要求を、キャプチャ実行機能部112に行い(S153)、図8のキャプチャ実行テーブル55の「キャプチャ終了時刻」に終了時刻を記録する(S154)。なお、パケットキャプチャの実行時間が「最大実行時間」に達していない場合(S152)には、処理はS151に戻る。
(c)パケットキャプチャ(tcpdump)の実行
図12は、実施形態に係るキャプチャ実行機能部112によるパケットキャプチャ実行処理を示すフローチャートである。
図12において、キャプチャ実行機能部112がキャプチャ制御機能部111からパケットキャプチャの開始要求を受け取ると(S201)、キャプチャ実行機能部112は、図4の経路情報テーブル51を参照して、該当する被監視装置2のIPアドレスと、監視装置1から被監視装置2までの経路上の経由装置のIPアドレスとを取得する(S202)。つまり、キャプチャ対象装置のIPアドレスを取得する。
次に、キャプチャ実行機能部112は、図5の装置情報テーブル52を参照して、各キャプチャ対象装置の「装置種類」に基づいて、キャプチャ対象装置がネットワーク機器であるか否かを確認する(S203)。キャプチャ対象装置がネットワーク機器の場合、キャプチャ実行機能部112は、図5の装置情報テーブル52から、当該ネットワーク機器が接続するキャプチャ用装置32のIPアドレスと、当該ネットワーク機器のポートミラーリングの設定条件としてモニターポートのポート番号及びミラーポートのポート番号を取得する(S204)。
キャプチャ実行機能部112は、図6のフィルタ条件テーブル53を参照して、それぞれのキャプチャ対象装置のフィルタ条件を取得する(S205)。そして、キャプチャ実行機能部112は、S205で取得したフィルタ条件を用いて、tcpdumpコマンドを実行する(S206)。
例えば、キャプチャ実行機能部112が、IPアドレスが「192.168.1.10」の装置からパケットキャプチャする場合、キャプチャ実行機能部112は、図6のフィルタ条件テーブル53を参照して、「装置:192.168.1.10」に対応する「LANインタフェース:bond0」、「プロトコル:udp」、「ポート:161」、「キャプチャファイル名:equip_A_cap」をフィルタ条件として取得し、これらをフィルタ条件とするtcpdumpコマンドを実行する。
なお、tcpdumpコマンドを実行する際のオプションは、図6のフィルタ条件テーブル53に登録されている条件に限定されるものではなく、その他の条件をオプションとして設定するようにしても良い。
また、キャプチャ実行機能部112が、ネットワーク機器に対してパケットキャプチャを行う場合には、ネットワーク機器が有するポートミラーリング機能を利用し、ネットワーク機器のモニターポートからミラーポートにパケットをコピー転送する設定を合わせて行う。
キャプチャ実行機能部112が、監視装置1及び被監視装置2と、その間の通信経路上に存在するネットワーク機器(例えば、ルータやスイッチ装置等)に接続されるキャプチャ用装置32にてtcpdumpコマンドを実行すると、図13に例示するSNMPパケット情報の全てがキャプチャファイルに保存される。
図13は、SNMPパケットを構成する情報を一部列挙したものである。図13に示すように、SNMPパケットには、「タイムスタンプ」、「送信元IPアドレス」、「宛先IPアドレス」、「SNMP Version(プロトコルバージョン)」、「Community(コミュニティ名)」、「PDU Type(コマンドタイプ)」、「Request ID(コマンド識別子)」、「Object ID(OID)」、「Value(値)」の情報が含まれる。
(d)パケットキャプチャ(tcpdump)の停止
キャプチャ実行機能部112は、キャプチャ制御機能部111からパケットキャプチャの終了要求を受信すると、(c)で実行したパケットキャプチャ(tcpdump)の停止、及びポートミラーリングの設定を解除する。
tcpdumpコマンドにより出力されたキャプチャファイルは、監視装置1のファイル保存用ディレクトリにファイル転送後、削除する。このように、監視装置1のファイル保存用ディレクトリにファイルが転送し、その後収集したキャプチャファイルを削除することにより、従来のように保守者がディスク容量の監視を行う必要性がなくなる。
(e)キャプチャ情報の蓄積
キャプチャ制御機能部111は、(d)のパケットキャプチャの停止完了を契機に、キャプチャ蓄積機能部113にキャプチャ情報の蓄積を要求する。
キャプチャ蓄積機能部113は、監視装置1に収集された各キャプチャ対象装置のキャプチャファイルを読み出し、キャプチャファイルに含まれている情報の中から所定のパケット情報を抽出して、キャプチャ情報テーブル54を形成してデータベース116に保存する。
換言すると、キャプチャ蓄積機能部113は、SNMPパケットのパケット情報を、図7のキャプチャ情報テーブル54の形式でデータベース116に保存する。ここでは、キャプチャ蓄積機能部113は、各キャプチャ対象装置のキャプチャファイルから、SNMPパケットの「タイムスタンプ」、「PDU Type(コマンドタイプ)」、「Request ID(コマンド識別子)」を少なくともキャプチャ情報テーブル54として保存する。これにより、キャプチャ対象装置が送信したSNMPパケットが、いつ送信され、どのIDの及びどのタイプのリクエスト又はレスポンスが送信されたかを認識することができる。
(f)キャプチャ情報の解析
キャプチャ制御機能部111は、(e)のキャプチャ情報の蓄積完了を契機に、キャプチャ解析機能部115にキャプチャ情報の解析を要求する。
キャプチャ解析機能部115は、図7のキャプチャ情報テーブルを参照して、Request IDが同一のパケット情報を検出し、パケットロス発生箇所の切り分け方法の考え方(後述)でパターンマッチングを行うことにより、パケットロス発生箇所を特定する。
ここで、図14及び図15を参照しながら、実施形態に係るキャプチャ情報の解析処理を説明する。
図14は、実施形態に係る監視装置1によるパケットキャプチャの様子を説明する説明図である。図14では、監視装置1が、SNMPを用いた被監視装置2−1の監視においてパケットロス等の障害が発生した場合に、監視装置1と、被監視装置2−1と、その間の通信経路上に存在するネットワーク機器(ルータ3−1、ルータ3−2)に対するパケットキャプチャを行う場合を例示する。
パケットキャプチャの箇所は、監視装置1のポートA、ルータ3−1のポートB1及びB2、ルータ3−2のポートC1及びC2、被監視装置2のポートDの6箇所とする。
図15は、図14の例の場合のSNMPパケットの被疑箇所の切り分け方法を説明する説明図である。図15において、例えば「A」等は図14に記載のパケットキャプチャ箇所に対応しているものとする。
図7のキャプチャ情報テーブル54の項目「Request ID(コマンド識別子)」は、SNMPリクエスト(例えば、Get Request、Get Next Request等)と、これに対応するSNMPレスポンス(例えば、Get Response等)とを関連付けるための識別子である。
キャプチャ解析機能部115は、図7のキャプチャ情報テーブル54の項目「PDU Type(コマンドタイプ)」及び項目「Request ID(コマンド識別子)」を参照して、全てのパケットキャプチャ箇所でRequest IDが同一のSNMPリクエストとSNMPレスポンスの受信有無を確認する。つまり、Request IDが同一のSNMPリクエストとSNMPレスポンスがある場合には、そのパケットキャプチャ箇所で、SNMPパケット受信があると判断する。一方、Request IDが同一のSNMPリクエストとSNMPレスポンスがない場合には、そのパケットキャプチャ箇所で、SNMPパケット受信がないと判断する。
キャプチャ解析機能部115は、図15に示すように、各パケットキャプチャ箇所におけるパケットの受信有無を、パケット伝送方向の順に確認することで、被疑箇所(パケットロス発生箇所)の切り分けを行う。
例えば、図15において、キャプチャ結果パターン「1」の場合、図14の全てのパケットキャプチャ箇所においてパケットが伝送されていることから、監視装置1内が被疑箇所と考えられる。また例えば、キャプチャ結果パターン「2」の場合、ルータ3−1のポートB1から伝送されたパケットを監視装置1で受信していないことから、ルータ3−1又は監視装置1が被疑箇所というと考えられる。
キャプチャ解析機能部115は、被疑箇所が特定できた場合、パケットロスが発生した被疑装置のIPアドレスを、図8のキャプチャ実行テーブルの項目「解析結果」に登録して終了する。
また、被疑箇所が特定できない場合、キャプチャ制御機能部111は、(b)の処理手順に戻って、同じフィルタ条件でパケットキャプチャを再度実施する。
(g)キャプチャ実行結果の確認
保守者は、保守端末14のユーザインタフェースを利用し、図8のキャプチャ実行テーブル55の情報を取得することができる。このキャプチャ実行テーブル55情報の取得は、GUI画面上に表示する方法でもよいし、又はファイルに出力する方法でもよい。これにより、保守者はパケットキャプチャの実行状況及び解析結果(パケットロス発生箇所)を即時に確認することができる。
(A−3)実施形態の効果
以上のように、この実施形態によれば、障害発生を契機に、被監視装置及び経由装置に対して自動的にパケットキャプチャを実行するので、保守者は障害ログの1次切り分け及びパケットキャプチャの準備作業が不要となる。
また、この実施形態によれば、パケットキャプチャの停止条件(問題再現回数、最大実行時間)を設定することで、自動的にパケットキャプチャを停止することが可能となり、保守者はパケットキャプチャ実行中のディスク容量監視や問題再現監視の作業が不要となる。
さらに、この実施形態によれば、収集された大量のパケット情報から自動的にパケットロス発生箇所が解析されるため、保守者はパケット情報の解析作業が不要となる。
(B)他の実施形態
上述した実施形態においても本発明の種々の変形実施形態を説明したが、本発明は、以下の変形実施形態にも適用することができる。
本発明は、SNMPアーキテクチャを利用した装置監視システムに広く適用可能である。
上述した実施形態では、SNMPパケットのキャプチャ結果に基づいて被疑解析を行う場合を例示したが、本発明は、キャプチャ蓄積機能部とキャプチャ解析機能部をICMP等の別プロトコルに対応させれば、SNMPパケット以外の被疑箇所(パケットロス発生箇所)を解析することも可能である。