説明

IT障害検知・検索装置及びプログラム

【課題】監視イベントの属性値に変化が発生した場合でも、過去に発生した類似のIT障害イベントを精度よく検索可能にする。
【解決手段】IT障害を監視する監視サーバが生成した監視イベントを逐次取得し、一つの原因よって発生した単数又は複数のイベントから構成されるIT障害イベントブロックを作成する。次に、IT障害イベントブロックのイベントに頻出する属性値をもとに特徴情報を求め、その変化内容と発生時間を変化テーブルに記録する。その後、特徴情報に基づいてIT障害イベントブロックを検索する。この際、変化テーブルを参照し、検索対象とする時間範囲に応じて検索処理で使用する特徴情報の内容を補正する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、監視サーバが生成する障害イベントに基づいて、IT障害を検知すると共に過去の類似障害を検索する装置及び当該装置をソフトウェア的に実現するプログラムに関する。
【背景技術】
【0002】
企業経営や社会に大きな影響を与えるIT障害が最近多発している。IT障害を引き起こす原因は、ハードウェア障害、プログラムのバグ等様々である。特に、社会インフラを提供する企業においては、たとえIT障害が発生した場合でも、事業継続の観点から、目標復旧時間内に復旧を完了し、経営や社会に与える影響を最小限に抑えることが社会的に求められている。
【0003】
IT障害による被害の拡大を防ぐには、迅速で適切な初動対応が最も重要となる。このため、復旧担当者による適切な対処を支援する技術、例えば過去の類似するIT障害の発生時に実行した対処方法を検索できる支援技術が求められている。
【0004】
従来の支援技術は、障害情報とその対処方法をデータベースで管理し、IT障害に応じた対処方法の検索を可能にしている。特許文献1は、障害情報と対処方法をキーとする検索技術を記述する。特許文献2は、障害情報を、直近のIT障害で更新するための技術を記述する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許3867868号
【特許文献2】特許3983138号
【非特許文献】
【0006】
【非特許文献1】Fisher, Douglas H. “Knowledge acquisition via incremental clustering”, Machine Learning 2, 139-172, 1987
【非特許文献2】Shohei Hido, Tsuyoshi Ide, Hisashi Kashima, Harunobu Kubo and Hirofumi Matsuzawa, “Unsupervised Change Analysis using Supervised Learning”, In Proc. 2008 Pacific-Asia Conference on Knowledge Discovery and Data Mining (PAKDD2008), Osaka, Japan, May, 2008
【発明の概要】
【発明が解決しようとする課題】
【0007】
ITシステムの運用中には、監視イベントの属性値に変化を伴う変更が発生することがある。例えばソフトウェアのバージョンがアップデートされると、属性「プロセス名」の属性値に変化が発生する。また例えばサーバ機器が変更されると、属性「サーバ名」の属性値に変化が発生する。
【0008】
この種の変更は、多くの場合、IT障害の原因そのものに変化を与えることはない。しかし、表面的な変化であるとしても、監視イベントの属性値が変化すると、障害情報の連続性が損なわれ、過去の対処方法を検索することができない。
【課題を解決するための手段】
【0009】
そこで、本発明者は、属性値に変化がある場合でも、新たに取得したIT障害に類似する過去のIT障害の検索を可能にするための仕組みを提供する。具体的には、IT障害を監視する監視サーバが生成した監視イベントを逐次取得し、一つの原因よって発生した単数又は複数のイベントから構成されるIT障害イベントブロックを作成する。次に、IT障害イベントブロックに属するイベントに頻出する属性値をもとに特徴情報を求める。また、イベントブロックの特徴情報に発生した変化の内容と発生時間を変化テーブルに記録する。その後、特徴情報に基づいてIT障害データベースを検索し、新規に取得されたIT障害イベントブロックに類似する過去のIT障害イベントブロックを検索する。この際、変化テーブルを参照し、検索対象とする時間範囲に応じて検索処理で使用する特徴情報の内容を補正する。
【発明の効果】
【0010】
本発明によれば、何らかの理由で監視イベントの属性値に変化があった場合でも、過去に発生した類似のIT障害イベントを検索することができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0011】
【図1】IT障害検知・検索システムのシステム構成例を示す図。
【図2】監視サーバが生成する監視イベント例を示す図。
【図3】IT障害検知・検索コンピュータのシステム構成例を示す図。
【図4−1】IT障害DBが保持するIT障害イベントブロックテーブルとIT障害特徴テーブルの具体例を示す図。
【図4−2】IT障害DBが保持するIT障害分類木と変化テーブルの具体例を示す図。
【図5】IT障害検知・検索プログラムの設定画面例を示す図。
【図6】IT障害検知・検索プログラムのIT障害検知画面例を示す図。
【図7】IT障害検知・検索処理の概要を示すフローチャート。
【図8】IT障害分類木のインクリメント処理を説明するフローチャート。
【図9】IT障害分類木のデクリメント処理を説明するフローチャート。
【図10】IT障害分類木のインクリメント処理を説明する図。
【図11】IT障害分類木のデクリメント処理を説明する図。
【図12】変化検知・解析処理を説明する図。
【図13】変化解析処理を説明する図。
【発明を実施するための形態】
【0012】
以下、図面に基づいて、本発明の実施の形態を説明する。なお、本発明の実施の態様は、後述する形態例に限定されるものではなく、その技術思想の範囲において、種々の変形が可能である。
【0013】
(IT障害検知・検索システムのシステム構成)
図1に、IT障害検知・検索コンピュータ103を実装するIT障害検知・検索システムの構成例を示す。図1に示すIT障害検知・検索システムは、監視対象サーバ群101と、そのコンピュータの状態を監視し、その内容に基づいて監視イベントを生成する監視サーバ102と、監視サーバ102が生成した監視イベントを解析し、IT障害の検知や類似する過去のIT障害を検索するIT障害検知・検索コンピュータ103と、監視イベントのうちIT障害に関わる情報を格納するIT障害DB104とを有している。
【0014】
このうち、監視サーバ102は、監視対象サーバ群101の状態(例えば、監視対象サーバ上で実行されているプロセスの死活など)を監視し、その状態に応じた監視イベントを生成する機能を提供する。生成した監視イベントはIT障害検知・検索コンピュータ103に送信される。
【0015】
図2は、監視サーバ102が生成する監視イベントの発生例を示している。監視イベントは、イベントを一意に識別するイベントID201、監視サーバ102が監視イベントを生成した日時を表す発生日時202、監視イベントの属性203から構成されている。
【0016】
監視イベントの属性は、「情報」、「警告」等の監視イベントの重大度を表す種類204、イベントが対象としているプロセス名を表すソース205、ソース205の状態を一意に識別するイベント番号206、ソース205を起動したユーザを示すユーザ207、ソース205が実行されている監視サーバ群101内のコンピュータを示すコンピュータ208から構成される。
【0017】
図3に、IT障害検知・検索コンピュータ103の構成例を示す。IT障害検知・検索コンピュータ103は、コンピュータ本体300と、入力装置330と、表示装置331と、通信装置332とから構成される。なお、通信装置332は、監視サーバ102及びIT障害DB104と通信する。
【0018】
コンピュータ本体300は、データ演算をするCPU301、ROM302、RAM310、データを格納するハードディスク駆動装置320、これらデバイス間のデータ転送を実現するCPUバス307、これらデバイスとCPUバス307を結合するインターフェース303〜306で構成される。
【0019】
RAM310には、少なくとも、(1) CPU301に演算処理させるIT障害検知・検索プログラム311の実行領域と、(2) 演算時に一時的に生成させるデータを格納する作業領域312が確保される。また、ハードディスク駆動装置320の記憶領域には、少なくとも、(1) IT障害検知・検索プログラムの格納領域としてのプログラム格納部321と、(2) 監視サーバ102及びIT障害DB104から取得したデータを一時的に格納するデータ格納部322が確保される。
【0020】
(データベースのデータ構造)
図4−1は、IT障害DB104が保持するIT障害イベントブロックテーブル400及びIT障害特徴テーブル410の構造例を示す。図4−2は、IT障害DB104が保持するIT障害分類木420及び変化テーブル430の構造例を示す。
【0021】
IT障害イベントブロックテーブル400は、イベントブロックを一意に特定するイベントブロックID401と、イベントブロックに含まれる単数又は複数のIT障害イベント402から構成される。
【0022】
ここで、イベントブロックとは、一つのIT障害が発生したときに、それに伴って一定時間内に発生した単数又は複数のIT障害イベントの集合である。イベントブロックの作成方法の説明は、IT障害検知・検索プロセスの説明の際に行う。また、IT障害イベントは、監視イベントのうち属性「種類」204の値が、IT障害検知・検索プログラムの設定画面500(図5)のIT障害イベント種類入力部501で入力された値のいずれかである監視イベントをいう。
【0023】
IT障害特徴テーブル410は、同じ特徴を持つIT障害を一意に特定するIT障害ID411と、IT障害の特徴412と、同じIT障害の特徴を持つイベントブロックIDのリスト413から構成される。IT障害の特徴412の求め方は後述する。
【0024】
IT障害分類木420は、特徴412に基づくイベントブロックの分類により作成される。図4−2は、当該分類木の概念構成を表している。当該分類木の作成方法は、IT障害分類木のインクリメント処理/デクリメント処理プロセスにおいて後に詳細に説明する。分類木の各ノードには、その要素として分類されたIT障害イベントブロックが保持される。分類木の構築方法については後述する。
【0025】
変化テーブル430は、イベントブロックの特徴412に発生した変化の内容と発生日時を保持するテーブルである。変化テーブル430は、発生した変化を一意に特定する変化ID431、変化が発生した日付を示す変化発生日432、特徴412を構成する属性のうち変化が発生した属性を示す属性名433、同属性における変化前の属性値を示す変化前属性値434、同属性における変化後の属性値を示す変化後属性値435から構成される。例えば変化ID「1」には、「2010/02/03」に、属性「コンピュータ0」の属性値が「サーバ10」から「サーバ23」に変更されたことが記録されている。
【0026】
(設定画面例)
図5及び図6に、表示装置331に表示されるIT障害検知・検索プログラム311のGUI画面例を示す。
【0027】
図5は、IT障害検知・検索プログラム311の初期画面として、表示装置331に最初に表示される画面(設定画面500)を表している。この設定画面500は、ユーザがIT障害とみなすイベントの登録時等に使用される。IT障害検知・検索プログラム311は、設定画面500の設定内容に基づいて、後述するIT障害検知処理及び検索処理を実行する。
【0028】
設定画面500は、IT障害イベント種類入力部501、最大イベント時間間隔入力部502、変化検知時間窓幅入力部503、変化量閾値入力部504、変化解析時間窓幅入力部505、開始ボタン506から構成される。
IT障害イベント種類入力部501は、IT障害イベントとみなすイベントの属性「種類」204の入力欄である。図5は、「エラー」、「致命的」、「緊急」のラベルを有する監視イベントをIT障害イベントとして扱う場合である。
【0029】
最大イベント時間間隔入力部502は、IT障害イベントとみなされるイベントが複数観察された場合に、同じ原因により発生したIT障害イベントとみなす時間の範囲を入力するための項目欄である。
【0030】
例えばIT障害イベントとみなされるイベントが観察されてから次に観察されるまでの時間が、最大イベント時間間隔入力部502に入力された時間に収まる場合、該当する複数のイベントは同じ原因に起因して発生したイベントであると判定する。同じ原因に起因する1つ又は複数のイベントを、1つのイベントブロックとして扱う。図5の場合、時間の単位は「分」である。もっとも、時間単位は、秒でも、時間でも、日でも、その他の単位でも良い。
【0031】
変化検知時間窓幅入力部503は、変化を検知する時間の範囲を指定するための項目欄である。図5の場合、時間の単位は「日」である。もっとも、時間単位は、秒でも、分でも、時間でも、その他の単位でも良い。
【0032】
変化量閾値入力部504は、変化の発生が検出された場合に、変化解析を実行するか否かの判断基準(変化量)の閾値を入力するための項目欄である。これを設定することにより、ノイズによる変化の誤検知を回避することができる。
【0033】
変化解析時間窓幅入力部505は、変化解析を実行する時間範囲を指定するための項目欄である。図5の場合、時間の単位は「日」である。もっとも、時間単位は、秒でも、分でも、時間でも、その他の単位でも良い。開始ボタン506は、IT障害検知・検索プログラムの実行を指示するためのボタンである。
【0034】
(IT障害検知画面例)
図6は、IT障害検知・検索プログラム311が検知したIT障害及び検索した類似IT障害の結果を表示する画面600である。画面600は、「検知したIT障害」を列記するIT障害テーブル610と、「発生した障害イベント」の属性を表示する障害イベントテーブル620と、「類似IT障害」の属性を表示する類似IT障害テーブル630で構成される。
【0035】
IT障害テーブル610は、検知したIT障害情報を一意に特定するIT障害ID611と、IT障害を検知した検知日時612から構成される。障害イベントテーブル620は、IT障害テーブル610内で選択されたIT障害に対して実際に発生した障害イベントの属性の内容を示す表示欄である。属性情報は、イベントID、発生日時、種類、ソース、イベント番号、ユーザ、コンピュータで構成される。
【0036】
類似IT障害テーブル630は、IT障害をイベントブロック単位で一意に特定するIT障害ID631、類似すると判定されたIT障害イベントブロックを構成する個々の監視イベントの属性632、検知したIT障害との類似度633から構成されている。
【0037】
(IT障害検知・検索動作)
図7に、IT障害検知・検索システムで実行されるIT障害検知・検索プロセスの概略を示す。
【0038】
(ステップ700)
IT障害検知・検索コンピュータ103は、IT障害検知・検索プログラムの設定画面500(図5)において開始ボタン506のクリック入力を検出すると、設定画面500を通じて設定された属性値を読み込み、IT障害検知・検索プログラム311に基づいた検知処理と検索処理を開始する。
【0039】
該当処理の実行に際し、IT障害検知・検索コンピュータ103は、IT障害イベント種類入力部501に設定入力されたIT障害イベントを特定する属性「種類」204の属性値と、最大イベント時間間隔入力部502に設定入力された時間間隔と、変化検知時間窓幅入力部503に設定入力された時間範囲と、変化量閾値入力部504に設定入力された閾値と、変化解析時間窓幅入力部505に設定入力された時間幅を読み込む。
【0040】
(ステップ701)
IT障害検知・検索コンピュータ103は、監視サーバ102から通信装置332を介して監視イベントを受信する。IT障害検知・検索コンピュータ103は、監視イベントの中からIT障害イベントを選択的に取得し、それ以外のイベントは破棄する。監視イベントがIT障害イベントか否かは、監視イベントの属性「種類」204の値が、IT障害イベント種類入力部501に設定入力された値に含まれるか否かに基づいて判定する。この実施例の場合、属性「種類」204の値が、「エラー」、「致命的」、「緊急」のいずれであるか判定する。
【0041】
図2に示す監視イベントの場合、イベントID201が「4」、「5」、「6」、「10」、「11」、「12」の監視イベントが、IT障害イベントとして判定される。これら以外の監視イベントは無視される。
【0042】
(ステップ702)
IT障害検知・検索コンピュータ103は、取得されたIT障害イベントからIT障害イベントブロック(図4−1)を生成し、その後、IT障害イベントブロックの特徴412(図4−1)を計算する。さらに、IT障害検知・検索コンピュータ103は、通信装置332を介してIT障害DB104のIT障害イベントブロックテーブル400及びIT障害特徴テーブル410を更新する。
【0043】
時間的に連続して発生した2つのIT障害イベントが同じイベントブロックに属するか否かの判定は、2つのIT障害イベントの発生日時202の時間間隔が、最大イベント時間間隔入力部502(図5)の入力値以内か否かにより判断する。
【0044】
ここで、2つのIT障害イベントの時間間隔が最大イベント時間間隔以内であれば、2つのIT障害イベントは、同じイベントブロック内に分類される。一方、2つのIT障害イベントの時間間隔が最大イベント時間間隔外であれば、別々のイベントブロックに分類される。
【0045】
例えば、図2の監視イベントの例の場合、イベントID201が「5」と「6」の発生日時202の時間間隔は1分2秒である。この値は、設定画面500(図5)の最大イベント時間間隔入力部502で設定された2分以内である。従って、これら2つのIT障害イベントは、IT障害イベントブロックテーブル400(図4−1)において、同じイベントブロックID401(すなわち、「1」)に割り当てられている。
【0046】
一方、イベントID201が「6」と「10」の監視イベントの発生日時202の時間間隔は、最大イベント時間間隔以上である。このため、これら2つのIT障害イベントは、IT障害イベントブロックテーブル400(図4−1)において、異なるイベントブロック(すなわち、「1」と「2」)に割り当てられている。
【0047】
次に、IT障害検知・検索コンピュータ103は、作成したIT障害イベントブロックの特徴量412を計算する。IT障害の特徴412は、IT障害イベントブロックテーブル400において、同じイベントブロックに含まれる単数又は複数のIT障害イベントの「種類」、「ソース」、「イベント番号」、「ユーザ」、「コンピュータ」の各属性に対して、共通する属性値の頻度を計算し、頻度の高い属性値の上位2つを各属性の「特徴」とする。
【0048】
例えばIT障害イベントブロックテーブル400(図4)の場合、イベントブロックID401が「1」のイベントブロックに、イベントID「4」、「5」、「6」の3つのIT障害イベントが含まれている。属性「種類」に着目すると、属性値「エラー」は2回出現し、「致命的」は1回出現している。
【0049】
従って、IT障害特徴テーブル410においては、イベントブロックID「1」の属性「種類」に関し、最も頻度の高い属性値を表す「種類0」に「エラー」が設定され、次に頻度の高い属性値を表す「種類1」に「致命的」が設定されている。
【0050】
なお、IT障害特徴テーブル410では、各属性の組み合わせが全て共通するイベントブロック同士が1つのIT障害ID411で管理される。例えばイベントブロックID「1」は、IT障害ID411「1」で管理される。因みに、IT障害ID411のイベントブロックIDリスト413には、イベントブロックID「1」の他に、「15」と「30」も含まれており、それらは同じ特徴を有することが分かる。
【0051】
因みに、「特徴」は、これらの属性の他、イベントブロック内の先頭イベントの発生日時202から最終イベントの発生日時202までの平均時間間隔、属性値の平均値に対して差異が大きい属性値等を用いても良い。
【0052】
(ステップ703)
IT障害検知・検索コンピュータ103は、IT障害DB104のIT障害特徴テーブル410を参照し、ステップ702で作成したIT障害イベントブロックと同じ特徴412を有するイベントブロックIDを、イベントブロックIDリスト413から取得する。すなわち、特徴が類似するIT障害イベントブロックを取得する。
【0053】
ここで、IT障害検知・検索コンピュータ103は、変化テーブル430(図4−2)を参照し、必要に応じて特徴412を補正した後の内容にてイベントブロックIDリスト413を検索する。補正の必要があるのは、監視イベントに過去に変化した属性値が含まれており、かつ、当該変化の発生時点より過去に発生したIT障害イベントを検索対象とする場合である。
【0054】
例えば図4−2の場合、変化テーブル430の変化ID「1」には、変化発生日「2010/02/03」に、属性名「コンピュータ0」の属性値が「Server10」から「Server23」に変更されたことが記録されている。従って、ステップ702で作成したIT障害イベントブロックの特徴412に含まれる属性名「コンピュータ0」の値が「Server23」であった場合に、変化発生日「2010/02/03」以前に発生したIT障害イベントブロックの検索時には、IT障害検知・検索コンピュータ103は、特徴412の属性名「コンピュータ0」の属性値を「Server10」に変更して検索処理を実行する。勿論、変化発生日「2010/02/03」以降に発生したIT障害イベントブロックの検索には、現在の特徴412に含まれる属性値(すなわち、「Server23」)をそのまま使用する。
【0055】
なお、IT障害特徴テーブル410には、現在時刻までに生成されたIT障害イベントブロックの特徴が全て保存されている。勿論、ある属性の属性値に変化があると、変化前とは異なる特徴が生成される。
【0056】
従来の障害検索技術では、属性値が変更される前の情報を有していないため、専ら属性変更後の特徴を用いてしか類似する特徴を有するIT障害イベントブロックを検索することができない。結果的に、属性値の変更がIT障害の原因には影響しない要因により生じた場合でも、変更以前に行った対策に関する情報を検索することができなかった。
【0057】
一方、本実施例の場合、現在時刻に取得されたIT障害イベントブロックと特徴が共通するイベントブロックだけでなく(すなわち、属性変更後の特徴が共通するイベントブロックだけでなく)、属性値が変更される前の特徴412と共通するイベントブロックについても検索結果に含めることができる。ここで、過去のIT障害イベントブロックに過去の対策等が関連付けてデータベースに保存されている場合には、属性値の変更の有無によらず、今回のIT障害イベントに対する適切な対策等を提示することができる。すなわち、復旧作業に従事する担当者が適切な対策を効率良く実行できるように支援することができる。
【0058】
(ステップ704)
IT障害検知・検索コンピュータ103は、ステップ702で作成したIT障害イベントブロックと、ステップ703で取得したIT障害イベントブロック間の類似度を計算する。2つのイベントブロック(イベントブロックA、イベントブロックB)間の類似度は、例えば次式

