JP2017129917A - 異常検知方法、異常検知装置および異常検知プログラム - Google Patents
異常検知方法、異常検知装置および異常検知プログラム Download PDFInfo
- Publication number
- JP2017129917A JP2017129917A JP2016007215A JP2016007215A JP2017129917A JP 2017129917 A JP2017129917 A JP 2017129917A JP 2016007215 A JP2016007215 A JP 2016007215A JP 2016007215 A JP2016007215 A JP 2016007215A JP 2017129917 A JP2017129917 A JP 2017129917A
- Authority
- JP
- Japan
- Prior art keywords
- data
- cycle
- state
- abnormality
- occurrence frequency
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0208—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0218—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
- G05B23/0224—Process history based detection method, e.g. whereby history implies the availability of large amounts of data
- G05B23/0227—Qualitative history assessment, whereby the type of data acted upon, e.g. waveforms, images or patterns, is not relevant, e.g. rule based assessment; if-then decisions
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Debugging And Monitoring (AREA)
- Testing And Monitoring For Control Systems (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】処理を繰り返して実行する処理装置等における異常を、より正確に検知する。
【解決手段】処理を繰り返して実行する処理装置から、一の周期を複数に分割した区間ごとに処理装置の所定の項目についてのデータを取得し、当該一の周期の当該区間ごとに取得した所定の項目についてのデータを所定の分類基準で複数のグループに分類し、グループごとの当該一の周期におけるデータの発生頻度を記憶し、当該一の周期と同じ長さである判定対象の周期において当該区間ごとに所定の項目についてのデータを取得し、グループごとの判定対象の周期におけるデータの発生頻度が、当該一の周期におけるデータの発生頻度に基づく許容範囲を逸脱した場合に、処理装置に異常があると判定する、異常検知方法である。
【選択図】図14
【解決手段】処理を繰り返して実行する処理装置から、一の周期を複数に分割した区間ごとに処理装置の所定の項目についてのデータを取得し、当該一の周期の当該区間ごとに取得した所定の項目についてのデータを所定の分類基準で複数のグループに分類し、グループごとの当該一の周期におけるデータの発生頻度を記憶し、当該一の周期と同じ長さである判定対象の周期において当該区間ごとに所定の項目についてのデータを取得し、グループごとの判定対象の周期におけるデータの発生頻度が、当該一の周期におけるデータの発生頻度に基づく許容範囲を逸脱した場合に、処理装置に異常があると判定する、異常検知方法である。
【選択図】図14
Description
本発明は、異常検知方法、異常検知装置および異常検知プログラムに関する。
データセンタ等におけるサーバ、ストレージ等の複数のリソースから形成されるシステムにおいて、繰り返し実行される処理における所定の項目について採取した値を、あらかじめ準備した正常パターンと比較することにより異常を検知する方法がある。正常パターンは、例えば、システム内の他のリソースの設定や状態等の影響を受けない状況で、所定の項目の値を採取し、採取された複数の値から取りうる値の範囲を定義して作成される。システムは、所定の項目の値を定期的に採取し、正常パターンと比較して、取りうる値の範囲を逸脱した項目がある場合に異常と判定する。
正常パターンを定義する際、所定の項目について採取した複数の値の平均値を求め、当該平均値および当該平均値からのずれの許容範囲に応じて、所定の項目の値が取りうる範囲を定義する方法が知られている。
Tsunenori Ishioka,"An Expansion of X-means for Automatically Determining the Optimal Number of Clusters," the Fourth IASTED International Conference on Computational Intelligence, Calgary, Alberta, Canada, July 4-6, 2005, pp.91-96
正常パターンが平均値に基づいて定義された場合、例えば、平均値から離散的な値を取る項目等に対して、正常な動作の結果であるにもかかわらず、取りうる値の範囲を逸脱するとして異常と判断される場合がある。平均値から離散的な値を取るとは、例えば、採取した所定の項目の複数の値が平均値を挟んで平均値より大きい値と平均値より小さい値を取り、平均値を挟んだ値が平均値から所定限度以上離れているような値の発生状況となることをいう。
1つの側面では、処理を繰り返して実行する処理装置等における異常を、より正確に検知することができる技術を提供することを目的とする。
1つの態様では、コンピュータが、処理を繰り返して実行する処理装置から、一の周期を複数に分割した区間ごとに処理装置の所定の項目についてのデータを取得し、当該一の周期の当該区間ごとに取得した所定の項目についてのデータを所定の分類基準で複数のグループに分類し、グループごとの当該一の周期におけるデータの発生頻度を記憶し、当該一の周期と同じ長さである判定対象の周期において当該区間ごとに所定の項目についてのデータを取得し、グループごとの判定対象の周期におけるデータの発生頻度が、当該一の周期におけるデータの発生頻度に基づく許容範囲を逸脱した場合に、処理装置に異常があ
ると判断する、異常検知方法である。
ると判断する、異常検知方法である。
1つの側面では、処理を繰り返して実行する処理装置等における異常を、より正確に検知することができる。
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
<異常検知>
図1は、収集データに基づく異常検知の概要を例示する図である。データ収集処理P1は、処理を繰り返して実行する処理装置等における異常を検知するために、処理装置等から各リソースの設定・状態を示すデータを収集する。収集されるデータは、例えば、異常検知の対象となるサーバ、ネットワーク、ストレージ、仮想マシン(Virtual Machine、VM)、仮想スイッチ(Virtual switch)、仮想ルータ(
Virtual router)、ハイパーバイザ(Hypervisor)、プロセス等の物理・仮想資源等に関する設定・状態を表す数値データである。データ収集処理P1は、一定間隔(例えば60秒間隔)で収集データP31を取得し、記憶部P3に格納する。データが収集される一定間隔は、データ収集区間とも称される。
図1は、収集データに基づく異常検知の概要を例示する図である。データ収集処理P1は、処理を繰り返して実行する処理装置等における異常を検知するために、処理装置等から各リソースの設定・状態を示すデータを収集する。収集されるデータは、例えば、異常検知の対象となるサーバ、ネットワーク、ストレージ、仮想マシン(Virtual Machine、VM)、仮想スイッチ(Virtual switch)、仮想ルータ(
Virtual router)、ハイパーバイザ(Hypervisor)、プロセス等の物理・仮想資源等に関する設定・状態を表す数値データである。データ収集処理P1は、一定間隔(例えば60秒間隔)で収集データP31を取得し、記憶部P3に格納する。データが収集される一定間隔は、データ収集区間とも称される。
なお、以下の各実施形態では、周期的な処理を実行している異常検知の対象(処理装置
等)の異常を検知する異常検知装置が例示される。ここで、周期的な処理には、例えば、
時間ごと、日ごと、週ごと、あるいは月ごとのように、繰り返してなされるユーザの業務に対応して提供されるサーバ等の情報システムの処理、あるいはサービスが例示される。
等)の異常を検知する異常検知装置が例示される。ここで、周期的な処理には、例えば、
時間ごと、日ごと、週ごと、あるいは月ごとのように、繰り返してなされるユーザの業務に対応して提供されるサーバ等の情報システムの処理、あるいはサービスが例示される。
異常検出処理P2は、記憶部P3に格納された収集データP31に基づき、一定周期(例えば1日周期)で正常モデル(以下、状態モデルともいう)P32を生成する。正常モデルP32が生成される一定周期は、状態モデル更新周期、または単に、周期とも称される。生成された正常モデルP32は、記憶部P3に格納される。異常検出処理P2は、異常検知の判定対象の状態モデル更新周期(以下、判定対象の周期ともいう)においてデータ収集処理P1が収集した収集データP31と、記憶部P3に格納された正常モデルP32との比較により、異常が発生したか否かを判定する。異常検出処理P3は、検知した異常情報P33を、記憶部P3に格納する。
ここでの異常は、正常モデルP32から逸脱した状態をいう。例えば、正常モデルP32は、Central Processing Unit(CPU)使用率等の収集データの値が、所定の範囲内に収まっている状態を示す。つまり、正常モデルP32は、「CPU使用率が70%以下」といった情報である。また、正常モデルP32は、「複数の区分に分割された一つの周期においてCPU使用率が50%以上となる区間が発生する回数の割合は30%である」といった発生頻度についての情報であってもよい。
CPU使用率とメモリ使用率等の複数の項目に対して異常検知する場合、正常モデルの生成および異常検知は、項目ごとに実施される。異常が検知されると、項目ごとに異常の発生が通知される。
<平均値に基づく正常モデル>
図2は、平均値に基づく正常モデルの生成方法の例を示す図である。図2に示されるA1のグラフは、横軸を時間、縦軸をCPU使用率とし、時間とCPU使用との関係を示す。CPU使用率は、状態モデル更新周期を所定数に等分して得られたデータ収集区間ごとに測定される。黒丸は、データ収集区間ごとに測定されたCPU使用率の観測値を示す。図2の例では、観測値の平均値は50%であるが、観測値は50%に対して上下に離散している。グラフA1に示される観測値に基づき、図2に示される正常モデルA2が生成される。正常モデルA2は、平均値に基づく正常モデルであり、平均値50%の−x%から+x%までの連続した範囲を正常値の許容範囲とする。xの値は、例えば、異常検知対象の処理装置が異常動作時に示す観測値が、許容範囲に含まれないような値とすることができる。
図2は、平均値に基づく正常モデルの生成方法の例を示す図である。図2に示されるA1のグラフは、横軸を時間、縦軸をCPU使用率とし、時間とCPU使用との関係を示す。CPU使用率は、状態モデル更新周期を所定数に等分して得られたデータ収集区間ごとに測定される。黒丸は、データ収集区間ごとに測定されたCPU使用率の観測値を示す。図2の例では、観測値の平均値は50%であるが、観測値は50%に対して上下に離散している。グラフA1に示される観測値に基づき、図2に示される正常モデルA2が生成される。正常モデルA2は、平均値に基づく正常モデルであり、平均値50%の−x%から+x%までの連続した範囲を正常値の許容範囲とする。xの値は、例えば、異常検知対象の処理装置が異常動作時に示す観測値が、許容範囲に含まれないような値とすることができる。
図3は、周期性のある学習段階のデータから、平均値に基づいて生成される正常モデルの例を示す図である。学習段階は、正常モデルを生成するために用いられるデータを収集する期間であって、1以上の状態モデル更新周期を含む。Ti(i=1,2,…)は、状態モデル更新周期である。T1、T3、T5の状態モデル更新周期において、データ収集区間ごとに収集されたデータの観測値の平均値は75%である。T2、T4、T6の状態モデル更新周期において、データ収集区間ごとに収集されたデータの観測値の平均値は25%である。
学習段階における各Tiの平均値に基づいて、T1からT6の正常モデルが生成される。T1、T3、T5の状態モデル更新周期は、平均値75%から所定の閾値の範囲内を正常状態の範囲とする。T2、T4、T6の状態モデル更新周期は、平均値25%から所定の閾値の範囲内を正常状態の範囲とする。
図4は、1の状態モデル更新周期の正常/異常状態の収集データを平均値に基づく正常モデルにおける正常状態のデータの範囲と比較したときに誤判定する例を示す図である。正常モデルB1は、図2のグラフA1に示される状態モデル更新周期1周期分の収集データから生成される平均値に基づく正常モデルである。グラフA1に示される状態モデル更新周期1周期分の収集データの平均値は50%である。正常モデルB1において、平均値50%から所定の閾値の範囲は、正常状態の範囲とされる。
図4に示されるB2のグラフは、図2と同様に、状態モデル更新周期T1における時間とCPU使用との関係を示す。グラフB2における観測値は、正常状態を示す図2のグラフA1と同様に観測値は50%に対して上下に離散しているが、グラフB2における収集データの各観測値は、正常モデルB1の正常状態の範囲には含まれない。したがって、グラフB2に示される収集データは、平均値に基づく正常モデルB1と比較した場合、例え“正常”であっても“異常”と判定される。
また、図4に示されるB3のグラフは、図2と同様に、状態モデル更新周期T2における時間とCPU使用との関係を示す。グラフB3における観測値は平均値(50%)付近でほぼ一定値を取っているため、例え“異常”であっても、平均値に基づく正常モデルB1と比較した場合、“正常”と判定される。
平均値に基づく正常モデルB1によれば、正常状態を示すグラフB2の収集データは異常と判定され、異常状態を示すグラフB3の収集データは正常と判定される。すなわち、平均値に基づく正常モデルを用いた場合、正常状態と異常状態を正しく判断できない場合が生じる。
〔実施形態1〕
実施形態1では、異常検知の対象となる処理装置等から、各処理装置等のリソースの設定・状態を示すデータが収集される。1の状態モデル更新周期における収集データは複数の状態に分類され、状態ごとの発生頻度の情報を付加した正常モデル(状態モデル)が生成される。異常が発生したか否かは、判定対象の周期において、収集データの状態ごとの発生頻度が状態モデルからの許容範囲を超えたか否かによって判定される。以下、データの収集および異常検知の対象は、CPU使用率であるものとして説明されるが、これに限らない。例えば、メモリ使用率、プロセス数、ネットワーク使用量であってもよい。
実施形態1では、異常検知の対象となる処理装置等から、各処理装置等のリソースの設定・状態を示すデータが収集される。1の状態モデル更新周期における収集データは複数の状態に分類され、状態ごとの発生頻度の情報を付加した正常モデル(状態モデル)が生成される。異常が発生したか否かは、判定対象の周期において、収集データの状態ごとの発生頻度が状態モデルからの許容範囲を超えたか否かによって判定される。以下、データの収集および異常検知の対象は、CPU使用率であるものとして説明されるが、これに限らない。例えば、メモリ使用率、プロセス数、ネットワーク使用量であってもよい。
<発生頻度に基づく状態モデル>
図5は、発生頻度に基づく状態モデルの例を示す図である。状態モデルは、状態モデル更新周期ごとに生成される。状態モデル更新周期は、所定数のデータ収集区間に等分される。分割数は適宜設定可能である。実施形態では、各データ収集区間で収集されたデータは、クラスタリング又はグルーピングにより複数の集合(以下、クラスタ、またはグループともいう)に分類される。
図5は、発生頻度に基づく状態モデルの例を示す図である。状態モデルは、状態モデル更新周期ごとに生成される。状態モデル更新周期は、所定数のデータ収集区間に等分される。分割数は適宜設定可能である。実施形態では、各データ収集区間で収集されたデータは、クラスタリング又はグルーピングにより複数の集合(以下、クラスタ、またはグループともいう)に分類される。
また、実施形態では、1つの状態モデル更新周期において、各グループに属するデータの発生回数が計数される。各グループに属するデータの発生回数は、1つの周期における処理装置の動作が異常か否かを判定するための閾値として使用される。
判定対象の周期において、各グループに属するデータの発生回数が、状態モデルにおけ
る各グループの閾値を超過する場合に、当該周期における処理装置の動作は、異常と判定される。異常判定は、データ収集区間ごとに実施される。すなわち、判定対象の周期において各グループに属するデータの発生回数は、データ収集区間ごとに計数され、計数された発生回数が、状態モデルにおける閾値を超過した時点で異常と判定される。なお、異常判定は、1つの周期の経過後に、判定対象の周期における各グループの発生回数と状態モデルにおける閾値との比較に基づいて実施されてもよい。
る各グループの閾値を超過する場合に、当該周期における処理装置の動作は、異常と判定される。異常判定は、データ収集区間ごとに実施される。すなわち、判定対象の周期において各グループに属するデータの発生回数は、データ収集区間ごとに計数され、計数された発生回数が、状態モデルにおける閾値を超過した時点で異常と判定される。なお、異常判定は、1つの周期の経過後に、判定対象の周期における各グループの発生回数と状態モデルにおける閾値との比較に基づいて実施されてもよい。
図5に示される例では、状態モデル更新周期はt1からt10のデータ収集区間に等分されている。各データ収集区間で収集されたCPU使用率の観測値は、状態Aから状態Eの5つのグループに分類されている。図5の例において、状態Aは、CPU使用率が1%のデータを含むグループである。状態Bは、CPU使用率が14−15%のデータを含むグループである。状態Cは、CPU使用率が20−24%のデータを含むグループである。状態Dは、CPU使用率が75%のデータを含むグループである。状態Eは、状態Aから状態Dのいずれにも属さないデータを含むグループである。
CPU使用率が1%となるのは、データ収集区間がt5の1回であり、状態モデル更新周期1周期における状態Aの発生回数は1回である。同様に、CPU使用率が14−15%となるのは、データ収集区間がt1、t7−t9の4回で、状態Bの発生回数は4回である。CPU使用率が20−24%となるのは、データ収集区間がt2、t4、t6、t10の4回で、状態Cの発生回数は4回である。CPU使用率が75%となるのは、データ収集区間がt3の1回で、状態Dの発生回数は1回である。状態Aから状態Dに含まれないCPU使用率は観測されていないため、状態Eの発生回数は0回である。t1からt10のデータ収集区間を含む状態モデル更新周期から生成された状態Aから状態Eは、それぞれの発生回数を閾値とする状態モデルである。
図5に示される状態モデルに基づく異常判定は、以下のように実施される。データ収集区間t21、t22、t23は、t1からt10を含む状態モデル更新周期とは異なる周期に含まれるデータ収集区間とする。各データ収集区間t21、t22、t23におけるCPU使用率および判定結果の例は以下の通りである。
t21:CPU使用率 24% → 正常(状態Cの発生回数=1)
t22:CPU使用率 75% → 正常(状態Dの発生回数=1)
t23:CPU使用率 75% → 異常(状態Dの発生回数=2)
t21ではCPU使用率が24%であるため、状態Cの発生回数は1となる。当該周期における状態Cの発生回数が、状態モデルにおける状態Cの発生回数4以下であるため、判定結果は正常となる。t22ではCPU使用率が75%であるため、状態Dの発生回数は1となる。当該周期における状態Dの発生回数が、状態モデルにおける状態Dの発生回数1以下であるため、判定結果は正常となる。t23ではCPU使用率が75%であるため、状態Dの発生回数は2となる。当該周期における状態Dの発生回数が、状態モデルにおける状態Dの発生回数1より大きくなるため、判定結果は異常となる。図5の例では、各状態における発生回数を発生頻度として示されるが、発生頻度は、一つの周期におけるデータ収集区間の数に対する各状態に属するデータの発生回数の割合としてもよい。
t21:CPU使用率 24% → 正常(状態Cの発生回数=1)
t22:CPU使用率 75% → 正常(状態Dの発生回数=1)
t23:CPU使用率 75% → 異常(状態Dの発生回数=2)
t21ではCPU使用率が24%であるため、状態Cの発生回数は1となる。当該周期における状態Cの発生回数が、状態モデルにおける状態Cの発生回数4以下であるため、判定結果は正常となる。t22ではCPU使用率が75%であるため、状態Dの発生回数は1となる。当該周期における状態Dの発生回数が、状態モデルにおける状態Dの発生回数1以下であるため、判定結果は正常となる。t23ではCPU使用率が75%であるため、状態Dの発生回数は2となる。当該周期における状態Dの発生回数が、状態モデルにおける状態Dの発生回数1より大きくなるため、判定結果は異常となる。図5の例では、各状態における発生回数を発生頻度として示されるが、発生頻度は、一つの周期におけるデータ収集区間の数に対する各状態に属するデータの発生回数の割合としてもよい。
図6は、1の状態モデル更新周期の正常/異常状態の収集データを発生頻度に基づく状態モデルにおける正常状態のデータの範囲と比較する例を示す図である。図6に示されるC1のグラフは、横軸を時間、縦軸をCPU使用率とし、時間とCPU使用との関係を示す。CPU使用率は、状態モデル更新周期を所定数に等分して得られたデータ収集区間ごとに測定される。黒丸は、データ収集区間ごとに測定されたCPU使用率の観測値を示す。図6の例では、観測値の平均値は50%であるが、観測値は50%に対して上下に離散している。
グラフC1に示される観測値に基づき、図6に示される正常モデルC2が生成される。正常モデルC2は、発生頻度に基づく正常モデルである。グラフC1の収集データの観測値は、例えば、50%より大きい値の範囲にあるグループC21と、50%より小さい値の範囲にあるグループC22との2つに分類される。状態C21に属するデータは4回発生しており、状態C22に属するデータは4回発生している。
したがって、状態モデルC2において、正常状態の範囲は、平均値の50%より大きい値の範囲のグループC21、および平均値の50%より小さい値の範囲のグループC22に属するデータの範囲とされる。また、グループC21およびグループC22の発生頻度は、それぞれ50%となる。実施形態では、収集データが観測値に応じて複数のグループに分類され、各グループに属するデータの数に基づく発生頻度は、異常か否かの判定条件として用いられる。
図6に示されるC3のグラフは、グラフC1と同様に状態モデル更新周期T1における時間とCPU使用との関係を示す。グラフC3における観測値は、正常状態を示すグラフC1と同様に観測値は50%に対して上下に離散している。グラフC3における収集データのうち50%より大きい観測値は8回中4回観測され、状態モデルC2の正常状態の範囲であるグループC21に含まれる。また、グラフC3における収集データのうち50%より小さい観測値は8回中4回観測され、状態モデルC2の正常状態の範囲であるグループC22に含まれる。すなわち、グループC21およびグループC22に含まれる観測値の発生頻度は、それぞれ50%である。したがって、グラフC3に示される収集データは、発生頻度に基づく正常モデルC2と比較した場合、“正常”と判定される。
図6に示されるC4のグラフは、グラフC1と同様に状態モデル更新周期T2における時間とCPU使用との関係を示す。グラフC4における観測値は平均値(50%)付近でほぼ一定値を取り、グラフC4の収集データは、異常状態であることを示す。グラフC4における収集データの各観測値は、正常モデルC2の正常状態の範囲であるグループC21およびグループC22には含まれない。したがって、グラフC4に示される収集データは、発生頻度に基づく正常モデルC2と比較した場合、“異常”と判定される。
発生頻度に基づく状態モデルC2によれば、正常状態を示すグラフC3の収集データは正常と判定され、異常状態を示すグラフC4の収集データは異常と判定される。すなわち、発生頻度に基づく状態モデルを用いた場合、収集データが離散的な値を取る場合でも、正常状態と異常状態は正しく判定される。
<装置構成>
次に、上記した正常・異常の判定方法を用いて、処理装置の動作の正常・異常を判定し、処理装置の異常を検知する異常検知装置について説明する。
次に、上記した正常・異常の判定方法を用いて、処理装置の動作の正常・異常を判定し、処理装置の異常を検知する異常検知装置について説明する。
図7は、異常検知装置10のハードウェア構成の一例を示す図である。異常検知装置10は、プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、ネットワークインタフェース16を備える。プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、ネットワークインタフェース16はバス17により互いに接続される。
プロセッサ11は、補助記憶装置13に保持されたオペレーティングシステム(Operating System、OS)や様々なコンピュータプログラムを主記憶装置12にロードして実行することによって、様々な処理を実行する。ただし、コンピュータプログラムによる処理の一部がハードウェア回路により実行されてもよい。プロセッサ11は、例えば、CPUや、Digital Signal Processor(DSP)で
ある。
ある。
主記憶装置12は、プロセッサ11に、補助記憶装置13に格納されているプログラムをロードするための記憶領域、及びプログラムを実行するための作業領域を提供する。また、主記憶装置12は、データを保持するためのバッファとして用いられる。主記憶装置12は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)等の半導体メモリである。
補助記憶装置13は、様々なプログラムや、各プログラムの実行に際してプロセッサ11が使用するデータを格納する。補助記憶装置13は、例えば、Erasable Programmable ROM(EPROM)、又はハードディスクドライブ(Hard
Disk Drive、HDD)、Solid State Drive(SSD)等の不揮発性のメモリである。補助記憶装置13は、例えば、OS、異常検知プログラム、その他様々なアプリケーションプログラムを保持する。
Disk Drive、HDD)、Solid State Drive(SSD)等の不揮発性のメモリである。補助記憶装置13は、例えば、OS、異常検知プログラム、その他様々なアプリケーションプログラムを保持する。
入力装置14は、ユーザからの操作入力を受け付ける。例えば、入力装置14は、タッチパッド、マウス、タッチパネル等のポインティングデバイス、キーボード、操作ボタン、遠隔操作機からの信号を受信する回路等である。出力装置15は、異常検知装置10により検知された異常についての情報を出力する。出力装置15は、例えば、液晶ディスプレイ(Liquid Crystal Display、LCD)である。
ネットワークインタフェース16は、ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース16は、有線のネットワークと接続するインタフェース、無線のネットワークと接続するインタフェースを含む。ネットワークインタフェース16は、例えば、Network Interface Card(NIC)、無線Local Area Network(LAN)カード等である。ネットワークインタフェース16で受信されたデータ等は、プロセッサ11に出力される。異常検知装置10は、ネットワークインタフェース16を介して、接続された各種リソースのデータを収集する。
例えば、異常検知装置10では、プロセッサ11が、補助記憶装置13に保持される異常検知プログラムを主記憶装置12にロードして実行する。なお、異常検知装置10のハードウェア構成は一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。
図8は、異常検知装置10の構成要素の一例を示す図である。異常検知装置10は、データ収集部1、異常検知部2およびデータストア3の構成要素を含む。また、異常検知装置10は、ネットワークインタフェース16を介して、異常検知の対象である処理装置4と通信する。処理装置4は、例えば、Server(サーバ)、VM、Virtual switch、Virtual router等である。異常検知装置10は、通信により、各処理装置4から各リソースの設定・状態を示すデータを収集する。
なお、異常検知装置10は、自身の設定・状態を示すデータを収集し、異常検知装置10自身を異常検知の対象としてもよい。この場合、異常検知プログラムは、パーソナルコンピュータ(Personal Computer、PC)等におけるアプリケーションとして異常判定処理を実行してもよい。
データ収集部1は、各リソースの設定・状態を示すデータを、状態モデル更新周期を複数に分割したデータ収集区間ごとに収集し、データストア3に格納する。収集データは、異常検知対象の処理装置4から、データ収集部1に対してデータ収集区間ごとに送信され
るようにしてもよい。
るようにしてもよい。
異常検知部2は、データストア3に格納された1の状態モデル更新周期における収集データを複数のグループに分類して状態モデルを生成し、生成した状態モデルをデータストア3に格納する。また、異常検知部2は、データ収集部1が収集したデータを、データストア3に格納された状態モデルと対比し、異常があるか否かを判定する。データストア3は、主記憶装置12及び補助記憶装置13の少なくとも一方に生成される。
プロセッサ11は、主記憶装置12に実行可能に展開されたコンピュータプログラムを実行することによって、データ収集部1および異常検知部2としての動作ないし処理を行う。データ収集機能11として動作するプロセッサ11は、ネットワークインタフェース16を用いた通信によって、各通信相手からデータを収集する。
なお、データ収集部1、異常検知部2のいずれか、またはその処理の一部がハードウェア回路により実行されてもよい。ハードウェア回路は、例えば、Field Programmable Gate Array(FPGA)のようなプログラマブルロジックデバイス(PLD)、集積回路(IC、LSI、Application Specific Integrated Circuit(ASIC)など)を含む。
状態モデルは「正常パターン」の一例である。状態モデル更新周期は、「周期」の一例である。データ収集区間は、「区間」の一例である。データ収集部1は、「取得部」の一例である。異常検知部2は、「判定部」の一例である。データストア3は、「記憶部」の一例である。
<クラスタリング>
状態モデル更新周期を分割して得られた複数の区間ごとに収集されたデータの集合を、複数の集合に分類する方法として、例えば、クラスタリングが挙げられる。クラスタリングは、収集されたデータを性質の近い集合(クラスタ)に統計的に分類する。クラスタリングの方法には幾つかの種類があるが、本実施形態においては、一定数のクラスタに分類される方法よりも、収集データの特性に応じた数のクラスタに分類される方法が望ましい。以下の処理例では、異常検知部2等の判定主体が性質の近さを定量的に判定するため、重心からの距離という値が算出される。
状態モデル更新周期を分割して得られた複数の区間ごとに収集されたデータの集合を、複数の集合に分類する方法として、例えば、クラスタリングが挙げられる。クラスタリングは、収集されたデータを性質の近い集合(クラスタ)に統計的に分類する。クラスタリングの方法には幾つかの種類があるが、本実施形態においては、一定数のクラスタに分類される方法よりも、収集データの特性に応じた数のクラスタに分類される方法が望ましい。以下の処理例では、異常検知部2等の判定主体が性質の近さを定量的に判定するため、重心からの距離という値が算出される。
分割後のクラスタ数を適切に決定する手法として、例えば、X−meansが挙げられる。X−meansは、収集データをK個のクラスタに分類するK−meansを拡張した手法である。X−meansは、ベイズ情報量基準(BIC、Bayesian Information Criterion)等のモデル選択を評価する指標が所定の条件を満たすまで、K−meansを再帰的に繰り返す。ベイズ情報量基準は、測定データを統計的に説明するモデルを作成する際、作成されたモデルの測定データに対する適合度を示す指標である。モデル選択を評価する指標は、モデルを作成するためのパラメータ数、標本の大きさまたは観測データの数等によって定義される。
図9は、X−meansによる収集データの分類処理の例を示すフローチャートである。図9に示される分類処理は、例えば、状態モデル更新周期を経過したときに開始される。なお、分類処理の主体は、例えば、異常検知プログラムの実行により異常検知機能2として動作するプロセッサ11、或いは、異常検知機能2として動作するハードウェア回路である。以降のフローチャートの説明では、主体は異常検知部2であるものとする。
OP10では、異常検知部2は、判定対象の周期における収集データからk0個のデータを抽出し、k0個のクラスタとする。OP11では、異常検知部2は、クラスタの重心
からの距離に基づき、残りのデータを各クラスタに分類する。クラスタの重心は、例えば、クラスタに含まれるデータの平均値としてもよい。
からの距離に基づき、残りのデータを各クラスタに分類する。クラスタの重心は、例えば、クラスタに含まれるデータの平均値としてもよい。
OP12では、異常検知部2は、残りのデータを分類した後、新たな重心を求める。異常検知部2は、新たな重心からの距離に基づき、各データが属するクラスタを変更する。OP13では、異常検知部2は、OP12の処理において、クラスタ間でデータの移動があったか否かを判定する。クラスタ間でデータの移動があった場合には(OP13:はい)、処理がOP12に戻る。クラスタ間でデータの移動がなかった場合には(OP13:いいえ)、処理がOP14に進む。
OP14からOP16の処理において、異常検知部2は、ベイズ情報量基準が所定の条件を満たすまで、分割によって生成された各クラスタの分割を繰り返す。なお、モデル選択の評価基準は、ベイズ情報量基準に限られず、他の情報量基準であってもよい。
OP14では、異常検知部2は、ベイズ情報量基準の値に基づいてOP10からOP13までの処理によって生成された各クラスタを、さらに分割するか否かを判定する。クラスタをさらに分割する場合には(OP14:はい)、処理がOP15に進む。クラスタを分割しない場合には(OP14:いいえ)、処理がOP16に進む。
OP15では、異常検知部2は、分割対象のクラスタに対し、k0=2としてOP10からOP13までの処理を行い、クラスタを2分割する。OP16では、異常検知部2は、ベイズ情報量基準が所定の条件を満たすか否かを判定する。ベイズ情報量基準が所定の条件を満たす場合には(OP16:はい)、図9の分類処理が終了する。ベイズ情報量基準が所定の条件を満たさない場合には(OP16:いいえ)、処理がOP14に戻る。
OP10で収集される判定対象の周期における収集データは、「一の周期で取得した前記所定の項目についてのデータ」の一例である。ベイズ情報量基準は、「分割状態を評価する指標」の一例である。
OP10およびOP11の処理は、「一の周期で取得した前記所定の項目についてのデータを所定の数のグループに分類」する処理の一例である。OP12およびOP13の処理は、「各グループに属するデータの平均値との差分に基づいて各データが属するグループを変更」する処理の一例である。OP14の処理は、「分割状態を評価する指標の値に基づいて、前記所定の数のグループのそれぞれをさらに分割するか否か判定」する処理の一例である。OP15およびOP16の処理は、「分割すると判定されたグループについて、前記分割状態を評価する指標の値が所定の条件を充足するまで、前記分割を繰り返す」処理の一例である。
図9に示されるX−meansは一例に過ぎず、収集データを複数の集合に分類する方法は、X−meansの種々の変形例であってもよい。例えば、繰り返されるクラスタの分割のうち、適切でない分割については併合する方法が知られている。また、収集データを複数の集合に分類する方法は、X−meansに限られず、データの特性に応じて適切な数のクラスタに分類される方法であればよい。
<状態モデルの生成>
図10から図13は、状態モデルの生成について説明するための図である。図10は、収集データのデータ構成の一例を示す図である。図10の例は、ある処理装置4において、2015年7月30日1時00分から始まる状態モデル更新周期においてデータ収集区間の30秒ごとに計測されたCPU使用率のデータを示す。
図10から図13は、状態モデルの生成について説明するための図である。図10は、収集データのデータ構成の一例を示す図である。図10の例は、ある処理装置4において、2015年7月30日1時00分から始まる状態モデル更新周期においてデータ収集区間の30秒ごとに計測されたCPU使用率のデータを示す。
図11Aおよび図11Bは、収集したデータに基づき、クラスタリングによって更新周期ごとに生成された状態モデルの例を示す。各更新周期で収集されたデータは、データのばらつき等の特性に応じた数のグループに分類される。以下、グループは単に「状態」とも呼ばれる。図11A及び11Bの例では、状態モデル更新周期は1時間である。例えば、10時の状態モデルは、10時から11時までの1時間に収集したデータから生成される状態モデルである。
図11Aは、10時の状態モデルの例を示す図である。10時から11時までの周期に収集されたCPU使用率のデータは、CPU使用率が0−25%、26−50%、51−75%、76−100%の範囲の値を取る4つの状態に分類される。なお、CPU使用率のデータは、整数値で示されるものとして説明される。
図11Bは、11時の状態モデルの例を示す図である。11時から12時までの周期に収集されたCPU使用率のデータは、CPU使用率が0−35%、36−70%、71−100%の範囲の値を取る3つの状態に分類される。
図12Aは、発生頻度を含む10時の状態モデルの例を示す図である。以下の説明において、状態ごとのデータの発生頻度は、1つの状態モデル更新周期に含まれる各データ収集区間で収集したデータの数に対する、当該状態に属するデータの数の割合とする。以下、状態ごとのデータの発生頻度は、単に「状態の発生頻度」とも呼ばれる。
図12Aの例において、10時の状態モデル更新周期が90のデータ収集区間に等分されている場合、90個のデータが収集される。収集されたCPU使用率のデータのうち、CPU使用率が0−25%であるデータの数は、75個であったとする。また、CPU使用率が26−50%、51−75%、76−100%であるデータの数は、それぞれ7個、7個、1個であったとする。この場合、CPU使用率が0−25%となるデータが属する状態の発生頻度は、(75/90)×100より約83%となる。同様に、CPU使用率が26−50%、51−75%、76−100%となるデータが属する状態の発生頻度は、それぞれ約8%、約8%、約1%となる。
図12Bは、発生頻度を含む11時の状態モデルの例を示す図である。図12Bの例において、11時の状態モデル更新周期が90のデータ収集区間に等分されている場合、90個のデータが収集される。収集されたCPU使用率のデータのうち、CPU使用率が0−35%であるデータの数は、75個であったとする。また、CPU使用率が36−70%、71−100%であるデータの数は、それぞれ11個、4個であったとする。この場合、CPU使用率が0−35%となるデータが属する状態の発生頻度は、(75/90)×100より約83%であることを示す。同様に、CPU使用率が36−70%、71−100%となるデータが属する状態の発生頻度は、それぞれ約12%、約5%となる。
図13は、状態モデルのデータ構成の例を示す図である。図13は、図12Aおよび図12Bの状態モデルのデータ構成を示す。各状態の発生頻度に対するデータ構成は、「p−q%:(x%,y%)」の形式で示される。p−q%は、CPU使用率がp−q%のデータを含む状態であることを示す。括弧内の1つ目の構成要素であるx%は、p−q%の状態の発生頻度である。括弧内の2つ目の構成要素であるy%は、異常判定時に使用される発生頻度のカウンタである。判定対象の周期において、データ収集区間ごとにデータが収集されると、収集されたデータが属する状態の発生頻度が算出され、算出された発生頻度はカウンタy%に設定される。カウンタのy%は、状態モデル生成時には0%に初期化される。具体的には、図13において、10時の状態モデルにおけるCPU使用率が0−25%の状態は、発生頻度が83%であり、「0−25%:(83%,0%)」と示される。
<異常判定>
図14および図15は、異常判定について説明するための図である。図14は、状態モデル更新周期における異常判定の例を示す図である。図14では、図12Aに示す10時の状態モデルとの比較により、異常が発生したか否かが判定される。
図14および図15は、異常判定について説明するための図である。図14は、状態モデル更新周期における異常判定の例を示す図である。図14では、図12Aに示す10時の状態モデルとの比較により、異常が発生したか否かが判定される。
図14において、状態モデル更新周期は、T1からT120の120のデータ収集区間に等分される。異常検知部2は、データ収集区間ごとに、収集したデータが属する状態の発生頻度を算出し異常が発生した否かを判定する。異常検知部2は、算出された発生頻度が、状態モデルにおいて対応する状態の発生頻度を超えた場合に異常と判定する。
異常か否かの判定は、状態モデルにおいて対応する状態の発生頻度を超えたか否かによる判定に限られない。異常検知部2は、例えば、所定の閾値xに対し、(状態モデルにおいて対応する状態の発生頻度+x)%以上となった場合に異常と判定してもよい。また、異常検知部2は、所定の閾値yに対し、{(状態モデルにおいて対応する状態の発生頻度)×(1+y/100)}%以上となった場合に異常と判定してもよい。閾値x、yは、例えば、データ収集区間の数、または収集データのばらつき等の特性を考慮して設定することができる。
異常が発生したか否かは、状態モデル更新周期の満了時点においても判定される。発生頻度が許容範囲を下回るか否かは、状態モデル更新周期の満了時点に判定されるためである。状態モデル更新周期の満了時点において、異常検知部2は、各状態の発生頻度を、状態モデルにおいて各々に対応する状態の発生頻度と比較する。異常検知部2は、状態モデル更新周期の満了時点における各状態の発生頻度が、状態モデルにおいて各々に対応する状態の発生頻度より低い状態が1以上ある場合に異常と判定する。
状態の発生頻度が、状態モデルにおいて対応する状態の発生頻度より低いか否かは、例えば、所定の閾値xに対し、(状態モデルにおいて対応する状態の発生頻度−x)%以下であるか否かにより判定してもよい。また、状態の発生頻度が状態モデルにおいて対応する状態の発生頻度より低いか否かは、所定の閾値yに対し、状態の発生頻度が{(状態モデルにおいて対応する状態の発生頻度)×(1−y/100)}%以下であるか否かにより判定してもよい。閾値x、yは、例えば、データ収集区間の数、または収集データのばらつき等の特性を考慮して設定することができる。
以下、図14における異常判定の具体例が説明される。図14では、図12Aに示す10時の状態モデルとの比較により、異常が発生したか否かが判定される。T4のデータ収集後の時点で、0%−25%のデータを含む状態に属するデータはT1、T2、T4であり、データ収集区間T1からT120において少なくとも3回発生したことになる。したがって、T4のデータ収集後の時点での発生頻度は(3/120)×100の計算により2.5%となる。図12Aの状態モデルにおいて、0%−25%のデータを含む状態の発生頻度は83%であり、T4のデータ収集後の発生頻度は83%より低いため、正常と判定される。
また、T8のデータ収集後の時点で、76%−100%のデータを含む状態に属するデータはT3、T8であり、データ収集区間T1からT120において少なくとも2回発生したことになる。したがって、T8のデータ収集後の時点での発生頻度は(2/120)×100の計算により約1.7%となる。図12Aの状態モデルにおいて、76%−100%のデータを含む状態の発生頻度は1%であり、T8のデータ収集後の発生頻度は1%以上となるため、異常と判定される。
さらに、T120のデータ収集後、すなわち状態モデル更新周期満了後の時点で、51%−75%のデータを含む状態の発生頻度は6%であったとする。図12Aの状態モデルにおいて、51%−75%のデータを含む状態の発生頻度は8%であり、状態モデル更新周期満了後の発生頻度は8%より低いため、異常と判定される。
検知された異常に関する情報は、データストア3に記憶される。データストア3に記憶された異常に関する情報は、所定の形式で出力装置15に出力され、ユーザに通知される。図15は、検知された異常に関する情報のデータ構成の例を示す図である。
図15の例は、異常検知対象のシステムにおいてサーバ1およびサーバ2等のリソースごとに、検知された異常に関する情報を示す。サーバ1では、2015年7月30日1時7分30秒、2015年7月30日1時39分00秒、2015年7月30日2時00分00秒に、CPU使用率について異常が検知されたことが示される。また、サーバ1では、2015年7月30日1時12分30秒に、メモリ使用率について異常が検知されたことが示される。
なお、検知された異常に関する情報のデータ構成は、これに限られない。検知された異常に関する情報のデータ構成は、異常検知時のCPU使用率、異常検知時の発生頻度、正常状態での発生頻度等の情報を含んでもよい。
<処理の流れ>
図16は、状態モデルの生成処理の例を示すフローチャートである。状態モデルは、異常検知対象のシステム等の運用開始時または各種設定の変更時等においてユーザからの指示を受けた時等のタイミングで生成される。図16に示される処理は、例えば、ユーザから状態モデル生成の指示があったときに開始される。したがって、本実施形態において状態モデルが生成されるタイミングに限定がある訳ではない。
図16は、状態モデルの生成処理の例を示すフローチャートである。状態モデルは、異常検知対象のシステム等の運用開始時または各種設定の変更時等においてユーザからの指示を受けた時等のタイミングで生成される。図16に示される処理は、例えば、ユーザから状態モデル生成の指示があったときに開始される。したがって、本実施形態において状態モデルが生成されるタイミングに限定がある訳ではない。
OP20では、異常検知部2は、現時点が状態モデル更新周期の満了時点であるか否かを判定する。状態モデル更新周期の長さは、あらかじめデータストア3に定義してもよく、図16に示す処理の開始時にユーザにより指定されてもよい。また、状態モデル更新周期の満了時点は、図16に示す処理の開始時点からの経過時間が、状態モデル更新周期の長さの整数倍となる時点である。現時点が状態モデル更新周期の満了時点である場合には(OP20:はい)、処理がOP21に進む。現時点が状態モデル更新周期の満了時点でない場合には(OP20:いいえ)、異常検知部2は、状態モデル更新周期の満了時点まで、所定の間隔でOP20を繰り返す。
OP21では、異常検知部2は、データストア3から、満了した状態モデル更新周期における収集データを抽出する。データ収集部1は、処理装置4から、状態モデル更新周期を複数に分割したデータ収集区間ごとにリソースの設定または状態を示すデータを定期的に収集し、データストア3に格納している。異常検知部2は、満了した状態モデル更新周期における、異常検知対象である処理装置4の収集データをデータストア3から抽出すればよい。OP22では、異常検知部2は、抽出したデータを分類し、複数の状態を生成する。
OP23では、異常検知部2は、状態ごとの発生頻度を計算する。OP24では、異常検知部2は、OP22で生成した複数の状態を、1つの状態モデルとしてデータストア3に格納する。異常検知部2は、複数の状態とともに、OP23で計算した状態ごとの発生頻度もデータストア3に格納する。さらに、異常検知部2は、当該状態モデル更新周期の開始および終了の日時および時刻等の情報も、データストア3に格納する。処理がOP20に戻り、状態モデル更新周期ごとに状態モデルの生成処理が繰り返される。状態モデル
の生成は、例えば、ユーザの指示により終了する。
の生成は、例えば、ユーザの指示により終了する。
OP21の処理は、「処理を繰り返して実行する処理装置から、一の周期を複数に分割した区間ごとに前記処理装置の所定の項目についてのデータを取得」する処理の一例である。OP22の処理は、「前記一の周期の前記区間ごとに取得した前記所定の項目についてのデータを所定の分類基準で複数のグループに分類」する処理の一例である。OP23およびOP24の処理は、「前記グループごとの前記一の周期におけるデータの発生頻度を記憶」する処理の一例である。
図17は、実施形態1の異常判定処理の例を示すフローチャートである。図17に示される処理は、例えば、ユーザから異常検知対象の処理装置4に対する異常検知の指示を受けたときに開始される。OP30では、異常検知部2は、状態モデル更新周期の満了時点であるか否かを判定する。状態モデル更新周期の満了時点である場合には(OP30:はい)、処理がOP31に進む。状態モデル更新周期の満了時点でない場合には(OP30:いいえ)、処理がOP32に進む。
OP31では、異常検知部2は、所定の条件を満たす状態モデルを、異常判定の基準となる状態モデルとしてデータストア3から抽出する。基準となる状態モデルは、判定対象の周期における異常判定処理において、判定対象の周期で収集されたデータの状態ごとの発生頻度と比較される正常パターンの状態モデルである。異常検知部2は、所定の条件を満たす状態モデルとして、例えば、判定対象の周期と同じ曜日の同じ時間の収集データから生成された状態モデルを抽出することができる。
OP32では、異常検知部2は、現時点がデータ収集区間の満了時点であるか否かを判定する。現時点がデータ収集区間の満了時点である場合には(OP32:はい)、処理がOP33に進む。現時点がデータ収集区間の満了時点でない場合には(OP32:いいえ)、処理がOP34に進む。
OP33では、異常検知部2は、発生頻度が、OP31で抽出した状態モデルの対応する状態の発生頻度と比較して、過多であるか否かを判定する。発生頻度が過多であるとは、発生頻度が状態モデルの発生頻度よりも許容範囲を超えて高くなり、異常と判定される場合をいう。発生頻度が過多である場合には(OP33:はい)、処理がOP37に進む。発生頻度が過多でない場合には(OP33:いいえ)、処理がOP34に進む。
なお、発生頻度は、満了したデータ収集区間のデータを含む状態の発生頻度であり、異常検知部2により算出される。算出された発生頻度は、当該状態の現時点での発生頻度としてデータストア3に保持される。以降の処理においても、異常検知部2は、算出した発生頻度をデータストア3に保持するものとする。
OP34では、異常検知部2は、現時点が状態モデル更新周期の満了時点であるか否かを判定する。現時点が状態モデル更新周期の満了時点である場合には(OP34:はい)、処理がOP35に進む。現時点が状態モデル更新周期の満了時点でない場合には(OP34:いいえ)、処理がOP36に進む。
OP35では、異常検知部2は、OP33の処理を実行していない場合、状態モデル更新周期の満了時点のデータ収集区間におけるデータを収集し、収集したデータを含む状態の発生頻度を算出する。異常検知部2は、各状態の発生頻度をOP31で抽出した状態モデルの対応する状態の発生頻度とそれぞれ比較して、過少であるか否かを判定する。発生頻度が過少であるとは、発生頻度が状態モデルの発生頻度よりも許容範囲を超えて低くなり、異常と判定される場合をいう。発生頻度が過少となる状態が1以上ある場合には(O
P35:はい)、処理がOP37に進む。発生頻度が過少となる状態がない場合には(OP35:いいえ)、処理がOP36に進む。
P35:はい)、処理がOP37に進む。発生頻度が過少となる状態がない場合には(OP35:いいえ)、処理がOP36に進む。
OP36では、異常検知部2は正常と判定し、処理がOP30に戻る。OP37では、異常検知部2は異常と判定し、処理がOP30に戻る。OP36およびOP37による判定結果は、データストア3に保持される。処理がOP30に戻ると、異常判定処理が繰り返される。図17に示される異常判定処理は、例えば、ユーザの指示により終了する。
OP33およびOP35の処理は、「判定対象の周期において前記区間ごとに前記所定の項目についてのデータを取得し、前記グループごとの前記判定対象の周期におけるデータの発生頻度が、前記一の周期におけるデータの発生頻度に基づく許容範囲を逸脱した場合に、前記処理装置に異常があると判定する」処理の一例である。
<実施形態1の作用効果>
異常検知装置10は、状態モデル更新周期における収集データを、データの特性に応じて適切な数のグループに分類し、各グループに属するデータの発生頻度を算出することで、発生頻度に基づく状態モデルを生成する。算出された発生頻度を、異常か否かを判定する閾値とすることで、離散的な値を取る収集データに対しても、適切な状態モデルが生成される。異常検知装置10は、判定対象の周期における各グループの発生頻度を、発生頻度に基づく状態モデルにおける発生頻度と比較する。したがって、異常検知装置10は、平均値による正常モデルとの比較により異常を検知する場合よりも、処理を繰返して実行する処理装置4の異常を、より正確に検知することができる。
異常検知装置10は、状態モデル更新周期における収集データを、データの特性に応じて適切な数のグループに分類し、各グループに属するデータの発生頻度を算出することで、発生頻度に基づく状態モデルを生成する。算出された発生頻度を、異常か否かを判定する閾値とすることで、離散的な値を取る収集データに対しても、適切な状態モデルが生成される。異常検知装置10は、判定対象の周期における各グループの発生頻度を、発生頻度に基づく状態モデルにおける発生頻度と比較する。したがって、異常検知装置10は、平均値による正常モデルとの比較により異常を検知する場合よりも、処理を繰返して実行する処理装置4の異常を、より正確に検知することができる。
異常検知装置10は、判定対象の周期における区間ごとに、グループごとの判定対象の周期におけるデータの発生頻度が、状態モデルにおける発生頻度の許容範囲の上限値を超えるか否かの異常判定を実施する。したがって、異常検知装置10は、区間ごとにリアルタイムに異常を検知することができる。
異常検知装置10は、判定対象の周期の満了時に、複数のグループのうち1以上のグループの判定対象の周期におけるデータの発生頻度が、状態モデルにおける発生頻度の許容範囲の下限値を下回るか否かの異常判定を実施する。したがって、異常検知装置10は、発生頻度が過少となる場合の異常も検知することができる。
異常検知装置10は、一つの周期で取得したデータを所定の数のグループに分類し、各グループに属するデータの平均値との差分に基づいて各データが属するグループを変更する。さらに、異常検知装置10は、分割状態を評価する指標の値に基づいて、当該所定の数のグループのそれぞれをさらに分割するか否か判定し、分割すると判定されたグループについて、分割状態を評価する指標の値が所定の条件を充足するまで、分割を繰り返す。これにより、異常検知装置10は、状態モデルの生成する際、収集データをデータの特性に応じた数のグループに分類することにより、データのばらつき等の特性を示す状態モデルを生成することができる。
〔実施形態2〕
実施形態1の異常判定処理において、異常検知装置10は、予め定められた所定の条件を満たす状態モデルを、異常判定の基準となる状態モデルとする。一方、実施形態2では、異常判定処理において、過去の複数の状態モデルから、時間帯、曜日等が共通する状態モデル間の類似の程度に基づいて、基準となる状態モデルが選択される。
実施形態1の異常判定処理において、異常検知装置10は、予め定められた所定の条件を満たす状態モデルを、異常判定の基準となる状態モデルとする。一方、実施形態2では、異常判定処理において、過去の複数の状態モデルから、時間帯、曜日等が共通する状態モデル間の類似の程度に基づいて、基準となる状態モデルが選択される。
類似の程度(以下、類似度ともいう)は、例えば、各状態モデルに対応する状態モデル更新周期で収集されたデータを、収集されたデータの観測値に基づいて昇順または降順に
並べ替え、状態モデル間の観測値の差の絶対値の合計に基づいて定義してもよい。以下、本実施形態では、差の絶対値の合計を単に「差の合計」と呼ぶ。この場合、差の合計が小さいほど類似度は高く、差の合計が大きいほど類似度は低くなる。また、類似度は、クラスタリングにより分類された状態の数や各状態に属するデータの範囲についての状態モデル間の差に基づいて定義してもよい。
並べ替え、状態モデル間の観測値の差の絶対値の合計に基づいて定義してもよい。以下、本実施形態では、差の絶対値の合計を単に「差の合計」と呼ぶ。この場合、差の合計が小さいほど類似度は高く、差の合計が大きいほど類似度は低くなる。また、類似度は、クラスタリングにより分類された状態の数や各状態に属するデータの範囲についての状態モデル間の差に基づいて定義してもよい。
実施形態2における異常検知装置10のハードウェア構成および各構成要素は、実施形態1と同じであるため、その説明は省略される。また、実施形態2における状態モデルの生成方法は、実施形態1と同じであるため、その説明は省略される。
<状態モデルの選択>
図18Aおよび図18Bは、状態モデルの選択の例を示す図である。ここでは、状態モデル更新周期は1時間とする。また、9時の周期に対して基準となる状態モデルが選択される例が説明される。状態モデルの選択方法は、図18Aおよび図18Bに示される方法に限られない。状態モデルの選択方法は、図18Aおよび図18Bのような時間帯に着目する方法ではなく、曜日や月の同一性に着目した選択方法とすることもできる。
図18Aおよび図18Bは、状態モデルの選択の例を示す図である。ここでは、状態モデル更新周期は1時間とする。また、9時の周期に対して基準となる状態モデルが選択される例が説明される。状態モデルの選択方法は、図18Aおよび図18Bに示される方法に限られない。状態モデルの選択方法は、図18Aおよび図18Bのような時間帯に着目する方法ではなく、曜日や月の同一性に着目した選択方法とすることもできる。
図18Aは、異常検知装置10が直近の連続する周期の状態モデルから、基準となる状態モデルを選択する例を示す。ここでは、現在時刻を本日の9時と想定して、直近の連続する周期の状態モデルから、基準となる状態モデルが選択される。異常検知装置10は、本日の8時の状態モデルと、本日の8時から遡って、1時間前の7時から1日前の9時までの各状態モデルとの類似度を求め、最も類似度が高い状態モデルを特定する。特定されたモデルとの類似度は、S1とする。異常検知装置10は、8時と最も類似する周期の次の周期の状態モデルを、今後観測される9時の周期に対する状態モデルとして選択することができる。例えば、8時と最も類似する周期が11時であるとすると、12時のモデルが、9時の周期に対する状態モデルとして選択される。
図18Bは、異常検知装置10が同じ時間帯の周期の状態モデルから、基準となる状態モデルを選択する例を示す。異常検知装置10は、現在時刻から遡って、1日前の9時の状態モデルと、2日前の9時の状態モデルとの類似度S2を求める。図18Aで求めた類似度S1よりも類似度S2のほうが高い場合、異常検知装置10は、1日前の9時の状態モデルを、9時の周期に対する状態モデルとして選択することができる。
<処理の流れ>
実施形態2における状態モデルの生成処理の例は、実施形態1と同じであるため、その説明は省略される。図19は、実施形態2の異常判定処理の例を示すフローチャートである。実施形態2の異常判定処理は、状態モデルを選択する処理以外は、実施形態1と同様である。具体的には、図19のOP40、OP42からOP47までの処理は、それぞれ図17のOP30、OP32からOP37までの処理と同じであるため、共通する部分の説明は省略される。
実施形態2における状態モデルの生成処理の例は、実施形態1と同じであるため、その説明は省略される。図19は、実施形態2の異常判定処理の例を示すフローチャートである。実施形態2の異常判定処理は、状態モデルを選択する処理以外は、実施形態1と同様である。具体的には、図19のOP40、OP42からOP47までの処理は、それぞれ図17のOP30、OP32からOP37までの処理と同じであるため、共通する部分の説明は省略される。
OP40において、状態モデル更新周期の満了時点である場合には(OP40:はい)、処理がOP411に進む。状態モデル更新周期の満了時点でない場合には(OP40:いいえ)、処理がOP42に進む。
OP411では、異常検知部2は、状態モデルの選択方法に応じて、複数の状態モデルをデータストア3から抽出する。OP412では、異常検知部2は、異常判定の基準となる状態モデルを選択する。処理がOP42に進む。以降の処理は実施形態1と同じである。
OP412は、「記憶された複数の正常パターンから、所定の条件を満たす正常パターンを選択」する処理の一例である。OP43およびOP45の処理は、「前記判定対象の周期において前記区間ごとに前記所定の項目についてのデータを取得し、前記グループごとの前記判定対象の周期におけるデータの発生頻度が、選択された前記正常パターンに基づく許容範囲を逸脱した場合に、前記処理装置に異常があると判定する」処理の一例である。
<実施形態2の作用効果>
異常検知装置10は、実施形態1と同様に、状態モデル更新周期における収集データを、データの特性に応じた数のグループに分類し、状態モデルを生成する。実施形態2では、過去の複数の状態モデルから、所定の条件を満たす正常パターンを、基準となる状態モデルとして選択する。これにより、データの特性に応じた適切な状態モデルが選択され、異常検知装置10は、特定の状態モデルとの比較により異常を検知する場合よりも、処理を繰り返して実行する処理装置4の異常を、より正確に検知することができる。
異常検知装置10は、実施形態1と同様に、状態モデル更新周期における収集データを、データの特性に応じた数のグループに分類し、状態モデルを生成する。実施形態2では、過去の複数の状態モデルから、所定の条件を満たす正常パターンを、基準となる状態モデルとして選択する。これにより、データの特性に応じた適切な状態モデルが選択され、異常検知装置10は、特定の状態モデルとの比較により異常を検知する場合よりも、処理を繰り返して実行する処理装置4の異常を、より正確に検知することができる。
また、異常検知装置10は、所定の条件として、時間帯、曜日等が共通する状態モデル間の類似度に基づいて、基準となる状態モデルを選択する。この場合、周期的な値をとる収集データに対してより適切な状態モデルが選択され、異常検知装置10は、時間帯、曜日等に応じた処理を繰り返して実行する処理装置4の異常を、より正確に検知することができる。
例えば、異常検知装置10は、複数の周期を含む所定期間前までのそれぞれの周期の正常パターンから、直近の周期の正常パターンに最も類似する正常パターンの次の周期の正常パターンを、基準となる状態モデルとして選択する。これにより、異常検知装置10は、直近の周期から予測される適切な状態モデルを選択することができる。
また、異常検知装置10は、所定期間ごとに記憶された過去の正常パターンのうち、連続する2つの過去の正常パターン間の類似度(図18BのS2)と、直近の周期の正常パターンと当該所定期間内の正常パターンのうち直近の周期の正常パターンに最も類似する正常パターンとの類似度(図18AのS1)とを比較する。異常検知装置10は、類似度S2が類似度S1より高い場合に、所定期間ごとに記憶された最新の正常パターンを選択することで、時間帯、曜日等が共通する適切な状態モデルを選択することができる。
さらに、異常検知装置10は、状態モデル更新周期で取得したデータを昇順または降順に並べ替え、データ収集区間ごとのデータの差分の合計が小さいほど類似度が高いと判定する。このため、異常検知装置10は、状態モデル更新周期間におけるデータのばらつき等の特性に応じた類似度を算出し、より適切な状態モデルを選択することができる。
〔実施形態3〕
実施形態1および実施形態2では、異常検知装置10は、判定対象の周期における状態ごとの発生頻度を、状態モデルにおける発生頻度と比較することにより、異常か否かを判定する。実施形態3では、発生頻度に加えて、判定対象の周期における状態間の遷移率を、状態モデルにおける遷移率の許容範囲と比較することにより、異常か否かを判定する。
実施形態1および実施形態2では、異常検知装置10は、判定対象の周期における状態ごとの発生頻度を、状態モデルにおける発生頻度と比較することにより、異常か否かを判定する。実施形態3では、発生頻度に加えて、判定対象の周期における状態間の遷移率を、状態モデルにおける遷移率の許容範囲と比較することにより、異常か否かを判定する。
実施形態3における異常検知装置10のハードウェア構成および機能構成は、実施形態1と同じであるため、その説明は省略される。また、実施形態3における状態モデルを選択する処理は、実施形態2と同じであるため、その説明は省略される。
<状態モデルの生成>
図20Aから図21は、実施形態3における状態モデルの生成について説明するための
図である。実施形態3における状態モデルは、各状態の発生頻度の他、状態から状態への遷移率の情報を含む。
図20Aから図21は、実施形態3における状態モデルの生成について説明するための
図である。実施形態3における状態モデルは、各状態の発生頻度の他、状態から状態への遷移率の情報を含む。
図20Aは、遷移率を含む10時の状態モデルの例を示す図である。以下の説明において、状態間の遷移率は、状態モデル更新周期における状態遷移の回数に対する、特定の状態間で発生する遷移回数の割合として算出される。以下、CPU使用率が0−25%の状態は、状態(0−25%)と示される。
図20Aの例は、状態(0−25%)から状態(0−25%)への遷移率が25%であることを示す。同様に、状態(26−50%)から状態(0−25%)、状態(51−75%)から状態(0−25%)、状態(76−100%)から状態(0−25%)の遷移率は、それぞれ35%、35%、5%である。なお、各状態の発生頻度は、図12Aと同じである。
図20Bは、遷移率を含む11時の状態モデルの例を示す図である。図20Bの例は、状態(0−35%)から状態(0−35%)への遷移率が25%であることを示す。同様に、状態(0−35%)から状態(36−70%)、状態(36−70%)から状態(0−35%)、状態(71−100%)から状態(0−35%)、状態(36−70%)から状態(71−100%)の遷移率は、それぞれ15%、25%、5%、30%である。なお、各状態の発生頻度は、図12Bと同じである。
図21は、実施形態3における状態モデルのデータ構成の例を示す図である。図21は、図20Aおよび図20Bの状態モデルのデータ構成を示す。発生頻度のデータ構成は、図13と同じであるため、その説明は省略される。
状態間の遷移率に対するデータ構成は、「(p1−q1%,p2−q2%):(s%,t%)」の形式で示される。1番目の括弧で示される(p1−q1%,p2−q2%)は、状態(p1−q1%)から状態(p2−q2%)への状態遷移を示す。2番目の括弧内の1つ目の構成要素であるs%は、状態(p1−q1%)から状態(p2−q2%)への遷移率である。2番目の括弧内の2つ目の構成要素であるt%は、異常判定時に使用される遷移率のカウンタである。判定対象の周期において、データ収集区間ごとに、区間の前後における状態間の遷移率が算出され、算出された遷移率はカウンタt%に設定される。カウンタt%は、状態モデル生成時には0%に初期化される。具体的には、図21において、10時の状態モデルにおける状態(0−25%)から状態(0−25%)への遷移は、遷移率が25%であり、「(0−25%,0−25%):(25%,0%)」と示される。
<異常判定>
図22は、実施形態3の状態モデル更新周期における異常判定の例を示す図である。図22では、図20Bに示す11時の状態モデルとの比較により、異常が発生したか否かが判定される。
図22は、実施形態3の状態モデル更新周期における異常判定の例を示す図である。図22では、図20Bに示す11時の状態モデルとの比較により、異常が発生したか否かが判定される。
図22において、状態モデル更新周期は、T1からT120の120のデータ収集区間に等分される。異常検知部2は、データ収集区間ごとに、遷移前後の状態間の遷移率を算出し異常が発生した否かを判定する。異常検知部2は、算出された遷移率が、状態モデルにおいて対応する状態間の遷移率を超えた場合に異常と判定することができる。
異常か否かの判定は、状態モデルにおいて対応する状態間の遷移率を超えたか否かによる判定に限られない。異常検知部2は、例えば、所定の閾値xに対し、(状態モデルの遷移率+x)%以上となった場合に異常と判定してもよい。また、異常検知部2は、所定の
閾値yに対し、{(状態モデルにおいて対応する状態間の遷移率)×(1+y/100)}%以上となった場合に異常と判定してもよい。閾値x、yは、例えば、データ収集区間の数、または収集データの変化の度合い等の特性を考慮して設定することができる。
閾値yに対し、{(状態モデルにおいて対応する状態間の遷移率)×(1+y/100)}%以上となった場合に異常と判定してもよい。閾値x、yは、例えば、データ収集区間の数、または収集データの変化の度合い等の特性を考慮して設定することができる。
異常が発生したか否かは、状態モデル更新周期の満了時点においても判定される。遷移率が許容範囲を下回るか否かは、状態モデル更新周期の満了時点に判定されるためである。状態モデル更新周期の満了時点において、異常検知部2は、各状態間の遷移率を、状態モデルにおいて各々に対応する状態間の遷移率と比較する。異常検知部2は、状態モデル更新周期の満了時点における各状態間の遷移率が、状態モデルにおいて各々に対応する状態間の遷移率より低い状態が1以上ある場合に異常と判定することができる。
状態間の遷移率が状態モデルにおいて対応する状態間の遷移率より低いか否かは、例えば、所定の閾値xに対し、(状態モデルにおいて対応する状態間の遷移率−x)%以下であるか否かにより判定してもよい。また、状態間の遷移率が状態モデルにおいて対応する状態間の遷移率より低いか否かは、所定の閾値yに対し、状態間の遷移率が{(状態モデルにおいて対応する状態間の遷移率)×(1−y/100)}%以下であるか否かにより判定してもよい。閾値x、yは、例えば、データ収集区間の数、または収集データの変化の度合い等の特性を考慮して設定することができる。
以下、図22における異常判定の具体例が説明される。T1からT2のデータ収集区間になった時点で、状態(0%−35%)から状態(0%−35%)への遷移が少なくとも1回発生したことになる。したがって、T1からT2のデータ収集区間になった時点での遷移率は(1/120)×100の計算により約0.8%となる。図20Bの状態モデルにおいて、状態(0%−35%)から状態(0%−35%)への遷移率は83%であり、T1からT2のデータ収集区間になった時点の遷移率は83%より低いため、正常と判定される。
また、T2からT3のデータ収集区間になった時点で、状態(0%−35%)から状態(71%−100%)への遷移が少なくとも1回発生したことになる。したがって、T2からT3のデータ収集区間になった時点での遷移率は(1/120)×100の計算により約0.8%となる。図20Bの状態モデルにおいて、状態(0%−35%)から状態(71%−100%)への遷移率は0%であり、T2からT3のデータ収集区間になった時点の遷移率は0%以上となるため、異常と判定される。
さらに、T120のデータ収集後、すなわち状態モデル更新周期満了後の時点で、状態(0%−35%)から状態(0%−35%)への遷移率は15%であったとする。図20Bの状態モデルにおいて、状態(0%−35%)から状態(0%−35%)への遷移率は25%であり、状態モデル更新周期満了後の遷移率は25%より低いため、異常と判定される。
<処理の流れ>
図23は、実施形態3の状態モデルの生成処理の例を示すフローチャートである。図23は、実施形態3の状態モデルの生成処理の例を示すフローチャートである。実施形態3の状態モデルの生成処理は、遷移率を計算する処理以外は、実施形態1と同様である。具体的には、図23のOP50からOP53の処理は、それぞれ図16のOP20からOP23までの処理と同じであるため、共通する部分の説明は省略される。
図23は、実施形態3の状態モデルの生成処理の例を示すフローチャートである。図23は、実施形態3の状態モデルの生成処理の例を示すフローチャートである。実施形態3の状態モデルの生成処理は、遷移率を計算する処理以外は、実施形態1と同様である。具体的には、図23のOP50からOP53の処理は、それぞれ図16のOP20からOP23までの処理と同じであるため、共通する部分の説明は省略される。
OP53において、状態ごとの発生頻度が計算されると、処理がOP54に進む。OP54では、異常検知部2は、各状態間の遷移率を計算する。
OP55では、異常検知部2は、OP51からOP54までの処理で生成した状態モデルを、データストア3へ保存する。処理がOP50に戻り、状態モデルの生成処理が繰り返される。状態モデルの生成は、例えば、ユーザの指示により終了する。
OP51の処理は、「処理を繰り返して実行する処理装置から、一の周期を複数に分割した区間ごとに前記処理装置の所定の項目についてのデータを取得」する処理の一例である。OP52の処理は、「前記一の周期の前記区間ごとに取得した前記所定の項目についてのデータを所定の分類基準で複数のグループに分類」する処理の一例である。OP54の処理は、「前記正常パターンにおける前記複数のグループ間の遷移率をさらに記憶」する処理の一例である。
図24は、実施形態3の異常判定処理の例を示すフローチャートである。図24に示される処理は、例えば、ユーザから異常検知対象の処理装置4に対する異常検知の指示があったときに開始される。
OP60では、異常検知部2は、現時点が状態モデル更新周期の満了時点であるか否かを判定する。現時点が状態モデル更新周期の満了時点である場合には(OP60:はい)、処理がOP61に進む。現時点が状態モデル更新周期の満了時点でない場合には(OP60:いいえ)、処理がOP63に進む。
OP61では、異常検知部2は、状態モデルの選択方法に応じて、複数の状態モデルをデータストア3から抽出する。OP62では、異常検知部2は、異常判定の基準となる状態モデルを選択する。
OP63では、異常検知部2は、現時点がデータ収集区間の満了時点であるか否かを判定する。現時点がデータ収集区間の満了時点である場合には(OP63:はい)、処理がOP64に進む。現時点がデータ収集区間の満了時点でない場合には(OP63:いいえ)、処理がOP66に進む。
OP64では、異常検知部2は、満了したデータ収集区間のデータを収集し、収集したデータを含む状態の発生頻度を算出する。異常検知部2は、算出された発生頻度が、OP62で選択した状態モデルの対応する状態の発生頻度と比較して、過多であるか否かを判定する。算出された発生頻度が過多である場合には(OP64:はい)、処理がOP70に進む。算出された発生頻度が過多でない場合には(OP64:いいえ)、処理がOP65に進む。
OP65では、異常検知部2は、OP63のデータ収集区間後に生じる状態間遷移についての遷移率を算出する。算出された遷移率は、当該状態 間遷移の現時点での遷移率と
してデータストア3に保持される。以降の処理においても、異常検知部2は、算出された遷移率をデータストア3に保持するものとする。
してデータストア3に保持される。以降の処理においても、異常検知部2は、算出された遷移率をデータストア3に保持するものとする。
異常検知部2は、算出された遷移率が、OP62で選択した状態モデルの対応する状態間遷移の遷移率と比較して、過多であるか否かを判定する。算出された遷移率が過多である場合には(OP65:はい)、処理がOP70に進む。算出された遷移率が過多でない場合には(OP65:いいえ)、処理がOP66に進む。
OP66では、異常検知部2は、現時点が状態モデル更新周期の満了時点であるか否かを判定する。現時点が状態モデル更新周期の満了時点である場合には(OP66:はい)、処理がOP67に進む。現時点が状態モデル更新周期の満了時点でない場合には(OP66:いいえ)、処理がOP69に進む。
OP67では、異常検知部2は、OP63のデータ収集区間で収集したデータを含む状態の発生頻度を算出する。異常検知部2は、各状態の発生頻度を、OP62で選択した状態モデルの対応する状態の発生頻度とそれぞれ比較して、過少であるか否かを判定する。発生頻度が過少となる状態が1以上ある場合には(OP67:はい)、処理がOP70に進む。発生頻度が過少となる状態がない場合には(OP67:いいえ)、処理がOP68に進む。
OP68では、異常検知部2は、OP63のデータ収集区間後に生じる状態間の遷移についての遷移率を算出する。異常検知部2は、各状態間の遷移率を、OP62で選択した状態モデルの対応する状態間の遷移率とそれぞれ比較して、過少であるか否かを判定する。遷移率が過少となる状態間の遷移が1以上ある場合には(OP68:はい)、処理がOP70に進む。遷移率が過少となる状態間の遷移がない場合には(OP68:いいえ)、処理がOP69に進む。
OP69では、異常検知部2は正常と判定し、処理がOP60に戻る。OP70では、異常検知部2は異常と判定し、処理がOP60に戻る。処理がOP60に戻ると、異常判定処理が繰り返される。図24に示される異常判定処理は、例えば、ユーザの指示により終了する。
OP65およびOP68は、「判定対象の周期における前記複数のグループ間の遷移率が、前記一の周期で取得されたデータにおける対応するグループ間の遷移率に基づく許容範囲を逸脱した場合に、前記処理装置に異常があると判定する」処理の一例である。
<実施形態3の作用効果>
異常検知装置10は、実施形態1および2と同様に発生頻度に基づいて異常を判定するとともに、状態間の遷移率に基づく異常判定も実施する。これにより、発生頻度に関する異常の他、状態遷移に関する異常を、より正確に検知することができる。状態遷移に関する異常は、例えば収集データの観測値の変化のパターンまたは変化の度合い等である。
異常検知装置10は、実施形態1および2と同様に発生頻度に基づいて異常を判定するとともに、状態間の遷移率に基づく異常判定も実施する。これにより、発生頻度に関する異常の他、状態遷移に関する異常を、より正確に検知することができる。状態遷移に関する異常は、例えば収集データの観測値の変化のパターンまたは変化の度合い等である。
<変形例>
実施形態3では、異常検知装置10は、発生頻度および遷移率のそれぞれに基づいて異常か否かを判定するが、発生頻度については異常判定をせずに、遷移率に基づいて異常か否かを判定することで異常を検知してもよい。
実施形態3では、異常検知装置10は、発生頻度および遷移率のそれぞれに基づいて異常か否かを判定するが、発生頻度については異常判定をせずに、遷移率に基づいて異常か否かを判定することで異常を検知してもよい。
遷移率に基づいて異常判定を実施する場合、異常検知装置10は、実施形態3と同様に、収集データが分類された状態間の遷移率を含む状態モデルを生成する。異常検知装置10は、例えば、図23に示されるOP50〜OP52、OP54およびOP55の処理により、状態間の遷移率を含む状態モデルを生成することができる。
異常検知装置10は、判定対象の周期において、データ収集区間ごとに処理装置4から所定の項目についてのデータを収集し、収集データを分類して生成された各状態間の遷移率を含む状態モデルとの比較により、異常判定を行う。異常検知装置10は、例えば、図24に示されるOP60〜OP63、OP65、OP66およびOP68〜OP70の処理により、判定対象の周期において、異常判定を実施することができる。
また、異常検知装置10は、OP62の状態モデルを選択する処理において、状態間の遷移率の類似度により、複数の正常パターンから異常判定の基準となる状態モデルを選択してもよい。状態間の遷移率に着目することにより、異常検知装置10は、状態遷移に関する異常を、より正確に検知することができる。
なお、実施形態において、異常検知の対象となる処理装置4は、ネットワークインタフェース16を介して異常検知装置10に接続される装置等として説明されるが、異常検知装置10自身であってもよい。この場合、異常検知装置10は、自身の設定・状態を示すデータを収集し、異常判定を実施すればよい。以上説明した実施形態の構成は、適宜組み合わせることができる。
<記録媒体>
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやROM等がある。さらに、SSDはコンピュータ等から取り外し可能な記録媒体としても、コンピュータ等に固定された記録媒体としても利用可能である。
1 データ収集部
2 異常検知部
3 データストア
4 処理装置
10 異常検知装置
11 プロセッサ
12 主記憶装置
13 補助記憶装置
14 入力装置
15 出力装置
16 ネットワークインタフェース
17 バス
2 異常検知部
3 データストア
4 処理装置
10 異常検知装置
11 プロセッサ
12 主記憶装置
13 補助記憶装置
14 入力装置
15 出力装置
16 ネットワークインタフェース
17 バス
Claims (13)
- コンピュータが、
処理を繰り返して実行する処理装置から、一の周期を複数に分割した区間ごとに前記処理装置の所定の項目についてのデータを取得し、
前記一の周期の前記区間ごとに取得した前記所定の項目についてのデータを所定の分類基準で複数のグループに分類し、前記グループごとの前記一の周期におけるデータの発生頻度を記憶し、
前記一の周期と同じ長さである判定対象の周期において前記区間ごとに前記所定の項目についてのデータを取得し、前記グループごとの前記判定対象の周期におけるデータの発生頻度が、前記一の周期におけるデータの発生頻度に基づく許容範囲を逸脱した場合に、前記処理装置に異常があると判定する、
異常検知方法。 - 前記コンピュータは、
前記判定対象の周期における各区間において、前記グループごとの前記判定対象の周期におけるデータの発生頻度が、前記許容範囲の上限値を超えた場合に、前記処理装置に異常があると判定する、
請求項1に記載の異常検知方法。 - 前記コンピュータは、
前記判定対象の周期の満了時に、前記複数のグループのうち1以上のグループの前記判定対象の周期におけるデータの発生頻度が、前記許容範囲の下限値を下回った場合に、前記処理装置に異常があると判定する、
請求項1または2に記載の異常検知方法。 - 前記一の周期で取得した前記所定の項目についてのデータを所定の数のグループに分類し、各グループに属するデータの平均値との差分に基づいて各データが属するグループを変更し、分割状態を評価する指標の値に基づいて、前記所定の数のグループのそれぞれをさらに分割するか否か判定し、分割すると判定されたグループについて、前記分割状態を評価する指標の値が所定の条件を充足するまで、前記分割を繰り返すことにより、前記一の周期で取得した前記所定の項目についてのデータを複数のグループに分類する、
請求項1から3のいずれか一項に記載の異常検知方法。 - 前記コンピュータは、
前記グループごとの前記一の周期におけるデータの発生頻度を正常パターンとして複数生成して記憶し、
記憶された複数の正常パターンから、所定の条件を満たす正常パターンを選択し、
前記判定対象の周期において前記区間ごとに前記所定の項目についてのデータを取得し、前記グループごとの前記判定対象の周期におけるデータの発生頻度が、選択された前記正常パターンに基づく許容範囲を逸脱した場合に、前記処理装置に異常があると判定する、
請求項1から4のいずれか一項に記載の異常検知方法。 - 前記コンピュータは、
前記複数の正常パターンのうち、複数の周期を含む所定期間前までのそれぞれの周期の正常パターンから、直近の周期の正常パターンと最も類似度が高い正常パターンの次の周期の正常パターンを選択する、
請求項5に記載の異常検知方法。 - 前記コンピュータは、
前記複数の正常パターンのうち、所定期間ごとに記憶され且つ連続する2つの過去の正常パターン間の類似度が、前記直近の周期の正常パターンと前記所定期間前までのそれぞれの周期の正常パターンのうち前記直近の周期の正常パターンと最も類似度が高い正常パターンとの類似度よりも大きい場合には、前記所定期間ごとに記憶された過去の正常パターンのうち最新の正常パターンを選択する、
請求項6に記載の異常検知方法。 - 前記コンピュータは、
比較対象の2つの正常パターンの周期で取得したデータを、それぞれ昇順または降順に並べ替え、前記区間ごとのデータの差分の合計を算出し、前記差分の合計が小さいほど前記比較対象の2つの正常パターン間における前記類似度が高いと判断する、
請求項6または7に記載の異常検知方法。 - 前記コンピュータは、
前記一の周期で取得したデータにおける前記複数のグループ間の遷移率をさらに記憶し、
前記判定対象の周期における前記複数のグループ間の遷移率が、前記一の周期で取得されたデータにおける対応するグループ間の遷移率に基づく許容範囲を逸脱した場合に、前記処理装置に異常があると判定する、
請求項1から8のいずれか一項に記載の異常検知方法。 - コンピュータが、
処理を繰り返して実行する処理装置から、一の周期を複数に分割した区間ごとに前記処理装置の所定の項目についてのデータを取得し、
前記一の周期の前記区間ごとに取得した前記所定の項目についてのデータを所定の分類基準で複数のグループに分類し、前記一の周期で取得されたデータにおける前記複数のグループ間の遷移率を記憶し、
前記一の周期と同じ長さである判定対象の周期において前記区間ごとに前記所定の項目についてのデータを取得し、前記判定対象の周期における前記複数のグループ間の遷移率が、前記一の周期で取得されたデータにおける対応するグループ間の遷移率に基づく許容範囲を逸脱した場合に、前記処理装置に異常があると判定する、
異常検知方法。 - 処理を繰り返して実行する処理装置から、一の周期を複数に分割した区間ごとに前記処理装置の所定の項目についてのデータを取得する取得部と、
前記一の周期の前記区間ごとに取得した前記所定の項目についてのデータを所定の分類基準で複数のグループに分類し、前記グループごとの前記一の周期におけるデータの発生頻度を記憶する記憶部と、
前記一の周期と同じ長さである判定対象の周期において前記区間ごとに前記所定の項目についてのデータを取得し、前記グループごとの前記判定対象の周期におけるデータの発生頻度が、前記一の周期におけるデータの発生頻度に基づく許容範囲を逸脱した場合に、前記処理装置に異常があると判定する判定部と、
を備える異常検知装置。 - コンピュータに、
処理を繰り返して実行する処理装置から、一の周期を複数に分割した区間ごとに前記処理装置の所定の項目についてのデータを取得させ、
前記一の周期の前記区間ごとに取得した前記所定の項目についてのデータを所定の分類基準で複数のグループに分類させ、前記グループごとの前記一の周期におけるデータの発
生頻度を記憶させ、
前記一の周期と同じ長さである判定対象の周期において前記区間ごとに前記所定の項目についてのデータを取得させ、前記グループごとの前記判定対象の周期における発生頻度が、前記一の周期におけるデータの発生頻度に基づく許容範囲を超えた場合に、前記処理装置に異常があると判定させる、
ための異常検知プログラム。 - コンピュータに、
一の周期を複数に分割した区間ごとに前記コンピュータの所定の項目についてのデータを取得させ、
前記一の周期の前記区間ごとに取得した前記所定の項目についてのデータを所定の分類基準で複数のグループに分類させ、前記グループごとの前記一の周期におけるデータの発生頻度を記憶させ、
前記一の周期と同じ長さである判定対象の周期において前記区間ごとに前記所定の項目についてのデータを取得させ、前記グループごとの前記判定対象の周期における発生頻度が、前記一の周期におけるデータの発生頻度に基づく許容範囲を超えた場合に、前記処理装置に異常があると判定させる、
ための異常検知プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016007215A JP2017129917A (ja) | 2016-01-18 | 2016-01-18 | 異常検知方法、異常検知装置および異常検知プログラム |
US15/398,759 US20170205816A1 (en) | 2016-01-18 | 2017-01-05 | Abnormality detection method and abnormality detection apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016007215A JP2017129917A (ja) | 2016-01-18 | 2016-01-18 | 異常検知方法、異常検知装置および異常検知プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017129917A true JP2017129917A (ja) | 2017-07-27 |
Family
ID=59313794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016007215A Pending JP2017129917A (ja) | 2016-01-18 | 2016-01-18 | 異常検知方法、異常検知装置および異常検知プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20170205816A1 (ja) |
JP (1) | JP2017129917A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019062361A (ja) * | 2017-09-26 | 2019-04-18 | Kddi株式会社 | 情報処理装置、情報処理方法およびプログラム |
JP2021144637A (ja) * | 2020-03-13 | 2021-09-24 | 株式会社東芝 | 情報処理装置、情報処理方法およびプログラム |
JP7258253B1 (ja) * | 2022-06-27 | 2023-04-14 | 三菱電機株式会社 | 正常モデル生成プログラム、正常モデル生成装置および正常モデル生成方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6860406B2 (ja) * | 2017-04-05 | 2021-04-14 | 株式会社荏原製作所 | 半導体製造装置、半導体製造装置の故障予知方法、および半導体製造装置の故障予知プログラム |
CN108132867B (zh) * | 2018-01-11 | 2021-05-25 | 合肥科博软件技术有限公司 | 一种设备故障报警方法及计算设备 |
US11095683B1 (en) * | 2018-12-27 | 2021-08-17 | NortonLifeLock Inc. | Systems and methods for delegating endpoint security operations to a nearby computing device |
-
2016
- 2016-01-18 JP JP2016007215A patent/JP2017129917A/ja active Pending
-
2017
- 2017-01-05 US US15/398,759 patent/US20170205816A1/en not_active Abandoned
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019062361A (ja) * | 2017-09-26 | 2019-04-18 | Kddi株式会社 | 情報処理装置、情報処理方法およびプログラム |
JP2021144637A (ja) * | 2020-03-13 | 2021-09-24 | 株式会社東芝 | 情報処理装置、情報処理方法およびプログラム |
JP7293156B2 (ja) | 2020-03-13 | 2023-06-19 | 株式会社東芝 | 情報処理装置、情報処理方法およびプログラム |
JP7258253B1 (ja) * | 2022-06-27 | 2023-04-14 | 三菱電機株式会社 | 正常モデル生成プログラム、正常モデル生成装置および正常モデル生成方法 |
WO2024003994A1 (ja) * | 2022-06-27 | 2024-01-04 | 三菱電機株式会社 | 正常モデル生成プログラム、正常モデル生成装置および正常モデル生成方法 |
Also Published As
Publication number | Publication date |
---|---|
US20170205816A1 (en) | 2017-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017129917A (ja) | 異常検知方法、異常検知装置および異常検知プログラム | |
JP6354755B2 (ja) | システム分析装置、システム分析方法、及びシステム分析プログラム | |
CN107528722B (zh) | 一种时间序列中异常点检测方法及装置 | |
Ibidunmoye et al. | Adaptive anomaly detection in performance metric streams | |
JP6555061B2 (ja) | クラスタリングプログラム、クラスタリング方法、および情報処理装置 | |
CN108829638B (zh) | 一种业务数据波动处理方法及装置 | |
Notaro et al. | A survey of aiops methods for failure management | |
US10241887B2 (en) | Data-agnostic anomaly detection | |
Xu et al. | esDNN: deep neural network based multivariate workload prediction in cloud computing environments | |
JP2017072882A (ja) | アノマリ評価プログラム、アノマリ評価方法、および情報処理装置 | |
US10942763B2 (en) | Operation management apparatus, migration destination recommendation method, and storage medium | |
CN107316200B (zh) | 一种分析用户行为周期的方法和装置 | |
JP5634599B2 (ja) | データ処理システム、データ処理方法、及び、プログラム | |
JP6521096B2 (ja) | 表示方法、表示装置、および、プログラム | |
CN112016689B (zh) | 信息处理装置、预测判别系统以及预测判别方法 | |
CN110537170A (zh) | 分析大规模数据处理作业 | |
CN114365094A (zh) | 使用倒排索引的时序异常检测 | |
Shah et al. | Estimating the impact of external interference on application performance | |
CN111061581A (zh) | 一种故障检测方法、装置及设备 | |
CN117041017A (zh) | 数据中心的智能运维管理方法及系统 | |
Ruan et al. | Cloud workload turning points prediction via cloud feature-enhanced deep learning | |
Szebenyi et al. | Space-efficient time-series call-path profiling of parallel applications | |
Mitra et al. | Dealing with the unknown: Resilience to prediction errors | |
WO2019073512A1 (ja) | システム分析方法、システム分析装置、および、プログラム | |
JP2020091756A (ja) | 学習方法、学習プログラムおよび学習装置 |