説明

ネットワーク異常検出装置およびネットワーク異常検出方法

【課題】ネットワークの障害の有無を判定し、障害中の異常状態遷移を検出する。
【解決手段】ネットワーク異常検出装置100は、図1(c)に示すように、障害および異常状態の遷移の有無を判定するために用いる基準となる基準ベクトルRおよび一時基準ベクトルTを備えている。現時点で第2のベクトルBが得られたとき、基準ベクトルRと第2のベクトルBとの間の角度差RBを異常スコアとし、その異常スコアが閾値より大きい場合、異常(障害)有りと判定する。なお、一時基準ベクトルTは、既に異常(障害)ありと判定された第1のベクトルA(図1(b)参照)と同じものである。そこで、第2のベクトルBと一時基準ベクトルTとの間の角度差TBを異常スコアとし、その異常スコアが閾値より大きい場合、第1のベクトルAと第2のベクトルBとは異なる異常状態を表している(異常状態が遷移している)と判定することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークに発生する異常を検出する技術に関する。
【背景技術】
【0002】
通信事業者は、ネットワークサービスを安定して提供するために、ネットワークの装置(ノード)において障害の発生を検知できるようにしている。障害検出の方法としては、大きく分けて、2つの方法A,Bが用いられている。
方法Aは、SyslogやSNMP Trap(Simple Network Management Protocol Trap)等を用いて、ネットワークの装置から自発的に送信される警報を利用するものである。方法Aでは、装置内の自装置監視プログラムが温度の上昇やリンク断といった異常を検出したときにのみ警報が発出される。したがって、方法Aは、トラフィックが徐々に減少する事象等、自装置監視プログラムに設定されていない異常を検出することはできない。
方法Bは、Ping(Packet Internet Grouper)やSNMP Request等を用いて、装置に対して問い合わせて得た情報を解析して、障害を検出するものである。方法Bでは、装置に対して問い合わせて得たCPU(Central Processing Unit)温度やトラフィック情報等の種々の情報を収集可能であるが、収集した情報を別途分析することで正常/異常を判定することになるため、分析スキルが必要とされる。
【0003】
例えば、正常時の挙動に近い現象は、方法Aでは警報が発出されず、また、方法Bでも障害として検出することが難しい。その一例について、図7(a)(b)を用いて説明する。図7(a)(b)は、ルータA,B,Cが直列に接続されているケースを表している。図7(a)は、ルータA−B間のトラフィック流量とルータB−C間のトラフィック流量とが等しい場合を表している。この図7(a)の場合には、方法A,B双方において正常と判定されるため、方法Aでは警報が発出されることはなく、また、方法Bにおいても障害と判定されない。しかし、図7(b)に示す例は、ルータBにおいて経年劣化等の原因により障害が発生し、ルータA−B間のトラフィック流量とルータB−C間のトラフィック流量とが等しくなくなる現象が発生している場合である。図7(b)の場合において、ルータB−C間のトラフィック流量が徐々に減少していったとしても、トラフィックが完全に遮断されていないため、方法Aでは警報は発出されない。また、方法Bによって、各ルータからトラフィック量に関する情報を収集し、その収集した情報を分析したとしても、トラフィック量はネットワークの利用状況に依存して自然と減少するケース、または、災害やイベント等により突発的に増加するケースが発生するため、トラフィック量の増減傾向のみから障害によるものか否か判定することは難しい。
【0004】
下記非特許文献1,2は、方法Bによる障害検出に関する技術を開示している。具体的には、図8に示すように、装置A,B,Cが直列に接続されているケースにおいて、行列の行を送信側の装置、列を受信側の装置として、行列の要素にはトラフィック流量を用いる。行列は、所定の周期で取得された情報に基づいて生成される。また、その行列の固有ベクトルは、所定の周期で算出される。行列の固有ベクトルは、行列の全要素が定数倍された場合には変化しないが、行列の一部の要素の値が変化した場合には変化する。したがって、ネットワークの一部で障害等によるトラフィック変動が発生する場合に、固有ベクトルが変動することになり、障害を検出することができる。非特許文献1,2に記載の技術では、障害が発生していないときの過去K個の固有ベクトルの移動平均を、基準ベクトル(Vec-Ref)として定義する。基準ベクトル(Vec-Ref)は、現時点の固有ベクトル(現在ベクトル;Vec-Now)が異常か否かの判定基準として用いられる。そして、非特許文献1,2に記載の技術では、現在ベクトル(Vec-Now)と基準ベクトル(Vec-Ref)との間の角度差を異常スコアとして定義し、異常スコアが閾値を超える場合、ネットワークに障害を検出したと判定する。
【0005】
また、下記非特許文献1,2は、基準ベクトル(Vec-Ref)を固定せずに、加入者の増減やサービスの変化等に伴うトラフィック流量の変化や装置の負荷の変化を考慮して、新たに算出される現在ベクトルを学習に用いつつ最新の基準ベクトル(Vec-Ref)を算出する方法を開示している。その学習の例としては、過去の一定期間の基準ベクトルの移動平均をとるケースが記載されている。また、非特許文献1,2は、閾値も固定せずに、過去の一定期間の角度差について出現頻度分布を求め、所定の確率(例えば、5%)となるときを閾値として採用している。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】Ide, T. and Kashima, H. “Eigenspace-based anomaly detection in computer systems” In Proceedings of the 10th ACM SIGKDD international conference on knowledge discovery and data mining, ACM Press, New York, NY, USA, p.440-449, 2004
【非特許文献2】井手剛,鹿島久嗣, “固有空間におけるコンピュータシステムの障害検知", 第18回人工知能学会全国大会予稿集, 3F3-05, 2004
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、非特許文献1,2では、基準ベクトル(Vec-Ref)しか定義していないために、ネットワークの障害を検出することはできても、その障害において異なる異常状態を区別することができない。例えば、異常状態A(固有ベクトルA)と、その異常状態Aとは異なる異常状態B(固有ベクトルB)とが存在し、かつ異常スコアが同じ場合、ネットワークの状態が異常状態A(固有ベクトルA)から異常状態B(固有ベクトルB)に遷移したとしても、異常スコアが変化しないため、異常状態の遷移を検出することができない。
【0008】
そこで、本発明は、障害中の異常状態遷移を検出することを課題とする。
【課題を解決するための手段】
【0009】
本発明は、ネットワーク異常検出装置が、正常な状態のときのネットワーク内の装置間の状態を示す行列から算出される固有ベクトルを基準ベクトルとして記憶し、異常な状態のときのネットワーク内の装置間の状態を示す行列から算出された固有ベクトルを一時基準ベクトルとして複数の前記一時基準ベクトルを記憶している記憶部と、現時点のネットワーク内の装置間の状態を示す行列から固有ベクトルを算出し、当該算出した固有ベクトルを現在ベクトルとする固有ベクトル算出部と、前記基準ベクトルと前記現在ベクトルとの角度差を算出して当該角度差を第1の異常スコアとして求め、前記一時基準ベクトルと前記現在ベクトルとの角度差を算出して当該角度差を第2の異常スコアとして求め、前記第1の異常スコアが閾値より大きいか否かを判定し、当該第1の異常スコアが前記閾値以下の場合にネットワークを正常と判定し、当該第1の異常スコアが前記閾値より大きい場合に異常と判定し、異常と判定した場合に、前記第2の異常スコアの中で前記第2の異常スコアが前記閾値以下でかつ最小となる一時基準ベクトルを抽出する抽出処理を実行し、当該抽出処理によって抽出した今回の一時基準ベクトルと今回の直前に抽出された一時基準ベクトルとが異なるか否かを判定し、前記今回の一時基準ベクトルと前記今回の直前に抽出された一時基準ベクトルとが異なる場合、異常状態が遷移したと判定する状態判定部とを備えることを特徴とする。
【0010】
また、本発明は、ネットワーク異常検出装置が、正常な状態のときのネットワーク内の装置間の状態を示す行列から算出される固有ベクトルを基準ベクトルとして記憶し、異常な状態のときのネットワーク内の装置間の状態を示す行列から算出された固有ベクトルを一時基準ベクトルとして1つ記憶している記憶部と、現時点のネットワーク内の装置間の状態を示す行列から固有ベクトルを算出し、当該算出した固有ベクトルを現在ベクトルとする固有ベクトル算出部と、前記基準ベクトルと前記現在ベクトルとの角度差を算出して当該角度差を第1の異常スコアとして求め、前記一時基準ベクトルと前記現在ベクトルとの角度差を算出して当該角度差を第2の異常スコアとして求め、前記第1の異常スコアが閾値より大きいか否かを判定し、当該第1の異常スコアが前記閾値以下の場合にネットワークを正常と判定し、当該第1の異常スコアが前記閾値より大きい場合に異常と判定し、異常と判定した場合に、前記第2の異常スコアが前記閾値より大きいか否かを判定し、前記第2の異常スコアが前記閾値より大きい場合、異常状態が遷移したと判定する状態判定部とを備えることを特徴とする。
【0011】
また、本発明は、ネットワーク内の異常を検出するネットワーク異常検出装置のネットワーク異常検出方法であって、前記ネットワーク異常検出装置が、正常な状態のときのネットワーク内の装置間の状態を示す行列から算出される固有ベクトルを基準ベクトルとして記憶し、異常な状態のときのネットワーク内の装置間の状態を示す行列から算出された固有ベクトルを一時基準ベクトルとして複数の前記一時基準ベクトルを記憶している記憶部を備え、現時点のネットワーク内の装置間の状態を示す行列から固有ベクトルを算出し、当該算出した固有ベクトルを現在ベクトルとする固有ベクトル算出ステップと、前記基準ベクトルと前記現在ベクトルとの角度差を算出して当該角度差を第1の異常スコアとして求め、前記一時基準ベクトルと前記現在ベクトルとの角度差を算出して当該角度差を第2の異常スコアとして求め、前記第1の異常スコアが閾値より大きいか否かを判定し、当該第1の異常スコアが前記閾値以下の場合にネットワークを正常と判定し、当該第1の異常スコアが前記閾値より大きい場合に異常と判定し、異常と判定した場合に、前記第2の異常スコアの中で前記第2の異常スコアが前記閾値以下でかつ最小となる一時基準ベクトルを抽出する処理を実行し、当該抽出する処理によって抽出した今回の一時基準ベクトルと今回の直前に抽出された一時基準ベクトルとが異なるか否かを判定し、前記今回の一時基準ベクトルと前記今回の直前に抽出された一時基準ベクトルとが異なる場合、異常状態が遷移したと判定する状態判定ステップとを実行することを特徴とする。
【0012】
このような構成によれば、ネットワーク異常検出装置は、基準ベクトルと、その基準ベクトルとは異なる一時基準ベクトルとを備えている。そして、ネットワーク異常検出装置は、現在ベクトルと基準ベクトルとの角度差(第1の異常スコア)を算出し、算出した第1の異常スコアを閾値と比較して、第1の異常スコアが閾値より大きい場合には、異常(障害)ありと判定する。さらに、ネットワーク異常検出装置は、異常(障害)ありと判定した場合、現在ベクトルと一時基準ベクトルとの角度差(第2の異常スコア)と閾値との比較結果に基づいて異常状態遷移を検出することができる。
【0013】
また、本発明は、前記ネットワーク異常検出装置が、前記第1および前記第2の異常スコアすべてが前記閾値より大きい場合、前記現在ベクトルを新しい一時基準ベクトルとして前記記憶部に追加して記憶する変更部をさらに備えることを特徴とする。
【0014】
このような構成によれば、ネットワーク異常検出装置は、第1および第2の異常スコアすべてが閾値より大きい場合の現在ベクトルを新しい一時基準ベクトルとすることによって、それ以前には識別できなかった新たな異常状態への遷移を検出することができる。
【0015】
また、本発明は、前記記憶部が、前記一時基準ベクトルと前記第2の異常スコアが前記閾値以下となって継続している時間を示す継続時間とを関連付けて記憶しており、前記変更部が、前記継続時間と閾値である第1の所定時間とを比較し、前記継続時間が前記第1の所定時間以上となっている前記一時基準ベクトルを前記基準ベクトルに変更し、当該基準ベクトルを前記一時基準ベクトルに変更することを特徴とする。
【0016】
このような構成によれば、ネットワーク異常検出装置は、第2の異常スコアが閾値以下となって継続している時間(継続時間)が第1の所定時間以上となっている一時基準ベクトルと基準ベクトルとを交換する。継続時間が第1の所定時間以上になるということは、その一時基準ベクトルに対応する状態が新しいネットワークにおける正常な状態に変化している可能性が高い。そこで、ネットワーク異常検出装置は、基準ベクトルと当該一時基準ベクトルとを交換することによって、新しいネットワークに対応した基準ベクトルによって異常(障害)を検出することができる。
【0017】
また、本発明は、前記記憶部が、前記一時基準ベクトルと当該一時基準ベクトルが生成された時期を示す生成時期とを関連付けて記憶しており、前記変更部が、現在から前記生成時期までの第1の時間と閾値である第2の所定時間とを比較し、前記第1の時間が前記第2の所定時間以上となっている前記一時基準ベクトルを前記記憶部から削除することを特徴とする。
【0018】
このような構成によれば、ネットワーク異常検出装置は、一時基準ベクトルの数が増加し過ぎることを防ぎつつ、最新のネットワークの状態を反映できる。また、一時基準ベクトルの数を減少させることは、異常スコアの演算や比較演算に要する処理負荷やメモリの低減につながるという利点もある。
【0019】
また、本発明は、前記記憶部が、前記固有ベクトル算出部によって過去に算出された前記固有ベクトルを記憶しており、前記第1の異常スコアが前記閾値以下の場合、過去に正常と判定されたときの前記過去に算出された固有ベクトルと前記現在ベクトルとを用いて基準ベクトルを算出する学習処理を実行して、当該算出した基準ベクトルで前記記憶部に記憶していた基準ベクトルを上書きする処理、または、前記現在ベクトルと前記今回の一時基準ベクトルと同じ一時基準ベクトルが前記抽出処理によって過去に抽出されたときに現在ベクトルであった前記過去に算出された固有ベクトルとを用いて一時基準ベクトルを算出する学習処理を実行して、当該学習処理によって算出した一時基準ベクトルで前記記憶部に記憶していた一時基準ベクトルを上書きする処理、を実行する学習処理部をさらに備えることを特徴とする。
【0020】
このような構成によれば、ネットワーク異常検出装置は、基準ベクトルおよび一時基準ベクトルを、固定値とはせずに学習処理を実行することによって、加入者の増減やサービスの変化等にともなってネットワークに流れるトラフィック流量や装置の負荷の変化に適応させることができる。つまり、最新のネットワークの状態を基準ベクトルおよび一時基準ベクトルに反映して異常状態の識別領域を変化させることによって、最新のネットワークに適合した異常状態の遷移を検出することができる。
【0021】
また、本発明は、前記変更部が、前記基準ベクトルと前記一時基準ベクトルとの間の距離を算出し、前記距離と所定距離とを比較し、前記距離が前記所定距離以下となった場合、前記基準ベクトルの前記学習処理および当該一時基準ベクトルの前記学習処理に用いた前記過去に算出された固有ベクトルを用いて、新しい基準ベクトルを生成する所定の処理を実行し、前記新しい基準ベクトルで前記記憶部に記憶してある前記基準ベクトルを上書きすることを特徴とする。
【0022】
このような構成によれば、ネットワーク異常検出装置は、学習処理にともなって、基準ベクトルと一時基準ベクトルとが接近してきた場合に、両者を統合して新しい基準ベクトルを生成することができるので、無駄な一時基準ベクトルの数を減らすことができるとともに、異常スコアの演算や比較演算に要する処理負荷やメモリの低減につながるという利点もある。
【発明の効果】
【0023】
本発明によれば、障害中の異常状態遷移を検出することができる。
【図面の簡単な説明】
【0024】
【図1】本実施形態におけるネットワーク異常検出装置を含むネットワーク異常検出システムの構成およびネットワーク異常検出装置の動作概要を示す図であり、(a)はネットワーク異常検出システムの構成を表し、(b)は障害(異常)を検出したと判定するケースを表し、(c)は異常状態の遷移を検出するときに用いる一時基準ベクトルと異常検出時の第2のベクトルとの関係を表している。
【図2】ネットワーク異常検出装置の構成例を示す図である。
【図3】固有ベクトルDBの一例を示す図である。
【図4】基準ベクトルDBの一例を示す図である。
【図5】ネットワーク異常検出装置における処理フロー例を示す図である。
【図6】基準ベクトルと一時基準ベクトルとを統合する例を示す図である。
【図7】従来技術において障害を検出しない場合の例を示す図であり、(a)は、正常な場合を表し、(b)は、障害が発生している状態であっても障害の検出が困難な場合を表す。
【図8】従来技術において、障害を検出するための処理例を示す図である。
【発明を実施するための形態】
【0025】
本発明を実施するための形態(以降、「本実施形態」と称す。)について、適宜図面を参照しながら詳細に説明する。
【0026】
(概要)
はじめに、本実施形態のネットワーク異常検出装置を含むネットワーク異常検出システムの構成およびネットワーク異常検出装置の動作概要について、図1(a)(b)(c)を用いて説明する。
【0027】
ネットワーク異常検出システム1は、図1(a)に示すように、ネットワーク11内のノードである装置10A,10B,10C(10)とネットワーク異常検出装置100とを通信可能に接続して構成される。ネットワーク異常検出装置100は、前記した方法Bのように、装置10に対して問い合わせて得た情報を分析して、障害を検出するとともに、その障害中の異常状態の遷移を検出する機能を備えている。なお、図1(a)では、装置が3台記載されているが、3台に限らなくてもよい。
【0028】
ネットワーク異常検出装置100は、障害を検出する場合には、非特許文献1,2に記載の方法(図8参照)と同様である。すなわち、基準ベクトル(Vec-Ref)を、現在ベクトル(Vec-Now)が異常か否かの判定基準として用いる。なお、基準ベクトル(Vec-Ref)は、ネットワーク11が正常な状態のときのネットワーク11内の装置10間の状態を示す行列の固有ベクトルから算出される。現在ベクトル(Vec-Now)は、現時点のネットワーク11内の装置10間の状態を示す行列から算出される固有ベクトルである。また、ネットワーク異常検出装置100は、現時点の現在ベクトル(Vec-Now)と基準ベクトル(Vec-Ref)との間の角度差(Fail-deg)を異常スコアとして定義し、異常スコアが閾値を超える場合、障害(異常)を検出したと判定する。
【0029】
具体的には、ネットワーク異常検出装置100は、図1(b)に示すように、基準ベクトル(Vec-Ref)Rと現在ベクトルを示す第1のベクトル(Vec-Now)Aとの角度差RA(異常スコア)が閾値より大きいか否かを比較し、角度差RA(異常スコア)が閾値より大きい場合に障害(異常)を検出したと判定する。なお、図1(b)は、角度差RAが閾値より大きい場合を表しているものとし、第1のベクトル(Vec-Now)Aが障害(異常)であると判定された場合を示しているものとする。
【0030】
図1(c)は、本実施形態のネットワーク異常検出装置100に特有の処理状態を表している。図1(c)は、図1(b)の異常状態の次の時刻(装置10から情報を取得した時刻)に、再び異常が発生した場合を表しているものとする。この時の現在ベクトルは、第2のベクトル(Vec-Now)Bである。そして、基準ベクトル(Vec-Ref)Rと第2のベクトル(Vec-Now)Bとの角度差RBが、角度差RAとほぼ等しいものとする。
【0031】
従来技術のように基準ベクトル(Vec-Ref)のみを用いた場合には、図1(c)に示す状況は、図1(b)の場面に続いて異常が発生した(異常状態が継続している)と判定することはできるが、異常状態の遷移までは知ることができない。異常状態が遷移したということは、障害の原因となっている事象が変わった、または前と異なる原因が追加された可能性が高いため、異常状態の遷移を知ることは、早く障害から復旧して安定なネットワークサービスを提供する上で重要である。例えば、大規模な障害や構成変更等によって、現時点のネットワーク11の状態を示す現在ベクトル(Vec-Now)が、一瞬で図1(b)に示す第1のベクトルAから、図1(c)に示す第2のベクトルBに遷移する可能性があり得る。
【0032】
そこで、本実施形態では、図1(c)に示すように、ネットワーク異常検出装置100障害(異常)を検出したと判定した第1のベクトルAを、基準ベクトル(Vec-Ref)Rとは別の新たな補足的な基準として一時基準ベクトル(Vec-Refd-1)Tに設定する。そして、ネットワーク異常検出装置100第2のベクトル(Vec-Now)Bと一時基準ベクトル(Vec-Refd-1)Tとの角度差TBが閾値より大きいか否かを比較し、角度差TBが閾値より大きい場合に、異常状態が遷移したと判定する。
【0033】
なお、基準ベクトル(Vec-Ref)Rに対する異常スコアとの比較に用いた閾値と、一時基準ベクトル(Vec-Refd-1)Tに対する異常スコアとの比較に用いた閾値とは、等しくても異なっていても構わず、状況に応じて使い分けることができる。例えば、障害と判定する条件を狭くしたい場合には、基準ベクトル(Vec-Ref)Rに対する異常スコアとの比較に用いる閾値を小さくする。また、異常状態を識別するための領域を広くしたい場合には、一時基準ベクトル(Vec-Refd-1)Tに対する異常スコアとの比較に用いる閾値を大きくすればよい。
【0034】
つまり、本実施形態では、図1(c)に示すように、ネットワーク異常検出装置100は、基準ベクトル(Vec-Ref)Rとは別に一時基準ベクトル(Vec-Refd-1)Tを設定することによって、異常状態の遷移を検出できるようになる。
なお、一時基準ベクトル(Vec-Refd-*)の数は、1つに限られず複数であっても構わない。例えば、第1(c)に示す例では、異常が発生したと判定された第1のベクトルおよび異常状態が遷移したと判定された第2のベクトルがそれぞれ一時基準ベクトル(Vec-Refd-*)となることができる。なお、以下の説明では、基準ベクトル(Vec-Ref)および一時基準ベクトル(Vec-Refd-*)をまとめて総称する場合に、参照ベクトルと称している。また、*印は、複数の一時基準ベクトルの集合内のいずれかの一時基準ベクトルを指すものとする。
【0035】
(フレームワーク)
ここで、ネットワーク異常検出装置100の構成について説明する前に、準備として、一時基準ベクトルを複数設定した場合において、考慮する処理内容(機能)について説明する。
【0036】
基準ベクトル(Vec-Ref)とは別に、一時基準ベクトル(Vec-Refd-*)を1つ設定した場合については、図1(c)を用いて、既に前記したとおりである。ネットワーク11の状態が、どのように遷移し、過去のどの異常状態と類似しているかを判別できるようにするために、一時基準ベクトル(Vec-Refd-*)を複数設定することは有効と考えられる。
ネットワーク11では、ルーティングの切り替えや切り戻しの繰り返しが実施される場合がある。この場合には、直近の状態と現時点の状態との間を行き来するような異常状態が発生する。また、装置が老朽化した場合、その装置は他の装置よりも故障が起きやすくなっており、似たような故障を繰り返す場合が起きる。さらに、ネットワーク11の状態は、構成変更や使用状況等によって、時々刻々と変化する(状態a)。
【0037】
そのため、一時基準ベクトル(Vec-Refd-*)が生成されてから所定時間以上経過した場合には、当該一時基準ベクトル(Vec-Refd-*)は、現時点のネットワーク11の構成や使用状況と合致しなくなっていると考えられる(状態b)。さらに、一時基準ベクトル(Vec-Refd-*)の数を増加させた場合には、異常状態を細かく判別することができるが、演算処理の負荷やリソースの増大をまねくために、一時基準ベクトル(Vec-Refd-*)の数を制限することが現実的であると考えられる。
さらに、基準ベクトル(Vec-Ref)および一時基準ベクトル(Vec-Refd-*)を現状のネットワーク11の状態に合わせるために、学習処理を実行した場合、学習処理後の基準ベクトル(Vec-Ref)および一時基準ベクトル(Vec-Refd-*)同士が接近してくる場合が想定される(状態c)。
【0038】
したがって、ネットワーク異常検出装置100は、以下に示す処理を機能として備えるものとする。
(1)参照ベクトルの異常スコアすべてが閾値より大きい場合には、その時の現在ベクトル(Vec-Now)を、新しい一時基準ベクトル(Vec-Refd-*)として参照ベクトルに追加する処理(前記状態aに対応)
(2)所定時間にわたって異常スコアが閾値以下の一時基準ベクトル(Vec-Refd-*)と基準ベクトル(Vec-Ref)とを交換する処理(前記状態aに対応)
(3)生成時期から所定時間以上経過した一時基準ベクトル(Vec-Refd-*)を削除する処理(前記状態bに対応)
(4)学習処理によって、基準ベクトル(Vec-Ref)と一時基準ベクトル(Vec-Refd-*)とが類似してきた場合、両者を統合する処理(前記状態cに対応)
【0039】
(ネットワーク異常検出装置の構成)
ネットワーク異常検出装置100の構成について、図2を用いて説明する(適宜、図1,8参照)。ネットワーク異常検出装置100は、図2に示すように、処理部110、記憶部120、通信部130、および出力部140を備えている。
処理部110は、さらに、行列生成部111、固有ベクトル算出部112、参照ベクトル学習処理部113、状態判定部114、および参照ベクトル変更部115を備える。処理部110は、図示しないCPUおよびメインメモリによって構成され、記憶部120に記憶されているアプリケーションプログラムをメインメモリに展開して、行列生成部111、固有ベクトル算出部112、参照ベクトル学習処理部113、状態判定部114、および参照ベクトル変更部115を具現化する。
【0040】
行列生成部111は、通信部130を介して取得したネットワーク11内の装置10におけるトラフィック流量を要素として、行列の行を送信側の装置10、列を受信側の装置10として行列(図8参照)を生成する機能を有する。行列の生成は、所定の周期またはネットワーク11の管理者もしくは保守者等に指示されたときに行われる。
固有ベクトル算出部112は、行列生成部111によって生成された行列の固有ベクトル(図8参照)を算出する機能を有する。また、固有ベクトル算出部112は、算出した固有ベクトルを、後記する固有ベクトルDB121(図3参照)に記憶する機能を有する。
【0041】
参照ベクトル学習処理部113は、過去に算出された固有ベクトル(Vec-Past)と現在ベクトル(Vec-Now)とを固有ベクトルDB121から読み出して、参照ベクトルに学習処理を実行して、学習処理後の参照ベクトルで既に参照ベクトルDB122に記憶してある参照ベクトルを上書きする(更新する)ように記憶する機能を有する。なお、学習処理の詳細については、後記する。
【0042】
状態判定部114は、現在ベクトル(Vec-Now)と基準ベクトル(Vec-Ref)との角度差である異常スコア(第1の異常スコア)を算出し、算出した異常スコア(第1の異常スコア)と閾値とを比較し、当該異常スコア(第1の異常スコア)が閾値以下の場合に、正常と判定し、当該異常スコア(第1の異常スコア)が閾値より大きい場合に、障害(異常)が発生したと判定する機能を有する。また、状態判定部114は、現在ベクトル(Vec-Now)と一時基準ベクトル(Vec-Refd-*)との角度差である異常スコア(第2の異常スコア)を算出する機能も有する。そして、状態判定部114は、第2の異常スコアの中で第2の異常スコアが閾値以下でかつ最小となる一時基準ベクトルを抽出する抽出処理を実行し、当該抽出処理によって抽出した今回の一時基準ベクトルと今回の直前に抽出された一時基準ベクトルとが異なるか否かを判定し、今回の一時基準ベクトルと今回の直前に抽出された一時基準ベクトルとが異なる場合、異常状態が遷移したと判定する機能を有する。また、状態判定部114は、遷移した異常状態等の情報を出力部140に出力する機能を有する。なお、閾値は、記憶部120に記憶されている。
【0043】
参照ベクトル変更部115は、状態判定部114において参照ベクトルすべての異常スコアが閾値より大きいと判定された場合、現在ベクトル(Vec-Now)を新しい一時基準ベクトル(Vec-Refd-*)として参照ベクトルに追加(参照ベクトルDB122に記憶)する機能を有する。また、参照ベクトル変更部115は、基準ベクトル(Vec-Ref)と所定時間(第1の所定時間)以上にわたって異常スコアが閾値以下の一時基準ベクトル(Vec-Refd-*)とを交換する機能を有する。なお、所定期間は、ネットワーク11ごとに可変設定してもよい。例えば、所定期間は、状態変化の多いネットワーク11では、時間オーダに設定し、状態変化の少ないネットワーク11では、週オーダに設定するようにする。なお、所定時間(第1の所定時間)は、記憶部120に記憶されている。
【0044】
さらに、参照ベクトル変更部115は、一時基準ベクトル(Vec-Refd-*)が生成された(参照ベクトルに追加された)時期を示す生成時期から所定時間(第2の所定時間)以上経過した当該一時基準ベクトル(Vec-Refd-*)を、参照ベクトルDB122から削除する機能を有する。また、参照ベクトル変更部115は、基準ベクトル(Vec-Ref)と一時基準ベクトル(Vec-Refd-*)との間の距離を算出し、算出した距離と所定距離とを比較し、算出した距離が所定距離以下となった場合、基準ベクトル(Vec-Ref)の学習処理および一時基準ベクトル(Vec-Refd-*)の学習処理に用いた固有ベクトルを用いて、新しい基準ベクトル(Vec-Ref)を生成する学習処理を実行して、当該新しい基準ベクトル(Vec-Ref)で、既に参照ベクトルDB122に記憶してある基準ベクトル(Vec-Ref)を上書き(更新)する。なお、新しい基準ベクトル(Vec-Ref)は、基準ベクトル(Vec-Ref)と一時基準ベクトル(Vec-Refd-*)との移動平均によって算出してもよい。なお、所定時間(第2の所定時間)および所定距離は、記憶部120に記憶されている。
【0045】
通信部130は、ネットワーク11を接続する通信インタフェースであり、ネットワーク11内の装置10にトラフィック流量等の情報を問い合わせるコマンドを送信したり、そのコマンドに対する応答情報を受信したりする。
出力部140は、表示装置を接続する出力インタフェースであって、処理部110の処理結果等の情報を出力する。
【0046】
記憶部120は、ハードディスク等であって、固有ベクトルDB121および参照ベクトルDB122を格納している。
【0047】
固有ベクトルDB121は、図3に示すように、トラフィック流量等の情報を取得した時刻と固有ベクトル算出部112(図2参照)が算出した固有ベクトルとを関連付けて記憶している。なお、時刻t(n)におけるnは、トラフィック流量等の情報を取得した周期を識別する番号である。固有ベクトルDB121に記憶されている時刻t(n)は現在を表し、時刻t(n)の固有ベクトルは現在ベクトル(Vec-Now)となる。また、過去の固有ベクトルU(n−1)等は、参照ベクトル学習処理部113(図2参照)における参照ベクトルの学習処理のために用いられる。
【0048】
参照ベクトルDB122は、図4に示すように(適宜、図2参照)、参照ベクトル(基準ベクトル(Vec-Ref)および一時基準ベクトル(Vec-Refd-*))を識別する参照ベクトルID、ベクトルの成分を表したベクトル成分、生成時期(生成時刻)、異常スコアが閾値以下となって継続している時間(継続時間)、更新フラグ、学習期間、および備考を関連付けて記憶している。
【0049】
参照ベクトルID欄には、参照ベクトルを識別するIDが格納される。例えば、参照ベクトルIDは、基準ベクトルにはVec-Ref、一時基準ベクトル1にはVec-Refd-1というように付される。なお、一時基準ベクトル(Vec-Refd-*)が追加されるときには、参照ベクトル変更部115が、新たに参照ベクトルIDを発行し、行を追加する。また、参照ベクトルが削除されるときには、参照ベクトル変更部115が、該当の参照ベクトルIDの行全体を削除する。
【0050】
ベクトル成分欄には、ベクトルの成分を表現する数値が参照ベクトル変更部115によって格納される。
生成時期(生成時刻)の欄には、参照ベクトルが生成されたときの時刻が、参照ベクトル変更部115によって格納される。生成時期(生成時刻)は、参照ベクトル変更部115が、生成時期から所定時間以上経過した一時基準ベクトル(Vec-Refd-*)を、参照ベクトルDB122から削除するときに参照される。
【0051】
異常スコアが閾値以下となって継続している時間(継続時間)の欄には、異常スコアが閾値以下となって継続している時間(継続時間)が格納される。なお、異常スコアが閾値以下となって継続している時間(継続時間)は、参照ベクトル変更部115が、継続時間が所定時間以上となっている一時基準ベクトル(Vec-Refd-*)を抽出するときに参照される。
【0052】
更新フラグの欄には、更新フラグである1(ON;学習する)または0(OFF;学習しない)のいずれかが、参照ベクトル学習処理部113によって格納される。
学習期間の欄には、更新フラグが1(ON;学習する)に設定されている期間が参照ベクトル学習処理部113によって格納される。そして、更新フラグが1(ON;学習する)に設定された参照ベクトルが、学習処理の対象となる。
【0053】
ここで、学習処理と学習期間と更新フラグとの関係について説明する(適宜、図2,3,4参照)。
学習処理とは、例えば、参照ベクトルDB122に示す一時基準ベクトル2(Vec-Refd-2)の場合には、更新フラグが1(ON;学習する)となっている間、学習期間の欄に格納されているt(n−b2)からt(n−c2)までの期間の固有ベクトル(Vec-Past)を固有ベクトルDB121から読み出して、その読み出した固有ベクトル(Vec-Past)と現在ベクトル(Vec-Now)とを用いて所定の処理を実行し、当該処理の結果であるベクトルで既に参照ベクトルDB122に記憶してある一時基準ベクトル2(Vec-Refd-2)を上書き(更新)する処理である。所定の処理とは、例えば、移動平均等である。基準ベクトル(Vec-Ref)についても、前記した一時基準ベクトル(Vec-Refd-*)の場合と同様に、更新フラグが1(ON;学習する)となっている間、学習期間の欄に格納されている期間の固有ベクトル(Vec-Past)を固有ベクトルDB121から読み出して、その読み出した固有ベクトル(Vec-Past)と現在ベクトル(Vec-Now)とを用いて所定の処理を実行し、既に参照ベクトルDB122に記憶してある基準ベクトル(Vec-Ref)を上書き(更新)する。
具体的には、参照ベクトル学習処理部113は、更新フラグが1(ON;学習する)となっている参照ベクトルに対して、学習処理を実行し、参照ベクトルDB122のベクトル成分の欄を、学習処理後のベクトル成分に書き換える。
また、参照ベクトル学習処理部113は、更新フラグが1(ON)とされた時期を、学習期間に記憶する。
なお、学習処理に用いる固有ベクトル(Vec-Past)は、その数に上限(例えば、k個以下)を設ける、または、当該固有ベクトルの生成された生成時期が現在から所定時間以内に入っているものに限定する、ようにしても構わない。
【0054】
備考の欄には、参照ベクトルが生成された後で判明している障害原因等の情報、例えば、「装置△△に障害発生」等の情報が格納される。この備考の欄の情報は、ネットワーク11の管理者または保守者等によって、異常状態の原因が解明された後に格納される。備考の欄は、状態判定部114が、異常状態を出力部140に出力する際に参照される。
【0055】
(ネットワーク異常検出装置の処理フロー)
次に、ネットワーク異常検出装置100の処理フロー例について、図5を用いて説明する(適宜、図2,3,4参照)。
ステップS501では、処理部110の行列生成部111は、通信部130を介して、ネットワーク11内の装置10からトラフィック流量等の情報を取得し、トラフィック流量を要素とする行列を生成する。行列の生成は、所定の周期またはネットワーク11の管理者もしくは保守者等に指示されたときに行われる。
【0056】
ステップS502では、固有ベクトル算出部112は、行列生成部111によって生成された行列から、固有ベクトルである現在ベクトル(Vec-Now)を算出する。また、固有ベクトル算出部112は、算出した現在ベクトル(Vec-Now)を、固有ベクトルDB121に記憶する。
【0057】
ステップS503では、状態判定部114は、参照ベクトルDB122から参照ベクトルを読み出して、読み出した参照ベクトル(基準ベクトル(Vec-Ref)および一時基準ベクトル(Vec-Refd-*))と現在ベクトル(Vec-Now)との間の異常スコアを算出する。
【0058】
ステップS504では、状態判定部114は、基準ベクトル(Vec-Ref)と現在ベクトル(Vec-Now)との間の異常スコア(第1の異常スコア)と閾値とを比較し、異常状態か否かを判定する。当該異常スコア(第1の異常スコア)が閾値以下の場合すなわち異常状態でないと判定した場合(ステップS504でNo)、処理はステップS505へ進む。また、当該異常スコア(第1の異常スコア)が閾値より大きい場合すなわち異常状態であると判定した場合(ステップS504でYes)、処理はステップS508へ進む。
【0059】
ステップS505では、参照ベクトル学習処理部113は、基準ベクトル(Vec-Ref)の更新フラグを1(ON)に設定する。そして、参照ベクトル学習処理部113は、基準ベクトル(Vec-Ref)以外の参照ベクトルの更新フラグを0(OFF)に設定する。
【0060】
ステップS506では、参照ベクトル学習処理部113は、基準ベクトル(Vec-Ref)の学習処理を実行する。
ステップS507では、状態判定部114は、正常を示す情報を出力部140に出力する。ステップS507の処理後の処理は、ステップS514へ進む。
【0061】
ステップS508では、状態判定部114は、すべての異常スコアが閾値より大きいか否かを判定する。次に、状態判定部114は、一時基準ベクトル(Vec-Refd-*)と現在ベクトル(Vec-Now)との間の異常スコア(第2の異常スコア)が閾値以下でかつ最小となる一時基準ベクトル(Vec-Refd-*)を抽出する処理を実行する。そして、すべての異常スコアが閾値以下であると判定した場合(ステップS508でNo)、処理はステップS509へ進む。また、すべての異常スコアが閾値より大きいと判定した場合(ステップS508でYes)、処理はステップS512へ進む。
【0062】
ステップS509では、参照ベクトル学習処理部113は、異常スコアが最小となる一時基準ベクトル(Vec-Refd-*)の更新フラグを1(ON)に設定する。そして、参照ベクトル学習処理部113は、当該一時基準ベクトル(Vec-Refd-*)以外の参照ベクトルの更新フラグを0(OFF)に設定する。
【0063】
ステップS510では、参照ベクトル学習処理部113は、異常スコアが最小となる一時基準ベクトル(Vec-Refd-*)の学習処理を実行する。
そして、ステップS511では、状態判定部114は、異常が検出された(障害が検出された)情報、および、参照ベクトルDB122を参照して、異常スコアが最小となる一時基準ベクトル(Vec-Refd-*)に関連付けられた備考の欄に格納されている情報を出力部140に出力する。ステップS511の処理後の処理は、ステップS514へ進む。
【0064】
ステップS512では、参照ベクトル変更部115は、現在ベクトル(Vec-Now)を新しい一時基準ベクトル(Vec-Refd-*)として参照ベクトルに追加する。具体的には、参照ベクトル変更部115は、現在ベクトル(Vec-Now)を新しい一時基準ベクトル(Vec-Refd-*)として参照ベクトルDB122に追加する。
【0065】
ステップS513では、参照ベクトル学習処理部113は、新しい一時基準ベクトル(Vec-Refd-*)の更新フラグを1(ON)に設定する。そして、参照ベクトル学習処理部113は、当該一時基準ベクトル(Vec-Refd-*)以外の参照ベクトルの更新フラグを0(OFF)に設定する。ステップS513の処理後の処理は、ステップS511へ進む。
なお、ステップS513の処理後のステップS511では、状態判定部114は、新しい異常状態が検出された情報を出力部140に出力する。
【0066】
ステップS514では、参照ベクトル変更部115は、基準ベクトル(Vec-Ref)と所定時間以上にわたって異常スコア(第2の異常スコア)が閾値以下の一時基準ベクトル(Vec-Refd-*)とを交換する。具体的には、参照ベクトル変更部115は、第2の異常スコアが閾値以下となって継続している時間を示す継続時間と所定時間(第1の所定時間)とを比較し、継続時間が第1の所定時間以上となっている一時基準ベクトル(Vec-Refd-*)を基準ベクトル(Vec-Ref)に変更し、当該基準ベクトル(Vec-Ref)を一時基準ベクトル(Vec-Refd-*)に変更する。
【0067】
ステップS515では、参照ベクトル変更部115は、生成時期から現在に至るまでの時間が所定時間(第2の所定時間)以上経過した一時基準ベクトル(Vec-Refd-*)を、参照ベクトルDB122から削除する。
【0068】
ステップS516では、参照ベクトル変更部115は、基準ベクトル(Vec-Ref)と一時基準ベクトル(Vec-Refd-*)との距離が所定距離以下となった場合、両者を統合する。ステップS516の処理後の処理は、ステップS501へ戻る。
【0069】
ここで、前記した統合処理について、図6を用いて説明する。
図6は、基準ベクトル(Vec-Ref)Rと、一時基準ベクトル(Vec-Refd-*)Cとが存在している状態を表している。基準ベクトル(Vec-Ref)Rおよび一時基準ベクトル(Vec-Refd-*)Cは、それぞれ、更新フラグが1(ON)のときに学習処理を実行される。そのため、基準ベクトル(Vec-Ref)Rと一時基準ベクトル(Vec-Refd-*)Cとが接近してくる場合が起こる。
この場合に対応するために、図6に示すように、基準ベクトル(Vec-Ref)Rと一時基準ベクトル(Vec-Refd-*)Cとの間のベクトル間距離を、例えば、ユークリッド距離で定義する。そして、参照ベクトル変更部115は、ベクトル間距離を所定距離と比較し、ベクトル間距離が所定距離以下の場合、基準ベクトル(Vec-Ref)Rと一時基準ベクトル(Vec-Refd-*)Cとを統合し、統合後のベクトルを新しい基準ベクトル(Vec-Ref)R1として、参照ベクトルDB122を更新する。なお、統合処理は、例えば、基準ベクトル(Vec-Ref)の学習処理および一時基準ベクトル(Vec-Refd-*)の学習処理に用いた固有ベクトルを用いて、新しい基準ベクトル(Vec-Ref)を生成する学習処理を実行するか、または、基準ベクトル(Vec-Ref)と一時基準ベクトル(Vec-Refd-*)との移動平均によって算出する。
【0070】
以上、本実施形態で説明したネットワーク異常検出装置100は、異常と判定するために用いる基準となる基準ベクトル(Vec-Ref)および1以上の一時基準ベクトル(Vec-Refd-*)(参照ベクトル)を備えている。その参照ベクトルのうち一時基準ベクトルは、すべての異常スコアが閾値より大きい場合に、その時の現在ベクトル(Vec-Now)を一時基準ベクトル(Vec-Refd-*)として追加することによって形成される。すなわち、一時基準ベクトル(Vec-Refd-*)同士は、相互に異なる異常状態を表している。したがって、ネットワーク異常検出装置100は、基準ベクトル(Vec-Ref)を基準として、ネットワークの障害(異常)の有無を判定するとともに、一時基準ベクトル(Vec-Refd-*)を基準として、障害中の異常状態遷移を検出することができる。
【0071】
なお、図5のステップS512とステップS513とは、処理の順番が逆であっても構わない。
【符号の説明】
【0072】
1 ネットワーク異常検出システム
10(10A,10B,10C) 装置
11 ネットワーク
100 ネットワーク異常検出装置
110 処理部
111 行列生成部
112 固有ベクトル算出部
113 参照ベクトル学習処理部(学習処理部)
114 状態判定部
115 参照ベクトル変更部(変更部)
120 記憶部
121 固有ベクトルDB
122 参照ベクトルDB
130 通信部
140 出力部