により算出する。勿論、先程説明した変化テーブル430を参照して、変化の前か後かを考慮し、適時属性値を変更して類似度の計算を行う。
【0059】
(ステップ710)
IT障害検知・検索コンピュータ103は、IT障害の検知結果を、表示装置331のIT障害検知画面600(図6)に表示する。IT障害検知画面600には、障害イベントテーブル620と類似IT障害テーブル630が表示される。障害イベントテーブル620には、ステップ702で作成されたIT障害イベントブロックが表示される。類似IT障害テーブル630には、ステップ703で検索された類似IT障害イベントブロックが類似度633と共に表示される。
【0060】
図6の場合、類似IT障害テーブル630のIT障害ID「81」に対応するIT障害イベントブロックは、ステップ702で作成したIT障害イベントブロックと、発生日時を除き、全ての属性で属性値が一致する。このため、IT障害ID「81」のIT障害イベントブロックと、障害イベントテーブル620に表示された2つのイベントブロックとの類似度は100%である。
【0061】
また、IT障害ID「99」のIT障害イベントブロックと、障害イベントテーブル620のイベントブロックとの類似度は87%である。ここで、IT障害ID「99」に属するIT障害イベントブロックを構成する属性数の合計は15個(=5個×3)である。イベントID「345」及び「346」で特定されるイベントブロックについては、全ての属性について属性値の一致が認められ、イベントID「347」で特定されるイベントブロックについては3つの属性について属性値の一致が認められる。従って、類似度は、13/15で計算される。
【0062】
(ステップ705)
次に、IT障害分類木の更新機能について説明する。すなわち、IT障害分類木の保守管理機能について説明する。従来のKmeansなどの教師なしクラスタリングアルゴリズムでは、構成する訓練データ(IT障害イベントブロックの集合)に変更(IT障害イベントブロックの削除や追加)があると、IT障害分類木のようなクラスターを新規に再作成する必要がある。しかし、その計算量は膨大であり、しかも過去に作成したクラスターに対する変化を連続的に追跡することが困難である。そこで、本実施例では、これらの技術的課題を解決可能な手法について説明する。
【0063】
IT障害検知・検索コンピュータ103は、現在の時刻を起点とし、ある時間範囲内に発生したIT障害イベントブロックのリストAと、現在のIT障害分類木420を構成しているIT障害イベントブロックのリストBとを比較する。この比較処理は、ステップ703、704及び710と同時並行的に実行される。比較対象とする時間範囲は、設定画面500(図5)の変化検知時間窓幅入力部503に設定入力された値で与えられる。
【0064】
IT障害検知・検索コンピュータ103は、リストBに含まれているがリストAに含まれていないIT障害イベントブロックをIT障害分類木からデクリメントし、IT障害分類木420を更新する。一方、IT障害検知・検索コンピュータ103は、リストAに含まれていているがリストBに含まれていないIT障害イベントブロックをIT障害分類木にインクリメントし、IT障害分類木420を更新する。デクリメント処理とインクリメント処理の詳細については後述する。
【0065】
(ステップ706)
IT障害検知・検索コンピュータ103は、所定時間単位でIT障害分類木に生じた変化量を計算する。例えば1日単位で変化量を計算する。変化量は、例えば次式

