【実施例1】
【0014】
<監視処理例>
図1は、実施例1にかかる監視対象装置の監視処理例を示す説明図である。監視対象装置100は、ネットワーク上においてデータを入力し、入力したデータを処理して、データを出力する処理を実行する。監視対象装置100は、例えば、ネットワーク上のサーバやDPI(Deep Packet Inspection)装置、ルータなどのネットワーク装置である。なお、データとは、ネットワーク上を流通するメッセージであり、たとえば、パケットやフレームである。
【0015】
監視対象装置100の挙動は、時間帯ごとの平均データ処理数の時間的変化を示すグラフL1として観測される。グラフL1の横軸は時間、縦軸は平均データ処理数である。グラフL1の平均データ処理数とは、各時間帯において、異なる測定対象区間の同一時間帯ごとに求められた、監視対象装置100内のキュー長、すなわち、単位時間毎の出力データ数と入力データ数の差分の平均値である。
【0016】
なお、時間帯とは、測定対象区間を複数に分割した単位時間である。測定対象区間を1日(24時間)とした場合、たとえば、0:00〜0:59、1:00〜1:59、…のような1時間の単位時間が時間帯である。各時間帯は同一幅である。単位時間は、1時間に限らず、分単位でも秒単位でもよく、また、週単位や月単位、年単位でもよい。また、測定対象区間は、周期的に到来する。たとえば、測定対象区間は、毎日到来してもよく、平日、休日、祝祭日、特定の曜日にのみ到来してもよい。たとえば、毎日測定する場合は、毎日0:00〜0:59の時間帯での平均データ処理数が求められ、毎週水曜日に測定する場合は、毎週水曜日の0:00〜0:59の時間帯での平均データ処理数が求められる。
【0017】
監視対象装置100の挙動は、データの入力数帯ごとの平均データ処理数の入力データ数的変化を示すグラフL2として観測される。入力数帯とは、監視対象装置100への入力データの数に応じた範囲を規定した入力データ数の範囲である。たとえば、入力データ数の範囲である0〜99、100〜199、200〜299、…の各々が入力数帯である。グラフL2の横軸は入力データ数、縦軸は平均データ処理数である。グラフL2の平均データ処理数とは、各入力数帯において、異なる日付の同一入力数帯ごとに求められた、監視対象装置100内のキュー長、すなわち、入力データ数毎の出力データ数と入力データ数の差分の平均値である。
【0018】
実施例1の監視処理では、監視対象装置100を分析する場合、分析対象時間帯に入力された入力データの数と、その出力データの数との組み合わせが計測される。この分析対象時間帯の入力データ数と出力データ数の組み合わせを分析対象データと称す。そして、実施例1の監視処理では、グラフL1において分析対象時間帯と同一時間帯である時間帯ztでの平均データ処理数naの統計的なばらつきと、グラフL2において分析対象データの入力データ数が含まれる入力数帯zcでの平均データ処理数nbの統計的なばらつきと、を比較して、小さい方のばらつきに対応する平均データ処理数が選択される。そして、実施例1の監視処理では、分析対象データについての平均データ処理数と、選択された平均データ処理数と、を用いて、監視対象装置100が分析される。たとえば、分析対象データについての平均データ処理数と、選択された平均データ処理数と、の乖離がしきい値以上である場合、障害の予兆ありと判定される。
【0019】
本実施例では、分析対象データの分析に比較対象として用いられる学習データとして、時間帯由来の学習データと入力数帯由来の学習データのうち、分析精度がよい方の学習データを選択して、分析をおこなう。したがって、時間帯由来の学習データが選択された場合は、当該時間帯のデータ比率は安定しており、入力データ数にばらつきがあるがデータ比率は分析対象データと同じようになり、出力データ数も分析対象データと同じようになる。同様に、入力数帯由来の学習データが選択された場合は、当該入力数帯のデータ比率は安定しており、入力データ数にばらつきがあるがデータ比率は分析対象データと同じようになり、出力データ数も分析対象データと同じようになる。このように、精度がよい方の帯の学習データを選択するため、分析精度の向上を図ることができる。
【0020】
<監視装置のハードウェア構成例>
図2は、監視装置のハードウェア構成例を示すブロック図である。監視装置202は、スイッチ201A,201Bを介して監視対象装置100に接続される。すなわち、監視対象装置100の前段のスイッチ201Aは、データを監視対象装置100に転送するとともに、ミラーリングして監視装置202にも転送する。また、監視対象装置100の後段のスイッチ201Bは、監視対象装置100から出力されたデータを宛先(不図示)に転送するとともに、ミラーリングにより、監視装置202に転送する。
【0021】
監視装置202は、インタフェース(I/F)203Aと、I/F203Bと、プロセッサ204と、メモリ205と、記憶デバイス206と、出力デバイス207がバス208に接続されて構成されている。I/F203Aは、スイッチ201Aからミラーリングされてくるデータを受信するインタフェースである。I/F203Bは、スイッチ201Bからミラーリングされてくるデータを受信するインタフェースである。
【0022】
プロセッサ204は、監視装置202を制御する。たとえば、プロセッサ204は、I/F203A,203Bからのデータを取得したり、記憶デバイス206からメモリ205にプログラム251〜253をロードしてプログラム251〜253を実行したり、記憶デバイス206内の各テーブル261〜263からデータを読み出したり、書き込んだりする。
【0023】
メモリ205は、プロセッサ204のワークエリアとなる。また、メモリ205には、プログラム251〜253がロードされる。計測プログラム251は、監視対象装置100への入力データの数と監視対象装置100からの出力データを計測するプログラムである。
【0024】
学習プログラム252は、学習データ群を生成するプログラムである。学習データ群には、各時間帯における学習データ群(以下、第1の学習データ群)と、各入力数帯における学習データ群(以下、第2の学習データ群)と、がある。
【0025】
第1の学習データ群は、時間帯ごとの監視対象装置100の処理能力を示す第1の学習データの集合である。第1の学習データは、たとえば、ある時間帯における統計的なデータ処理数と、当該データ処理数の統計的なばらつきである。統計的なデータ処理数は、たとえば、同一時間帯ごとの出力データ数から入力データ数を引いた差分の平均値、すなわち、平均データ処理数である。なお、平均にかぎらず、中央値、最大値、最小値を採用してもよい。統計的なばらつきとは、平均データ処理数の分散または標準偏差である。分散は、標本分散でもよく、標本数によらない不偏分散でもよい。なお、統計的なデータ処理数として、中央値、最大値、最小値のいずれかが採用された場合でも、統計的なばらつきとして、平均データ処理数分散または標準偏差が採用される。
【0026】
第2の学習データ群は、入力数帯ごとの監視対象装置100の処理能力を示す第2の学習データの集合である。第2の学習データは、たとえば、ある入力数帯における統計的なデータ処理数と、当該データ処理数の統計的なばらつきである。統計的なデータ処理数は、たとえば、同一入力数帯ごとの出力データ数から入力データ数を引いた差分の平均値、すなわち、平均データ処理数である。なお、平均にかぎらず、中央値、最大値、最小値を採用してもよい。統計的なばらつきとは、平均データ処理数の分散または標準偏差である。分散は、標本分散でもよく、標本数によらない不偏分散でもよい。なお、統計的なデータ処理数として、中央値、最大値、最小値のいずれかが採用された場合でも、統計的なばらつきとして、平均データ処理数分散または標準偏差が採用される。
【0027】
分析プログラム253は、分析対象データを用い、かつ、第1の学習データ群および第2の学習データ群を参照して、監視対象装置100の挙動を分析するプログラムである。
【0028】
記憶デバイス206は、たとえば、HDD(Hard Disk Drive)やフラッシュメモリにより構成される。記憶デバイス206には、各種テーブルが記憶される。本明細書では、テーブル形式で説明するが、リスト、DB、キュー等のデータ構造やそれ以外で実現されてもよい。
【0029】
計測値テーブル261は、計測プログラム251によって計測された時間帯ごとの入力データ数および出力データ数を記憶するテーブルである。学習データテーブル262は、学習プログラム252によって生成された第1の学習データ群や第2の学習データ群を記憶するテーブルである。分析結果テーブル263は、分析プログラム253によって分析された分析結果情報を記憶するテーブルである。
【0030】
出力デバイス207は、各種情報、例えば、各種テーブル261〜263や分析結果情報を出力する。出力形式は、画面表示でもよく、外部装置への送信でもよい。なお、分析結果情報は、分析結果テーブル263のエントリとして格納される。
【0031】
<テーブルの記憶内容例>
図3は、
図2に示した計測値テーブル261の記憶内容例を示す説明図である。計測値テーブル261の初期状態は空であり、計測プログラム251により計測されると入力データ数および出力データ数が記憶される。
【0032】
計測時間301は、入力データおよび出力データを計測する時間間隔の時系列である。たとえば、計測時間301の時間間隔は、上述した時間帯と同一時間間隔でもよく異なる時間間隔でもよい。計測時間は、時間帯とは異なり、各々固有である。たとえば、時間帯として0:00〜0:59が規定されている場合でも、異なる日の各々の0:00〜0:59が計測時間として規定される。入力データ数302は、計測時間301に計測された入力データの数である。出力データ数303は、計測時間301に計測された出力データの数である。
【0033】
たとえば、t5まで計測された状態でt1とt5が同一時間帯である場合、t1の出力データ数no1から入力データ数ni1を引いた差分とt5の出力データ数no5から入力データ数ni5を引いた差分との平均が、第1の学習データでの平均データ処理数となる。
【0034】
また、t5まで計測された状態でt2の入力データ数ni2とt3の入力データ数ni3とt4の入力データ数ni4とが同一入力数帯である場合、t2の出力データ数no2から入力データ数ni2を引いた差分とt3の出力データ数no3から入力データ数ni3を引いた差分とt4の出力データ数no4から入力データ数ni4を引いた差分との平均が、第2の学習データでの平均データ処理数となる。
【0035】
図4は、
図2に示した学習データテーブル262の一例である第1の学習データテーブルである。第1の学習データテーブル2621は、第1の学習データ群が記憶されるテーブルである。第1の学習データテーブル2621は空であり、学習プログラム252により学習されると時間帯401ごとに第1の学習データ402が記憶される。
【0036】
時間帯401は、上述したように、測定対象区間を複数に分割した単位時間である。
図4では、時間帯401の時間間隔を1時間とした例である。第1の学習データ402は、時間帯401ごとに記憶される。na#(#は1以上の整数)は、統計的なデータ処理数の一例である平均データ処理数であり、va#(#は1以上の整数)は、平均データ処理数の統計的なばらつきである。たとえば、
図3において、t5まで計測された状態でt1とt5が同一時間帯(0:00〜0:59)である場合、t1の出力データ数no1から入力データ数ni1を引いた差分とt5の出力データ数no5から入力データ数ni5を引いた差分との平均が、第1の学習データ402での平均データ処理数na1となる。
【0037】
図5は、
図2に示した学習データテーブル262の一例である第2の学習データテーブルである。第2の学習データテーブル2622は、第2の学習データ群が記憶されるテーブルである。第2の学習データテーブル2622は空であり、学習プログラム252により学習されると入力数帯501ごとに第2の学習データ502が記憶される。
【0038】
入力数帯501は、上述したように、監視対象装置100への入力データの数に応じた範囲を規定した入力データ数の範囲である。
図5では、入力数帯501の入力データ数時間間隔を100個とした例である。第2の学習データ502は、入力数帯501ごとに記憶される。nb#(#は1以上の整数)は、統計的なデータ処理数の一例である平均データ処理数であり、vb#(#は1以上の整数)は、平均データ処理数の統計的なばらつきである。たとえば、
図3において、t5まで計測された状態でt2の入力データ数ni2とt3の入力データ数ni3とt4の入力データ数ni4とが同一入力数帯である場合、t2の出力データ数no2から入力データ数ni2を引いた差分とt3の出力データ数no3から入力データ数ni3を引いた差分とt4の出力データ数no4から入力データ数ni4を引いた差分との平均が、第2の学習データでの平均データ処理数nb1となる。
【0039】
図6は、
図2に示した分析結果テーブル263の記憶内容例を示す説明図である。分析結果テーブル263の初期状態は空であり、分析プログラム253により分析されると分析結果情報が記憶される。分析結果テーブル263は、フィールドとして、分析ID901と、分析対象時間帯902と、分析対象データ903と、入力数帯904と、選択帯905と、分析結果906と、を有し、各フィールドの値によりエントリである分析結果情報を構成する。
【0040】
分析ID901は、値として、分析結果情報を一意に特定する識別情報を格納するフィールドである。分析対象時間帯902は、値として、分析対象データが監視対象装置100で処理された時間帯を格納するフィールドである。分析対象データ903は、値として、分析対象時間帯に監視対象装置100で処理された入力データ数および出力データ数の組み合わせを格納するフィールドである。入力数帯904は、値として、分析対象データの入力データ数が含まれる入力数帯を格納するフィールドである。選択帯905は、値として、分析プログラム253により選択された帯の種類、すなわち、時間帯または入力数帯のいずれかを格納するフィールドである。分析結果906は、値として、分析プログラム253による分析結果(たとえば、正常、異常など)を格納するフィールドである。
【0041】
<学習プログラム252による学習処理例>
図7および
図8を用いて、学習プログラム252による学習処理例について説明する。学習プログラム252は、たとえば、バッチ処理によりある時刻に自動的に実行される。また、操作者からの実行指示により実行されてもよい。
【0042】
図7は、学習プログラム252による第1の学習処理の詳細な処理手順例を示すフローチャートである。第1の学習処理とは、第1の学習データ群を生成する処理である。まず、監視装置202は、第1の学習データテーブル2621の時間帯401から未選択時間帯があるか否かを判断する(ステップS701)。未選択時間帯がある場合(ステップS701:Yes)、監視装置202は、第1の学習データテーブル2621の時間帯401から未選択時間帯を1つ選択する(ステップS702)。つぎに、監視装置202は、選択時間帯に該当する入力データ数および出力データ数の組み合わせを計測値テーブル261の第1の学習データ402から取得する(ステップS703)。たとえば、選択時間帯を「0:00〜0:59」とする。たとえば、
図3において、t5まで計測された状態でt1とt5が選択時間帯「0:00〜0:59」と同一時間帯である場合、監視装置202は、t1の入力データ数ni1および出力データ数no1と、t5の入力データ数ni5および出力データ数no5と、を計測値テーブル261の第1の学習データ402から取得する。
【0043】
そして、監視装置202は、選択時間帯における監視対象装置100の統計的なデータ処理数の一例として平均データ処理数を算出する(ステップS704)。たとえば、t1の入力データ数ni1および出力データ数no1と、t5の入力データ数ni5および出力データ数no5と、が取得された場合、監視装置202は、t1の出力データ数no1から入力データ数ni1を引いた差分とt5の出力データ数no5から入力データ数ni5を引いた差分との平均を平均データ処理数na1として算出する。
【0044】
つぎに、監視装置202は、選択時間帯における統計的なデータ処理数の統計的なばらつきを算出する(ステップS705)。たとえば、平均データ処理数na1が算出された場合、監視装置202は、そのばらつきva1を算出する。
【0045】
そして、監視装置202は、選択時間帯に、統計的なデータ処理数と統計的なばらつきとを関連付けて第1の学習データテーブル2621に格納する(ステップS706)。たとえば、ばらつきva1が算出された場合、監視装置202は、第1の学習データテーブル2621の選択時間帯「0:00〜0:59」に、平均データ処理数na1とばらつきva1とを格納する。このあと、ステップS701に戻る。監視装置202は、未選択時間帯がない場合(ステップS701:No)、第1の学習処理を終了する。このように、第1の学習処理により、第1の学習データテーブル2621が最新の状態となる。すなわち、第1の学習データ群が最新の状態となる。
【0046】
図8は、学習プログラム252による第2の学習処理の詳細な処理手順例を示すフローチャートである。第2の学習処理とは、第2の学習データ群を生成する処理である。まず、監視装置202は、第2の学習データテーブル2622の入力数帯501から未選択入力数帯があるか否かを判断する(ステップS801)。未選択入力数帯がある場合(ステップS801:Yes)、監視装置202は、第2の学習データテーブル2622の入力数帯501から未選択入力数帯を1つ選択する(ステップS802)。つぎに、監視装置202は、選択入力数帯に該当する入力データ数および出力データ数の組み合わせを計測値テーブル261の第2の学習データ502から取得する(ステップS803)。たとえば、選択入力数帯を「0〜99」とする。たとえば、
図3において、t5まで計測された状態でt2の入力データ数ni2とt3の入力データ数ni3とt4の入力データ数ni4とが選択入力数帯「0〜99」と同一入力数帯である場合、監視装置202は、t2の入力データ数ni2および出力データ数no2と、t3の入力データ数ni3および出力データ数no3と、t4の入力データ数ni4および出力データ数no4と、を計測値テーブル261の第2の学習データ502から取得する。
【0047】
そして、監視装置202は、選択入力数帯における監視対象装置100の統計的なデータ処理数の一例として平均データ処理数を算出する(ステップS804)。たとえば、t2の入力データ数ni2および出力データ数no2と、t3の入力データ数ni3および出力データ数no3と、t4の入力データ数ni4および出力データ数no4と、が取得された場合、監視装置202は、t2の出力データ数no2から入力データ数ni2を引いた差分とt3の出力データ数no3から入力データ数ni3を引いた差分とt4の出力データ数no4から入力データ数ni4を引いた差分との平均を、平均データ処理数nb1として算出する。
【0048】
つぎに、監視装置202は、選択入力数帯における統計的なデータ処理数の統計的なばらつきを算出する(ステップS805)。たとえば、平均データ処理数nb1が算出された場合、監視装置202は、そのばらつきvb1を算出する。
【0049】
そして、監視装置202は、選択入力数帯に、統計的なデータ処理数と統計的なばらつきとを関連付けて第2の学習データテーブル2622に格納する(ステップS806)。たとえば、ばらつきvb1が算出された場合、監視装置202は、第2の学習データテーブル2622の選択入力数帯「0〜99」に、平均データ処理数nb1とばらつきvb1とを格納する。このあと、ステップS801に戻る。監視装置202は、未選択入力数帯がない場合(ステップS801:No)、第2の学習処理を終了する。このように、第2の学習処理により、第2の学習データテーブル2622が最新の状態となる。
【0050】
<分析プログラム253による分析処理例>
図9を用いて、学習プログラム252による分析処理例について説明する。分析プログラム253は、たとえば、バッチ処理によりある時刻に自動的に実行される。また、操作者からの実行指示により実行されてもよい。なお、分析対象データは、第1の学習処理および第2の学習処理に用いられていないデータとする。
【0051】
図9は、実施例1にかかる学習プログラム252による分析処理の詳細な処理手順例を示すフローチャートである。まず、監視装置202は、分析対象データを計測値テーブル261から取得する(ステップS901)。分析対象データは、ある計測時間(分析対象計測時間)における入力データ数および出力データ数である。分析対象計測時間が、たとえば、t10(例として、2015年4月27日0:00〜0:59)であるとすると、監視装置202は、t10の入力データ数ni10および出力データ数no10を計測値テーブル261から取得する。
【0052】
つぎに、監視装置202は、分析対象データの処理数の一例としてデータ処理数を算出する(ステップS902)。たとえば、監視装置202は、出力データ数no10から入力データ数ni10を引いた差分をデータ処理数として算出する。そして、監視装置202は、分析対象データの計測時間と同一時間帯の第1の学習データを第1の学習データテーブル2621から取得する(ステップS903)。たとえば、監視装置202は、t10と同一時間帯(0:00〜0:59)の第1の学習データ(na1,va1)を第1の学習データテーブル2621から取得する。
【0053】
同様に、監視装置202は、分析対象データの入力データ数と同一入力数帯の第2の学習データを第2の学習データテーブル2622から取得する(ステップS904)。たとえば、監視装置202は、t10の入力データ数ni10が含まれる入力数帯(例として0〜99)と同一入力数帯の第2の学習データ(nb2,vb2)を第2の学習データテーブル2622から取得する。
【0054】
そして、監視装置202は、ステップS903で取得したばらつきva1とステップS904で取得したばらつきvb1のうち小さい方のばらつきを含む学習データを選択する(ステップS905)。このあと、監視装置202は、選択した学習データの統計的なデータ処理数と、ステップS902で算出された処理数と、を比較して、監視対象装置100の挙動を分析する(ステップS906)。最後に、監視装置202は、ステップS906による分析結果情報を出力する。
【0055】
図10は、分析結果画面例を示す説明図である。分析結果画面は、ステップS906により出力デバイス207に表示される画面である。具体的には、分析結果画面の内容は、分析結果テーブル263のエントリである分析結果情報である。
【0056】
このように、実施例1によれば、監視対象装置100の入力データ数が時間的に変化する場合でも、障害発生の予兆を高精度に検出することができる。また、複数の異なるデータが入力した場合でも、データの種類ごとに集計する必要がないため、障害発生の予兆を簡易に検出することができる。換言すれば、障害発生の予兆検出のためにデータ収集量を増加する必要がないため、ネットワークの負荷低減を図ることができる。
【0057】
なお、実施例1では、監視装置202において、計測プログラム251による計測処理や学習プログラム252による第1の学習処理および第2の学習処理を実行する例について説明したが、計測処理や第1の学習処理および第2の学習処理は、外部装置により実行することとしてもよい。この場合、監視装置202は、当該外部装置から、計測値テーブル261のエントリや第1の学習データテーブル2621のエントリ、第2の学習データテーブル2622のエントリを取得することになる。
【実施例2】
【0058】
実施例2について説明する。実施例1では、時間帯ごとの統計的なデータ処理数と、データの入力数帯ごとの統計的なデータ処理数と、を区別して学習データをそれぞれ生成し、分析時にばらつきが小さい、すなわち、精度がよい方の学習データを採用して、分析対象データと比較する例について説明した。実施例2では、時間帯ごとの統計的なデータ処理数と、データの入力数帯ごとの統計的なデータ処理数と、を区別せずに統合した統合学習データを生成し、分析対象データと比較する。
【0059】
図11は、時間帯ごとの統計的なデータ処理数と、データの入力数帯ごとの統計的なデータ処理数と、を統合したグラフを示す説明図である。グラフLは、時間帯を示す時間軸と、入力数帯を示す入力データ数軸と、統計的なデータ処理数の一例である平均データ処理数を示す処理数軸との3次元座標系上の曲面で表現される。すなわち、グラフLは、データの入力数帯ごとの統計的なデータ処理数と、を統合した統合学習データ群を示す。たとえば、ある時間帯ztiにおけるある入力数帯zcjに含まれる入力データ数と、その出力データ数と、により得られる平均データ処理数はnijである。
【0060】
このように、実施例2では、あらかじめ、時間帯ztiごとに入力数帯zcjごとの平均データ処理数nijが細分化されているため、分析時に該当する平均データ処理数nijを選択するだけで、分析対象データの比較対象としてばらつきが小さい高精度な平均データ処理数nijを用いて分析することができる。また、分析時に、第1の学習データと第2の学習データのいずれかを選択する必要がないため、分析処理の高速化を図ることができる。以下、実施例2について説明するが、特に実施例1との相違点を中心に説明し、実施例1と同一内容については説明を省略する。
【0061】
図12は、実施例2にかかる統合学習データテーブルの記憶内容例を示す説明図である。統合学習データテーブル2623は、実施例1の第1の学習データテーブル2621および第2の学習データテーブル2622を統合した学習データテーブルである。統合学習データテーブル2623は、時間帯と入力数帯によるマトリクス構造である。マトリクス構造は、セルの集合である。セルcijは、ある時間帯ztiにおけるある入力数帯zcjを示す記憶領域である。各セルcijには、平均データ処理数nijと、その統計的なばらつきvijと、データ数dijと、が格納される。データ数dijは、入力データ数や出力データ数ではなく、平均データ処理数nijの算出に用いられた入力データ数および出力データ数の組み合わせの標本数である。たとえば、セルCijにおける平均データ処理数nijの算出に、
図3に示したt2〜t4の3個の入力データ数および出力データ数の組み合わせが用いられた場合、データ数dijは、「3」である。
【0062】
統合学習データテーブル2623の初期状態では、いずれのセルcijも空であるが、学習プログラム252による学習処理により該当するセルcijに学習データ(nij,vij,dij)が記憶される。ただし、セルcijは時間帯および入力数帯により細分化されているため、学習データ(nij,vij,dij)が存在しないセルや、学習データ(nij,vij,dij)は存在するがデータ数dijが小さいセルも存在する。このようなセルcijの学習データ(nij,vij,dij)を用いると分析ができなかったり、分析はできるが分析精度が低減するため、周囲のセルの学習データを用いて補完する必要がある。
【0063】
図13は、学習データの補完例1を示す説明図である。
図13は、分析対象データの比較対象として選択されたセルcijに学習データが存在しない場合の補完例である。(A)は、分析対象データの比較対象として選択されたセルcijに学習データが存在しないことを示す。
【0064】
(B)は、選択セルcijと同一時間帯のセル群Ctと、選択セルcijと同一入力数帯のセル群Ccと、を示す。監視装置202は、セル群Ctにおける最小ばらつきと、セル群Ccにおける最小ばらつきを比較し、小さい方のばらつきを有するセル群を選択する。ここでは例として、セル群Ctが選択されたものとする。よりばらつきが小さい方のセル群を選択することにより、時間帯と入力数帯のうち高精度な平均データ処理数を保持する帯を特定することができる。
【0065】
(C)は、選択セル群Ctにおいてセルcijの隣接セルcij−1,cij−2を示す。監視装置202は、隣接セルcij−1,cij−2のうちいずれかのセルを選択する。選択セル群Ctのうち隣接セルcij−1,cij−2の方が、非隣接セルよりも学習データの傾向がセルcijと近似する。ここでは、例として隣接セルcij−1が選択されたものとする。監視装置202は、隣接セルcij−1の学習データ(nij−1,vij−1,dij−1)を、セルcijの学習データの代用学習データとして用いる。また、監視装置202は、隣接セルcij−1,cij−2のうちばらつきが小さい方のセルの平均データ処理数を選択してもよい。これにより、より精度が高い平均データ処理数により代用することができる。
【0066】
なお、
図13では、セル群Ctを選択した例について説明したが、セル群Ccが選択された場合、セルcijの隣接セルは、セル群Ccにおいてセルcijの左右に隣接するセルとなる。
【0067】
図14は、学習データの補完例2を示す説明図である。
図14は、分析対象データの比較対象となるセルcijにおいてデータ数dijが不足している場合の補完例である。(A)は、分析対象データの比較対象として選択されたセルcijにおいてデータ数dijが不足していることを示す。
【0068】
(B)は、選択セルcijと同一時間帯のセル群Ctと、選択セルcijと同一入力数帯のセル群Ccと、を示す。監視装置202は、セル群Ctにおける最小ばらつきと、セル群Ccにおける最小ばらつきを比較し、小さい方のばらつきを有するセル群を選択する。ここでは例として、セル群Ctが選択されたものとする。よりばらつきが小さい方のセル群を選択することにより、時間帯と入力数帯のうち高精度な平均データ処理数を保持する帯を特定することができる。
【0069】
(C)は、選択セル群Ctにおいてセルcijの隣接セルcij−1,cij−2を示す。監視装置202は、隣接セルcij−1,cij−2のうちいずれかのセルを選択する。選択セル群Ctのうち隣接セルcij−1,cij−2の方が、非隣接セルよりも学習データの傾向がセルcijと近似する。ここでは、例として隣接セルcij−1が選択されたものとする。監視装置202は、隣接セルcij−1の学習データ(nij−1,vij−1,dij−1)を、セルcijの学習データの代用学習データとして用いる。また、監視装置202は、隣接セルcij−1,cij−2のうちセルcijの平均データ処理数nijに近い方のセルの平均データ処理数を選択してもよい。データ数dijが不足しているため、ばらつきよりも平均データ処理数を重視することになる。これにより、より精度が高い平均データ処理数により代用することができる。
【0070】
なお、
図14では、セル群Ctを選択した例について説明したが、セル群Ccが選択された場合、セルcijの隣接セルは、セル群Ccにおいてセルcijの左右に隣接するセルとなる。
【0071】
<学習プログラム252による統合学習処理例>
図15を用いて、学習プログラム252による統合学習処理例について説明する。学習プログラム252は、たとえば、バッチ処理によりある時刻に自動的に実行される。また、操作者からの実行指示により実行されてもよい。
【0072】
図15は、実施例2にかかる学習プログラム252による学習処理の詳細な処理手順例を示すフローチャートである。統合学習処理とは、各セルcijの学習データ(nij,vij,dij)である学習データ群を生成する処理である。まず、監視装置202は、統合学習データテーブル2623から未選択時間帯があるか否かを判断する(ステップS1501)。未選択時間帯がある場合(ステップS1501:Yes)、監視装置202は、統合学習データテーブル2623から未選択セルcijを1つ選択する(ステップS1502)。これにより、時間帯と入力数帯を同時に選択したことになる。
【0073】
つぎに、監視装置202は、選択セルcijに該当する入力データ数および出力データ数の組み合わせを計測値テーブル261から取得する(ステップS1503)。たとえば、選択セルcijの時間帯ztiを「0:00〜0:59」とし、選択セルcijの入力数帯zcjを「0〜99」とする。たとえば、
図3において、t5まで計測された状態でt1とt5が選択セルcijの時間帯ztiである「0:00〜0:59」と同一時間帯で、かつ、それらの入力データ数ni1,ni5が入力数帯zcjである「0〜99」の範囲内である場合、監視装置202は、t1の入力データ数ni1および出力データ数no1と、t5の入力データ数ni5および出力データ数no5と、を計測値テーブル261から取得する。
【0074】
そして、監視装置202は、選択セルcijにおける監視対象装置100の統計的なデータ処理数の一例として平均データ処理数を算出する(ステップS1504)。たとえば、t1の入力データ数ni1および出力データ数no1と、t5の入力データ数ni5および出力データ数no5と、が取得された場合、監視装置202は、t1の出力データ数no1から入力データ数ni1を引いた差分とt5の出力データ数no5から入力データ数ni5を引いた差分との平均を平均データ処理数nijとして算出する。
【0075】
つぎに、監視装置202は、選択セルcijにおける統計的なデータ処理数の統計的なばらつきを算出する(ステップS1505)。たとえば、平均データ処理数nijが算出された場合、監視装置202は、そのばらつきvijを算出する。また、監視装置202は、ステップS1503で取得した入力データ数および出力データ数の組み合わせの数をデータ数dijとして取得する(ステップS1506)。
【0076】
そして、監視装置202は、選択セルcijに、統計的なデータ処理数nijと統計的なばらつきvijとデータ数dijとを関連付けて学習データとして統合学習データテーブル2623に格納する(ステップS1506)。このあと、ステップS1501に戻る。監視装置202は、未選択セルcijがない場合(ステップS1501:No)、統合学習処理を終了する。このように、統合学習処理により、統合学習データテーブル2623が最新の状態となる。
【0077】
<分析プログラム253による分析処理例>
図16を用いて、学習プログラム252による分析処理例について説明する。分析プログラム253は、たとえば、バッチ処理によりある時刻に自動的に実行される。また、操作者からの実行指示により実行されてもよい。なお、分析対象データは、統合学習処理に用いられていないデータとする。
【0078】
図16は、実施例2にかかる学習プログラム252による分析処理の詳細な処理手順例を示すフローチャートである。まず、監視装置202は、分析対象データを計測値テーブル261から取得する(ステップS1601)。分析対象データは、ある計測時間(分析対象計測時間)における入力データ数および出力データ数である。分析対象計測時間が、たとえば、t10(例として、2015年4月27日0:00〜0:59)であるとすると、監視装置202は、t10の入力データ数ni10および出力データ数no10を計測値テーブル261から取得する。
【0079】
つぎに、監視装置202は、分析対象データの処理数の一例としてデータ処理数を算出する(ステップS1502)。たとえば、監視装置202は、出力データ数no10から入力データ数ni10を引いた差分をデータ処理数として算出する。
【0080】
そして、監視装置202は、分析対象データの計測時間と同一時間帯ztiと、分析対象データの入力データ数が含まれる入力数帯zcjとで決まるセルcijを統合学習データテーブル2623から特定する(ステップS1603)。監視装置202は、特定したセルcijに学習データ(nij,vij,dij)が存在するか否かを判定する(ステップS1604)。
【0081】
特定したセルcijに学習データ(nij,vij,dij)が存在しない場合(ステップS1604:No)、監視装置202は、ステップS1605およびステップS1606を実行する。ステップS1605およびステップS1606は、
図13で説明した処理である。具体的には、監視装置202は、特定セルcijと同一時間帯ztのセル群Ctのばらつき群と、特定セルcijと同一入力数帯zcのセル群Ccのばらつき群と、のうち、最小ばらつきを有するセル群を選択する(ステップS1605)。
図13の(B)ではセル群Ctが選択される。
【0082】
そして、監視装置202は、選択セル群において特定セルcijの隣接セルのうちばらつきが小さい方の隣接セルを選択し、当該隣接セルの学習データを、特定セルcijの学習データの代用学習データとする(ステップS1606)。そして、ステップS1611に移行する。
【0083】
一方、ステップS1604において、特定したセルcijに学習データ(nij,vij,dij)が存在する場合(ステップS1604:Yes)、監視装置202は、特定セルcijのデータ数dijがしきい値T以上であるか否かを判断する(ステップS1607)。しきい値以上である場合(ステップS1607:Yes)、精度に影響が出ない程度に平均データ処理数nijが求められているとし、ステップS1611に移行する。この場合、特定セルcijの学習データが分析に採用される。
【0084】
一方、データ数dijがしきい値T未満である場合(ステップS1607:No)、監視装置202は、ステップS1608およびステップS1609を実行する。ステップS1608およびステップS1609は、
図14で説明した処理である。具体的には、監視装置202は、特定セルcijと同一時間帯ztのセル群Ctのばらつき群と、特定セルcijと同一入力数帯zcのセル群Ccのばらつき群と、のうち、最小ばらつきを有するセル群を選択する(ステップS1608)。
図14の(B)ではセル群Ctが選択される。
【0085】
そして、監視装置202は、選択セル群において特定セルcijの隣接セルのうち平均データ処理数が特定セルcijの平均データ処理数に近い方の隣接セルを選択し、当該隣接セルの学習データを、特定セルcijの学習データの代用学習データとする(ステップS1606)。そして、ステップS1611に移行する。
【0086】
ステップS1611では、分析対象データの平均データ処理数と、特定セルcijの学習データ内の平均データ処理数(代用学習データの場合は、選択された隣接セルの学習データ内の平均データ処理数)と、を比較して、監視対象装置100を分析する(ステップS1611)。そして、監視装置202は、分析結果情報を出力デバイス207に出力する(ステップS1612)。これにより、監視装置202は、分析処理を終了する。
【0087】
このように、実施例2によれば、監視対象装置100の入力データ数が時間的に変化する場合でも、障害発生の予兆を高精度に検出することができる。また、複数の異なるデータが入力した場合でも、データの種類ごとに集計する必要がないため、障害発生の予兆を簡易に検出することができる。換言すれば、障害発生の予兆検出のためにデータ収集量を増加する必要がないため、ネットワークの負荷低減を図ることができる。
【0088】
また、実施例2によれば、あらかじめ、時間帯ztiごとに入力数帯zcjごとの平均データ処理数nijが細分化されているため、分析時に該当する平均データ処理数nijを選択するだけで、分析対象データの比較対象としてばらつきが小さい高精度な平均データ処理数nijを用いて分析することができる。また、分析時に、第1の学習データと第2の学習データのいずれかを選択する必要がないため、分析処理の高速化を図ることができる。また、セルcijの学習データに欠落や不足があった場合、精度がよい方のセル帯の隣接セルの学習データで補完するため、セルcijの学習データに近似することができる。したがって、分析精度の低減を抑制することができる。
【0089】
なお、実施例2では、監視装置202において、計測プログラム251による計測処理や学習プログラム252による統合学習処理を実行する例について説明したが、計測処理や統合学習処理は、外部装置により実行することとしてもよい。この場合、監視装置202は、当該外部装置から、計測値テーブル261のエントリや統合学習データテーブル2623のセル内の学習データを取得することになる。
【0090】
また、上述した実施例2では、
図16のステップS1607のしきい値Tを固定値としたが、分析処理の実行回数に応じて増加する変動値としてもよい。これにより、データ数の増加に従ってしきい値Tも増加する。したがって、データ数の充足判定(S1607)により、分析対象データの比較対象となる学習データについて信頼性の高い学習データを採用することができ、分析精度の高精度化を図ることができる。
【0091】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【0092】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサ204がそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0093】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ205、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
【0094】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。