(57)【要約】      （修正有）【課題】柔軟な構成を有し、様々なプロトコルで通信されるネットワークで障害の原因の推定に役立つ情報を提供する。【解決手段】ネットワーク分析装置は、キャプチャされたパケットを受信して、受信したパケットに含まれるプロトコル及び識別子の情報を文字列として取得し、取得した文字列を優先順位付けられたネットワークレイヤに応じて分類するバケット分析部と、ログデータを受信して、受信したログデータ内のメッセージに含まれるプロトコル及び識別子の文字列の検出回数をカウントし、障害の情報を含む受信したログデータ内のメッセージの文字列に基づき、ログデータを送信したネットワーク装置を優先順位付け、ネットワークレイヤに応じて分類されたプロトコル及び識別子と優先順位付けられたネットワーク装置とに従って、受信したログデータを優先順位付けるログデータ分析部と、を備える。【選択図】図１１
2017060074.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク分析装置であって、
キャプチャされたパケットを受信して、受信したパケットに含まれるプロトコル及び識別子の情報を文字列として取得し、
取得した文字列を優先順位付けられたネットワークレイヤに応じて分類するパケット分析部と、
ログデータを受信して、受信したログデータ内のメッセージに含まれるプロトコル及び識別子の文字列を検出し、文字列それぞれの検出回数をカウントし、
障害の情報を含む受信したログデータ内のメッセージの文字列に基づき、ネットワークレイヤに応じて分類された文字列を検索して、障害に関連するプロトコル及び識別子の文字列を抽出し、
抽出した文字列のカウントした検出回数に基づき、ログデータを送信したネットワーク装置を優先順位付け、ネットワークレイヤに応じて分類されたプロトコル及び識別子と優先順位付けられたネットワーク装置とに従って、受信したログデータを優先順位付けるログデータ分析部と、
を備えることを特徴とするネットワーク分析装置。
【請求項２】
請求項１に記載のネットワーク分析装置であって、
前記パケット分析部は、
受信したパケットのファイブ・タプルを含むフロー毎に、取得した文字列を優先順位付けられたネットワークレイヤに応じて分類すること
と特徴とするネットワーク分析装置。
【請求項３】
請求項２に記載のネットワーク分析装置であって、
前記ログデータ分析部は、
ネットワークレイヤに応じて分類されたプロトコル及び識別子の文字列を、受信したログデータ内のメッセージから検出して、予め設定された周期の１つの期間ごとに検出回数をカウントすること
を特徴とするネットワーク分析装置。
【請求項４】
請求項３に記載のネットワーク分析装置であって、
前記ログデータ分析部は、
文字列の検出されたメッセージを含むログデータと、それ以外のログデータとを峻別し、これらのログデータを分けて格納すること
を特徴とするネットワーク分析装置。
【請求項５】
請求項４に記載のネットワーク分析装置であって、
前記パケット分析部は、
キャプチャされた第１のパケットであって、第２のパケットをデータとして含みカプセル化した第１のパケットを受信して、受信した第１のパケットと第２のパケットそれぞれに含まれるプロトコル及び識別子の情報を文字列として取得し、
受信した第１のパケット及び第２のパケットのファイブ・タプルを含むフロー毎に、取得した文字列を、カプセル化されたパケットの優先順位付けられたネットワークレイヤと、カプセル化したパケットの優先順位付けられたネットワークレイヤとに応じて分類すること
と特徴とするネットワーク分析装置。
【請求項６】
請求項５に記載のネットワーク分析装置であって、
前記ログデータ分析部は、
ログデータに付けられた優先順位に従って、ログデータを順番に並べて表示するよう制御すること
を特徴とするネットワーク分析装置。
【請求項７】
ネットワーク分析装置とパケットキャプチャ装置と複数のネットワーク装置とを有するネットワーク分析システムであって、
前記複数のネットワーク装置のそれぞれは、
前記複数のネットワーク装置の他のネットワーク装置とパケットを送受信し、
パケットの送受信の関するログデータを前記ネットワーク分析装置へ送信し、
前記パケットキャプチャ装置は、
前記複数のネットワーク装置の間で送受信されるパケットをキャプチャして、キャプチャしたパケットを前記ネットワーク分析装置へ送信し、
前記ネットワーク分析装置は、
キャプチャされたパケットを受信して、受信したパケットに含まれるプロトコル及び識別子の情報を文字列として取得し、
取得した文字列を優先順位付けられたネットワークレイヤに応じて分類するバケット分析部と、
ログデータを受信して、受信したログデータ内のメッセージに含まれるプロトコル及び識別子の文字列を検出し、文字列それぞれの検出回数をカウントし、
障害の情報を含む受信したログデータ内のメッセージの文字列に基づき、ネットワークレイヤに応じて分類された文字列を検索して、障害に関連するプロトコル及び識別子の文字列を抽出し、
抽出した文字列のカウントした検出回数に基づき、ログデータを送信したネットワーク装置を優先順位付け、ネットワークレイヤに応じて分類されたプロトコル及び識別子と優先順位付けられたネットワーク装置とに従って、受信したログデータを優先順位付けるログデータ分析部と、
を備えること
を特徴とするネットワーク分析システム。
【請求項８】
請求項７に記載のネットワーク分析システムであって、
前記パケット分析部は、
受信したパケットのファイブ・タプルを含むフロー毎に、取得した文字列を優先順位付けられたネットワークレイヤに応じて分類すること
と特徴とするネットワーク分析システム。
【請求項９】
請求項８に記載のネットワーク分析システムであって、
前記ログデータ分析部は、
ネットワークレイヤに応じて分類されたプロトコル及び識別子の文字列を、受信したログデータ内のメッセージから検出して、予め設定された周期の１つの期間ごとに検出回数をカウントすること
を特徴とするネットワーク分析システム。
【請求項１０】
請求項９に記載のネットワーク分析システムであって、
前記ログデータ分析部は、
文字列の検出されたメッセージを含むログデータと、それ以外のログデータとを峻別し、これらのログデータを分けて格納すること
を特徴とするネットワーク分析システム。
【請求項１１】
請求項１０に記載のネットワーク分析システムであって、
前記キャプチャ装置は、
前記複数のネットワーク装置の間で送受信されるパケットをキャプチャして、キャプチャしたパケットをＤＰＩ（Deep Packet Inspection）によって前記ネットワーク分析装置へ送信すること
を特徴とするネットワーク分析システム。
【請求項１２】
請求項１１に記載のネットワーク分析システムであって、
前記キャプチャ装置は、
前記複数のネットワーク装置の間で送受信されるパケットをキャプチャして、キャプチャした全てのパケットを前記ネットワーク分析装置へ送信すること
を特徴とするネットワーク分析システム。
【請求項１３】
請求項１１に記載のネットワーク分析システムであって、
前記キャプチャ装置は、
前記複数のネットワーク装置の間で送受信されるパケットをキャプチャして、キャプチャしたパケットの一部をサンプリングして前記ネットワーク分析装置へ送信すること
を特徴とするネットワーク分析システム。
【請求項１４】
請求項１２に記載のネットワーク分析システムであって、
前記複数のネットワーク装置のそれぞれは、
前記複数のネットワーク装置の他のネットワーク装置と、第２のパケットをデータとして含みカプセル化した第１のパケットを送受信し、
第１のパケット及び第２のパケットの送受信の関するログデータを前記ネットワーク分析装置へ送信し、
前記パケットキャプチャ装置は、
前記複数のネットワーク装置の間で送受信される第１のパケットをキャプチャして、キャプチャした第１のパケットを前記ネットワーク分析装置へ送信し、
前記パケット分析部は、
第１のパケットを受信して、受信した第１のパケットと第２のパケットそれぞれに含まれるプロトコル及び識別子の情報を文字列として取得し、
受信した第１のパケット及び第２のパケットのファイブ・タプルを含むフロー毎に、取得した文字列を、カプセル化されたパケットの優先順位付けられたネットワークレイヤと、カプセル化したパケットの優先順位付けられたネットワークレイヤとに応じて分類すること
と特徴とするネットワーク分析システム。
【請求項１５】
ネットワークの分析方法であって、
キャプチャされたパケットを受信して、受信したパケットに含まれるプロトコル及び識別子の情報を文字列として取得し、
取得した文字列を優先順位付けられたネットワークレイヤに応じて分類し、
ログデータを受信して、受信したログデータ内のメッセージに含まれるプロトコル及び識別子の文字列を検出し、文字列それぞれの検出回数をカウントし、
障害の情報を含む受信したログデータ内のメッセージの文字列に基づき、ネットワークレイヤに応じて分類された文字列を検索して、障害に関連するプロトコル及び識別子の文字列を抽出し、
抽出した文字列のカウントした検出回数に基づき、ログデータを送信したネットワーク装置を優先順位付け、ネットワークレイヤに応じて分類されたプロトコル及び識別子と優先順位付けられたネットワーク装置とに従って、受信したログデータを優先順位付けること
を特徴とするネットワークの分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク分析装置、ネットワーク分析システム、及びネットワークの分析方法に関するものである。
【背景技術】
【０００２】
スマートフォンやセンサ等、ネットワークに接続する装置の数が増加しており、ネットワークの規模も拡大している。その結果、ネットワークに障害が発生した場合、その影響範囲や経済的損失も大きくなっている。このようなネットワークの障害に備えるため、ネットワークに接続する装置から情報を収集し、障害の原因を推定することが行われている。
【０００３】
特許文献１には「ネットワーク全体を監視するためのセンタ監視装置ＳＶｃを設け、……センタ監視装置ＳＶｃは、各グループＧ１〜Ｇｎのリンク関係を各グループの識別番号と各グループ間の接続情報から判定し、障害あるいは処理等が生じたためより詳細な情報を必要とする場合には、適宜、該当グループの監視装置からその詳細情報を収集する」技術が開示されている。
【０００４】
また、特許文献２には「電子機器が無線で通信するパケットから、無線のデータリンク層に関するプロトコルで取得された特徴を第１特徴として抽出する第１特徴抽出部と、前記電子機器が無線で通信するパケットから、前記データリンク層より上位の層のプロトコルで取得された特徴を第２特徴として抽出する第２特徴抽出部と、前記第１特徴と前記第２特徴に基づいて、前記電子機器のネットワーク接続障害の原因を推定する」技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−１６４５８３号公報
【特許文献２】特開２０１４−２３９２９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１や特許文献２に開示された技術を用いれば、決まったネットワーク構成やプロトコルにおいて発生した障害の原因の推定に役立つ。しかしながら、近年のネットワークは、仮想化やカプセル化によるトンネリング等により、その構成は柔軟に変更可能であり、通信の目的等に応じて様々なプロトコルを用いて通信されるが、そのようなネットワークに対応できる技術までは開示されていない。
【０００７】
そこで、本発明の目的は、柔軟な構成を有し、様々なプロトコルで通信されるネットワークであっても、障害の原因の推定に役立つように情報を提供することである。
【課題を解決するための手段】
【０００８】
本発明に係る代表的なネットワーク分析装置は、キャプチャされたパケットを受信して、受信したパケットに含まれるプロトコル及び識別子の情報を文字列として取得し、取得した文字列を優先順位付けられたネットワークレイヤに応じて分類するバケット分析部と、ログデータを受信して、受信したログデータ内のメッセージに含まれるプロトコル及び識別子の文字列を検出し、文字列それぞれの検出回数をカウントし、障害の情報を含む受信したログデータ内のメッセージの文字列に基づき、ネットワークレイヤに応じて分類された文字列を検索して、障害に関連するプロトコル及び識別子の文字列を抽出し、抽出した文字列のカウントした検出回数に基づき、ログデータを送信したネットワーク装置を優先順位付け、ネットワークレイヤに応じて分類されたプロトコル及び識別子と優先順位付けられたネットワーク装置とに従って、受信したログデータを優先順位付けるログデータ分析部と、を備えることを特徴とする。
【０００９】
また、本発明は、ネットワーク分析システム、ネットワークの分析方法としても把握される。
【発明の効果】
【００１０】
本発明によれば、柔軟な構成を有し、様々なプロトコルで通信されるネットワークであっても、障害の原因の推定に役立つように情報を提供することが可能になる。
【図面の簡単な説明】
【００１１】
【図１】ネットワーク分析システムの構成の例を示すブロック図である。
【図２】ネットワーク装置の構成の例を示すブロック図である。
【図３】ログデータの例を示す図である。
【図４】ネットワークログ分析装置の構成の例を示すブロック図である。
【図５】加工されたログデータの例を示す図である。
【図６】ログデータの出力の例を示す図である。
【図７】ログデータ分析結果の例を示す図である。
【図８】パケットの例を示す図である。
【図９】カプセル化されたパケットの例を示す図である。
【図１０】パケットデータ分析結果の例を示す図である。
【図１１】障害を分析する処理の例を示すフローチャート図である。
【図１２】ログデータ確認優先度の例を示す図である。
【図１３】障害の原因推定結果の出力の例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態を図面に基づいて説明する。
【００１３】
（Ａ１）ネットワーク構成
図１は、ネットワーク分析システムの構成の例を示すブロック図である。ネットワーク５０は、複数のネットワーク装置２０ａ、２０ｂ、２０ｃ、２０ｄ、２０ｅ、２０ｆ（以下、複数のネットワーク装置の中で特定のネットワーク装置を示さず、いずれのネットワーク装置でもよい場合は、代表的にネットワーク装置２０とし、また他の符号も同じように表す）を含み、ネットワーク装置２０間は接続されている。ここで、全てのネットワーク装置２０間は接続されていてもよいし、ネットワーク装置２０ａとネットワーク装置２０ｄとの間のように直接的には接続されず、ネットワーク装置２０ｂ等を介して間接的に接続されていてもよい。
【００１４】
ネットワーク装置２０は、図示を省略したスマートフォンやセンサ等の端末から発信されるパケットの宛先を参照し、宛先に近い別のネットワーク装置２０へ転送する。また、ネットワーク装置は、有線の通信を中継（ルーティング）する装置であってもよいし、コンピュータであり、コンピュータの生成したデータをパケットにして宛先に近い別のネットワーク装置２０へ送信してもよい。そして、ネットワーク装置２０は、動作内容をログデータとして出力し、ネットワークログ分析装置１０に送信する。
【００１５】
また、ネットワーク５０は、複数のパケットキャプチャ装置３０を含む。パケットキャプチャ装置３０は、パケットキャプチャ装置３０ａのようにネットワーク装置２０ａとネットワーク装置２０ｂとの接続に設けられてもよいし、ネットワーク装置２０の図示を省略したキャプチャ用のパケット送受信ポートに接続されてもよい。そして、全てのネットワーク装置２０の接続に設けられてもよいし、ネットワーク装置２０ｅとネットワーク装置２０ｆとの間のように設けられなくてもよい。
【００１６】
パケットキャプチャ装置３０は、ネットワーク５０内を流れるパケットを監視し、監視によりコピーしたパケットをネットワークログ分析装置１０に送信する。このパケットの監視は、ＤＰＩ（Deep Packet Inspection）を用いて行われてもよい。
【００１７】
ネットワークログ分析装置１０は、ネットワーク５０に接続され、複数のネットワーク装置２０から出力されるログデータを受信し、受信したログデータを蓄積する。また、複数のパケットキャプチャ装置３０から出力されるパケットデータを受信し、受信したパケットデータを分析する。そして、ネットワークに障害が発生すると、蓄積したログデータ及びパケットデータの分析結果を用いて、障害の原因を推定する。
【００１８】
なお、ネットワークログ分析装置１０とネットワーク装置２０あるいはパケットキャプチャ装置３０とは、図示を省略したスマートフォンやセンサ等の端末から発信されるパケットと同じ通信路により接続されてもよいし、図示を省略した管理専用の通信路により接続されてもよい。また、ネットワーク５０の構成や、ネットワーク装置２０の種類、数は、図１に示した例に限らず、適宜、他の態様とすることが可能である。
【００１９】
（Ａ２）ネットワーク装置の構成
図２は、ネットワーク装置２０の構成の例を示すブロック図である。ネットワーク装置２０は、ネットワークインタフェースモジュール２１と、スイッチングモジュール２２と、制御モジュール２３を備える。
【００２０】
ネットワークインタフェースモジュール２１のそれぞれは、複数のパケット送受信ポート２４と、コントローラ２５と、メモリ２６とを備える。パケット送受信ポート２４には、Ethernet（登録商標）等が物理的に接続される。ネットワーク装置２０は複数のネットワークインタフェースモジュール２１を備えてもよいし、１つのネットワークインタフェースモジュールを備え、スイッチングモジュール２２を備えなくてもよい。
【００２１】
ネットワークインタフェースモジュール２１内のコントローラ２５は、パケット送受信ポート２４で受信したパケットを参照してパケットの宛先を識別する。識別された宛先が他装置宛てであった場合、コントローラ２５が、宛先に送信するための転送先のネットワークインタフェースモジュール２１及び転送先のパケット送受信ポート２４を特定する。特定されたネットワークインタフェースモジュール２１が、パケットを受信したネットワークインタフェースモジュール２１と同じであれば、特定されたパケット送受信ポート２４から送信するように制御する。
【００２２】
特定されたネットワークインタフェースモジュール２１が、パケットを受信したネットワークインタフェースモジュール２１と異なれば、受信したパケットをスイッチングモジュール２２へ転送する。スイッチングモジュール２２からパケットが転送されたネットワークインタフェースモジュール２１は、宛先の他装置へ直接的あるいは間接的に接続されたパケット送受信ポート２４からパケットを送信する。ネットワーク装置２０宛てのパケットをパケット送受信ポート２４で受信すると、スイッチングモジュール２２経由で制御モジュール２３へ転送し、制御モジュール２３からスイッチングモジュール２２経由で他装置宛てのパケットを受け取ると、パケット送受信ポート２４から送信する。
【００２３】
ネットワークインタフェースモジュール２１内のメモリ２６は、パケット送受信ポート２４を通じて送受信されるパケットが一時的に記憶されるバッファとなる。宛先とネットワークインタフェースモジュール２１及びパケット送受信ポート２４との関係や、パケットを通過あるいは廃棄する条件等のコントローラ２５の使用する情報が記憶されてもよい。
【００２４】
スイッチングモジュール２２は、パケットを受信すると、コントローラ２５の指示あるいはＣＰＵ２７ａの指示に従い、受信したパケットを転送先のネットワークインタフェースモジュール２１あるいは制御モジュール２３へ転送する。
【００２５】
制御モジュール２３は、メモリ２６ｃとＣＰＵ（Central Processing Unit）２７ａを備える。メモリ２６ｃにはソフトウェア処理部２８ａとして複数のプログラムが記憶されており、ＣＰＵ２７ａは、メモリ２６ｃに記憶された各プログラムを実行することで、各プログラムに応じた動作をする処理部となる。このため、以下で、プログラムを主語とする説明は、プログラムを実行するＣＰＵ２７ａを主語とする説明に置き換えてもよい。
【００２６】
メモリ２６ｃはソフトウェア処理部２８ａ以外に図示を省略したＯＳ（Operating System）等のプログラム実行環境を含んでもよいし、ＣＰＵ２７ａが一時的に読み書きするデータを含んでもよい。また、ＣＰＵ２７ａは複数のＣＰＵから構成されてもよく、各プログラムの一部または全てを実行するＣＰＵ２７ａと同じ動作のハードウェアをプログラムの代わりに備えてもよい。
【００２７】
ソフトウェア処理部２８ａは、パケット送受信プログラム２９ａ、ログデータ送信プログラム３１、プログラム３２を含む。パケット送受信プログラム２９ａは、自ネットワーク装置２０宛てのパケットの受信や、ソフトウェア処理部２８ａで作成した他装置宛てのパケットの送信を制御するためのプログラムである。パケット送受信プログラム２９ａはＣＰＵ２７ａで実行されることによりパケット送受信部となり、送受信するパケットをスイッチングモジュール２２経由でネットワークインタフェースモジュール２１とやりとりする。
【００２８】
ログデータ送信プログラム３１は、プログラム３２の実行により出力されるログのメッセージに、ログが出力されたタイミング（タイムスタンプ）等のデータを付与し、これらのデータ（以下、ログデータとする）の送信宛先としてネットワークログ分析装置１０を指定し、パケット送受信プログラム２９aにログデータを引き渡すプログラムである。また、コントローラ２５の実行により出力されるログのメッセージが含まれてもよく、ログデータについては、図３を用いて後で更に説明する。ログデータ送信プログラム３１はＣＰＵ２７ａで実行されることによりログデータ送信部となる。
【００２９】
プログラム３２は、各ネットワーク装置２０がサポートしているネットワークの処理を実現するためのプログラムである。例えば、ネットワーク装置２０がパケットフィルタリングをサポートしている場合、パケットを通過あるいは廃棄する条件を、図示を省略した入力装置あるいはネットワーク経由でネットワーク管理者の入力を受け取り、Access Control Listとして作成し、コントローラ２５のメモリ２６に登録するプログラムであってもよい。
【００３０】
また、ネットワーク装置２０がルーティングプロトコルをサポートしている場合、そのネットワーク装置が認識している経路情報を他のネットワーク装置２０に伝えるプログラムであってもよい。更に、図示を省略したスマートフォンやセンサ等の端末から発信されるパケットを受信し、パケット送受信プログラム２９ａを用いて他装置へパケットを送信したり、他装置からパケットを受信し、スマートフォンやセンサ等の端末へパケットを送信したりするプログラムであってもよい。
【００３１】
図３は、ログデータの例を示す図である。ログデータには、種類６１、プライオリティ６２、タイムスタンプ６３、装置名６４、メッセージ６５が含まれる。種類６１は、ログデータの種類を示す情報であって、例えばそのログデータが、ネットワーク装置２０の動作環境で生じたイベントに関するログデータであるのか、それとも各ネットワーク装置２０に固有のプログラムで生じたイベントに関するログデータであるのか等の種類を示す。なお、ネットワーク装置２０の動作環境は、複数のネットワーク装置２０で共通のプログラムであり、例えばＯＳ等であってもよい。図３の例では、「local0」となっており、自ネットワーク装置２０に固有のプログラムで生じたイベントに関するログデータであることを示す。
【００３２】
プライオリティ６２は、ログデータの重要性を示す情報であって、そのログデータが、ネットワーク管理者の注意喚起を必要とするログデータであるのか、単なる記録のためのログデータであるのか等の重要性を示す。図３の例では、「alert」となっており、ネットワーク管理者に何らかの対処を促すログデータであることを示す。ネットワーク装置２０で検出された障害の内容に応じて特定の重要性が割り当てられていてもよい。また、重要性と後で説明するメッセージ６５の内容とは、ネットワーク管理者等により予め組み合わされて、その組み合わせがネットワーク装置２０へ設定さてもよい。タイムスタンプ６３は、ログとして記録されるイベントが生じた時間を示す情報である。図３の例では、「Feb. 2 09:59:00」となっており、イベントが２月２日の９時５９分に生じたことを示す。
【００３３】
装置名６４は、イベントが生じたネットワーク装置２０の名称である。図３の例では、「ND20a」となっており、「ND20a」という装置名のネットワーク装置２０aでイベントが生じたことを示す。装置名６４以外にネットワーク装置２０のＩＰアドレス等を含んでもよい。メッセージ６５は、イベントの具体的な内容を示す情報である。図３の例では、「SSH session timed out.」となっており、SSH（Secure Shell）セッションがタイムアウトにより切断されたというイベントが生じたことを示す。なお、ログデータは必ずしも図３に示した形式である必要はない。複数のログがまとめられたファイルの形式でネットワーク装置２０からネットワークログ分析装置１０へ送信されてもよい。
【００３４】
（Ａ３）ネットワークログ分析装置の構成
図４は、ネットワークログ分析装置１０の構成の例を示すブロック図である。ネットワークログ分析装置１０は、パケット送受信ポート２４e、ハードディスク３２、メモリ２６ｄ、ＣＰＵ２７ｂを備える。ハードディスク３２には、ソフトウェア処理部２８ｂの一部または全てが記憶されており、プログラムが記憶されている。メモリ２６ｄには、ネットワークログ分析装置１０が動作するときに、少なくともその動作に必要なプログラムが読み込まれる。ＣＰＵ２７ｂは、メモリ２６ｄへ読み込まれたプログラムに従って、ネットワークログ分析装置１０の処理を実行する。 
このような動作であるので、説明のために図４の例ではソフトウェア処理部２８ｂの全てがメモリ２６ｄに記憶されている構成を示したが、これに限定されるものではなく、ソフトウェア処理部２８ｂの一部または全てがメモリ２６ｄに記憶されておらず、ハードディスク３２に記憶されてもよい。ここで、ハードディスク３２はフラッシュメモリや半導体ディスク等の不揮発性のメモリでもよい。
【００３５】
ソフトウェア処理部２８ｂは、パケット送受信プログラム２９ｂ、ログデータ取得プログラム１１、ログデータ分析プログラム１２、パケットデータ取得プログラム１３、パケットデータ分析プログラム１４、ユーザインタフェースプログラム１５を含む。各プログラムはＣＰＵ２７ｂに実行されることにより処理部となる。例えば、ログデータ分析プログラム１２とパケットデータ分析プログラム１４は、それぞれログデータ分析部とパケットデータ分析部になる。このため、以下で、プログラムを主語とする説明は、プログラムを実行するＣＰＵ２７ｂを主語とする説明に置き換えてもよい。
【００３６】
ＣＰＵ２７ｂは複数のＣＰＵから構成されてもよく、ソフトウェア処理部２８ｂのプログラムの一部または全てを実行するＣＰＵ２７ａと同じ動作のハードウェアをプログラムの代わりに備えてもよい。メモリ２６ｄはソフトウェア処理部２８ｂ以外に図示を省略したＯＳ等のプログラム実行環境を含んでもよいし、ＣＰＵ２７ｂが一時的に読み書きするデータを含んでもよい。また、ソフトウェア処理部２８ｂは、ログデータ蓄積領域１６、パケットデータ分析結果１７、ログデータ分析結果１８、ログデータ確認優先度１９を含む。
【００３７】
パケット送受信プログラム２９ｂは、パケット送受信ポート２４eを介して他装置とのパケットの送受信を制御するプログラムである。ログデータ取得プログラム１１は、ネットワーク装置２０内のログデータ送信プログラム３１により送信されたログデータを受信するプログラムである。ログデータ取得プログラム１１は、XML（eXtensible Markup Language）形式やJSON（JavaScript（登録商標） Object Notation）形式等、ログデータ分析プログラム１２の処理可能な形式にログデータを加工してログデータ分析プログラム１２に引き渡す。
【００３８】
図５は、JSON形式に加工されたログデータの例を示す図である。JSON形式ログデータ６６では、メッセージが「SSH session timed out.」であり、タイムスタンプが「Feb. 2 09:59:00」であり、装置名が「ND20a」であることを表す。加工されたログデータは、図３に示した情報と同じ内容の情報を含んでもよい。
【００３９】
ログデータ分析プログラム１２は、ログデータ取得プログラム１１からログデータを受け取ると、その内容をログデータ蓄積領域１６に格納する。また、ログデータ内のプライオリティ６２の内容を参照し、ネットワーク５０内に障害が起きていないかを判定する。そして、ログデータの内容を表示装置３３に出力する。
【００４０】
図６は、表示装置３３へのログデータの出力の例を示す図である。表示装置３３には、ログの通し番号１６１、ログのプライオリティ１６２、ログが作成された日付１６３、ログが作成された時刻１６４、ログを発行した装置名１６５、ログのメッセージ１６６が表示される。プライオリティ１６２からメッセージ１６６までのそれぞれの表示内容は、図３に示したログデータのプライオリティ６２からメッセージ６５までのそれぞれの内容であってもよい。図６の例では、表示の１行が１つのログデータである。ログの通し番号１６１の番号は、例えばネットワークログ分析装置１０が起動されてから通して付与される番号であってもよい。
【００４１】
ログデータ分析プログラム１２は、プライオリティ６２に相当する加工されたログデータの情報を参照し、プライオリティ（重要性）が高いログデータを検知すると、管理しているネットワーク５０内に障害が発生したと判定する。図６の例では、通し番号１６１の値が「６」のログデータで、高いプライオリティを検知し、高いプライオリティのアイコンが表示され、ネットワーク５０内の障害の発生を判定したことが示されている。この表示を見たネットワーク管理者は、障害を認識することができる。そして、日付１６３、時刻１６４、装置名１６５、メッセージ１６６により「２月２日」の「９時５９分０秒」に、ネットワーク装置２０aで、「SSHセッションがタイムアウト」したことがわかる。
【００４２】
更にログデータ分析プログラム１２は、定期的（例えば予め設定された周期であって５分間隔）にパケットデータ分析結果１７を参照し、パケットデータ分析結果１７に保存されている文字列を取得する。その後ログデータ分析プログラム１２は、ログデータ蓄積領域１６に保存されたログデータを参照し、取得した文字列を含むログデータの個数をネットワーク装置２０毎にカウントし、そのカウントした結果をログデータ分析結果１８に格納する。
【００４３】
またログデータ分析プログラム１２は、パケットデータ分析結果１７から取得した文字列を含むログデータとそれ以外のログデータを峻別する。そして、峻別されたログデータは分けて格納されてもよい。図１３を用いて後で説明するように、「推定原因ログ」としては、パケットデータ分析結果１７から取得した文字列を含むログデータを表示するため、峻別された、それ以外のログデータは、表示に関する処理の対象外とすることができる。
【００４４】
図７は、ログデータ分析結果１８の例を示す図である。ログデータ分析結果１８は、ログデータの送信元のネットワーク装置２０の装置名１８１と、パケットデータ分析結果１７に保存されている文字列毎に、その文字列を含むログデータの個数１８２を含む。図７の例で文字列は、「TCP」、「VLAN」、「10」、「20」、「VXLAN」、「UDP」である。例えば、エントリ１８０３は、装置名１８１が「ND20c」であるネットワーク装置２０cから送信されたログデータに、文字列「TCP」を含むログデータが４つ、文字列「UDP」を含むログデータが３つ、周期の１つの期間内（例えば周期が５分であるとすると５分間）に検出されたことを示している。 
エントリ１８０４は、装置名１８１が「ND20d」であるネットワーク装置２０dから送信されたログデータに、文字列「VLAN  20」を含むログデータが１つ、周期の１つ期間内（例えば５分間）に検出されたことを示している。
【００４５】
なお、図７の例では、「VLAN」と「10」と「20」を別の文字列として表現したが、「VLAN 10」と「VLAN 20」としてもよく、図７の「VLAN」の「10」の個数と、ログデータに含まれる文字列「VLAN 10」の個数とは同じである。また、ログデータ分析結果１８がどのような文字列を含むかは、キーボード３４等から予め設定されていてもよい。
【００４６】
ログデータ分析プログラム１２は、ネットワーク５０内に障害が発生したと判定すると、ログデータ分析結果１８を参照し、障害の原因推定を短期化するためのログデータ確認優先度１９を作成し、ログデータ確認優先度１９の情報に基づき表示装置３３に出力を制御する。ログデータ確認優先度１９の作成については図１２等を用いて後で説明する。
【００４７】
図４のソフトウェア処理部２８ｂ内のパケットデータ取得プログラム１３は、パケット送受信プログラム２９ｂを使用して、パケットキャプチャ装置３０が送信するネットワーク５０内のパケットのコピーをデータとして取得する。パケットデータ取得プログラム１３は、取得したパケットデータをパケットデータ分析プログラム１４に引き渡す。
【００４８】
図８と図９のそれぞれは、ネットワーク５０内を流れるパケットの例を示す図である。図８の例は、パケットキャプチャ装置３０aから受信したTCPプロトコルのパケットである。パケットは、Etherヘッダ４１a、IPヘッダ４２a、TCPヘッダ４３、SSHデータ４４が含まれる。また、Etherヘッダ４１aには、宛先MACアドレス４５、送信元MACアドレス４６、VLAN ID（Virtual Local Area Network 識別子）４７の値「10」等が含まれる。
【００４９】
パケットデータ分析プログラム１４は、図８に示したパケットデータをパケットデータ取得プログラム１３より受け取ると、ヘッダ情報の組み合わせ（以下、フローとする）毎に、転送に用いられているプロトコル、識別子を分析する。フローとなるヘッダ情報の組み合わせは、通信分野のいわゆるファイブ・タプル（5-tuple：送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、プロトコル）であってもよいし、ファイブ・タプルに通信の特定の情報を加えたものであってもよく、VLAN等に関する情報を加えたものであってもよい。
【００５０】
図８に示したパケットの例では、ヘッダ情報で特定される送信元と宛先間のSSHプロトコルは、TCPプロトコル、VLAN ID 10を用いて転送されていることが分析される。パケットデータを分析したパケットデータ分析プログラム１４は、分析結果を文字列としてパケットデータ分析結果１７に格納する。
【００５１】
図９の例は、パケットキャプチャ装置３０bから受信したUDPプロトコルでカプセル化されたパケットである。パケットには、Etherヘッダ４１b、IPヘッダ４２b、UDPヘッダ４８、VXLAN ID（Virtual eXtensible Local Area Network 識別子）４９の値「20」等が含まれる。更に、VXLANデータ５１として図８に示したパケットと同じパケットが含まれる。これは、ネットワーク装置２０bが、図８に示したパケットを図９に示すようにカプセル化したことを意味する。
【００５２】
パケットデータ分析プログラム１４は、図９に示したパケットデータをパケットデータ取得プログラム１３より受け取ると、フロー毎に、転送に用いられているプロトコル、識別子を分析する。図９に示したパケットの例では、ヘッダ情報で特定される送信元と宛先間のSSHプロトコルは、TCPプロトコル、VLAN ID 10を用い、更にVXLAN ID 20、UDPプロトコルを用いて転送されていることが分析される。パケットデータを分析したパケットデータ分析プログラム１４は、分析結果を文字列としてパケットデータ分析結果１７に追加する。
【００５３】
図１０は、パケットデータ分析結果１７の例を示す図である。パケットデータ分析結果１７は、アプリケーション１７１、転送プロトコル１７２、IPアドレス１７３、VLAN識別子１７４等を含み、これらのヘッダ情報の組み合わせのフロー毎にエントリが作成される。アプリケーション１７１は、例えば、使用されているポート番号から特定できるネットワークアプリケーションの情報であってもよい。
【００５４】
例えばエントリ１７０２では、IPアドレス１７３ａの情報から特定される送信元と宛先IPアドレス間の、アプリケーション１７１ａの情報から特定されるSNMPプロトコルが、転送プロトコル１７２ａの情報から特定されるUDPプロトコルで転送されることが示されている。エントリ１７０３では、IPアドレス１７３ａの情報から特定される送信元と宛先IPアドレス間の、アプリケーション１７１ａの情報から特定されるNETCONFプロトコルが、転送プロトコル１７２ａとVLAN識別子１７４ａの情報から特定されるTCPプロトコル、VLAN ID 20で転送されることが示されている。
【００５５】
また、パケットデータ分析結果１７は、図９に示したようなカプセル化されたパケットの場合、カプセル化される前のフローのエントリに、カプセル化しているヘッダ情報が追記される。エントリ１７０１では、IPアドレス１７３ａの情報から特定される送信元と宛先IPアドレス間の、アプリケーション１７１ａの情報から特定されるSSHプロトコルが、転送プロトコル１７２ａとVLAN識別子１７４ａの情報から特定されるTCPプロトコル、VLAN ID 10で転送され、このフローがカプセル化されて、アプリケーション１７１ｂと転送プロトコル１７２ｂで特定されるVXLAN ID 20、UDPプロトコルで転送されることが示されている。
【００５６】
なお、パケットデータ分析結果１７は、図１０に示したテーブルの構成に限定されるものではなく、リスト等の他の構成でもよいが、ネットワークのレイヤの順番に構成されることが望ましい。図１０に示したテーブルの例では、テーブルの左方が上位レイヤの転送プロトコル、識別子であり、右方が下位レイヤの転送プロトコル、識別子である。このようなパケットデータ分析結果１７における転送プロトコル、識別子の項目の構成は予め設定され、パケットデータ分析プログラム１４の分析の結果は各項目に格納される。
【００５７】
また、各転送プロトコルと各識別子の情報は文字列であってもよい。すなわち、エントリ１７０１のSSHプロトコルは、パケットデータ分析結果１７において、アプリケーション１７１ａに「SSH」という文字列が格納されてもよい。エントリ１７０１のVLAN ID 10は、ＶＬＡＮ識別子１７４ａに「VLAN 10」という文字列、あるいは「VLAN」という文字列と「10」という文字列が格納されてもよい。
【００５８】
図４のソフトウェア処理部２８ｂ内のユーザインタフェースプログラム１５は、ログデータ分析プログラム１２の制御に基づき、図６を用いて説明したログデータを表示装置３３に出力したり、ログデータ分析プログラム１２がログデータを分析した結果を表示装置３３に出力したりするプログラムである。また、ネットワーク管理者がキーボード３４やマウス３５を操作した内容を、入力として受け付けるプログラムでもある。
【００５９】
（Ａ４）障害原因推定短期のためにログデータ確認優先度を作成する手順
図１１は、ネットワーク５０内の障害を検出して表示装置３３へ出力するネットワークログ分析装置１０の手順の例を示すフローチャート図である。ネットワークログ分析装置１０は、原因推定時間を短縮化するため，ログデータ確認優先度１９を作成する。
【００６０】
ネットワークログ分析装置１０のパケット送受信プログラム２９ｂはネットワーク装置２０からログデータを受信し、ログデータ取得プログラム１１はログデータを加工してログデータ分析プログラム１２に渡すことを繰り返している。ログデータ分析プログラム１２は、加工されたログデータ内のプライオリティ６２に対応するプライオリティの情報を参照しており、プライオリティの値が、予め設定されたレベルより高いと判定した場合、ネットワーク５０内の障害を検出したとして、以下の手順に進む（ステップ１０１）。
【００６１】
ログデータ分析プログラム１２は、加工されたログデータ内のメッセージ６５に対応するメッセージの文字列内に出現する語を成す文字列を抽出する（ステップ１０２）。例えば、図６に示したログデータにおいて、通し番号１６１が「６」のログデータについては、そのプライオリティ１６２に対応するプライオリティの値が予め設定されたレベルより高いと判定でき、メッセージ１６６に対応するメッセージの文字列から、語を成す文字列「SSH」、「session」、「timed」、「out」を抽出する。
【００６２】
次にログデータ分析プログラム１２は、ステップ１０２で抽出した文字列をキーとして、パケットデータ分析結果１７内の文字列を検索し、一致する文字列を見つけ出す。この一致する文字列を含むエントリの転送プロトコル、識別子が、障害に関連する転送プロトコル、識別子となる。例えば、パケットデータ分析結果１７が図１０の例である場合、「SSH」と言う文字列をキーとしてパケットデータ分析結果１７を検索すると、エントリ１７０１で一致する文字列が見つかる。エントリ１７０１を参照することにより、関連する転送プロトコル、識別子として、「TCP」、「VLAN 10」、「VXLAN 20」、「UDP」を抽出する。
【００６３】
これによりログデータ分析プログラム１２は、障害に関連する転送プロトコル、識別子として「SSH」、「TCP」、「VLAN 10」、「VXLAN 20」、「UDP」を特定できる。このときログデータ分析プログラム１２は、これらの転送プロトコル、識別子の中で、ログデータを参照する際の優先度も含めて特定する。パケット転送は、下位レイヤの転送プロトコルのヘッダが上位レイヤの転送プロトコルのヘッダの前に付き、下位レイヤの転送プロトコルの影響が上位レイヤの転送プロトコルに影響を及ぼす特徴がある。
【００６４】
よって、ログデータ分析プログラム１２は、図１０の例ではパケットデータ分析結果１７の右側にある転送プロトコル、識別子を、ログデータを参照する際、より優先度が高い転送プロトコル、識別子と特定する（ステップ１０３）。ログデータ分析プログラム１２は、転送プロトコル、識別子を優先付けして特定した結果をログデータ確認優先度１９に格納する。
【００６５】
図１２は、ログデータ確認優先度１９の例を示す図である。ログデータ確認優先度１９は、優先度１９１と転送プロトコル、識別子１９２とを含む。優先度１９１の値「１」が最も優先度が高く、ステップ１０３の処理により特定された「UDP」、「VXLAN 20」、「VLAN 10」、「TCP」の順に、転送プロトコル、識別子１９２へ格納される。
【００６６】
次にログデータ分析プログラム１２は、ステップ１０３の処理により特定された転送プロトコル、識別子それぞれをキーとしてログデータ分析結果１８を検索し、キーと一致する文字列を含むログデータの個数をネットワーク装置２０毎に取得する（ステップ１０４）。例えば、図７に示したログデータ分析結果１８の例では、「UDP」と言う文字列をキーとしてログデータ分析結果１８を検索すると、エントリ１８０３とエントリ１８０５の個数１８２ｇに「１」以上の個数がある。
【００６７】
エントリ１８０３を参照すると、「UDP」の文字列を含むログデータが、ある周期内に装置名１８１が「ND20c」のネットワーク装置２０cで「３」回記録されている。また、エントリ１８０５を参照すると、「UDP」の文字列を含むログデータが、ある周期内に装置名１８１が「ND20e」のネットワーク装置２０eで「１」回記録されている。個数の多いネットワーク装置２０は、障害への関与の可能性が高いため、優先度を高くする。
【００６８】
ネットワーク装置２０に優先度を付与するため、図１２に示したログデータ確認優先度１９は、転送プロトコル、識別子１９２に加え、装置名１９３を含み、ログデータ分析プログラムは、ステップ１０４により取得された個数に応じて、例えば転送プロトコル、識別子１９２が「UDP」に対して、装置名１９３へ「ND20c」、「ND20e」の順に記録する。
【００６９】
このようにログデータ確認優先度１９は、その優先度が高いほど、すなわち図１２の例において転送プロトコル、識別子１９２と装置名１９３の上方に記録された情報ほど、障害の原因に関係する可能性が高く、その情報に基づいて障害原因を推定するネットワーク管理者の推定時間の短縮に寄与する。
【００７０】
最後にログデータ分析プログラム１２は、ログデータ確認優先度１９の優先付けられた結果に従って、ログデータ蓄積領域１６内のログデータを検索し、一致する文字列を含むログデータを抽出して表示装置３３に出力する（ステップ１０５）。一致する文字列を含むログデータを抽出する際、峻別されて別に格納されたログデータのみを検索あるいは抽出の対象とすることにより、抽出の処理量を減らしてもよい。
【００７１】
図１３は、分析して推定した結果の出力の例を示す図である。ログデータ分析プログラム１２は、ステップ１０５により、ユーザインタフェースプログラム１５を使用して、分析して推定した結果を表示装置３３に出力する。図１３において、図１２と同じ項目は同じ符号を付けてあり、図１２を用いて説明したログデータの表示と同じ項目の表示であるが、ログデータの表示の順番が通し番号１６１の番号の順ではない。
【００７２】
まず、プライオリティの判定から障害とみなされたログデータは、「イベントログ」として出力される。図１３の例では、メッセージ１６６が「SSH session timed out.」のログデータである。このログデータに対し、「推定原因ログ」として、図１１を用いて説明した処理により、図１２に示したログデータ確認優先度１９では「UDP」の優先度が高く、「UDP」では「ND20c」の優先度が高いため、「UDP packet is filtered.」が出力され、次に「UDP」の「ND20e」の「Received SNMP packet from UDP.」が出力され、次に「TCP」の「TCP packet is filtered.」が出力される。
【００７３】
これによりネットワーク管理者は、表示装置３３の出力を参照することにより、ネットワーク装置２０cにおいてUDPパケットが廃棄されたことが、SSHセッションのタイムアウトを起こし通信断が発生したのではないかとの推定が可能である。また、UDPパケットの廃棄が原因ではない場合でも、「推定原因ログ」のログデータは優先度の順番で出力されているため、上からログデータを参照して行くことにより、ネットワーク管理者は少ないログデータの参照で原因にたどり着くことができる。
【００７４】
以上で説明した処理により、パケットを転送しているプロトコル及びパケットヘッダ内の識別子が常時分析されている。また、この分析結果に関連するログデータとそれ以外のログデータが常時峻別されている。更に、パケットを分析した結果に関連するログデータに関しては、プロトコル、識別子毎にログデータの発生回数が一定の周期で整理されている。これにより、ネットワークに障害が発生した場合、確認対象のログデータが絞りこまれていることになる。
【００７５】
なお、パケットキャプチャ装置３０は、パケットキャプチャ装置３０で受信する全てのパケットをキャプチャしてもよいし、予め設定された条件でパケットをサンプリングしてキャプチャしてもよいし、全てのパケットをキャプチャして予め設定された条件でサンプリングしたパケットのみをネットワークログ分析装置１０へ送信してもよい。また、ネットワークログ分析装置１０は、パケットキャプチャ装置３０から受信したパケットデータを全て分析してもよいし、受信したパケットデータの中から予め設定された条件でサンプリングしたパケットデータのみを分析してもよい。
【００７６】
以上で説明したように、障害に関係すると推定されるログデータを優先順位に従ってネットワーク管理者へ提示できるため、ネットワーク管理者の障害原因の推定時間の短縮に寄与できる。また、フローに基づき分析するため、ネットワークの物理的な構成に依存せず、仮想化やカプセル化によりトンネリングされたネットワークにおいても分析ができる。また、転送プロトコルを文字列として扱い、転送プロトコルの内容に依存しないため、様々なプロトコルの混在したネットワークにおいても分析ができる。
【００７７】
なお、本発明及び／又は本実施例は、上述したネットワーク装置２０、及びネットワークログ分析装置１０による構成のほか、ネットワークログ分析方法や、ネットワークログ分析装置で実行されるコンピュータプログラムとしても構成することができる。コンピュータプログラムは、コンピュータが読取可能な記録媒体に記録されていてもよい。記録媒体としては、例えば、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、光磁気ディスク、メモリカード、ハードディスク等の種々の媒体を利用することができる。
【００７８】
また、本発明及び本実施例は上述した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上述した実施例は本発明のより良い理解のために詳細に説明したのであり、必ずしも説明の全ての構成を備えるものに限定されるものではない。また、実施例の構成の一部を他の構成に置き換えることも可能であり、また、実施例の構成に他の構成を加えることも可能である。更に、実施例の構成の一部について、他の構成の追加・削除・置換をすることも可能である。
【００７９】
加えて、上述した各構成、機能、処理部等は、それらの一部又は全部を実現するプログラムを作成する例を説明したが、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現しても良い。
【符号の説明】
【００８０】
１０  ネットワークログ分析装置
１１  ログデータ取得プログラム
１２  ログデータ分析プログラム
１３  パケットデータ取得プログラム
１４  パケットデータ分析プログラム
１５  ユーザインタフェースプログラム
１６  ログデータ蓄積領域
１７  パケットデータ分析結果
１８  ログデータ分析結果
１９  ログデータ確認優先度
２０  ネットワーク装置
３０  パケットキャプチャ装置
【図１】
2017060074.tif 000003
【図２】
2017060074.tif 000004
【図３】
2017060074.tif 000005
【図４】
2017060074.tif 000006
【図５】
2017060074.tif 000007
【図６】
2017060074.tif 000008
【図７】
2017060074.tif 000009
【図８】
2017060074.tif 000010
【図９】
2017060074.tif 000011
【図１０】
2017060074.tif 000012
【図１１】
2017060074.tif 000013
【図１２】
2017060074.tif 000014
【図１３】
2017060074.tif 000015