により計算する。
【0066】
ここで、D(IT障害分類木A, IT障害分類木B)は、IT障害分類木AとIT障害分類木Bとの間の編集距離を表す。編集距離とは、一方を他方に変形するために要する最小手順回数で与えられる。例えばインクリメント処理には、図10(1)〜(3)に示す編集処理がある。この場合、編集距離は1カウントされる。また例えばデクリメント処理には、図11(1)〜(3)に示す編集処理がある。この場合、編集距離は1カウントされる。
【0067】
図12の上段に、一日単位で計算されたIT障害分類木420の変化量の時間変化を示すグラフ1200を示す。グラフ1200の横軸は時間であり、縦軸は変化量(%)である。
【0068】
(ステップ707)
IT障害検知・検索コンピュータ103は、ステップ706で算出された変化量と、設定画面500(図5)の変化量閾値入力部504に設定入力された閾値とを比較する。変化量が閾値以上であった場合、IT障害検知・検索コンピュータ103は、ステップ708に進む。一方、変化量が閾値より小さい場合、IT障害検知・検索コンピュータ103は、ステップ701に戻る。
【0069】
(ステップ708)
IT障害検知・検索コンピュータ103は、変化量が閾値を越える変化が発生した場合、例えば非特許文献2に開示の手法を用いて解析し、変化の前後において特徴412を構成するどの属性名433の属性値がどのように変化したかを特定する。特定された結果は、IT障害DB104の変化テーブル430に反映される。
【0070】
次に、変化解析処理の一例を示す。IT障害検知・検索コンピュータ103は、変化量が閾値を超えた日を起点とし、その前後所定期間内に取得されたIT障害イベントブロックをIT障害イベントブロックテーブル400(図4−1)から取得する。IT障害イベントブロックを取得する時間範囲は、設定画面500(図5)の変化解析時間窓幅入力部505に設定された値を使用する。図5の場合は、30日である。
【0071】
以下では、図12の下段に示すグラフ1210を用いて変化解析処理に伴うIT障害イベントの取得処理を説明する。なお、グラフ1210の横軸は時間であり、縦軸はIT障害の発生頻度である。
【0072】
前述したように、IT障害分類木420の変化量1202は、「2010/05/20」に閾値1201を超えている。従って、IT障害検知・検索コンピュータ103は、「2010/05/20」に対して前30日間1211及び後30日間1212の範囲でIT障害イベントブロックを取得する。
【0073】
次に、IT障害検知・検索コンピュータ103は、取得されたIT障害イベントブロックに対する特徴412をIT障害特徴テーブル410から取得する。その上で、IT障害検知・検索コンピュータ103は、変化前のIT障害イベントブロックには「変化前」のラベルを付加し、変化後のIT障害イベントブロックには「変化後」のラベルを付加した変化解析テーブル1300(図13)を作業領域312に作成する。
【0074】
最後に、IT障害検知・検索コンピュータ103は、変化解析テーブル1300の特徴1301とラベル1302を参照し、作業領域312上にID3やC4.5などの教師あり学習アルゴリズムを用いて変化解析決定木1310(図13)を構築する。変化解析決定木1310には、変化前後で属性値がどのように変化したかの情報が表現される。
【0075】
図13に示す変化解析決定木1310は、属性名「ソース0」の属性値が変化の前後で「Process6」から「Process7」に変化されたこと、属性名「コンピュータ0」の属性値が「Server2」から「Server8」に変化されたことを表している。
【0076】
(IT障害分類木のインクメント処理)
次に、図8を用い、IT障害分類木420のインクリメント処理の詳細を説明する。この処理は、従来の概念クラスタリングCOBWEBにおけるインクリメント処理と同じ処理である(非特許文献1)。以下では、実施例に特有の処理であるデクリメント処理との比較の観点からインクリメント処理の内容を説明する。インクリメント処理とは、IT障害分類木420に新たなIT障害イベントブロックの特徴412を1個追加して、IT障害分類木420を更新する処理である。
【0077】
(ステップ800)
IT障害検知・検索コンピュータ103は、変数「node」にIT障害分類木420の「rootノード」を設定する。
【0078】
(ステップ801)
IT障害検知・検索コンピュータ103は、変数「node」に設定しているIT障害分類木420のノードに対し、今回追加しようとしているIT障害イベントブロックの特徴412を追加する。
【0079】
(ステップ802)
IT障害検知・検索コンピュータ103は、変数「node」に設定しているIT障害分類木420のノードがrootノードであり、かつ、そのrootノードが子ノードを持っていないか否かを判定する。IT障害検知・検索コンピュータ103は、肯定結果が得られた場合はステップ803を実行し、否定結果が得られた場合はステップ804を実行する。
【0080】
(ステップ803)
IT障害検知・検索コンピュータ103は、IT障害分類木420の新規ノードを作成し、新規ノードに当該IT障害イベントブロックの特徴412を追加する。さらに、この新規ノードをrootノードの子ノードとして追加する。
【0081】
(ステップ804)
IT障害検知・検索コンピュータ103は、次の4つの場合についてCU値(Category Utility)を計算する。
(1)適当な子ノードの要素にIT障害イベントブロックを追加したときのCU値(Category Utility)
(2)IT障害イベントブロックを要素に持つ新規ノードを作成し、子ノードとして追加したときのCU値(Category Utility)
(3)適当な2つの子ノードを統合したときのCU値(Category Utility)
(4)適当な子ノードを分割したときのCU値(Category Utility)
【0082】
CU値(Category Utility)は、次式で与えられる。