【特許請求の範囲】
【請求項1】
正常な状態のときのネットワーク内の装置間の状態を示す行列から算出される固有ベクトルを基準ベクトルとして記憶し、異常な状態のときのネットワーク内の装置間の状態を示す行列から算出された固有ベクトルを一時基準ベクトルとして複数の前記一時基準ベクトルを記憶している記憶部と、
現時点のネットワーク内の装置間の状態を示す行列から固有ベクトルを算出し、当該算出した固有ベクトルを現在ベクトルとする固有ベクトル算出部と、
前記基準ベクトルと前記現在ベクトルとの角度差を算出して当該角度差を第1の異常スコアとして求め、前記一時基準ベクトルと前記現在ベクトルとの角度差を算出して当該角度差を第2の異常スコアとして求め、前記第1の異常スコアが閾値より大きいか否かを判定し、当該第1の異常スコアが前記閾値以下の場合にネットワークを正常と判定し、当該第1の異常スコアが前記閾値より大きい場合に異常と判定し、異常と判定した場合に、前記第2の異常スコアの中で前記第2の異常スコアが前記閾値以下でかつ最小となる一時基準ベクトルを抽出する抽出処理を実行し、当該抽出処理によって抽出した今回の一時基準ベクトルと今回の直前に抽出された一時基準ベクトルとが異なるか否かを判定し、前記今回の一時基準ベクトルと前記今回の直前に抽出された一時基準ベクトルとが異なる場合、異常状態が遷移したと判定する状態判定部と
を備えることを特徴とするネットワーク異常検出装置。
【請求項2】
前記第1および前記第2の異常スコアすべてが前記閾値より大きい場合、前記現在ベクトルを新しい一時基準ベクトルとして前記記憶部に追加して記憶する変更部
をさらに備えることを特徴とする請求項1に記載のネットワーク異常検出装置。
【請求項3】
前記記憶部は、前記一時基準ベクトルと前記第2の異常スコアが前記閾値以下となって継続している時間を示す継続時間とを関連付けて記憶しており、
前記変更部は、前記継続時間と閾値である第1の所定時間とを比較し、前記継続時間が前記第1の所定時間以上となっている前記一時基準ベクトルを前記基準ベクトルに変更し、当該基準ベクトルを前記一時基準ベクトルに変更する
ことを特徴とする請求項2に記載のネットワーク異常検出装置。
【請求項4】
前記記憶部は、前記一時基準ベクトルと当該一時基準ベクトルが生成された時期を示す生成時期とを関連付けて記憶しており、
前記変更部は、現在から前記生成時期までの第1の時間と閾値である第2の所定時間とを比較し、前記第1の時間が前記第2の所定時間以上となっている前記一時基準ベクトルを前記記憶部から削除する
ことを特徴とする請求項2または請求項3に記載のネットワーク異常検出装置。
【請求項5】
前記記憶部は、前記固有ベクトル算出部によって過去に算出された前記固有ベクトルを記憶しており、
前記第1の異常スコアが前記閾値以下の場合、過去に正常と判定されたときの前記過去に算出された固有ベクトルと前記現在ベクトルとを用いて基準ベクトルを算出する学習処理を実行して、当該算出した基準ベクトルで前記記憶部に記憶していた基準ベクトルを上書きする処理、または、前記現在ベクトルと前記今回の一時基準ベクトルと同じ一時基準ベクトルが前記抽出処理によって過去に抽出されたときに現在ベクトルであった前記過去に算出された固有ベクトルとを用いて一時基準ベクトルを算出する学習処理を実行して、当該学習処理によって算出した一時基準ベクトルで前記記憶部に記憶していた一時基準ベクトルを上書きする処理、を実行する学習処理部
をさらに備えることを特徴とする請求項2ないし請求項4のいずれか一項に記載のネットワーク異常検出装置。
【請求項6】
前記変更部は、前記基準ベクトルと前記一時基準ベクトルとの間の距離を算出し、前記距離と所定距離とを比較し、前記距離が前記所定距離以下となった場合、前記基準ベクトルの前記学習処理および当該一時基準ベクトルの前記学習処理に用いた前記過去に算出された固有ベクトルを用いて、新しい基準ベクトルを生成する所定の処理を実行し、前記新しい基準ベクトルで前記記憶部に記憶してある前記基準ベクトルを上書きする
ことを特徴とする請求項5に記載のネットワーク異常検出装置。
【請求項7】
正常な状態のときのネットワーク内の装置間の状態を示す行列から算出される固有ベクトルを基準ベクトルとして記憶し、異常な状態のときのネットワーク内の装置間の状態を示す行列から算出された固有ベクトルを一時基準ベクトルとして1つ記憶している記憶部と、
現時点のネットワーク内の装置間の状態を示す行列から固有ベクトルを算出し、当該算出した固有ベクトルを現在ベクトルとする固有ベクトル算出部と、
前記基準ベクトルと前記現在ベクトルとの角度差を算出して当該角度差を第1の異常スコアとして求め、前記一時基準ベクトルと前記現在ベクトルとの角度差を算出して当該角度差を第2の異常スコアとして求め、前記第1の異常スコアが閾値より大きいか否かを判定し、当該第1の異常スコアが前記閾値以下の場合にネットワークを正常と判定し、当該第1の異常スコアが前記閾値より大きい場合に異常と判定し、異常と判定した場合に、前記第2の異常スコアが前記閾値より大きいか否かを判定し、前記第2の異常スコアが前記閾値より大きい場合、異常状態が遷移したと判定する状態判定部と
を備えることを特徴とするネットワーク異常検出装置。
【請求項8】
ネットワーク内の異常を検出するネットワーク異常検出装置のネットワーク異常検出方法であって、
前記ネットワーク異常検出装置は、
正常な状態のときのネットワーク内の装置間の状態を示す行列から算出される固有ベクトルを基準ベクトルとして記憶し、異常な状態のときのネットワーク内の装置間の状態を示す行列から算出された固有ベクトルを一時基準ベクトルとして複数の前記一時基準ベクトルを記憶している記憶部を備え、
現時点のネットワーク内の装置間の状態を示す行列から固有ベクトルを算出し、当該算出した固有ベクトルを現在ベクトルとする固有ベクトル算出ステップと、
前記基準ベクトルと前記現在ベクトルとの角度差を算出して当該角度差を第1の異常スコアとして求め、前記一時基準ベクトルと前記現在ベクトルとの角度差を算出して当該角度差を第2の異常スコアとして求め、前記第1の異常スコアが閾値より大きいか否かを判定し、当該第1の異常スコアが前記閾値以下の場合にネットワークを正常と判定し、当該第1の異常スコアが前記閾値より大きい場合に異常と判定し、異常と判定した場合に、前記第2の異常スコアの中で前記第2の異常スコアが前記閾値以下でかつ最小となる一時基準ベクトルを抽出する処理を実行し、当該抽出する処理によって抽出した今回の一時基準ベクトルと今回の直前に抽出された一時基準ベクトルとが異なるか否かを判定し、前記今回の一時基準ベクトルと前記今回の直前に抽出された一時基準ベクトルとが異なる場合、異常状態が遷移したと判定する状態判定ステップと
を実行することを特徴とするネットワーク異常検出方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate