IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7235967ネットワーク分析プログラム、ネットワーク分析装置及びネットワーク分析方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-01
(45)【発行日】2023-03-09
(54)【発明の名称】ネットワーク分析プログラム、ネットワーク分析装置及びネットワーク分析方法
(51)【国際特許分類】
   H04L 43/16 20220101AFI20230302BHJP
   H04L 43/0829 20220101ALI20230302BHJP
   H04L 43/091 20220101ALI20230302BHJP
【FI】
H04L43/16
H04L43/0829
H04L43/091
【請求項の数】 10
(21)【出願番号】P 2019136265
(22)【出願日】2019-07-24
(65)【公開番号】P2021022759
(43)【公開日】2021-02-18
【審査請求日】2022-04-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100094525
【弁理士】
【氏名又は名称】土井 健二
(74)【代理人】
【識別番号】100094514
【弁理士】
【氏名又は名称】林 恒徳
(72)【発明者】
【氏名】飯塚 史之
(72)【発明者】
【氏名】上野 仁
【審査官】佐々木 洋
(56)【参考文献】
【文献】特開2011-154483(JP,A)
【文献】特開2017-103674(JP,A)
【文献】米国特許出願公開第2018/0077182(US,A1)
【文献】中国特許出願公開第1713594(CN,A)
【文献】米国特許出願公開第2019/0166024(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
H04L 41/00-101/695
(57)【特許請求の範囲】
【請求項1】
それぞれ同じ通信ノードグループを送信元または送信先とする複数のコネクショングループのパケットをネットワークの通信経路上で取得し解析した過去のコネクションのネットワーク解析データを、前記複数のコネクショングループで集約した時間毎の学習データのうち、現時刻のコネクションのネットワーク解析データを前記複数のコネクショングループで集約した時間毎の集約データの説明変数ベクトルと、所定距離以内の説明変数ベクトルを有する局所学習データを局所モデルとし、前記局所モデルに基づいて前記集約データの説明変数ベクトルに対する現時刻のネットワーク品質の推測値を求める局所モデリング分析を行い、
前記推測値に基づいて算出した異常判定閾値より、前記現時刻のネットワーク品質の測定値が悪いか否かに基づいて、前記ネットワークの異常を判定し、
前記ネットワークの異常を判定した異常時間帯の前記コネクションのネットワーク解析データ内に、前記異常判定閾値を超える前記ネットワーク品質の測定値を有するコネクションの分布が所定サイズ以上で存在するか否かを判定する分布判定処理を実行し、
前記所定サイズ以上のコネクションの分布内に所定基準割合以上を占める特定のコネクショングループを個別解析対象コネクショングループとして抽出する抽出処理を実行し、
前記個別解析対象コネクショングループの前記学習データ及び集約データと、前記複数のコネクショングループから前記個別解析対象コネクショングループを除いた残りのコネクショングループの前記学習データ及び集約データとを、個別に、前記局所モデリング分析を行い、前記ネットワークの異常を判定する、処理をコンピュータに実行させるコンピュータ読み取り可能なネットワーク分析プログラム。
【請求項2】
前記局所モデリング分析は、
前記局所モデルに基づいて、前記説明変数ベクトルから前記推測値を算出する局所線形モデルを生成し、
前記局所線形モデルに基づいて、前記集約データの説明変数ベクトルに対する前記推測値を算出する、請求項1に記載のネットワーク分析プログラム。
【請求項3】
前記処理は、更に、
前記個別解析対象コネクショングループと前記残りのコネクショングループの両方が、前記ネットワークの異常に該当しないと判定した場合、前記ネットワークの異常を知らせるアラームを発しない、請求項1に記載のネットワーク分析プログラム。
【請求項4】
前記処理は、更に、
前記局所モデルのばらつきに基く適正範囲を、前記ばらつきに係数を乗じて設定し、
前記アラームに応答して前記アラームの受信側から返信されたフィードバックが、前記アラームが不適切を示す場合、前記係数の値を増加して前記適正範囲を増大する、請求項3に記載のネットワーク分析プログラム。
【請求項5】
前記分布判定処理において、
前記異常時間帯の前記コネクションのネットワーク分析データについて、前記ネットワーク品質の測定値を各ビンに割当て、前記コネクションの数に前記測定値を乗じた値を前記各ビンの数とするヒストグラムを生成し、
前記ヒストグラムにおいて、前記異常判定閾値を超える前記ネットワーク品質の測定値を有する前記コネクションの分布の山が所定サイズ以上で存在するか否かを判定する、請求項1に記載のネットワーク分析プログラム。
【請求項6】
前記分布判定処理内の前記ヒストグラムの生成処理では、
前記異常時間帯の複数のコネクションそれぞれについて、前記ヒストグラム内の前記測定値の位置に、前記測定値を中心とするカーネル関数に前記測定値を乗算した修正カーネル関数を配置し、配置した複数の修正カーネル関数を加算した値を前記各ビンの数とする分布曲線を、前記ヒストグラムとして生成し、
前記分布曲線が、前記異常判定閾値を超える前記ネットワーク品質の測定値を有する位置に、前記所定サイズ以上の分布の山を有するか否かを判定する、請求項5に記載のネットワーク分析プログラム。
【請求項7】
前記ネットワーク解析データは、コネクション数とネットワーク品質を示す品質値を有し、
前記複数のコネクショングループで集約した時間毎の学習データ及び集約データは、前記コネクション数の合計と前記品質値の平均を有する、請求項1に記載のネットワーク分析プログラム。
【請求項8】
前記異常判定閾値は、前記推測値に前記局所モデルのネットワーク品質のばらつきに基く適正範囲を加えて算出される、請求項1に記載のネットワーク分析プログラム。
【請求項9】
プロセッサと、
前記プロセッサがアクセスするメモリを有し、
前記プロセッサは、
それぞれ同じ通信ノードグループを送信元または送信先とする複数のコネクショングループのパケットをネットワークの通信経路上で取得し解析した過去のコネクションのネットワーク解析データを、前記複数のコネクショングループで集約した時間毎の学習データのうち、現時刻のコネクションのネットワーク解析データを前記複数のコネクショングループで集約した時間毎の集約データの説明変数ベクトルと、所定距離以内の説明変数ベクトルを有する局所学習データを局所モデルとし、前記局所モデルに基づいて前記集約データの説明変数ベクトルに対する現時刻のネットワーク品質の推測値を求める局所モデリング分析を行い、
前記推測値に基づいて算出した異常判定閾値より、前記現時刻のネットワーク品質の測定値が悪いか否かに基づいて、前記ネットワークの異常を判定し、
前記ネットワークの異常を判定した異常時間帯の前記コネクションのネットワーク解析データ内に、前記異常判定閾値を超える前記ネットワーク品質の測定値を有するコネクションの分布が所定サイズ以上で存在するか否かを判定する分布判定処理を実行し、
前記所定サイズ以上のコネクションの分布内に所定基準割合以上を占める特定のコネクショングループを個別解析対象コネクショングループとして抽出する抽出処理を実行し、
前記個別解析対象コネクショングループの前記学習データ及び集約データと、前記複数のコネクショングループから前記個別解析対象コネクショングループを除いた残りのコネクショングループの前記学習データ及び集約データとを、個別に、前記局所モデリング分析を行い、前記ネットワークの異常を判定する、前記ネットワークの異常を判定する、ネットワーク分析装置。
【請求項10】
それぞれ同じ通信ノードグループを送信元または送信先とする複数のコネクショングループのパケットをネットワークの通信経路上で取得し解析した過去のコネクションのネットワーク解析データを、前記複数のコネクショングループで集約した時間毎の学習データのうち、現時刻のコネクションのネットワーク解析データを前記複数のコネクショングループで集約した時間毎の集約データの説明変数ベクトルと、所定距離以内の説明変数ベクトルを有する局所学習データを局所モデルとし、前記局所モデルに基づいて前記集約データの説明変数ベクトルに対する現時刻のネットワーク品質の推測値を求める局所モデリング分析を行い、
前記推測値に基づいて算出した異常判定閾値より、前記現時刻のネットワーク品質の測定値が悪いか否かに基づいて、前記ネットワークの異常を判定し、
前記ネットワークの異常を判定した異常時間帯の前記コネクションのネットワーク解析データ内に、前記異常判定閾値を超える前記ネットワーク品質の測定値を有するコネクションの分布が所定サイズ以上で存在するか否かを判定する分布判定処理を実行し、
前記所定サイズ以上のコネクションの分布内に所定基準割合以上を占める特定のコネクショングループを個別解析対象コネクショングループとして抽出する抽出処理を実行し、
前記個別解析対象コネクショングループの前記学習データ及び集約データと、前記複数のコネクショングループから前記個別解析対象コネクショングループを除いた残りのコネクショングループの前記学習データ及び集約データとを、個別に、前記局所モデリング分析を行い、前記ネットワークの異常を判定する、処理を有するネットワーク分析方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク分析プログラム、ネットワーク分析装置及びネットワーク分析方法に関する。
【背景技術】
【0002】
ネットワーク分析装置は、ネットワーク品質の一つの指標であるパケットロス率やスループットの測定値が、過去の通常状態の測定値に基づいて設定した異常判定閾値よりも悪い(パッケットロス率が高い、スループットが低い)場合に、異常と判定する。
【0003】
また、ネットワーク分析装置は、複数のコネクションの通信パケットを、そのパケットが通過する通信経路上の例えばデータセンタの入口のアクセスポイントのルータまたはスイッチでパケットミラーリングによって複製するなどしてキャプチャし、キャプチャしたパケットデータをコネクション毎に解析したネットワーク解析データ(例えば、パケット数、バイト数、ロスパケット数、RTT(Round Trip Time)等)を集計、分析し、過去の分析結果から異常判定閾値等の判定基準を作成し、現在のネットワーク品質が異常か否かを判定する。
【0004】
ネットワーク品質の監視コスト低下の要請から、ネットワーク分析装置が、複数のコネクションのネットワーク解析データをまとめて、例えばパケットロス率の平均などを分析する。そのため、夜間などのサービス停止時にサービスにアクセスするコネクション数が減少すると同時にパケット数がサービス稼働時のような通常状態から減少し、パケットロス数は増加してなくても全パケット数の減少によりパケットロス率の平均値が高くなる場合、ネットワーク状態が必ずしも異常状態でなくても、ネットワークの異常が検出される。この場合、ネットワーク分析装置は、過剰なアラームを発生する。
【0005】
過剰なアラームの発生を回避するために異常判定閾値のマージンを大きくし過ぎると、真にネットワークの異常が発生していても、ネットワーク分析装置は、必要なアラームを発生することができない。
【0006】
上記の観点から、ネットワーク分析装置は、ジャストインタイムモデリング(Just In Time Modeling, JITモデリング)を使用して、過去のネットワークの使用状態と品質(例えばパケットロス率)の関係の傾向を反映した現在のネットワーク品質を推測し、JIT解析の局所モデルのネットワーク品質のばらつきに基づいて設定した正常範囲をネットワーク品質の推測値に加えた異常判定閾値で、ネットワークの異常を判定する。また、ネットワーク分析装置は、設定した正常範囲を、異常判定時に発したアラームに対する通信システム運用者によるフィードバックに基づいて調節することで、よりシステム運用者の意図に沿ったアラーム通知を行えるようにする。
【0007】
上記のJITモデリングを使用したJIT分析により、ネットワーク分析装置は、ネットワークの過去のネットワーク品質の傾向とそのばらつきを反映した異常判定閾値に基づき、ネットワークの異常を判定することで、パケット数が少ない場合でも、適切に異常判定を行うことができる。
【先行技術文献】
【特許文献】
【0008】
【文献】特表2018-521611号公報
【文献】特開2011-145846号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、企業の組織等に基づいて区分された拠点等の1つまたは複数のサブネットに属する通信ノードグループがある場合、同じ通信ノードグループを送信元または送信先とする複数のコネクションが確立されて通信が行われる。この同じ通信ノードグループを送信元または送信先とする複数のコネクションを、以下コネクショングループと称する。
【0010】
複数の拠点が存在し、複数のコネクショングループのネットワーク解析データを集計して分析する場合、次の2つの異常状態を区別することが困難になる。即ち、(1)複数のコネクショングループの通信サンプル数の割合が通常時と同じであるが、あるコネクショングループのパケットロス率が通常時より上昇し、複数のコネクショングループ全体の平均パケットロス率が異常判定閾値を超えてネットワークの異常が検出される場合と、(2)複数のコネクショングループの通信サンプル数の割合が通常時と異なり、普段から狭帯域等が原因で通信品質が悪くロス率が高いコネクショングループの高いパケットロス率が顕在化し、全体の平均パケットロス率が異常判定閾値を超えてネットワーク異常が検出される場合である。(2)の状態では、他のコネクショングループよりも普段から通信品質が悪い特定のコネクショングループの高いパケットロス率の測定値の数の、他のコネクショングループの高くないパケットロス率の測定値の数に対する比率が高く、全体の平均パケットロス率が高くなる。
【0011】
上記の(1)の異常判定時のアラームは、運用者から必要なアラームであったとフィードバックされるが、(2)の異常判定時のアラームは、運用者から不必要なアラームであったとフィードバックされる場合がある。そのため、このフィードバックを受けて、(2)の状態のロス率を正常範囲とするように補正が行われ、異常判定閾値の正常範囲が高く変更されてしまい、ネットワーク分析装置が、その後に発生する(1)の異常が異常と判定できなくなる課題がある。
【0012】
そこで、本実施の形態の第1の側面の目的は、上記のネットワーク分析の課題を解決するネットワーク分析プログラム、ネットワーク分析装置及びネットワーク分析方法を提供することにある。
【課題を解決するための手段】
【0013】
本実施の形態の第1の側面は、それぞれ同じ通信ノードグループを送信元または送信先とする複数のコネクショングループのパケットをネットワークの通信経路上で取得し解析した過去のコネクションのネットワーク解析データを、前記複数のコネクショングループで集約した時間毎の学習データのうち、現時刻のコネクションのネットワーク解析データを前記複数のコネクショングループで集約した時間毎の集約データの説明変数ベクトルと、所定距離以内の説明変数ベクトルを有する局所学習データを局所モデルとし、前記局所モデルに基づいて前記集約データの説明変数ベクトルに対する現時刻のネットワーク品質の推測値を求める局所モデリング分析を行い、
前記推測値に基づいて算出した異常判定閾値より、前記現時刻のネットワーク品質の測定値が悪いか否かに基づいて、前記ネットワークの異常を判定し、
前記ネットワークの異常を判定した異常時間帯の前記コネクションのネットワーク解析データ内に、前記異常判定閾値を超える前記ネットワーク品質の測定値を有するコネクションの分布が所定サイズ以上で存在するか否かを判定する分布判定処理を実行し、
前記所定サイズ以上のコネクションの分布内に所定基準割合以上を占める特定のコネクショングループを個別解析対象コネクショングループとして抽出する抽出処理を実行し、
前記個別解析対象コネクショングループの前記学習データ及び集約データと、前記複数のコネクショングループから前記個別解析対象コネクショングループを除いた残りのコネクショングループの前記学習データ及び集約データとを、個別に、前記局所モデリング分析を行い、前記ネットワークの異常を判定する、処理をコンピュータに実行させるコンピュータ読み取り可能なネットワーク分析プログラムである。
【発明の効果】
【0014】
第1の側面によれば、ネットワーク分析の精度を高くすることができる。
【図面の簡単な説明】
【0015】
図1】本実施の形態が適用される通信ネットワークの一例を示す図である。
図2】第1のネットワーク異常判定方法を示す図である。
図3】JITモデルを使用した第2のネットワーク異常判定方法を示す図である。
図4】JIT解析の方法のフローチャートを示す図である。
図5】JIT解析の方法を説明する図である。
図6】JIT解析の方法を説明する図である。
図7】アラームの発行とアラームに対するフィードバックについて説明する図である。
図8】ネットワーク解析装置とネットワーク分析装置の構成例を示す図である。
図9】ネットワーク分析装置の構成例を示す図である。
図10】ネットワーク分析装置NW_AN_2のネットワーク分析プログラムに含まれる異常判定プログラムのフローチャートを示す図である。
図11】学習データ作成プログラムの処理のフローチャートを示す図である。
図12】アラーム判定プログラムの処理のフローチャートを示す図である。
図13】状態別に生成したコネクション毎のロス率の分布(ヒストグラム)を示す図である。
図14】JIT解析によるネットワークの誤判定の場合のコネクション毎のロス率の分布(ヒストグラム)例を示す図である。
図15】本実施の形態におけるネットワーク分析プログラムに含まれるアラーム判定プログラムのフローチャートを示す図である。
図16】フィードバック対象のアラーム通知について説明する図表である。
図17】本実施の形態におけるネットワーク分析処理のアラーム判定の詳細フローチャートを示す図である。
図18図17のアラーム判定の詳細フローチャートの処理を示す図である。
図19】処理S41とS42について更に説明する図である。
図20】分布の山の検出処理S42を説明する図である。
図21】分布の山の検出処理S42を説明する図である。
図22】分布の山の検出処理S42を説明する図である。
図23】コネクショングループCG_Eに対するJIT解析を示す図である。
図24】データ抽出条件設定例と判定対象項目設定例を示す図である。
図25】学習データ作成例を示す図である。
図26】現時刻のネットワーク解析データの取得例を示す図である。
図27】過去3週間分の学習データDB2と現時刻の集約されたネットワーク解析データ(集約データ)DB3_2に基づくJIT解析の具体例を示す図である。
図28】処理S44,S45におけるコネクショングループ毎の学習データDB2の一例を示す図である。
図29】処理S40におけるコネクショングループ毎の異常判定期間のネットワーク解析データDB3の一例を示す図である。
【発明を実施するための形態】
【0016】
[第1の実施の形態]
以下、第1の実施の形態におけるネットワーク分析装置について説明する。最初に、第1の実施の形態が適用される通信ネットワークとJITモデリングを使用したネットワークの状態の解析(以下、JIT解析と称する。)を説明し、ネットワーク状態の誤判定を説明した後、第1の実施の形態のネットワーク分析装置について説明する。
【0017】
[通信ネットワーク]
図1は、本実施の形態が適用される通信ネットワークの一例を示す図である。通信ネットワーク1は、企業内の複数の拠点A~Eと、データセンタDC内のサービスシステムSYSと、それらを接続するネットワークNWとを有する。各拠点には1つまたは複数のサブネットが形成される。そして、各拠点のサブネットに属する複数の通信ノード(端末)とサービスシステムSYSとの間にコネクショングループCG_A~CG_Eが確立される。各拠点の通信ノードグループ(端末グループ)は、サービスシステムSYS宛の通信を開始し、通信ノード(端末)が送信したまたは受信するパケットは、ネットワークNWとサービスシステムSYSのアクセスポイントAPを介して、サービスシステム内の送信先で受信される。
【0018】
以下、通信ノードグループとは、企業の組織等に基づいて区分された拠点等の1つまたは複数のサブネットに属する複数の通信ノード(端末)のグループである。また、コネクショングループとは、同じ通信ノードグループを送信元または送信先とする複数のコネクションを有するグループである。概略的には、各拠点の通信ノードグループとデータセンタ内のサービスシステムSYSとの間それぞれに、各コネクショングループCG_A~CG_Eが確立される(張られる)。
【0019】
通信ネットワーク1内には、通信経路の例えばアクセスポイントAPで各コネクションのパケットをキャプチャ(取得)しコネクション毎のネットワーク品質指標を解析するネットワーク解析装置NW_AN_1が設けられる。ネットワーク解析装置NW_AN_1は、キャプチャした複数コネクショングループCG_A~CG_Eのコネクションのパケットを解析し、コネクション毎のパケット数、バイト数、パケットロス数(後にNW_AN_2でロス率に換算)やパケットのRTT(Return Travel Time)やサーバ処理時間等のネットワーク品質や通信スループットの測定値をネットワーク解析データとして算出する。ネットワーク品質や通信スループットは、ネットワークの状態を判定するための指標となる。
【0020】
ネットワーク解析装置NW_AN_1に接続されたネットワーク分析装置NW_AN_2は、通信量やネットワーク品質等のネットワーク解析データを条件抽出・集約・分析し、ネットワークが異常か否かを判定するネットワークの異常判定を行う。ネットワーク分析装置は、ネットワークの異常を判定すると、必要な場合はアラームを発して、通信ネットワーク1の管理者にネットワークの異常を通知する。
【0021】
[ネットワークの異常判定]
図2は、第1のネットワーク異常判定方法を示す図である。図2の水平方向は時間TIMEを、垂直方向はネットワーク品質の一つであるパケットロス率LOSSを示す。第1のネットワーク異常判定方法では、ネットワーク分析装置は、監視対象である複数のコネクショングループの過去の通常時のパケットロス率の測定値LOSS_RGに基づいて異常判定閾値TH1を設定し、複数のコネクショングループの現在のパケットロス率の測定値LOSS_Mの平均値が異常判定閾値TH1を超えたか否かで、ネットワークの異常判定を行う。異常判定閾値TH1は、例えば、過去の通常時のパケットロス率の測定値の最大値の定数倍に設定される。
【0022】
このネットワーク異常判定方法では、時刻T2のように、夜間の通信量が通常時より減少してコネクション数が少なくなり、通常時と同等の現時刻のパケットロス数に対するパケットロス率の測定値LOSS_Mが急上昇し、異常判定閾値TH1を超えて、過剰にアラームを発する場合がある。過剰なアラームを回避するために、異常判定閾値のマージンを多くした異常判定閾値TH2で判定したり、アラーム通知条件を厳しくしたりすると、時刻T1のように、現時刻のパケットロス率の測定値LOSS_Mがネットワーク異常により上昇しても異常判定閾値TH2を超えず、必要なアラームの通知が行われない場合がある。
【0023】
図3は、JITモデルを使用した第2のネットワーク異常判定方法を示す図である。JITモデルを使用したネットワーク異常判定方法(以下、JIT解析と称する。)では、ネットワーク分析装置は、過去のネットワーク解析データに含まれる複数の説明変数(バイト数やパケット数等の通信量)とその目的変数(パケットロス率)からなる学習データの中から、現時刻のネットワーク解析データに含まれる説明変数ベクトル情報に近いサンプルを局所モデルとして抽出し、この局所モデルの説明変数と目的変数の関係から現時刻の説明変数に対するパケットロス率の推測値LOSS_SPを算出する。さらに、ネットワーク分析装置は、算出した推測値LOSS_SPに、学習データから抽出した局所モデルの目的変数のばらつきを示す標準偏差σを係数N倍した正常範囲Nσを加えてパケットロス率の異常判定閾値LOSS_THを設定する。
【0024】
そして、ネットワーク分析装置は、現時刻のパケットロス率の測定値LOSS_Mが、異常判定閾値LOSS_THを超えるか否かを判定し、超える場合にネットワークの異常を検出する。
【0025】
図4は、JIT解析の方法のフローチャートを示す図である。また、図5図6は、JIT解析の方法を説明する図である。
【0026】
まず、ネットワーク分析装置は、過去のネットワーク解析データの集約データである学習データのうち、現時刻のネットワーク解析データの通信量に関する説明変数(例えば、パケット数とバイト数)のベクトルと所定距離内の説明変数ベクトルを有する学習データを抽出し、局所モデルとする(S10)。学習データは、例えば、2つの説明変数(例えば、パケット数とバイト数)と1つの目的変数(例えばパケットロス率)のベクトルである。
【0027】
図5には、学習データの目的変数(パケットロス率)の垂直軸に対し、説明変数であるパケット数とバイト数の二次元ベクトルの空間INF_VCTが示される。最初に、過去の学習データL_DATAを図5のグラフ上に配置する。そして、現時刻のネットワーク解析データ内の説明変数(パケット数とバイト数)のベクトルを、ベクトル空間INF_VCT内のクエリQRYとする。このクエリQRYから所定距離以内の説明変数ベクトルを有する学習データを抽出し、抽出した学習データを局所モデルLCL_Mとする。ここで所定距離とは例えばL2ノルムなどである。
【0028】
次に、図6に示すとおり、ネットワーク分析装置は、局所モデルLCL_M内の複数の学習データL_DATAから局所線形モデルLCL_L_Mを算出し、局所線形モデルに基づいて現時刻の説明変数のベクトルINF_VCTに対する目標変数(パケットロス率)の推測値LOSS_SPを推測する(S11)。
【0029】
更に、ネットワーク分析装置は、局所モデルに含まれる複数の学習データのパケットロス率のばらつきに基く標準偏差σを算出し、標準偏差σに係数Nを乗算して求めた正常範囲Nσをパケットロス率の推測値LOSS_SPに加算して、異常判定閾値LOSS_TH(=LOSS_SP + Nσ)を算出する(S12)。
【0030】
そして、ネットワーク分析装置は、現時刻のパケットロス率の測定値LOSS_Mが、異常判定閾値LOSS_TH(=LOSS_SP + Nσ)を超えていれば(S13のYES)、ネットワークが異常と判定し(S14)、超えていなければ(S13のNO)、ネットワークが正常と判定する(S15)。
【0031】
上記のJIT解析によるネットワークの異常判定は、複数の通信ノードグループそれぞれとサービスシステムSYS間の複数のコネクショングループの各コネクションのパケットデータを解析したネットワーク解析データを時間毎に集約したデータに基づいて行われる。したがって、現時刻の集約データは、複数のコネクショングループの各コネクションのネットワーク解析データを単位時間毎に集約したものであり、例えば、パケット数やバイト数等の説明変数は複数コネクショングループの各コネクションの合計値、パケットロス率やRTT(Return Travel Time)やサーバ処理時間等の目的変数(判定対象値)は各コネクションの平均値となる。
【0032】
この図3の第2のネットワーク異常判定方法によれば、過去の学習データに含まれる通常時の通信量に対するパケットロス率の傾向を反映した推測値LOSS_SP及び正常範囲Nσにより異常判定閾値LOSS_THを設定する。したがって、第1に、図3中の時刻T3のシステム稼働時のように通信量が増加してパケットロス率LOSSが増加するときは、パケットロス率の推測値LOSS_SPが増加し、ネットワークは正常と判定される。
【0033】
第2に、時刻T2のようにシステム稼働時外のように通信量が減少してパケット数が少なくなり現時刻のパケットロス率の測定値LOSS_Mが大きく増加するときは、学習データのパケットロス率のばらつきに基く正常範囲Nσが増加し異常判定閾値LOSS_THも増加し、ネットワークは正常と判定される。通信量の減少によりパケット数が減少すると、一部のコネクションでパケットロス数が上下に変動すると、パケットロス数÷パケット数で求められるパケットロス率のばらつきが大きくなり、正常範囲Nσが大きくなるからである。
【0034】
そして、第3に、時刻T1のように過去の傾向に基くパケットロス率の推測値LOSS_SPが増加していないのに現在のパケットロス率の測定値LOSS_Mが大きく増加する場合は、現在の測定値LOSS_Mが異常判定閾値LOSS_THを超えてネットワーク異常と判定される。
【0035】
このように、ネットワーク分析装置が、複数のコネクショングループのネットワーク解析データを集約したデータでネットワークの異常判定を行い、過去のネットワーク解析データに含まれるいろいろな状態が、JIT解析により局所モデルと局所線形モデルに反映させるので、ネットワークの状況に対応した適切な異常判定を行うことができる。
【0036】
[アラームとアラームに対するフィードバック]
図7は、アラームの発行とアラームに対するフィードバックについて説明する図である。ネットワークの異常判定方法では、ネットワークの異常を判定したとき、ネットワーク分析装置NW_AN_2は、フィードバックFB付きアラームをネットワークシステムの管理者に送信する。このFB付きアラームに応答して、管理者は、ネットワークの異常の有無を確認し、異常ありまたは異常なしのいずれかのフィードバックをネットワーク分析装置に送信する。
【0037】
そして、ネットワーク分析装置は、異常なしのフィードバックを受信した場合、アラームを発行した異常判定が管理者の基準では誤判定であったとみなし、正常範囲Nσの係数値Nを増加する。一方、ネットワーク分析装置は、異常ありのフィードバックを受信した場合、アラームを発行した異常判定が管理者の基準では正しい判定であったとみなし、正常範囲Nσの係数Nの増加は行わない。
【0038】
このように、ネットワークの異常判定のユーザである管理者の判定基準をフィードバックで確認することで、正常範囲Nσの大きさを最適化する。
【0039】
[ネットワーク解析装置、ネットワーク分析装置及び分析プログラム]
次に、ネットワーク解析装置、ネットワーク分析装置とその分析プログラムの処理の概略について説明する。
【0040】
図8は、ネットワーク解析装置とネットワーク分析装置の構成例を示す図である。図8には、ネットワーク解析装置NW_AN_1とネットワーク分析装置NW_AN_2とが示される。ネットワーク解析装置NW_AN_1では、解析エンジン2が、通信ネットワーク1内の複数の通信ノードグループ(例えば複数のコネクショングループCG_A~CG_Eにそれぞれ対応する)とデータセンタ内のサービスシステムSYS間の通信経路上に設定されたアクセスポイントAPでキャプチャされたパケットを収集する。収集するパケットは、例えば、複数のコネクショングループそれぞれの各コネクションで送信される通信ノードグループ(図示せず)とサービスシステムSYS間の通信データなどである。そして、解析エンジン2が、収集したパケットを解析し、パケットの統計をとり、例えば、コネクション毎のネットワーク解析データをデータベースDB1に蓄積する。
【0041】
ネットワーク分析装置NW_AN_2は、データベースDB1内のネットワーク解析データに基づいて、通信ネットワーク1の状態を分析し異常判定を行う。ネットワーク分析装置のプロセッサ(図示せず)は、後述するネットワーク分析プログラムを実行して、学習データ作成部24、ネットワークの異常判定部21、JIT解析部22、アラーム判定部23、フィードバック反映部36を構成する。また、ネットワーク分析装置は、外部の設定ファイル34から設定情報35を読み込み、上記各部21~24、36が設定情報に基づいてそれぞれの処理を実行する。
【0042】
設定ファイル34は、例えば、学習データの抽出条件、異常判定の指標(パケットロス率やサーバ処理時間等)である異常判定対象、異常判定に使用する変数(正常範囲Nσなど)、学習データ作成や異常判定の実行間隔などの設定情報を含む。
【0043】
ネットワーク分析装置は、通信ネットワーク1の管理者の端末4と通信可能に接続され、異常判定部21が生成する異常判定結果32と、アラーム判定部23が生成するアラーム判定結果33を、管理者端末装置4に出力する。さらに、ネットワーク分析装置は、管理者端末装置4からアラームに対応するフィードバックを入力し、フィードバック反映部36が、フィードバックに基づいて設定情報35に含まれる異常判定に使用する変数の1つである正常範囲Nσの係数値Nを調整する。
【0044】
図9は、ネットワーク分析装置の構成例を示す図である。図9には、ネットワーク分析装置NW_AN_2に加えて、通信ネットワーク1と、ネットワーク解析装置NW_AN_1と、管理者端末装置4も示される。通信ネットワーク1とネットワーク解析装置NW_AN_1の構成は、図8と同等である。
【0045】
一方、図9では、ネットワーク分析装置NW_AN_2は、ネットワーク分析サーバなどのコンピュータである。ネットワーク分析装置は、プロセッサ10と、メインメモリ12と、ネットワークインタフェース13と、大容量のストレージである補助記憶装置STとを有する。
【0046】
補助記憶装置STには、異常判定プログラム21と、JIT解析プログラム22と、アラーム判定プログラム23と、学習データ作成プログラム24を有するネットワーク分析プログラム20が記憶される。さらに、補助記憶装置STには、学習データDB2と、異常判定結果データ32と、アラーム判定結果データ33と、設定ファイル34から読み出した設定情報35が記憶される。
【0047】
ネットワーク分析装置のプロセッサ10は、補助記憶装置STから読み出されメインメモリ12に展開されたネットワーク分析プログラム20を実行する。これにより、通信ネットワークの状態を分析し、ネットワークの異常判定を行う。
【0048】
以下、ネットワーク解析装置NW_AN_1とネットワーク分析装置NW_AN_2の処理の概略について説明する。その後、ネットワーク分析での異常の誤判定を説明し、それを解決する本実施の形態のネットワーク分析の処理を説明する。
【0049】
まず、ネットワーク解析装置NW_AN_1は、通信経路上の様々なアクセスポイント等(ルータ、スイッチなどを含む)で、パケットをキャプチャし、キャプチャしたパケットを解析し、ネットワーク解析データDB1をストレージに格納する。
【0050】
ネットワーク解析データは、例えば、レベル4の通信層の解析データであり、時間毎の各コネクションの解析データである。各コネクションの解析データは、送信元及び送信先IPアドレス、プロトコル番号、送信元及び送信先ポート番号、送信元から送信先への及び送信先から送信元へのパケット数、データのバイト数、パケットロス数、RTT(リターントラベルタイム)、サーバ処理時間などを含む。各コネクションのネットワーク解析データに含まれるパケット数、バイト数は通信量に関するデータであり、パケットロス数、RTT、サーバ処理時間はネットワークの異常判定の指標となる判定対象項目である。パケットロス数をパケット数で除算することでパケットロス率が算出される。
【0051】
図10は、ネットワーク分析装置NW_AN_2のネットワーク分析プログラムに含まれる異常判定プログラムのフローチャートを示す図である。図10に示した処理番号S21,S23,S25,S27などは、図8にも示される。
【0052】
ネットワーク分析装置のプロセッサは、ネットワーク分析プログラムを実行して、以下の処理を実行する。すなわち、プロセッサは、学習データ作成のタイミング、例えば1日毎、になると(S20のYES)、過去3週間分のネットワーク解析データから学習データの作成を実行する(S21)。
【0053】
図11は、学習データ作成プログラムの処理のフローチャートを示す図である。また、図25は、学習データ作成例を示す図である。プロセッサは、学習データ作成対象期間(例えば3週間)の時間毎(例えば1分間毎)のコネクション毎のネットワーク解析データを、ネットワーク解析装置のストレージ内のネットワーク解析データDB1から抽出し取得する(S21_1)。
【0054】
図25には、取得した3週間分(2018/05/01~05/21)の時間毎及びコネクション毎のネットワーク解析データD1の例が示される。ネットワーク解析データの内容は、前述したとおりである。
【0055】
次に、プロセッサは、取得した時間毎及びコネクション毎のネットワーク解析データD1から、設定情報35内の様々な抽出条件に基づいてコネクションを抽出する(S21_2)。その結果、図25には、抽出条件-1(プロトコル番号[Prot_No]「6」、送信先IP[dst_IP]「10.20.30.50」に基づいて抽出した時間毎及びコネクション毎のネットワーク解析データD2が示される。この抽出条件は、異常判定対象のネットワークと判定対象の通信プロトコルを定義する。
【0056】
図24は、データ抽出条件設定例と判定対象項目設定例を示す図である。図24には、上記の抽出条件の例が示され、条件-1は、上記の抽出条件-1に対応する。ここで、送信先IPは、図1の通信ネットワーク1内のサービスシステムSYSのアクセスポイントのIPアドレスである。また、プロトコル番号は、IP層の上層のプロトコルの識別番号であり、プロトコル番号「6」はTCPプロトコルである。
【0057】
条件-1は、図1の通信ネットワーク1の例で説明すると、例えば、データセンタDC内のサービスシステムSYS宛のコネクションを抽出する条件である。図1の通信ネットワーク1では、拠点A~Eそれぞれのサブネットに属する通信ノード(端末)が、データセンタDC内のサービスシステムSYSとの間に確立するコネクションは、条件-1の条件で抽出される。
【0058】
条件-2は、プロトコル番号が「6」で、送信元サブネットアドレス「20.30.0.0/16」である。条件-2の例では、例えば、図1の通信ネットワーク1内の拠点のサブネットアドレスを送信元として確立されるコネクションが抽出される。
【0059】
コネクションを抽出する様々な抽出条件の例は、以下のとおりである。
例1)条件-1のような単一の送信先IPアドレスまたはサブネットアドレス
[Prot_No]6, [dst_IP] 10.20.30.50
例2)条件-2のような単一の送信元サブネットアドレスまたはIPアドレス
[Prot_No]6, [src_IP] 20.30.0.0/16
例3)複数の送信先(または送信元)IPアドレスの組み合わせ形式
[Prot_No]6, [dst_IP] 10.20.30.50
[Prot_No]6, [dst_IP] 10.20.30.60
例4)条件-2のような単一の送信先または送信元サブネット指定形式
[Prot_No]6, [src_IP] 20.30.0.0/16
例5)複数の送信先または送信元サブネット指定形式
[Prot_No]6, [src_IP] 20.30.0.0/16
[Prot_No]6, [src_IP] 20.40.0.0/16
[Prot_No]6, [src_IP] 20.50.10.0/24
図24内の判定対象項目については後述する。
【0060】
次に、プロセッサは、抽出した単位時間毎及びコネクション毎のネットワーク解析データD2を、単位時間毎に集約して、学習データDB2を作成する(S21_3)。学習データは、図8に示した学習データDB2としてネットワーク分析装置内のストレージに格納される。
【0061】
図25には、単位時間毎に集約した学習データDB2の例が示される。図25の学習データDB2は、過去3週間の単位時間(1分間)毎の複数のコネクショングループの各コネクションのネットワーク解析データを集約した例が示される。これによれば、コネクション数は複数のコネクショングループの単位時間内のコネクションの合計数であり、パケット数、バイト数、ロス数も複数のコネクショングループの単位時間内の数の合計数であり、ロス率は複数のコネクショングループの単位時間内の全ロス数を全パケット数で除算した値(つまり全コネクションの平均ロス率)であり、RTT、サーバ処理時間は複数のコネクショングループの全コネクションの平均RTT、サーバ時間である。
【0062】
図10に戻り、プロセッサは、ネットワークの異常判定のタイミングになるまで(S22のYES)、上記の学習データ作成処理S21を繰り返す。プロセッサは、ネットワークの異常判定タイミングになると(S22のYES)、現時刻のネットワーク解析データを取得する(S23)。
【0063】
図26は、現時刻のネットワーク解析データの取得例を示す図である。異常判定タイミングである現時刻のネットワーク解析データの取得処理は、図11及び図25で示した学習データ作成の処理と、取得時刻の違い(過去3週間か現時刻かの違い)を除くと、ほぼ同じである。現時刻のネットワーク解析データの取得処理では、プロセッサは、現時刻のネットワーク解析データを、ネットワーク解析装置NW_AN_1のストレージ内のネットワーク解析データから、現時刻(2018/05/22の12:51:00)のコネクション毎のネットワーク解析データD11を取得する。図26に示すとおりである。
【0064】
次に、プロセッサは、取得した現時刻のコネクション毎のネットワーク解析データから、抽出条件(条件-1:プロトコル番号6,送信先IP:10:20:30:50)に基づいて、コネクション毎のネットワーク解析データDB3_1を抽出し、ストレージに格納する。抽出されたネットワーク解析データDB3_1は、図26に示すとおり、複数のコネクショングループの現時刻の全コネクションの解析データを有する。この現時刻の全コネクションの解析データDB3_1について、後述するヒストグラムが生成される。
【0065】
そして、プロセッサは、抽出した複数のコネクショングループの現時刻の全コネクションの解析データを集約して、集約されたネットワーク解析データDB3_2を生成し、ストレージに格納する。図26に示すとおりである。この現時刻の集約されたネットワーク解析データDB3_2の説明変数(パケット数、バイト数)は、JIT解析でクエリの説明変数(パケット数、バイト数)に使用される。
【0066】
図10に戻り、プロセッサは、設定情報35内の1つの判定対象項目を選択する(S24)。図24に、判定対象項目の例が示される。判定対象項目とは、ネットワークの異常判定する指標であり、図24に示した例には、サーバ処理時間、パケットロス率、RTTなどが含まれる。パケットロス率、サーバ処理時間やRTTは、ネットワーク品質の指標である。
【0067】
そこで、プロセッサは、JIT解析を実行する(S25)。JIT解析方法は、図3図5で概略説明した。ここでは、図25に示した過去3週間分の学習データDB2と、図26に示した現時刻のコネクション毎のネットワーク解析データDB3_1及びその集約されたネットワーク解析データ(集約データ)DB3_2に基づいて行われるJIT解析について説明する。
【0068】
図4は、JIT解析のフローチャートを示す図である。また、図27は、過去3週間分の学習データDB2と現時刻の集約されたネットワーク解析データ(集約データ)DB3_2に基づくJIT解析の具体例を示す図である。
【0069】
プロセッサは、JIT解析で、過去の学習データDB2のうち、現時刻のネットワーク解析データの集約データDB3_2の説明変数のベクトルの近傍の説明変数ベクトルを有する学習データL_DATAを抽出し、局所モデルとする(図4のS10)。図27には、図25に示した3週間の学習データDB2と、現時刻のネットワーク解析データの集約データDB3_2と、それらの間に図5と同等のベクトル空間が示される。そして、過去の学習データDB2に含まれる学習データL_DATAが、ベクトル空間内にプロットされている。学習データL_DATAは、3週間の複数のコネクショングループの時間毎且つコネクション毎の解析データを集約したものである。
【0070】
そこで、プロセッサは、現時刻のネットワーク解析データの集約データDB3_2の説明変数であるパケット数とバイト数を要素とするベクトルをクエリとし、クエリから一定距離内のベクトルを有する学習データL_DATAを抽出し、局所モデルLCL_Mとする(図4のS10)。
【0071】
上記のとおり、過去の学習モデルを複数のコネクショングループのコネクション毎のネットワーク解析データの集約データとしたことに対応して、現時刻の複数のコネクショングループのコネクション毎のネットワーク解析データの集約データDB3_2を、局所モデルを抽出するためのクエリに利用する。
【0072】
その後、図4に示したとおり、プロセッサは、局所モデルLCL_Mに含まれる複数の学習データL_DATAのベクトル(パケット数、バイト数、パケットロス率)に基づいて、局所線形モデルを算出し、局所線形モデルに基づいて現時刻の集約データのベクトルの説明変数(パケット数、バイト数)に対する目的変数(パケットロス率)を推測する(図4のS11)。
【0073】
そして、プロセッサは、パケットロス率の推測値LOSS_SPに、局所モデルの学習データのパケットロス率のばらつきを示す標準偏差σに係数Nを乗算した正常範囲Nσを加算した異常判定閾値LOSS_THを算出する(S12)。さらに、プロセッサは、現時刻の集計データのパケットロス率の測定値が、異常判定閾値LOSS_THを超えるか否か判定する(S13)。超えている場合は現時刻のネットワークは異常状態と判定し(S14)、以下の場合は正常状態と判定する(S15)。現時刻の集計データのパケットロス率の測定値は、図26の集約したネットワーク解析データDB3_2内のパケットロス率の値であり、条件抽出したネットワーク解析データDB3_1内の複数のコネクショングループの複数のコネクションのパケットロス率の平均値である。
【0074】
図10に戻り、プロセッサは、JIT解析で異常が検出されると(S26のYES)、アラーム判定S27を行い、フィードバック対象のアラームが発せられると(S28のYES)、管理者からのフィードバックがアラーム不要の場合(S29のYES)、プロセッサは、係数値Nを大きくして正常範囲Nσを大きく調整する(S30)。フィードバック対象のアラームが発せられない(S28のNO)、またはアラーム不要のフィードバックがない(S29のNO)場合、プロセッサは、正常範囲の調整を行わない。プロセッサは、図24の全判定対象項目の異常判定が終了するまで(S31のYES)、次の判定対象項目を選択して同様の処理を行う。
【0075】
図12は、アラーム判定プログラムの処理のフローチャートを示す図である。プロセッサは、アラーム判定プログラムを実行し、異常判定の頻度等がアラーム条件に合致している場合(S27_1のYES)、フィードバック対象のアラームを通知する(S27_2)。合致していない場合(S27_1のNO)、フィードバック対象のアラームの通知を行わない。
【0076】
[JIT解析によるネットワークの異常判定及び誤判定の例]
図13は、状態別に生成したコネクション毎のロス率の分布(ヒストグラム)を示す図である。また、図14は、JIT解析によるネットワークの誤判定の場合のコネクション毎のロス率の分布(ヒストグラム)例を示す図である。
【0077】
図13において、状態1は、複数のコネクショングループCG_A~CG_Eの通信量の割合が通常状態の割合であり、それぞれの通信量も通常状態の量の例である。状態1に示したコネクショングループCG_A~CG_Eに対応して示した矢印の太さは、通信量を表している。状態2は、複数のコネクショングループCG_A~CG_Eの通信量の割合が通常状態の割合であるが、それぞれの通信量が増加している点で、状態1と異なる。
【0078】
通信ネットワーク1の右側には、状態1、状態2における現時刻のネットワーク解析データDB3_1内の全コネクションのパケットロス率の分布DSTを示すヒストグラムHSTが示される。ヒストグラムの横軸のビンはパケットロス率に対応し、各ビンの高さはコネクション数に対応する。
【0079】
また、ヒストグラムHST内には、JIT解析で算出した現時刻のパケットロス率の推測値LOSS_SPと、異常判定閾値LOSS_THと、現時刻の集約されたネットワーク解析データDB3_2に含まれる平均パケットロス率の測定値(全コネクションの平均パケットロス率)LOSS_AVとが示される。
【0080】
図4に示したJIT解析でのネットワークの異常判定処理S13では、プロセッサは、現時刻の平均パケットロス率の測定値LOSS_AVが、局所モデルの学習データから算出した異常判定閾値LOSS_THを超えるか否か判定する。複数のコネクショングループCG_A~CG_Eのコネクションの解析データを集約して判定することで、複数のコネクショングループをまとめて異常判定できる。
【0081】
状態1では、現時刻の複数のコネクショングループの平均パケットロス率の測定値LOSS_AVが異常判定閾値LOSS_THより小さいので、プロセッサは、正常と判定する。またヒストグラムHSTでは、コネクショングループCG_A~CG_Dが広帯域でパケットロス率が低く、多くのコネクションはパケットロス率の低い領域に分布し、狭帯域のコネクショングループCG_Eのパケットロス率が高く、コネクショングループCG_Eの少数のコネクションがパケットロス率の高い領域に分布している。
【0082】
一方、状態2では、全コネクショングループの通信量が増大し、現時刻の平均パケットロス率の測定値LOSS_AVが状態1より高くなっている。一般に、通信量が増加するとパケットロス率は上昇するからである。しかし、JIT解析では、目的変数(パケットロス率)の推測値LOSS_SPとばらつきに基づく正常範囲Nσを加算した異常判定閾値LOSS_THと、測定値(平均値)LOSS_AVとを比較して異常判定する。状態2では複数のコネクショングループの通信量が増大しているので、推測値LOSS_SPも高くなり、異常判定閾値LOSS_THも高くなる。その結果、状態2でも、現時刻の平均パケットロス率の測定値LOSS_AVが異常判定閾値LOSS_THより小さく、正常と判定される。
【0083】
また、状態2でのヒストグラムHSTでは、全コネクショングループの通信量が増加したため、現時刻の分布DSTに示されるとおり低いパケットロス率の領域と高いパケット率の領域の両方でコネクション数が増加している。
【0084】
図14に示した、状態3では、状態1と比較すると、コネクショングループCG_A~CG_Dの通信量が同等または減少し、狭帯域のコネクショングループCG_Eの通信量が増加している。つまり、コネクショングループCG_A~CG_Eそれぞれの通信量の比率が通常時と異なっている。それに伴い、状態3では、局所モデルの学習データに基づくパケットロス率の推定値LOSS_SPは、状態1と同等または微増となる。状態3の発生頻度が少なく、状態3を反映する学習データはほとんどないことが理由である。
【0085】
一方で、コネクショングループ間の通信量の比率が通常時と異なり、現時刻の分布DSTに示されるとおり、コネクショングループCG_A~CG_Dによる低いパケットロス率のコネクション数の割合が減少し、コネクショングループCG_Eの高いパケットロス率のコネクション数の割合が増加したことに起因して、現時刻の集約データの平均パケットロス率の測定値LOSS_AVが大きく上昇する。その結果、状態3では、LOSS_AV > LOSS_THとなり、プロセッサは、ネットワークが異常状態と誤判定する。
【0086】
上記のとおり、状態3では、狭帯域のコネクショングループCG_Eは、通信量が増えてパケットロス数が増加しているが、パケットロス率は過剰に高くなく異常状態ではない。しかし、他のコネクショングループCG_A~CG_Dの通信量が少なく、コネクショングループCG_Eの高いパケットロス率が顕在化され、現時刻の集約データの平均パケットロス率の測定値LOSS_AVが大きく上昇している。その結果、異常状態と誤判定されている。このような誤判定に基づく異常判定に基づいてアラームを発行するのは、通信ネットワーク1の運用管理上好ましくない。また、誤判定によりフィードバック付きアラームを発行した場合、フィードバックで異常なしとなり正常範囲Nσの係数Nがより大きく調整される。このような誤判定に基づく係数Nの調整は、その後の異常判定において好ましくない。
【0087】
なお、全コネクショングループCG_A~CG_Eで通常時よりパケットロス率が上昇したり、一部のコネクショングループでパケットロス率が通常時より上昇した場合は、JIT解析で異常を検出できる。
【0088】
[本実施の形態におけるネットワーク分析処理の特徴]
図15は、本実施の形態におけるネットワーク分析プログラムに含まれるアラーム判定プログラムのフローチャートを示す図である。図15のフローチャートでは、図12のアラーム判定のフローチャートの処理S27_1とS27_2に加えて、誤判定を防止するための処理S27_3とS27_4を有する。
【0089】
図15において、プロセッサは、処理S27_3で、異常判定期間において複数のコネクショングループ内にネットワーク品質が悪いコネクショングループがあるか否かの判定を行う。プロセッサは、判定がYESの場合に、処理27_4で、ネットワーク品質が通常の(悪くない)コネクショングループと悪いコネクショングループ(個別解析対象コネクショングループと称する。)とを別々に(個別に)JIT解析し(S27_4_1)、両コネクショングループが共に正常と判定された場合(S27_4_2のYES)、フィードバック対象のアラームを通知しない処理を行う(S27_4_3)。そして、ネットワーク品質の悪い個別解析対象コネクショングループが存在しない場合(S27_3のNO)と、両コネクショングループのいずれかがJIT解析で異常と判定された場合(S27_4_2のNO)、プロセッサは、フィードバック対象のアラーム通知を行う(S27_2)。フィードバック対象のアラームか否かは、アラーム種別に基づいて区別される。
【0090】
図16は、フィードバック対象のアラーム通知について説明する図表である。図14に示した状態3の通信ネットワークでは、狭帯域の個別解析対象コネクショングループCG_Eだけパケットロス率が悪化している。このような状態3において、図15に示したアラーム判定を実行すると、プロセッサは、コネクショングループCG_Eをネットワーク品質が悪い個別解析対象コネクショングループとして検出し、コネクショングループCG_A~CG_Dはネットワーク品質は通常レベルの個別解析対象ではないコネクショングループとして検出する。その結果、プロセッサは、個別解析対象コネクショングループCG_Eとそれを除くコネクショングループCG_A~CG_Dの2つのコネクショングループを別々に(個別に)JIT解析する。
【0091】
図16には、全コネクショングループをまとめて異常判定したときに異常と判定された場合に2つのコネクショングループを別々に(個別に)JIT解析したときの、判定結果の組み合わせが示される。図表の左端のコラムは、全コネクショングループをまとめて異常判定したときの結果を示し、全て異常となっている。それに対して、左から2番目と3番目のコラムは、個別解析対象コネクショングループCG_Eを除く残りのコネクショングループCG_A~CG_Dと個別解析対象コネクショングループCG_EそれぞれをJIT解析したときの判定結果を示す。そして、左から4番目のコラムはそれぞれの最終判断を、5番目のコラムはアラーム通知の有無もしくはアラーム種別を、右端のコラムはフィードバックに対する係数Nの調整内容の例を、それぞれ示す。
【0092】
2つのコネクショングループを別々に(個別に)JIT解析して異常判定し、いずれかのコネクショングループで異常と判定された上から3つの行では、いずれも最終判断が異常となり、アラーム通知を行うか、またはアラーム種別1~3(いずれもフィードバック対象のアラーム)を通知する。そして、フィードバックが「アラーム不要」の場合に係数Nを大きくする調整を行う。
【0093】
一方、両コネクショングループのJIT解析で両コネクショングループが通常と判定された最終行では、最終判断は異常ではないとなり、フィードバック対象のアラーム通知を行わないか、またはアラーム種別4を通知する。アラーム種別4は、フィードバック対象のアラームでないため、係数Nの調整は行われないことになる。
【0094】
図17は、本実施の形態におけるネットワーク分析処理のアラーム判定の詳細フローチャートを示す図である。図17のフローチャートは、図15の処理S27_3とS27_4を詳細に示す。また、図18は、図17のアラーム判定の詳細フローチャートの処理を示す図である。
【0095】
まず、複数のコネクショングループ内にネットワーク品質が悪いコネクショングループがあるか否かの判定処理S27_3で、プロセッサは、異常判定期間のコネクション毎のネットワーク解析データのパケットロス率の分布に基づいて、ネットワーク品質が悪い個別解析対象コネクショングループがあるか否か判定する。
【0096】
そのために、プロセッサは、ネットワークが異常と判定された期間のコネクション毎のネットワーク解析データを、ネットワーク解析装置のネットワーク解析データDB1から取得する(S40)。具体的には、図26と同様に、プロセッサは、異常判定期間のコネクション毎のネットワーク解析データD11をDB1から取得し、条件抽出で判定対象のコネクションに絞り、単位時間毎及びコネクション毎のネットワーク解析データDB3_1を取得する。
【0097】
図18には、図3と同等のネットワークのパケットロス率の1日の推移を示すグラフが示される。これによれば、時刻5月22日12:50~12:51に、単位時間毎に集約したコネクションのパケットロス率の平均値LOSS_AVが異常判定閾値LOSS_THを超えてネットワークの異常が判定されている。つまり、5月22日12:50~12:51が、異常判定期間となる。
【0098】
次に、プロセッサは、異常判定期間のコネクションのネットワーク解析データについて、パケットロス率の階級(ビン)に対しコネクション数×パケットロス率の測定値(SS×LOSS)を度数とする分布DST(ヒストグラム)を後述するカーネル関数により推定する(S41)。そして、プロセッサは、推定した分布DSTに、JIT解析で推測した異常判定閾値LOSS_THより大きいパケットロス率に所定の高さの分布の山が存在するか否か判定する(S42)。存在すれば、プロセッサは、その分布の山の主要なコネクションを有するコネクショングループがネットワーク品質が悪い個別解析対象コネクショングループと判定する。図18には、パケットロス率の分布DSTの例が示される。
【0099】
図19は、上記の処理S41とS42について更に説明する図である。図19には、処理S41で取得した異常判定期間のコネクション毎のネットワーク解析データDB3_1が示される。異常判定期間は、前述のとおり5月22日12:50~12:51である。そして、処理S42で生成した、ネットワーク解析データDB3_1の全コネクションの、度数がコネクション数SSの分布と、度数がコネクション数×ロス率測定値(SS×LOSS)の分布が、ヒストグラムHSTに示される。両分布SS, SS×LOSSは、共に、カーネル関数に基づいて生成したものである。具体的には後で詳述する。
【0100】
さらに、ヒストグラムHSTには、異常判定閾値LOSS_THと、コネクション数×パケットロス率測定値SS×LOSSの谷VALと2つの山MT1,MT2が示される。低いパケットロス率の山MT1は第1のコネクショングループCG_A~CG_Dのコネクションの山であり、高いパケットロス率の山MT2は第2のコネクショングループCG_Eのコネクションの山に対応する。
【0101】
上記のSS×LOSSの山MT2は、異常判定閾値LOSS_THより高いパケットロス率に位置する山である。言い換えると、SS×LOSSの山MT2は、SS×LOSSの谷VALより高いパケットロス率に位置する山でもある。そこで、プロセッサは、異常判定閾値LOSS_TH(または谷VAL)より高いパケットロス率に位置する分布の山MT2がヒストグラムHST内に存在するか否か判定する(S42)。
【0102】
図18図19に示すとおり、プロセッサは、SS×LOSSのヒストグラムHSTに基づいて、LOSS_THより高いパケットロス率の位置に分布の山MT2を検出する(S42)これにより、プロセッサは、ネットワーク品質が悪い個別解析対象コネクショングループが存在していることを検出する(図17のS27_3)。
【0103】
図17に戻り、ネットワーク品質が通常の(悪くない)コネクショングループと悪い個別解析対象コネクショングループとを別々にJIT解析する処理27_4では、プロセッサは、分布の山MT2に含まれるコネクションのコネクショングループを検出し、そのネットワーク品質の悪い個別解析対象コネクショングループCG_Eをそれ以外のコネクショングループCG_A~CG_Dから分離する(S43)。
【0104】
図19に示すとおり、プロセッサは、SS×LOSSの谷VALのパケットロス率4.2%より大きい分布の山MT2に含まれるコネクションの送信元IPアドレス[src_IP]に基づいて、分布の山MT2に含まれる主要なコネクションのコネクショングループCG_Eを検出する。
【0105】
[分布の山の検出処理S42]
図20図21図22は、分布の山の検出処理S42を説明する図である。図20には、分布の山が検出されない場合S42:NOと、分布の山が検出される場合S42:YESのヒストグラムの例が示される。いずれのヒストグラムも、横軸の階級(ビン)はパケットロス率LOSSで、縦軸の度数はコネクション数SSまたはコネクション数×ロス率(SS×LOSS)である。
【0106】
ヒストグラムの度数をコネクション数SS(実線)にすると、分布の山が検出される場合S42:YESにおける分布の山MT2は、山の高さが低く検出が困難である。そこで、本実施の形態では、ヒストグラムの度数をコネクション数×ロス率(SS×LOSS)とする。つまり、コネクション数SSにロス率LOSSの重みを乗じた値を度数とする分布(破線)に基づいて、分布の山MT2を検出する。コネクション数SSにパケットロス率LOSSの重みを乗ずることで、特にパケットロス率が高い領域の分布の山MT2を顕在化させることができる。
【0107】
図21には、左側に度数をコネクション数SSとしたヒストグラムが示される。そして、右側に、コネクション数SSが小さい領域のヒストグラムが拡大して示される。プロセッサが扱うヒストグラムは、右側に示した各ビンにコネクション数SSをプロットした折れ線グラフになる。これによれば、折れ線グラフは不連続な山を示すので、プロセッサは、この折れ線グラフに基づくと、高いロス率の領域に分布の山が存在するか否かを検出することは容易ではない。
【0108】
そこで、本実施の形態では、図22に示したように、コネクション数SSに代えてコネクション数SSのカーネル密度推定KDEによる分布をヒストグラムの横軸(ロス率)上にプロットし、KDEの合計値f(x)=ΣKDEを求める。このf(x)の分布は、コネクション数SSのなめらかな分布である。更に、カーネル密度推定KDEにロス率LOSSを乗じて、LOSS×KDEの合計値LOSS×f(x)=Σ(LOSS×KDE)を求める。このLOSS×f(x)の分布がSS×LOSSのなめらかな分布になる。
【0109】
本実施の形態では、プロセッサは、コネクション数SSにロス率LOSSを乗じたヒストグラムの分布に代えて、コネクション数SSのカーネル密度推定KDEにロス率LOSSを乗じたLOSS×KDEの合計値LOSS×f(x)=Σ(LOSS×KDE)の分布に基づいて、大きいロス率の分布の山が存在するか否かの判定S42を行う。これにより、プロセッサは、演算で大きいロス率の分布の山を比較的容易に検出できる。
【0110】
図17に戻り、プロセッサは、検出した大きいロス率の分布の山MT2に含まれるコネクションを高い割合で有する個別解析対象コネクショングループCG_Eを検出し、他のコネクショングループCG_A~CG_Dから分離する(S43)。そして、プロセッサは、JIT解析を両グループそれぞれについて実行する。
【0111】
JIT解析では、プロセッサは、まず、異常判定期間のJIT解析に必要な学習データ作成対象期間(異常判定期間より前の3週間)のネットワーク解析データD1をネットワーク解析装置のデータDB1から取得する(S44)。更に、プロセッサは、取得したネットワーク解析データD1から、分離したコネクショングループ毎に学習データDB2を作成する(S45)。処理S44とS45は、図11に示したデータ作成の処理S21_1~S21_3を、分離したコネクショングループ毎に行うことと同じである。そして、プロセッサは、分離したコネクショングループそれぞれについて、JIT解析を行う(S46)。JIT解析は、学習データDB2と、処理S40で取得した異常判定期間のコネクション毎のネットワーク解析データDB3_1の集約データDB3_2とを使用して、図4に示した処理により行われる。
【0112】
図23は、個別解析対象コネクショングループCG_Eに対するJIT解析を示す図である。図18で全コネクショングループをまとめてJIT解析したときに異常と判定された期間5月22日12:50~12:51で、図23の個別解析対象コネクショングループCG_Eに対するJIT解析では、LOSS_AV<LOSS_THにより通常と判定されている。図23に示したヒストグラムHSTには、狭帯域の個別解析対象コネクショングループCG_Eの異常判定期間のコネクションデータにより、パケットロス率が高いコネクションが分布の山MT2を形成する。そのため、時間毎のネットワーク解析データの集約データDB3_2のパケットロス率の平均値LOSS_AVは分布の山MT2付近になる。一方で、個別解析対象コネクショングループCG_Eではその学習データのコネクションのパケットロス率は高い傾向にあることから、局所線形モデルによるパケットロス率の推測値LOSS_SPが高くなり、異常判定閾値LOSS_THも高くなる。その結果、コネクショングループCG_EのJIT解析結果は、異常なしとなる。
【0113】
[ネットワーク分析の具体例]
図28は、処理S44,S45におけるコネクショングループ毎の学習データDB2の一例を示す図である。パターン1は、コネクショングループCG_A~CG_Dの3週間分のネットワーク解析データD2と、それを単位時間で集約した学習データDB2を示す。ネットワーク解析データD2は、条件抽出済みのデータである。一方、パターン2は、個別解析対象コネクショングループCG_Eの3週間分のネットワーク解析データD2と、それを単位時間で集約した学習データDB2を示す。
【0114】
パターン1の送信元IPは、コネクショングループCG_A~CG_Dに含まれるIPアドレス10.20.30.50, 10.20.30.70になっている。一方、パターン2の送信元IPは、個別解析対象コネクショングループCG_Eに含まれるIPアドレス10.20.30.40~10.20.30.45になっている。また、パターン1の学習データDB2のロス率は0.04と低く、一方、パターン2の学習データDB2のロス率は2.68と高い。
【0115】
パターン1,2の学習データは、2つのコネクショングループそれぞれのJIT解析に使用される。
【0116】
図29は、処理S40におけるコネクショングループ毎の異常判定期間のネットワーク解析データDB3の一例を示す図である。パターン1は、コネクショングループCG_A~CG_Dの異常判定期間のネットワーク解析データDB3_1と、それを単位時間で集約した集約データ(ネットワーク解析データ)DB3_2を示す。ネットワーク解析データDB3_1は、条件抽出済みのデータである。一方、パターン2は、個別解析対象コネクショングループCG_Eの異常判定期間のネットワーク解析データDB3_1と、それを単位時間で集約した集約データ(ネットワーク解析データ)DB3_2を示す。ネットワーク解析データDB3_1も、条件抽出済みのデータである。パターン1,2の通信元IPとパケットロス率は、図28と同様である。
【0117】
図29のパターン1,2の集約データ(ネットワーク解析データ)DB3_2は、2つのコネクショングループそれぞれのJIT解析に使用される。
【0118】
以上のとおり、本実施の形態のネットワーク分析装置によれば、複数のコネクショングループをまとめて異常判定を行う場合、異常要因となったコネクショングループの存在を判定し、存在する場合に異常要因の個別解析対象コネクショングループCG_Eとそれを除いたコネクショングループCG_A~CG_Dとを別々に(個別に)JIT解析する。これにより、複数のコネクショングループをまとめて判定したときの異常判定が誤判定だったか否かを確認することができる。
【0119】
また、実施の形態では、ネットワーク解析装置がコネクションのネットワーク解析データDB1を生成した。しかし、それに限定されず、セッションのネットワーク解析データでもよい。
【符号の説明】
【0120】
CG_A~CG_E:複数のコネクショングループ
CG_E:特定のコネクショングループ
1:通信ネットワーク
20:ネットワーク分析プログラム
21:異常判定プログラム
22:JIT解析プログラム
23:アラーム判定プログラム
24:学習データ作成プログラム
DB1:ネットワーク解析データ
DB2:学習データ
DB3_1:ネットワーク解析データ
DB3_2:ネットワーク解析データの集約データ
LOSS_SP:パケットロス率の推定値
LOSS_TH:異常判定閾値
MT2:高いロス率の分布の山
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29