ここで、nは子ノード数、Ckはk番目の子ノードを表し、Aiは特徴412のi番目の属性、Vi, jはi番目の属性の属性値がj番目の属性値であることを意味している。
【0083】
(ステップ805)
IT障害検知・検索コンピュータ103は、ステップ804で計算した4種類のCU値(Category Utility)を比較する。
(1)追加
適当な子ノードの要素にIT障害イベントブロックを追加したときのCU値(Category Utility)が最大の場合は、ステップ806を実行する。
(2)新規
IT障害イベントブロックを要素に持つ新規ノードを作成し、子ノードとして追加したときのCU値(Category Utility)が最大の場合は、ステップ807を実行する。
(3)統合
適当な2つの子ノードを統合したときのCU値(Category Utility)が最大の場合は、ステップ808を実行する。
(4)分割
適当な子ノードを分割したときのCU値(Category Utility)が最大の場合は、ステップ809を実行する。
【0084】
(ステップ806)
IT障害検知・検索コンピュータ103は、変数「node」に設定されているIT障害分類木420を構成する子ノードのうち、IT障害イベントブロックを要素に追加すると、最大のCU値(Category Utility)が得られる子ノードに対し、IT障害イベントブロックを追加する。
【0085】
さらに、IT障害検知・検索コンピュータ103は、変数「node」に、IT障害イベントブロックを追加した子ノードを新たに設定する。
【0086】
(ステップ807)
IT障害検知・検索コンピュータ103は、変数「node」に設定されているIT障害分類木420のノードに対し、IT障害イベントブロックを含む新規の子ノードを追加する。
【0087】
図10(1)は、新規ノードの追加を説明する図である。変更前のIT障害分類木1000には、「node」の子要素として「child_node_B」及び「child_node_C」がある。今、「node」に、IT障害イベントブロックを含む新規ノードを追加すると、最大のCU値(Category Utility)が得られる。このとき、IT障害イベントブロックを要素に持つ新規ノード「new_node」を作成し、「node」の子ノードとして追加する。これにより、新規子ノードを追加したIT障害分類木1001が得られる。
【0088】
(ステップ808)
IT障害検知・検索コンピュータ103は、変数「node」に設定されているIT障害分類木420を構成する子ノードのうち、統合すると最大のCU値(Category Utility)が得られる2つの子ノードを統合する。
【0089】
図10(2)は、ノードの統合を説明する図である。変更前のIT障害分類木1010には、「node」の子要素として「child_node_A」、「child_node_B」、「child_node_C」がある。今、「child_node_A」と「child_node_B」を統合すると、最大のCU値(Category Utility)が得られるとする。このとき、IT障害検知・検索コンピュータ103は、新規ノード「new_node」を作成し、その親ノードに「node」を設定する一方、その子ノードに「child_node_A」及び「child_node_B」を設定する。この結果、「child_node_A」と「child_node_B」を統合したIT障害分類木1011が得られる。
【0090】
(ステップ809)
IT障害検知・検索コンピュータ103は、変数「node」に設定されているIT障害分類木420を構成する子ノードのうち、分割すると最大のCU値(Category Utility)が得られる子ノードを分割する。
【0091】
図10(3)は、ノードの分割を説明する図である。変更前のIT障害分類木1020には、「node」の子要素として「child_node_A」及び「child_node_B」があり、「child_node_A」の子ノードとして「grandchild_node_C」及び「grandchild_node_D」がある。今、「child_node_A」を分割することで最大のCU値(Category Utility)が得られるとする。このとき、IT障害検知・検索コンピュータは、「child_node_A」を削除して「grandchild_node_C」及び「grandchild_node_D」を「node」の子要素とする。この結果、「child_node_A」を分割したIT障害分類木1021が得られる。
【0092】
(IT障害分類木のデクリメント処理)
次に、図9を用い、IT障害分類木420のデクリメント処理の詳細を説明する。デクリメント処理とは、IT障害分類木420から1個のIT障害イベントブロックを削除することにより、IT障害分類木420を更新する処理のことをいう。
【0093】
(ステップ900)
IT障害検知・検索コンピュータ103は、変数「node」にIT障害分類木420の「rootノード」を設定する。
【0094】
(ステップ901)
IT障害検知・検索コンピュータ103は、変数「node」に設定しているIT障害分類木420のノードから、削除しようとしているIT障害イベントブロックを削除する。
【0095】
(ステップ902)
IT障害検知・検索コンピュータ103は、ステップ901においてIT障害イベントブロックが削除されたことにより、変数「node」に設定しているIT障害分類木420のノードが要素を持たない状態になったか否かを判定する。IT障害検知・検索コンピュータ103は、要素が存在しない場合にはステップ903に進み、要素が存在する場合にはステップ904に進む。
【0096】
(ステップ903)
この場合、「node」は空である。従って、IT障害検知・検索コンピュータ103は、IT障害分類木420から変数「node」に設定しているノードを削除する。
【0097】
図11(1)はノードの削除を説明する図である。変更前のIT障害分類木1100には、「parent node」の下に、子ノード「node」、「node B」及び「node C」が存在する。一方、変更後のIT障害分類木1101では、「node」が削除されている。
【0098】
(ステップ904)
IT障害検知・検索コンピュータ103は、次の3つの場合についてCU値(Category Utility)を計算する。
(1)IT障害イベントブロックを要素に持つ子ノードから、対象とするイベントブロックを削除したときのCU値(Category Utility)
(2)IT障害イベントブロックを要素に持つ子ノードから、対象とするイベントブロックを削除し、他の子ノードと統合したときのCU値(Category Utility)。図11(2)に統合する場合の例を示す。詳細は後述する。
(3)IT障害イベントブロックを要素に持つ子ノードを分割したときのCU値(Category Utility)図11(3)に分割の例を示す。詳細は後述する。
【0099】
(ステップ905)
IT障害検知・検索コンピュータ103は、ステップ905で計算したCU値(Category Utility)を比較する。IT障害イベントブロックを要素に持つ子ノードから、対象とするイベントブロックを削除したときのCU値(Category Utility)が最大になる場合、IT障害検知・検索コンピュータ103はステップ906を実行する。これに対し、子ノードを統合したときのCU値(Category Utility)が最大になる場合、IT障害検知・検索コンピュータ103はステップ907を実行する。そして、子ノードを分割したときのCU値(Category Utility)が最大になる場合、IT障害検知・検索コンピュータ103はステップ908を実行する。
【0100】
(ステップ906)
IT障害検知・検索コンピュータ103は、変数「node」に設定されているIT障害分類木420を構成する子ノードのうち、当該IT障害イベントブロックを含む子ノードを新たに変数「node」に設定する。
【0101】
(ステップ907)
IT障害検知・検索コンピュータ103は、変数「node」に設定されているIT障害分類木420を構成する子ノードのうち、統合すると最大のCU値(Category Utility)が得られる2つの子ノードを統合する。
【0102】
図11(2)は、ノードの統合を説明する図である。変更前のIT障害分類木1110には、「node」の子要素として「child_node_A」、「child_node_B」及び「child_node_C」がある。今、「child_node_A」が削除対象とするIT障害イベントブロックを保持しており、「child_node_B」と統合することで最大のCU値(Category Utility)が得られるとする。このとき、IT障害検知・検索コンピュータ103は、新規ノード「new_node」を作成し、その親ノードとして「node」を設定し、その子ノードとして「child_node_A」及び「child_node_B」を設定する。この結果、「child_node_A」と「child_node_B」を統合したIT障害分類木111が生成される。ただし、「new_node」のIT障害イベントブロック要素には、「child_node_A」と「child_node_B」の要素を加えたものを設定する。
【0103】
(ステップ908)
IT障害検知・検索コンピュータ103は、変数「node」に設定されているIT障害分類木420の子ノードのうち、対象とするIT障害イベントブロックを含むノードを削除することによりノードを分割する。
【0104】
図11(3)は、ノードの分割を説明する図である。変更前のIT障害分類木1120には、「node」の子要素として「child_node_A」及び「child_node_B」があり、更に「child_node_A」の子要素として「grandchild_node_C」及び「grandchild_node_D」がある。今、該当IT障害イベントブロックを含む「child_node_A」を分割することで最大のCU値(Category Utility)が得られるとする。このとき、IT障害検知・検索コンピュータ103は、「child_node_A」を削除して「grandchild_node_C」及び「grandchild_node_D」を「node」の子要素とする。この結果、「child_node_A」を分割したIT障害分類木1121が得られる。
【0105】
(まとめ)
以上説明したように、本実施例によれば、ITシステムの運用中に監視イベントの属性値に変化を伴う変更が発生した場合でも、過去に発生した類似のIT障害イベントブロックの検索が可能となる。その結果、過去の同種のIT障害発生時に実行した対策を、復旧担当者に効果的に提供することができる。
【0106】
また、本実施例の場合、ITシステム変更後に発生した監視イベントについてIT障害分類木を最初から再作成するのではなく、ノードのインクリメント処理及びデクリメント処理による修正を可能とする。これにより、IT障害分類木の作成に要する計算量を削減することができる。
【0107】
また、本実施例の場合、IT障害分類木の変化量が閾値を越える場合には、その変化の発生時を起点として前後所定の範囲内で変化した属性と属性値を解析して決定木を作成する。これにより、IT障害分類木に生じた構造変化の追跡が可能となる。
【0108】
(他の形態例)
本発明は上述した実施例に限定されるものでなく、様々な変形例が含まれる。例えば、上述した形態例は、本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある形態例の一部を他の形態例の構成に置き換えることが可能であり、また、ある形態例の構成に他の形態例の構成を加えることも可能である。また、各形態例の構成の一部について、他の構成を追加、削除又は置換することも可能である。
【0109】
また、上述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路その他のハードウェアとして実現しても良い。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することにより実現しても良い。すなわち、ソフトウェアとして実現しても良い。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記憶装置、ICカード、SDカード、DVD等の記憶媒体に格納することができる。
【0110】
また、制御線や情報線は、説明上必要と考えられるものを示すものであり、製品上必要な全ての制御線や情報線を表すものでない。実際にはほとんど全ての構成が相互に接続されていると考えて良い。
【符号の説明】
【0111】
101…監視対象サーバ群
102…監視サーバ
103…IT障害検知・検索コンピュータ
104…IT障害DB
311…IT障害検知・検索プログラム
400…IT障害イベントブロックテーブル
410…IT障害特徴テーブル
420…IT障害分類木
430…変化テーブル
500…設定画面
501…IT障害イベント種類入力部
502…最大イベント時間間隔入力部
503…変化検知時間窓幅入力部
504…変化量閾値入力部
505…変化解析時間窓幅入力部
1300…変化解析テーブル
1310…変化解析決定木

【特許請求の範囲】
【請求項1】
IT障害を監視する監視サーバが生成した監視イベントを逐次取得し、一つの原因によって発生した単数又は複数のイベントから構成されるIT障害イベントブロックを生成する第一の処理部と、
前記IT障害イベントブロックに属するイベントに頻出する属性値をもとに特徴情報を求める第二の処理部と、
イベントブロックの特徴情報に発生した変化の内容と発生時間を変化テーブルに記録する第三の処理部と、
前記特徴情報に基づいてIT障害データベースを検索し、新規に取得されたIT障害イベントブロックに類似する過去のIT障害イベントブロックを検索する第四の処理部と、
前記変化テーブルを参照し、検索対象とする時間範囲に応じて検索処理で使用する特徴情報の内容を補正する第五の処理部と
を有することを特徴とするIT障害検知・検索装置。
【請求項2】
請求項1に記載のIT障害検知・検索装置において、
前記第一の処理部において新規に生成されたIT障害イベントブロックを使用し、IT障害イベントブロックを分類するIT障害分類木を更新する第六の処理部と、
一定期間内に前記IT障害分類木に発生した編集回数に基づいて、前記IT障害分類木の変化量を計算する第七の処理部と、
前記変化量が閾値以上の場合、前記IT障害分類木の変化を解析し、IT障害イベントブロックの属性値に起こった変化を特定する第八の処理部と
を有することを特徴とするIT障害検知・検索装置。
【請求項3】
請求項1に記載のIT障害検知・検索装置において、
新規に取得したIT障害イベントブロックに対して類似する過去のIT障害イベントブロックとその発生日時を表示部に表示する第九の処理部
を有することを特徴とするIT障害検知・検索装置。
【請求項4】
請求項1に記載のIT障害検知・検索装置において、
前記第六の処理部は、IT障害イベントブロックのインクリメント処理とデクリメント処理の両方においてIT障害分類木を更新する
ことを特徴とする請求項1に記載のIT障害検知・検索装置。
【請求項5】
請求項1に記載のIT障害検知・検索装置において、
前記第七の処理部は、インクリメント処理に対しては、IT障害分類木に対する新規ノード追加、ノード統合、ノード分割処理の有無及び回数から変化量を計算する
ことを特徴とするIT障害検知・検索装置。
【請求項6】
請求項1に記載のIT障害検知・検索装置において、
前記第七の処理部は、デクリメント処理に対しては、IT障害分類木に対するノード削除、ノード統合、ノード分割の有無及び回数から変化量を計算する
ことを特徴とするIT障害検知・検索装置。
【請求項7】
コンピュータに、
IT障害を監視する監視サーバが生成した監視イベントを逐次取得し、一つの原因によって発生した単数又は複数のイベントから構成されるIT障害イベントブロックを生成する第一の処理と、
前記IT障害イベントブロックに属するイベントに頻出する属性値をもとに特徴情報を求める第二の処理と、
イベントブロックの特徴情報に発生した変化の内容と発生時間を変化テーブルに記録する第三の処理と、
前記特徴情報に基づいてIT障害データベースを検索し、新規に取得されたIT障害イベントブロックに類似する過去のIT障害イベントブロックを検索する第四の処理と、
前記変化テーブルを参照し、検索対象とする時間範囲に応じて検索処理で使用する特徴情報の内容を補正する第五の処理と
を実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4−1】
image rotate

【図4−2】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate