JP5489085B2 - 障害原因推定システム、障害原因推定方法、及び障害原因推定プログラム - Google Patents

障害原因推定システム、障害原因推定方法、及び障害原因推定プログラム Download PDF

Info

Publication number
JP5489085B2
JP5489085B2 JP2011513391A JP2011513391A JP5489085B2 JP 5489085 B2 JP5489085 B2 JP 5489085B2 JP 2011513391 A JP2011513391 A JP 2011513391A JP 2011513391 A JP2011513391 A JP 2011513391A JP 5489085 B2 JP5489085 B2 JP 5489085B2
Authority
JP
Japan
Prior art keywords
failure
event
probability
transition probability
sequence
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.)
Active
Application number
JP2011513391A
Other languages
English (en)
Other versions
JPWO2010131746A1 (ja
Inventor
敏夫 登内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2011513391A priority Critical patent/JP5489085B2/ja
Publication of JPWO2010131746A1 publication Critical patent/JPWO2010131746A1/ja
Application granted granted Critical
Publication of JP5489085B2 publication Critical patent/JP5489085B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0259Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the response to fault detection
    • G05B23/0275Fault isolation and identification, e.g. classify fault; estimate cause or root of failure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Automation & Control Theory (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、障害原因推定システム、障害原因推定方法、及び障害原因推定プログラムに関し、特に計算機システムで推移的に発生する障害の原因を推定する障害原因推定システム、障害原因推定方法、及び障害原因推定プログラムに関する。
計算機システムにおいて発生した障害の原因を推定する障害原因推定システムが知られている。例えば、特開平8−255093号公報(特許文献1)に障害原因発見装置及びその方法が開示されている。図32は、特許文献1の障害原因発見装置の構成を示すブロック図である。この障害原因発見装置では、各部は以下のように動作する。プロセス情報獲得部2101は計算機システムで実行されているプロセス情報を獲得する。環境ファイル情報獲得部2102は計算機システムの動作に必要なシステム環境ファイル情報を獲得する。デバイス情報獲得部2103は計算機システムに組み込まれているデバイスドライバーの情報を獲得する。基準環境情報獲得部2104は計算機システムが正常に動作している時に、プロセス情報獲得部2101、環境ファイル情報獲得部2102、およびデバイス情報獲得部2103から環境情報を取り出す。基準環境情報記憶部2105は基準環境情報獲得部2104が取り出した環境情報を記憶する。検査環境情報獲得部2106は計算機システムに異常が発生したか否かを検出するために、プロセス情報獲得部2101、環境ファイル情報獲得部2102、およびデバイス情報獲得部2103から環境情報を取り出す。検査環境情報記憶部2107は検査環境情報獲得部2106が取り出した環境情報を記憶する。環境情報比較判定部2109は基準環境情報記憶部2105と検査環境情報記憶部2107の内容を比較して状態変化内容を見つけ出す。許容範囲情報記憶部2108は環境情報比較判定部2109において状態変化内容が許容範囲を越えるか否かの判定基準となる情報を記憶する。基準環境情報補正部2110は環境情報比較判定部2109が見つけ出した状態変化内容から基準環境情報記憶部2105の内容を補正する。異常原因特定部2111は状態変化内容から計算機システムの異常発生原因を特定する。
このような構成を有する障害原因発見装置(障害原因推定システム)は次のように動作する。例えば、基準環境情報記憶部2105が、基準環境として「実行中のプロセスは、nfsが1個」を記憶しているとする。また、許容範囲情報記憶部208が、「マウントデバイスの追加が許可される状況」に対応して、許容値として「実行中のプロセスは、nfsが最大12個」を記憶し、「マウントデバイスの追加が許可されない状況」に対応して許容値として「実行中のプロセスは、nfsが最大12個」を記憶しているとする。そして、あるとき、システムが「マウントデバイスの追加が許可される状況」にあり、検査環境情報獲得部2106が、「実行中のプロセスは、nfsが11個」という状態を検出したとする。この場合、nfsプロセス数は許容値である最大値「12」を超えない状態であるため、環境情報比較判定部2109は正常であると判断する。
その後、「SCSIボートの故障」に起因して、「マウントデバイスの追加が許可されない」状況になったとする。nfsプロセス数が変化せずに12個のままであったとすると、「マウントデバイスの追加が許可されない状況」におけるnfsプロセスの許容値の最大値は「8」であるため、nfsプロセス数は最大値を超える。従って、異常原因特定部2111は、nfsプロセス数が許容値を超えたことを、障害原因として特定する。すなわち、異常原因特定部2111は、本来の故障原因が「SCSIボードの故障」であるにもかかわらず、デバイスが追加されたことが原因と推定する。しかし、上記の場合、nfsプロセスの数が正常値を逸脱しているということの原因が、「SCSIボードの故障」であると認識して対応しないと、正しい障害対応はできない。
また、特開2004−126641号公報(特許文献2)に因果関係モデル生成装置、原因推定装置等が開示されている。図33A及び図33Bはそれぞれ特許文献2の因果関係モデル生成装置及び原因推定装置を示すブロック図であり、図33Cは因果システムモデルを示す模式図である。図33Aに示される因果関係モデル生成装置では、因果データ生成記憶部2211は、因果関係をあらわすデータのデータベースである。果因データ生成記憶部2212は、因果関係をあらわすデータの逆マッピングであるデータのデータベースである。同一結果データ集合データ集合生成部2213は、複数の事象を一つの事象グループに対応させる関係や、複数の原因を一つの原因グループに対応させる関係を記録する。部分因果システムモデル構成部2214は、原因グループと事象グループの関係をマッピングする因果システムモデルを構築する。
因果システムモデル構築装置は、構築した因果システムモデルを因果システムモデル記憶部2224に格納する。図33Bに示される果因推定装置では、観測データ認識部2221は、観測データから障害を認識し、因果システムモデル記憶部2224に格納された因果システムモデルの事象から原因のマッピングを適用し、障害の原因を求める。逆サブシステム検索部2222及び対応同一結果データ集合検索部2223は、更に原因から事象へのマッピングを適用することでその原因から発生しうる事象を求める。このように事象から原因へのマッピング及び原因から事象へのマッピングを推移的に適用し、推移的閉包を求めることで、起こりうる根本原因を含む原因を推移的に求める。しかし、特許文献2では、このようなマッピングを人間が記述することがあり、その処理が困難である。また、特許文献2は、マッピングを容易にするためにすべての事象・原因に対してマッピングを定義するのではなく、同一結果データ集合データ集合生成部2213に格納したグループごとのマッピングを定義する。
また、特開2007−257184号公報(特許文献3)に障害原因推定システム、方法及びプログラムが開示されている。図34は、特許文献3の障害原因推定システムの構成を示すブロック図である。この障害原因推定システムでは、初期モデルパーザa30は、システムが発生するイベントとその原因との対応関係を記録した基本モデル定義ファイルa20を読み込む。初期モデル生成部a40は、初期モデルパーザa30から取得した構文情報に基づき、状態遷移モデルの初期モデルを生成し、モデル格納データベースa120に格納する。Baum−Welch計算部a50は、イベントモニタa90がイベント列データベースa140に格納した学習イベント列a100を入力し、モデル格納データベースa120に格納された状態遷移モデルの遷移確率を学習する。Viterbi計算部a60は、イベント列データベースa140に蓄積された管理対象イベント列を、状態遷移モデルに適用し最も発生確率の高い状態遷移シーケンスを得る。フィルタリングモジュールa70は、最も発生確率の高い状態遷移シーケンスの中から尤もらしい遷移シーケンスを発見して、その遷移シーケンスの開始状態を根本的な原因と推定し、原因推定結果データベースa150に格納する。このように、装置開発者が与えたイベントと障害を表す状態との対応関係のみの比較的簡潔な基本モデル定義ファイルから、障害を表す原因間の因果関係を実適用システムで学習することで、推移的な原因発生の根本的な原因を発見するよう動作する。このような構成を採用し、簡潔な基本モデル定義と、イベント列を与えることからイベントを発生する状態遷移列を学習することにより、人手でも簡単なイベント発生原因の定義ができ、かつ、システム構成・設定による差分や人手で記述しきれない原因間の推移関係は学習することで、管理者は障害推移の規則を記述することなく、障害の根本原因を推定することができる。
その他、関連する技術として、特開2007−078943号公報(音響スコア計算プログラム:特許文献4)、特開2006−293033号公報(混合分布HMMの状態の出力確率計算方法、US2006229871(A1):特許文献5)、特開2003−036092号公報(HMMの出力確率演算方法、US7058576(B2):特許文献6)、特開2003−022093号公報(音声認識方法:特許文献7)、特開2002−091480号公報(音響モデル生成装置:特許文献8)、特開2001−125593号公報(音声認識装置:特許文献9)、特開2000−122690号公報(パターン認識方法:特許文献10)、及び、特開平10−143190号公報(音声認識装置:特許文献11)が開示されている。
発明者は、今回、研究の結果以下の知見を新たに発見した。
上記の各障害原因推定システムには、以下のような問題点がある。
第1の問題点は、障害の推移関係が不明な障害には対応が困難ということである。その理由は、特許文献1では、前提条件とその場合の許容値とを記述する必要があるためである。しかし、障害の推移の中では、その関係が予め分からないことが多い。そのような場合、規則の記述が難しい。たとえば、アプリケーションを構成するソフトウェアモジュール間の関係を、システム管理者が把握することは一般に困難である。そのため、ある障害イベントがあるソフトウェアモジュールから発生した障害に、そのソフトウェアモジュールでの障害が推移した場合、その発見が困難である。たとえば、あるモジュールが、例外的な入力をもとに、ワーニングを出力しつつ、データを出力する場合を考える。このデータの値範囲は、当初想定の入力とは異なるため、例外的な値を持つとする。データベース書き込みモジュールがそのデータをデータベースに書き込む際、値範囲が異なるため、データベース書き込みエラーが発生することがある。このような派生関係では、データベース書き込みエラーと、データを作成したモジュールでのワーニングとが関係があり、後者が根本原因になっていることを事前に規則化することは困難である。
第2の問題点は、障害の推移関係を記述することが困難ということである。その理由は、一般事象における原因と障害との関係は複雑であることによる。例えば、先の特許文献2の方法では、原因と障害との対応関係を事前登録し、障害の原因を推移的に求める。しかし、障害や状態の種類が多いため、その対応関係を記述することが困難である。このような記述の困難性を軽減するため、上記の特許文献2では、障害原因をグループ化し、その間のマッピングを記載する。しかし、グループごとにマッピングを定義する場合であっても、マッピングの定義は必要である。しかもグループを定義するのに手間がかかる上に、上手にグループ化しないと、原因と障害とのマッピングの精度が落ちる可能性がある。例えば、特許文献2には、図33Cのような因果システムモデルの事例が開示されている。この図の例では、因果関係が矢印で示されている。しかし、マッピングg1の場合、g1の定義域はX1でよいかもしれないが、事象x3「変動幅増大」の原因として、他にも事象がある可能性がある。その原因を事象y’(図示されず)とする。この事象x3からこの原因(事象y’)へのマッピングをh(図示されず)とすると、hの定義域はX1全体でない可能性がある。例えば、事象x2「減圧設定不良(低)」をもたらすとは限らない。しかし、特許文献2の発明では、マッピングの定義を容易にするため、事象x3を定義域X1と同一視し、hを、h(X1)=y’と定義する。そのため、事象x2に対してもhを適用し、関係ない原因y’が原因と見なされる危険性がある。
第1の問題点や第2の問題点は、特許文献3の障害原因推定システムにより解決される。すなわち、既存の障害イベントを学習ログとして事前に特許文献3の障害原因推定システムに入力しておく。これにより、障害原因推定システムは、障害の推移モデルである状態遷移モデルを自動生成し、モデル格納データベースa120に格納する。その状態遷移モデルを用いることで、障害原因推定システムは、推移規則を人手で書くことなく推移的な障害の原因分析を可能にする。また、障害原因推定システムは、管理者が把握していない障害の推移関係も学習ログから学習することで、暗黙的な障害派生関係も分析することができる。
しかし、特許文献3の障害原因推定システムは、障害の種類が増えると、その二乗に比例して障害学習時間や分析時間が延びる。すなわち、第3の問題点は、大規模なシステムを管理対象とする場合に、分析処理に要する時間が長大になるということである。その理由は、特許文献3で利用しているViterbiアルゴリズムやBaum−Welchアルゴリズムは隠れ状態の二乗に比例して障害学習時間や分析時間が延びるためである。特許文献3では、障害を隠れ状態に対応させて障害の推移関係を学習している。一方、システムでは、装置ごとに障害が発生する。そこで、装置とその装置で発生する障害との組を隠れ状態に対応させると、装置の数が増加したときその組も増加するので、組の増加数の二乗に比例して、計算時間が延びることになる。
特開平8−255093号公報 特開2004−126641号公報 特開2007−257184号公報 特開2007−078943号公報 特開2006−293033号公報 特開2003−036092号公報 特開2003−022093号公報 特開2002−091480号公報 特開2001−125593号公報 特開2000−122690号公報 特開平10−143190号公報
本発明の目的は、障害の推移関係が不明な障害にでも、推移する障害に関して原因分析ができる障害原因推定システムを提供することにある。
本発明の障害原因推定システムは、インスタンス定義データベースと、障害発生箇所種別定義データベースと、イベント列データベースと、第1記憶部と、第2記憶部と、第3記憶部と、拡張Viterbi計算部と、フィルタリングモジュールとを具備する。インスタンス定義データベースは、管理対象の複数の装置と複数の装置の種別との対応関係を定義したインスタンス定義を格納する。障害発生箇所種別定義データベースは、複数の装置で発生し得る複数の障害と複数の装置の種別との対応関係を定義した障害発生箇所種別定義を格納する。イベント列データベースは、監視中の複数の装置において発生した複数のイベントが発生時刻順に並んだ障害原因推定用イベント列を格納する。第1記憶部は、複数の装置の種別と複数の装置の種別での障害との組み合わせに関する障害推移確率を示す障害派生モデルを記憶する。第2記憶部は、複数の装置での障害と複数の装置の障害から派生するイベントとの組み合わせに関するイベント推移確率(AS→E)を示すイベント派生モデルを記憶する。第3記憶部は、複数の装置のうちの障害の発生した発生装置に関する発生装置推移確率(AM→M)を示すインスタンス派生モデルを記憶する。拡張Viterbi計算部は、インスタンス定義及び障害発生箇所種別定義と、障害派生モデル、イベント派生モデル及びインスタンス派生モデルと、障害原因推定用イベント列とに基づいて、複数の装置の種別における複数の障害間の第1遷移確率と、複数の装置間の第2遷移確率とを独立に求め、両者を掛け合わせることで、障害原因推定用イベント列に対する障害の遷移列及び遷移確率を示す障害状態推移列及び障害状態遷移確率を推測する。フィルタリングモジュールは、障害状態遷移列及び障害状態遷移確率に基づいて、管理対象で発生したイベントの根源的な原因となる障害を推定する。
本発明の障害原因推定方法は、以下の第1及び第2のステップを具備する。第1のステップは、管理対象の複数の装置と複数の装置の種別との対応関係を定義したインスタンス定義と、複数の装置で発生し得る複数の障害と複数の装置の種別との対応関係を定義した障害発生箇所種別定義と、複数の装置の種別と複数の装置の種別での障害との組み合わせに関する障害推移確率を示す障害派生モデルと、複数の装置での障害と複数の装置の障害から派生するイベントとの組み合わせに関するイベント推移確率を示すイベント派生モデルと、複数の装置のうちの障害の発生した発生装置に関する発生装置推移確率を示すインスタンス派生モデルと、監視中の複数の装置において発生した複数のイベントが発生時刻順に並んだ障害原因推定用イベント列とに基づいて、複数の装置の種別における複数の障害間の第1遷移確率と、複数の装置間の第2遷移確率とを独立に求め、両者を掛け合わせることで、障害原因推定用イベント列に対する障害の遷移列及び遷移確率を示す障害状態推移列及び障害状態遷移確率を推測するステップである。第2のステップは、障害状態遷移列及び障害状態遷移確率に基づいて、管理対象で発生したイベントの根源的な原因となる障害を推定するステップである。
本発明のプログラムは、以下の第1乃至第8のステップを具備する。
第1のステップは、インスタンス定義データベースから、管理対象の複数の装置と複数の装置の種別との対応関係を定義したインスタンス定義を読み出すステップである。第2のステップは、障害発生箇所種別定義データベースから、複数の装置で発生し得る複数の障害と複数の装置の種別との対応関係を定義した障害発生箇所種別定義を読み出すステップである。第3のステップは、イベント列データベースから、監視中の複数の装置において発生した複数のイベントが発生時刻順に並んだ障害原因推定用イベント列を読み出すステップである。第4のステップは、第1記憶部から、複数の装置の種別と複数の装置の種別での障害との組み合わせに関する障害推移確率を示す障害派生モデルを読み出すステップである。第5のステップは、第2記憶部から、複数の装置での障害と複数の装置の障害から派生するイベントとの組み合わせに関するイベント推移確率を示すイベント派生モデルを読み出すステップである。第6のステップは、第3記憶部から、複数の装置のうちの障害の発生した発生装置に関する発生装置推移確率を示すインスタンス派生モデルを読み出すステップである。第7のステップは、拡張Viterbi計算部が、読み出されたインスタンス定義及び障害発生箇所種別定義と、障害派生モデル、イベント派生モデル及びインスタンス派生モデルと、障害原因推定用イベント列とに基づいて、複数の装置の種別における複数の障害間の第1遷移確率と、複数の装置間の第2遷移確率とを独立に求め、両者を掛け合わせることで、障害原因推定用イベント列に対する障害の遷移列及び遷移確率を示す障害状態推移列及び障害状態遷移確率を推測するステップである。第8のステップは、フィルタリングモジュールが、障害状態遷移列及び障害状態遷移確率に基づいて、管理対象で発生したイベントの根源的な原因となる障害を推定するステップである。
本発明により、障害の推移関係が不明な障害にでも、推移する障害に関して原因分析ができる障害原因推定システムを提供することができる。
図1は、本発明の実施の形態に係る障害原因推定システムの構成を示すブロック図である。 図2は、本発明の実施の形態に係る拡張Viterbi計算部の構成を示すブロック図である。 図3は、本発明の実施の形態に係る拡張Baum−Welch計算部の構成を示すブロック図である。 図4は、本発明の実施の形態に係る拡張Baum−Welchサブモジュールの集合の構成を示すブロック図である。 図5は、本発明の実施の形態に係る拡張前向き計算部の構成を示すブロック図である。 図6は、本発明の実施の形態に係る拡張後向き計算部の構成を示すブロック図である。 図7は、本発明の実施の形態に係るインスタンス派生確率計算部の構成を示すブロック図である。 図8は、本発明の実施の形態に係る障害原因推定システムの動作を示すフローチャートである。 図9は、本発明の実施の形態に係る障害原因推定システムの動作のうち障害派生学習に関する動作を示すフローチャートである。 図10は、本発明の実施の形態に係る障害原因推定システムの動作のうちインスタンス派生学習に関する動作を示すフローチャートである。 図11は、本発明の実施の形態に係る障害原因推定システムの動作のうちイベント読み込みに関する動作を示すフローチャートである。 図12は、本発明の実施の形態に係る障害原因推定システムの動作のうち障害派生分析に関する動作を示すフローチャートである。 図13は、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張Viterbi計算部に関する動作を示すフローチャートである。 図14Aは、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張Baum−Welch計算部に関する動作を示すフローチャートである。 図14Bは、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張Baum−Welch計算部に関する動作を示すフローチャートである。 図15Aは、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張Baum−Welchサブモジュールに関する動作を示すフローチャートである。 図15Bは、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張Baum−Welchサブモジュールに関する動作を示すフローチャートである。 図16は、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張前向き計算部に関する動作を示すフローチャートである。 図17は、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張後向き計算部に関する動作を示すフローチャートである。 図18は、本発明の実施の形態に係る障害原因推定システムのイベント列パーザの動作を示す図である。 図19は、本発明の実施の形態に係る障害原因推定システムのフィルタリングモジュールの動作を示す図である。 図20は、本発明の実施例に係る障害原因推定システムの管理対称装置の構成を示すブロック図である。 図21は、本発明の実施の形態に係る障害原因推定システムの基本モデル定義を示す図である。 図22は、本発明の実施例に係る障害原因推定システムの初期障害派生モデルを示す図である。 図23は、本発明の実施例に係る障害原因推定システムの初期イベント派生モデルを示す図である。 図24は、本発明の実施例に係る障害原因推定システムの障害派生モデルを示す図である。 図25は、本発明の実施例に係る障害原因推定システムのイベント派生モデルを示す図である。 図26は、本発明の実施例に係る障害原因推定システムのインスタンス派生モデルを示す図である。 図27は、本発明の実施例に係る障害原因推定システムの障害定義DBを示す図である。 図28は、本発明の実施例に係る障害原因推定システムの障害発生個所種別定義DBを示す図である。 図29は、本発明の実施例に係る障害原因推定システムのインスタンス定義DBを示す図である。 図30は、本発明の実施例に係る障害原因推定システムの障害学習の結果を示す図である。 図31は、本発明の実施例に係る障害原因推定システムの表示結果部での表示結果例を示す図である。 図32は特許文献1の障害原因発見装置の構成を示すブロック図である。 図33Aは特許文献2の因果関係モデル生成装置を示すブロック図である。 図33Bは特許文献2の原因推定装置を示すブロック図である。 図33Cは特許文献2の因果システムモデルを示す模式図である。 図34は、特許文献3の障害原因推定システムの構成を示すブロック図である。
以下、本発明の障害原因推定システム、障害原因推定方法、及び障害原因推定プログラムの実施の形態に関して、添付図面を参照して説明する。
本発明の障害原因推定システム、障害原因推定方法、及び障害原因推定プログラムは、隠れマルコフモデル(Hidden Morkov Model:HMM)を拡張させた、拡張HMMを用いて管理対象装置の障害原因を分析する。すなわち、まず、基本モデルから初期モデル(初期障害派生モデル、初期イベント派生モデル)を生成する。次に、それら初期モデルと学習用のイベント列(出力系列)とに、本発明に係る拡張Baum−Welchアルゴリズムを適用して、拡張HMM(障害派生モデル、イベント派生モデル)を推定する。併せて、学習用のイベント列に、本発明に係る前向きアルゴリズムを適用して、装置の種別に関する拡張HMM(インスタンス派生モデル)を推定する。そして、それら拡張HMM(障害派生モデル、イベント派生モデル、インスタンス派生モデル)と観測されたイベント列(出力系列)とに、本発明に係る拡張Viterbiアルゴリズムを適用して、障害系列(状態系列)の最尤パスを推定し、そこから障害原因を推定する。ただし、イベント発生元の装置の種別により、隠れ状態(障害)が絞り込めること、障害派生の確率は、装置ごとのイベント派生確率に比例することを仮定している。以下、詳細に説明する。
1.障害原因推定システムの構成
まず、本発明の実施の形態に係る障害原因推定システムの構成について説明する。図1は、本発明の実施の形態に係る障害原因推定システムの構成を示すブロック図である。この障害原因推定システムは、初期モデルパーザ140と、障害定義データベース(DB)150と、障害発生個別種別定義データベース(DB)370、初期モデル生成部160と、初期障害派生モデル格納領域170と、初期イベント派生モデル格納領域180と、拡張Baum−Welch計算部190と、障害派生モデル格納領域200と、イベント派生モデル格納領域210と、構成データベース(DB)読み取り部360と、インスタンス定義データベース(DB)220と、インスタンス派生確率計算部230と、インスタンス派生モデル格納領域250と、イベント列パーザ300と、イベント列データベース(DB)310と、拡張Viterbi計算部320と、原因推定結果データベース(DB)330と、フィルタリングモジュール335とを具備する。
障害原因推定システムは、パーソナルコンピュータやワークステーションに例示される情報処理装置(ハードウェア)に、本発明の障害原因推定ログラム(ソフトウェア)がインストールされたものである。障害原因推定システムの各部や各領域などの機能は、これらソフトウェアとハードウェアとが協働することにより実現することが可能である。
初期モデルパーザ140は、システム開発者に属するコンピュータ110から、基本モデルを示す基本モデル定義130を入力として受け付ける。基本モデル定義130は、監視対象装置280で発生し得るイベントと、それを引き起こす障害とを対応付けて定義している。すなわち、その基本モデル定義130は、イベントの集合Eと、障害の集合Sと、装置種別Cと、イベントと障害との対応関係の関数hE→S:E→Sと、障害と装置種別との対応関係を示す関数hS→C:S→Cとで定義される。関数hは全域関数であるが、部分関数であってもよい。基本モデル定義130の具体例については、後述される(図21)。そして、初期モデルパーザ140は、その基本モデル定義130を構文解釈し、その結果を障害定義DB150に格納する。障害定義DB150の具体例については、後述される(図27)。それともに、初期モデルパーザ140は、障害と、その障害の発生装置(発生箇所)の種別とを対応付けて定義(障害発生個所種別定義)し、障害発生個所種別定義DB370に格納する。すなわち、障害の集合Sと、障害発生装置の種別の集合Cと、両者の対応関係を示す関数hS→C:S→Cとを格納する。障害発生個所種別定義DB370の具体例については、後述される(図28)。
初期モデル生成部160は、障害定義DB150を参照し、初期障害派生モデルAS→S、及び初期イベント派生モデルAS→Eを生成する。そして、それぞれ、初期障害派生モデル格納領域170、及び初期イベント派生モデル格納領域180に格納する。ここで、本明細書では、AX→Yを、x∈X、y∈Y、のときに、xの条件下でyが発生する確率Pr(y|x)を行列の要素A[y、x]とする遷移行列と定義する。ただし、X、Yは有限集合とし、その要素x、yにはそれぞれ0から始まる整数がN(x)、N(y)が割り当てられているとする。A[y、x]は、A[N(y)、N(x)]の省略形である。
このとき、初期障害派生モデルAS→S及び初期イベント派生モデルAS→Eは、以下の式(1)及び式(2)で表現される。
Figure 0005489085
ただし、s,s∈S、e,e∈E、である。また、|S|は障害の集合Sの要素数を示す。|{e∈E|hE→S(e)=s}|は、集合Eのうち、障害sにより発生するイベントeの要素数を示す。
すなわち、初期障害派生モデルAS→Sは、障害sから他の障害sが派生する障害の推移するモデルを示している。具体的には、障害sの状態から障害sの状態へ遷移する確率(状態遷移確率)を行列要素A[s,s]とする遷移行列である。ただし、初期設定(初期モデル)では、全ての行列要素(発生確率)は、1/|S|で一定としている。一方、初期イベント派生モデルAS→Eは、障害sからイベントeが派生するイベントの推移するモデルを示している。具体的には、障害sの状態でイベントeが出力される確率(出力確率)を行列要素A[e,s]とする遷移行列である。ただし、初期設定(初期モデル)では、基本モデル定義130で定義されたfE→Sについて、dom(hE→S)∋eならば(何らかの障害sでイベントeが起きる場合)、その行列要素A[e,s]は上記式の値を有するが、他の場合には行列要素A[e,s]は0であるとしている。ただし、dom(hE→S)は関数hE→Sの定義域である。
構成データベース(DB)350は、管理対象装置260内の複数の装置(障害発生装置となり得る)の各々と、その種別との対応関係(インスタンス定義)を格納している。すなわち、装置(障害発生装置)の集合Mと、装置の種別の集合Cと、両者の対応関係を示す関数gM→C:M→Cとを格納している。構成DB読み取り部360は、構成DB350の情報を取得し、障害原因推定システム120内のインスタンス定義DB220に書き込む。インスタンス定義DB220の具体例については、後述される(図28)。
イベント列パーザ300は、イベントモニタ270が取得した、発生時刻順に並んだ複数のイベントとしてのイベント列(e(t),t=0,…,T)を取得する。イベント列には、イベントe(t)(∈E)と、そのイベントe(t)が発生した発生装置m(t)(∈M)とが含まれている。イベント列は、例えば管理対象装置260を試運転中に取得した学習用のイベント列と、管理対象装置260を実際に監視中にイベントモニタ270が取得するイベント列とを含む。イベント列パーザ300は、取得したイベント列を分割し、イベント列DB310に格納する。すなわち、イベント列DB310は、所定の分割方法で分割された複数のイベント列を格納している。分割方法は、例えば、イベントが一定時間T発生しないとき、その時点でイベント列を分割する方法である。分割されたイベント列又はその範囲をイベントリージョンとも言う。詳細は後述される(図18)。
拡張Baum−Welch計算部190は、イベント列DB310のイベント列(e(t),t=0,…,T)を入力とし、インスタンス定義DB220、障害発生箇所種別定義DB370、初期障害派生モデル格納領域170、及び初期イベント派生モデル格納領域180を参照して、本発明に係る拡張Baum−Welchアルゴリズムを適用して、障害派生モデルAS→S及びイベント派生モデルAS→Eを計算する。計算方法については後述される。計算された、障害派生モデルAS→S及びイベント派生モデルAS→Eを、それぞれ障害派生モデル格納領域200、イベント派生モデル格納領域210に格納する。
ここで、障害派生モデルAS→Sは、複数の装置の種別とそれら複数の装置の種別での障害との組み合わせに関する障害推移モデルを示す。すなわち、ある装置の種別において発生する障害(装置の種別、障害)の状態から、他の装置の種別において発生する他の障害(他の装置の種別、他の障害)の状態へ遷移する確率(状態遷移確率)を示している。また、イベント派生モデルAS→Eは、複数の装置の種別とそれら複数の装置の種別でのイベントとの組み合わせに関するイベント推移モデルを示す。すなわち、ある装置の種別において発生する障害(装置の種別、障害)の状態から、その装置の種別において発生するイベント(その装置の種別、イベント)が出力される確率(出力確率)を示している。ただし、上記説明において、他の障害、他の装置の種別は、同じ障害、同じ装置の種別であってもよい。拡張Baum−Welch計算部190の詳細は後述される。
インスタンス派生確率計算部230は、イベント列DB310のイベント列(e(t),t=0,…,T)を入力とし、本発明に係る前向きアルゴリズムを適用して、インスタンス派生モデルAM→Mを算出する。算出されたインスタンス派生モデルAM→Mを、インスタンス派生モデル格納領域250に格納する。
ここで、インスタンス派生モデルAM→Mは、イベントの発生装置に関する推移関係を示す。すなわち、ある時刻にある装置でイベントが発生した状態から、次の時刻で他の装置で何らかのイベントが発生する状態へ遷移する確率(状態遷移確率)を示す、イベント発生装置の推移を示すモデルを示している。ただし、上記説明において、他の装置は、同じ装置であってもよい。
拡張Viterbi計算部320は、イベント列DB310のイベント列(e(t),t=0,…,T)を入力とし、インスタンス定義DB220、障害発生箇所種別定義DB370、障害派生モデル格納領域200、イベント派生モデル格納領域210、インスタンス派生モデル格納領域250を参照して、本発明に係る拡張Viterbiアルゴリズムを適用して、障害の推移列(s(t),(t=0,…,T))と、装置m(t)で障害s(t)が発生した確率vs(t),m(t)(t)を時刻tごとに算出する。そして、算出結果を原因推定結果DB330に格納する。その障害の推移列(又は派生列)は、状態遷移列と見ることができる。拡張Viterbi計算部320は、この障害の推移列(又は派生列)の開始状態を根源的な原因と推定する。原因推定結果DB330は、推定された障害の派生列(s(t),(t=0,…,T))と、イベント列(e(t),(t=0,…,T))と、その発生確率(vs(t),m(t)(t),(t=0,…,T))とを関連付けて格納する。原因推定結果DB330の具体例は、後述される(図24、図25)。また、拡張Viterbi計算部320の詳細は後述される。
フィルタリングモジュール335は、原因推定結果DB330の結果を読み込み、結果表示部340に表示する。また、フィルタリングモジュール335は、推定された障害の派生列(s(t),(t=0,…,T))のうちで確率的に低い推移(状態遷移)、例えば、ある閾値Pより低いvs(t’),m(t’)(t’)(<P)なるt’が存在した場合、この障害s(t’)からs(t’+1)への推移を誤差とする。そして、派生列(s(t),(t=0,…,T))をt’で分割して、それぞれ他の障害の派生列と考える。すなわち、この例では、s(t)は、s(t)(t=0,…,t’)と、s(t)(t=t’+1,…,T)とに分割される。
また、フィルタリングモジュール335は、原因推定結果DB330格納の障害から発生したイベントe(t)のうちで確率的に低いイベント発生確率(出力確率)、例えば、ある閾値Pより低いイベント発生確率のものは誤差として、そのイベントを削除する。
そして、分割された複数の障害の派生列の中から、確率vs(t),m(t)(t)の総和の高い障害sの列を尤もらしい派生列として抽出して、その派生列の開始状態を根源的な原因(障害原因)と推定する。また、削除されずに残されたイベントをその障害原因から派生したイベントとみなす。そして、これら分析の結果を、更に結果表示部340に表示する。表示内容の具体例は、後述される(図31)。
2.拡張Viterbi計算部の構成
次に、本発明の実施の形態に係る拡張Viterbi計算部の構成について説明する。図2は、本発明の実施の形態に係る拡張Viterbi計算部の構成を示すブロック図である。この拡張Viterbi計算部320は、読み出し部505と、イベント作業領域510と、セレクタ540と、遷移確率計算部530と、発生元確率乗算部570と、時刻加算部580と、時刻カウンタ590と、セレクタ600とを備える。
イベント作業領域510は、分析用のイベントe(t)を格納する領域e、イベントの発生する装置としてのイベント発生装置m(t)の情報を格納する領域M、イベント発生装置の種別c(t)を格納する領域C、障害原因s(t)を格納する領域s、及び、確率vs(t),m(t)(t)を格納する領域vs,m(t)を、それぞれ時間tごとに有している。なお、領域eに格納されたイベントをeとも記す。後述されるように、各領域には、拡張Viterbi計算部320の動作に伴い情報が格納される。
ここで、v0、m(t)〜v|S|−1、m(t)において、0〜|S|−1は、障害(状態)s〜s|S|−1を示している。これらの障害(状態)s〜s|S|−1は、障害派生モデルAS→Sで与えられている。また、mは、s〜s|S|−1に対応するイベント発生装置mを示している。初期設定として、s(0)=s、v0,m(0)=1、v1,m(0)〜v|S|−1,m(0)=0、が格納されていてもよい。
読み出し部505は、イベント列DB310からイベント列(e(t),t=0,…,T)を読み出して、イベント作業領域510内の所定の領域に格納する。すなわち、イベント列の情報のうち、分析用イベントを格納する領域eにイベントe(t)を、イベント発生装置の情報を格納する領域Mにイベント発生装置情報m(t)を、それぞれ時間tごとに格納する。また、読み出し部505は、インスタンス定義DB220の値を参照し、イベント発生装置m(t)の種別c(t)を求めて、イベント発生装置の種別を格納する領域Cに時間tごとに格納する。
セレクタ540は、イベント作業領域510のうち、時刻カウンタ590で示された時刻tに基づいて、e(t+1)、m(t)、m(t+1)、c(t)、c(t+1)、vs、m(t)を抽出し、出力する。時刻カウンタ590は、初期設定値として例えばt=0が格納されている。ただし、vs、m(t)は、時刻tにおけるv0、m(t)〜v|S|−1、m(t)の|S|個の要素を有する(要素数|S|のベクトル)。vs、m(t)は、イベント発生装置m(t)の種別c(t)に基づいて、v0,m(t)〜v|S|−1,m(t)の中から、同一の種別c(t)のイベント発生装置m(t)のvs、m(t)のみ、その数値を抽出し、残りの数値を“0”とする。それによりv0,m(t)〜v|S|−1,m(t)の中から可能性の極めて高いvs、m(t)のみを実質的に絞り込むことができる。それにより、v0,m(t)〜v|S|−1,m(t)の全ての数値を抽出して、後述の計算をする場合に比較して、その計算量を大幅に削減できる。
遷移確率計算部530は、e(t+1)、m(t)、m(t+1)、c(t)、c(t+1)、vs、m(t)を入力とし、障害発生個別種別定義hS→C:S→C、障害派生モデルAS→S、イベント派生モデルAS→Eを参照し、以下の漸化式(3)の計算を行う。
種別c(t)の装置m(t)において時刻tで障害sが発生したとき、種別c(t+1)の装置m(t+1)において時刻(t+1)で障害uへ派生する確率P(u|s)を計算する。ただし、障害uは、u∈{s∈S|hS→C(s)=c(t+1)}である。すなわち、障害uは、装置m(t+1)の種別c(t+1)に対応関係hS→C:S→Cで対応付けられた複数の障害s(装置種別c(t+1)の取り得る障害)から選択される。
確率P(u|s)は、以下の式(3)で、上記複数の障害sについて計算される。
P(u|s)=AS→E[e(t+1),u]・max{AS→S[u,s]・vs、m(t)}・・・(3)
ただし、AS→S[u,s]は、障害派生モデルである(|S|行|S|列の行列)。max{AS→S[u,s]・vs、m(t)}は、AS→S[u,s]・vs、m(t)の結果(要素数|S|のベクトル)の要素の最大値を求める。AS→E[e(t+1),u]はイベント派生モデルのe(t+1)行目である(要素数|S|のベクトル)。これにより、α(定数)×AS→E[e(t+1),u]の形(要素数|S|のベクトル)で、P(u|s)が求まる。
発生元確率乗算部570は、P(u|s)を入力とし、インスタンス派生モデルAM→Mを参照し、種別c(t)の装置m(t)で障害sが発生したとき、種別c(t+1)の装置m(t+1)で障害uへ発生(派生)する確率vu,m(t+1)(t+1)を求める。
ここでは、ある種別cの装置mの任意の障害sから派生したイベントeが、他の種別c’の他の装置m’の任意の障害s’から派生する可能性のある複数のイベントのうちの任意のイベントe’へ派生する確率P(m(t+1)|m(t))(装置ごとの障害遷移確率)と、障害の種類ごとに派生する上記確率P(u|s)(障害遷移確率)とは独立と仮定している。それにより、監視の対象となるシステム内の装置が増加しても、装置の種別が増加しない限り、計算量が大幅に増加(二乗に比例して増加)することがなくなる。
この場合、vu,m(t+1)(t+1)は、以下の漸化式(4)となる。
u,m(t+1)(t+1)=P(m(t+1)∩u|m(t)∩s)
=P(m(t+1)|m(t))・P(u|s)
=AM→M[m(t+1),m(t)]・P(u|s)・・・(4)
ただし、AM→M[m(t+1),m(t)]は、インスタンス派生モデルにおける行列要素[m(t+1)、m(t)](定数)である。これにより、β(定数)×P(u|s)の形(要素数|S|のベクトル)で、vu,m(t+1)(t+1)が求まる。
発生元確率乗算部570は、vs,m(t+1)(t+1)、及び、その最大値をとる障害sを、イベント作業領域510におけるセレクタ600が指す領域535(vs,m(t+1))、及び、領域536(s(t))に格納する。
時刻加算部580は、カウンタ590の値をひとつ進めるとともに、カウンタがイベント作業領域510の時刻の最大値T以上になったら処理を終了する。そして、原因推定結果DB330に、イベント作業領域510におけるt=0〜Tについて、e、s、vs,m(t)の結果を互いに関連付けて書き込む。この結果、推移列は、t=0〜Tにおいて、各tにおいて最大値となるvu,m(t)(t)を並べたものとして得ることができる。
3(1).拡張Baum−Welch計算部の構成
次に、本発明の実施の形態に係る拡張Baum−Welch計算部の構成について説明する。図3は、本発明の実施の形態に係る拡張Baum−Welch計算部の構成を示すブロック図である。この拡張Baum−Welch計算部190は、複製部710と、複製部720と、障害派生モデル作業領域740と、イベント派生モデル作業領域750と、拡張Baum−Welchサブモジュールの集合770と、障害派生モデル作業領域780と、割り算計算部790と、障害派生モデル作業領域800と、差分検査・複製部810と、イベント派生モデル作業領域840と、割り算部850と、イベント派生モデル作業領域860と、拡張前向き計算部820と、拡張後向き計算部830とを備える。
複製部710は、初期障害派生モデル格納部170に格納されている初期障害派生モデルAS→Sを、障害派生モデル作業領域740にコピーする。複製部720は、初期イベント派生モデル格納部240に格納されている初期障害派生モデルAS→Eを、障害派生モデル作業領域750にコピーする。
拡張前向き計算部820は、イベント列DB310に格納されたイベント列(e(t),t=0,…,T)を入力とし、インスタンス定義DB220、障害発生箇所種別定義DB370、障害派生モデル作業領域740、イベント派生モデル作業領域750を参照し、イベントe(0),…,e(T)が与えられたとき、時刻tにおいて障害の状態がsになる確率f(t)(時刻t=0(開始時刻、開始状態)から順に計算して得られた時刻tでの障害sの発生確率)をすべてのs∈S、すべての時間範囲t=0,…,Tについて求める。確率f(t)は、fsi(t)として、拡張Baum−Welchサブモジュールの集合770へ出力される。拡張前向き計算部820の詳細は後述される。
拡張後向き計算部830は、イベント列DB310に格納されたイベント列(e(t),t=0,…,T)を入力とし、インスタンス定義DB220、障害発生箇所種別定義DB370、障害派生モデル作業領域740、イベント派生モデル作業領域750を参照し、イベントe(t),…,e(T)が与えられたとき、時刻tにおいて障害の状態がsである確率b(t)(時間t=T(最終時刻、開始状態)から逆順に計算して得られた時間tでの障害sの発生確率)をすべてのs∈S、すべての時間範囲t=0,…,Tについて求める。確率b(t)は、bsj(t)として、拡張Baum−Welchサブモジュールの集合770へ出力される。拡張後向き計算部830の詳細は後述される。
拡張Baum−Welchサブモジュールの集合770を構成するBaum−WelchサブモジュールB[j、i]は、拡張前向き計算部820に格納されたfsi(t)をとし、拡張後向き計算部830に格納されたbsj(t)を入力とし、障害派生モデル作業領域740と、イベント派生モデル作業領域750を参照しつつ、障害sから障害sへの推移確率AS→S[j,i]を求める。また、対角成分に相当するBaum−WelchサブモジュールB[i、i]は、障害sからイベントeへの発生確率AS→E[j,i]を求める。そして、拡張Baum−Welchサブモジュールの集合770は、推移確率AS→S[j,i]を障害派生モデルAS→Sとして障害派生モデル作業領域780に格納し、発生確率AS→E[j,i]をイベント派生モデルAS→Eとしてイベント派生モデル作業領域840に格納する。拡張Baum−Welchサブモジュールの集合770の詳細は後述される。
割り算計算部790は、障害派生モデル作業領域780に格納された障害派生モデルAS→Sを入力として、すべてのs,s∈Sに対して、以下の式(5)を計算し、障害派生モデルAS→Sの正規化を行う。そして、正規化された障害派生モデルAS→Sを障害派生モデル作業領域800に格納する。
Figure 0005489085
同様に、割り算計算部850は、イベント派生モデル作業領域840に格納されたイベント派生モデルAS→Eを入力として、すべてのs∈S、e∈E対して、以下の式(6)を計算し、イベント派生モデルAS→Eの正規化を行う。そして、正規化されたイベント派生モデルAS→Eをイベント派生モデル作業領域860に格納する。
Figure 0005489085
差分検査・複製部810は、障害派生モデル作業領域800に格納された障害派生モデルAS→Sを、障害派生モデル作業領域740に格納された障害派生モデルAS→Sと比較する。同様に、イベント派生モデル作業領域860に格納されたイベント派生モデルAS→Eを、イベント派生モデル作業領域750に格納されたイベント派生モデルAS→Eと比較する。そして、障害派生モデルAS→S及びイベント派生モデルAS→Eの両方について、両者の差が十分に小さい(所定の許容範囲以内)の場合、求める解に収束したと判断し、障害派生モデル作業領域800に格納された障害派生モデルAS→Sとイベント派生モデル作業領域860に格納されたイベント派生モデルAS→Eを、障害派生モデル格納領域200とイベント派生モデル格納領域210に格納する。障害派生モデルAS→S及びイベント派生モデルAS→Eのうちの少なくとも一方について、両者の差が大きい(所定の許容範囲を超える)の場合、障害派生モデル作業領域800に格納された障害派生モデルAS→Sとイベント派生モデル作業領域860に格納されたイベント派生モデルAS→Eを、障害派生モデル作業領域740及びイベント派生モデル作業領域750に格納する。
3(2).拡張Baum−Welchサブモジュールの集合の構成
次に、本発明の実施の形態に係る拡張Baum−Welchサブモジュールの集合の構成について説明する。図4は、本発明の実施の形態に係る拡張Baum−Welchサブモジュールの集合の構成を示すブロック図である。この、図7を参照すると、拡張Baum−Welchサブモジュールの集合770の一つの要素である拡張Baum−WelchサブモジュールB[i、j]は、読み出し部900と、イベント作業領域910と、遷移行列掛け算部920と、加算部930と、作業領域935と、平均計算部940と、イベント遷移計算部950と、作業領域955と、平均計算部960とを備える。
イベント作業領域910は、分析用のイベントe(t)を格納する領域e、イベント発生装置(発生箇所)m(t)を格納する領域M、イベントe(t)が与えられたとき時刻tにおいて障害の状態がsiになる確率fsi(t)を格納する領域fsi(t)、イベントe(t)が与えられたとき時刻tにおいて障害の状態がsjである確率bsj(t)を格納する領域bsj(t)を、それぞれ時間tごとに有している。なお、領域eに格納された情報をeとも記す。
読み出し部900は、イベント列DB310からイベント列(e(t),t=0,…,T)を読み込み、イベント作業領域910内の領域eに、時間tごとに格納する。また、拡張前向き計算部820から、fsi(t)(t=0,…,T−1)を読み込み、イベント作業領域910内の領域fsi(t)に、時間tごとに格納する。同様に、拡張後向き計算部830から、bsj(t+1)(t=0,…,T−1)を読み込み、イベント作業領域910内の領域bsj(t+1)に、時間tごとに格納する。
遷移行列掛け算部920は、イベント作業領域910のfsi(t)及びbsj(t+1)を入力として、障害派生モデル作業領域740に格納されている障害派生モデルAS→S[j,i]、及び、イベント派生モデル作業領域750に格納されているイベント派生モデルAS→E[e(t),i]を参照し、すべてのt=0,…,T−1に関して、時刻tにおいて状態sでありイベントe(t)を発生し、時刻t+1において状態sである確率を、以下の式(7)により求める。
S→S[j,i](t)
=bsj(t+1)・AS→E[e(t),i]・AS→E[e(t),i]・fsi(t)・・・(7)
加算部930は、掛け算部925が式(7)で求めたすべてのt=0、…、T−1におけるAS→S[j,i](t)を、以下の式(8)のように時間ですべて足し合わせる。そして、計算結果AS→S[j,i]を計算し、格納部935に追加格納する。
Figure 0005489085
格納部935に格納されているAS→S[j,i]は、イベント列(イベントリージョン)ごとに計算される。したがって、格納部935には複数のAS→S[j,i]が存在することになる。
平均計算部940は、格納部935に格納されているイベント列ごとに計算さた複数のAS→S[j,i]をすべて足し合わせ、イベント列の数で割って平均化する。そして、平均化されたAS→S[j,i]を、障害派生モデル作業領域780のうち、AS→S[j,i]に相当する領域に格納する。
イベント遷移計算部950は、拡張Baum−WelchサブモジュールB[i、i]の対角成分のみ稼働する。イベント遷移計算部950は、B[i、i]において、j==jの場合、イベント作業領域910を参照し、障害sでイベントeが発生する確率を計算する。すなわち、以下の式(9)を計算する。そして、格納部955に追加格納する。
Figure 0005489085
平均計算部960は、格納部955に格納されているAS→E[j,i]は、イベント列(イベントリージョン)ごとに計算される。したがって、格納部955には複数のAS→E[j,i]が存在することになる。
平均計算部960は、格納部955に格納されているイベント列ごとに計算されたAS→E[j,i]をすべて足し合わせ、イベント列の数で割って平均化する。そして、平均化されたAS→E[j,i]を、イベント派生モデル作業領域840のうち、AS→E[j,i]に相当する領域に格納する。
3(3).拡張前向き計算部の構成
次に、本発明の実施の形態に係る拡張前向き計算部の構成について説明する。図5は、本発明の実施の形態に係る拡張前向き計算部の構成を示すブロック図である。この拡張前向き計算部820は、読み出し部1110と、イベント作業領域1120と、セレクタ1030と、遷移確率計算部1040と、掛け算部1060と、時刻加算部1070と、時刻カウンタ1080と、セレクタ1090とを備える。
イベント作業領域1120は、分析用のイベントe(t)を格納する領域e、イベント発生装置の種別c(t)を格納する領域C、イベントe(t)が与えられたとき時刻tにおいて障害の状態がsになる確率f(t)を格納する領域f(t)を、それぞれ時間tごとに有している。なお、領域eに格納された情報をeとも記す。後述されるように、各領域には、拡張前向き計算部820の動作に伴い情報が格納される。
ここで、f(t)であるfs0(t)〜f|S|−1(t)において、s0〜|S|−1は、障害(状態)s〜s|S|−1を示している。これらの障害(状態)s〜s|S|−1は、障害派生モデルAS→Sで与えられている。初期設定として、例えば、fs0(0)=1、fs1(0)〜f|S|−1(0)=0、が格納されている。
読み出し部1110は、イベント列DB310からイベント列(e(t),t=0,…,T)を読み出し、イベント情報e(t)をイベント作業領域1120内の領域eに、時間tごとに格納する。また、読み出し部1110は、インスタンス定義DB220の値を参照し、イベント発生装置m(t)の種別c(t)を求めて、イベント作業領域1120内の領域Cに、時間tごとに格納する。
セレクタ1030は、イベント作業領域1120のうち、時刻カウンタ1080で示された時刻tに基づいて、f(t)、e(t+1)、c(t)、c(t+1)を抽出し、出力する。時刻カウンタ1080は、初期設定値として、例えば、t=0、が格納されている。ただし、f(t)は、時刻tにおけるfs0(t)〜f|S|−1(t)(|S|個の要素を有するベクトル)から、イベント発生装置の種別c(t)に基づいて、同一の種別c(t)のf(t)のみ、その数値を抽出したものである。すなわち、s∈S|hS→C(s)=c(t)を満たす障害sのf(t)である。これによりfs9(t)〜f|S|−1(t)の中から可能性の極めて高いf(t)のみを実質的に絞り込むことができる。それにより、fs0(t)〜f|S|−1(t)の全ての数値を抽出して、後述の計算をする場合に比較して、その計算量を大幅に削減できる。
遷移確率計算部1040は、f(t)と、e(t+1)と、c(t)と、c(t+1)とを入力とし、障害発生個別種別定義(障害発生個別種別定義DB370)、障害派生モデルAS→S(障害派生モデル作業領域740)及びイベント派生モデルAS→E(イベント派生モデル作業領域750)を参照し、障害u∈{s∈S|hS→C(s)=c(t+1)}ごとに、以下の式(10)を計算する。ここで、障害uは、装置m(t+1)の種別c(t+1)に対応関係hS→C:S→Cで対応付けられた複数の障害s(装置種別c(t+1)の取り得る障害)から選択される。そして、式(10)は上記複数の障害sについて計算される。
Figure 0005489085
この値は、時刻t=0から順に計算して得られた時間t+1での障害uの発生確率f(t+1)を示している。ただし、AS→S[u,s]は、障害派生モデル(|S|行|S|列の行列)であるが、uごと(行ごと)に計算するので、行ごとに1行|S|列の行列として取り扱う。f(t)は、数値である。Σは、f(t)ごとに、AS→S[u,s](この場合、前述のように1行|S|列の行列)の対応するs列の値とそのf(t)を掛けた値を求め、それをすべてのf(t)について加算したものである。これにより、uごとに数値の形で式(10)の解が求まる。
掛け算部1060は、遷移確率計算部1040の計算結果を入力とし、イベント派生モデルAS→E(イベント派生モデル作業領域750)を参照し、上記uごとに、f(t+1)を以下の漸化式(11)のように計算する。
Figure 0005489085
この確率f(t+1)は、イベントe(t)が与えられ、時刻t=0から順に計算して得られた時刻t+1での障害uの発生確率である。ただし、AS→E[e(t+1),u]は、イベント派生モデルであるが、行と列がe(t+1)とuのように指定されているので数値である。これにより、uごとに、数値の形で、f(t+1)が求まる。
掛け算部1060は、セレクタ1090が指すf(t)の領域に計算結果を格納する。ただし、{s∈S|fS→C(s)=c(t+1)}のみに値を格納する。他の領域は“0”とする。
時刻加算部1070は、掛け算部1060の出力に応答して、時刻カウンタ1080の値をひとつ進めるとともに、時刻カウンタ1080がイベント作業領域1120の時刻の最大値T以上になったら処理を終了する。
3(4).拡張後向き計算部の構成
次に、本発明の実施の形態に係る拡張後向き計算部の構成について説明する。図6は、本発明の実施の形態に係る拡張後向き計算部の構成を示すブロック図である。この拡張後向き計算部830は、読み出し部1310と、イベント作業領域1320と、セレクタ1230と、遷移確率計算部1240と、掛け算部1260と、時刻減算部1270と、カウンタ1280と、セレクタ1290とを備える。
イベント作業領域1320は、分析用のイベントe(t)を格納する領域e、イベント発生装置の種別c(t)を格納する領域C、イベントe(t)が与えられたとき時刻tにおいて障害の状態がsである確率b(t)を格納する領域b(t)を、それぞれ時間tごとに有している。なお、領域eに格納された情報をeとも記す。後述されるように、各領域には、拡張後向き計算部830の動作に伴い情報が格納される。
ここで、b(t)であるbs0(t)〜b|S|−1(t)において、s0〜|S|−1は、障害(状態)s〜s|S|−1を示している。これらの障害(状態)s〜s|S|−1は、障害派生モデルAS→Sで与えられている。初期設定として、例えば、bs0(T)〜b|S|−1(T)=1、が格納されている。
読み出し部1310は、イベント列DB310からイベント列(e(t),t=0,…,T)を読み出し、イベント情報e(t)をイベント作業領域1320内の領域eに、時間tごとに格納する。また、読み出し部1310は、インスタンス定義DB220の値を参照し、イベント発生装置m(t)の種別c(t)を求めて、イベント作業領域1320内の領域Cに、時間tごとに格納する。
セレクタ1230は、イベント作業領域1320のうち、時刻カウンタ1280で示された時刻tに基づいて、b(t)と、e(t−1)と、c(t)、c(t−1)を出力する。時刻カウンタ1080は、初期設定値として、例えば、t=T、が格納されている。ただし、b(t)は、時刻tにおけるbs0(t)〜b|S|−1(t)(|S|個の要素を有するベクトル)から、イベント発生装置の種別c(t)に基づいて、同一の種別c(t)のb(t)のみ、その数値を抽出したものである。すなわち、s∈S|hS→C(s)=c(t)を満たす障害sのb(t)である。これによりbs9(t)〜b|S|−1(t)の中から可能性の極めて高いb(t)のみを実質的に絞り込むことができる。それにより、bs0(t)〜b|S|−1(t)の全ての数値を抽出して、後述の計算をする場合に比較して、その計算量を大幅に削減できる。
遷移確率計算部1240は、b(t)と、e(t−1)と、c(t)、c(t−1)を入力とし、障害発生個別種別定義(障害発生個別種別定義DB370)、障害派生モデルAS→S(障害派生モデル作業領域740)及びイベント派生モデルAS→E(イベント派生モデル作業領域750)を参照し、障害u∈{s∈S|hS→C(s)=c(t−1)}ごとに、以下の式(12)を計算する。ここで、障害uは、装置m(t−1)の種別c(t−1)に対応関係hS→C:S→Cで対応付けられた複数の障害s(装置種別c(t−1)の取り得る障害)から選択される。そして、式(12)は上記複数の障害sについて計算される。
Figure 0005489085
この値は、時間t=T(最終時刻)から逆順に計算して得られた時間t−1での障害uの発生確率b(t−1)を示している。ただし、AS→S[s,u]は、障害派生モデル(|S|行|S|列の行列)であるが、uごと(列ごと)に計算するので、列ごとに|S|行1列の行列として取り扱う。b(t)は、数値である。Σは、b(t)ごとに、AS→S[s,u](この場合、前述のように|S|行1列の行列)の対応するs行の値とそのb(t)を掛けた値を求め、それをすべてのb(t)について加算したものである。これにより、uごとに数値の形で式(12)の解が求まる。
掛け算部1260は、遷移確率計算部1240の計算結果を入力とし、イベント派生モデルAS→E(イベント派生モデル作業領域750)を参照し、上記uごとに、b(t−1)を以下の式(13)のように計算する。
Figure 0005489085
この確率b(t−1)は、イベントe(t)が与えられ、時間t=T(最終時刻)から逆順に計算して得られた時間t−1での障害uの発生確率である。ただし、AS→E[e(t−1),u]は、イベント派生モデルであるが、行と列がe(t−1)とuのように指定されているので数値である。これにより、uごとに、数値の形で、b(t−1)が求まる。
そして、掛け算部1260は、セレクタ1290が指すb(t)の領域に計算結果を格納する。ただし、{s∈S|fS→C(s)=c(t−1)}のみに値を格納する。他の領域は“0”とする。
時刻減算部1270は、掛け算部1260の出力に応答して、カウンタ1280の値をひとつ進めるとともに、カウンタが0以下になったら処理を終了する。
4.インスタンス派生確率計算部の構成
次に、本発明の実施の形態に係るインスタンス派生確率計算部の構成について説明する。図7は、本発明の実施の形態に係るインスタンス派生確率計算部の構成を示すブロック図である。このインスタンス派生確率計算部230は、読み出し部1400イベント列作業領域1405と、イベント発生時刻順抽出部1410と、イベント作業領域1420と、転送部1430と、イベント作業領域1440と、イベントカウント表1450と、計算部1460とを備える。
読み出し部1400は、イベント列DB310に格納されているイベント列(e(t),t=0,…,T)を取り出し、イベント列作業領域1405に格納する。
イベント発生時刻順抽出部1410は、イベント列作業領域1405に格納されているイベントe(t)のうち指定時間範囲のイベントを発生時刻順に取り出し、イベント作業領域(t−1)1420に格納する。
転送部1430は、イベント作業領域(t−1)1420に格納されているイベントe(t)をイベント作業領域(t)1440に移動する。
イベント加算部1445は、イベント作業領域(t)1440とイベント作業領域(t−1)1420に格納されたそれぞれのイベントe(=e(t))、et−1(=e(t−1))の発生箇所M(=m(t))、Mt−1(=m(t−1))を取得し、イベントカウント表1450の該当エントリのカウンタを増やす。各エントリは、時刻t−1で発生箇所Mt−1にイベントが発生したとき、時刻tで発生箇所Mに何らかのイベントが発生した場合、当該箇所(M、Mt−1)に1をカウントする。また、その際、イベントカウント表1450の、Mt−1列側の合計欄を必要に応じて計算する。
計算部1460は、イベントカウント表1450のエントリ(M、M)が示す発生回数をc(M、M)とするとき、以下の計算を行う。すなわち、Mでイベントが発生した状況でのMの発生確率として、c(M、M)を合計Σc(M、M)(Mt−1列側の合計欄)で割った値を計算する。そして、計算部1460は、インスタンス派生モデル格納領域250のインスタンス派生モデルの(M、M)に格納する。
5.障害原因推定システムの動作(障害原因推定方法及び障害原因推定プログラム)
次に、本発明の実施の形態に係る障害原因推定システムの動作(障害原因推定方法及び障害原因推定プログラム)について図8を参照して説明する。図8は、本発明の実施の形態に係る障害原因推定システムの動作(障害原因推定方法及び障害原因推定プログラム)を示すフローチャートである。
まず、ユーザの入力に基づいて、障害原因推定システムはどの機能を起動するか選択する(ステップA110)。すなわち、障害派生学習の機能を起動するか(ステップA120)、インスタンス派生学習の機能を起動するか(ステップA150)、構成DB読み取り部360の機能を起動するか(ステップA130)、障害派生分析の機能を起動するか(ステップA140)、又は、イベント読み込みの機能を起動するか(ステップA160)、を選択する。その後、選択された処理を実行して動作が終了する。必要に応じて、続けて他の機能を選択し、実行してもよい。
ここで、障害派生学習の機能(ステップA120)は、障害派生モデルAS→S及びイベント派生モデルAS→Eを生成する処理である。インスタンス派生確率計算部230の機能(ステップA150)は、インスタンス派生モデルAM→Mを生成する処理である。構成DB読み取り部360の機能(ステップA130)は、インスタンス定義を生成する処理である。障害派生分析の機能(ステップA140)は、読み込まれたイベント列の派生関係を分析し、イベントの原因を推定する処理である。イベント読み込みの機能(ステップA160)は、管理対象装置260の発生したイベント列を読み込む処理である。
典型的には、まず、構成DB読み取り部360の機能(ステップA130)及び障害派生学習の機能(ステップA120)のいずれか一方を実行し、続いて、インスタンス派生確率計算部230の機能(ステップA150)、イベント読み込みの機能(ステップA160)、及び障害派生分析の機能(ステップA140)をこの順番で実行することが考えられる。このような場合、既に終了しているステップや、行う必要のないステップは、実行せずにスキップしてもよい。例えば、構成DB読み取り部360の機能(ステップA130)が既に済んでいる場合や、インスタンス定義DB220が既に与えられている場合には、ステップA130をスキップして、障害派生学習の機能(ステップA120)から実行することができる。又は、更に障害派生モデルAS→S、イベント派生モデルAS→E及びインスタンス派生モデルAM→Mが既に生成されている場合、イベント読み込みの機能(ステップA160)から実行することが考えられる。なお、各ステップを実行する順番は、上記例に限定されず、技術的な矛盾が発生しない限り、適宜変更可能である。
6.障害派生学習に関する動作(ステップA120)
次に、本発明の実施の形態に係る障害原因推定システムの動作のうち障害派生学習に関する動作について、図1及び図9を参照して説明する。図9は、本発明の実施の形態に係る障害原因推定システムの動作のうち障害派生学習に関する動作を示すフローチャートである。
まず、初期モデルパーサ140は、基本モデル定義130を構文解釈し、その結果を障害定義DB150に格納する(ステップB110)。次に、初期モデル生成部160が、障害定義DB150からデータを読み込み、上記式(1)及び式(2)を用いて初期障害派生モデルAS→S及び初期イベント派生モデルAS→Eを生成する。そして、それぞれ、初期障害派生モデル格納領域170、及び初期イベント派生モデル格納領域180に格納する(ステップB120)。
その後、拡張Baum−Welch計算部190が、初期障害派生モデル格納領域170及び初期イベント派生モデル格納領域180からそれぞれ初期障害派生モデルAS→S及び初期イベント派生モデルAS→Eを読み込み、インスタンス定義DB220からインスタンス定義を読み込み、障害発生個別種別定義DBから障害発生個別種別定義を読み込み、イベント列DB310から学習用のイベント列を読み込む。そして、本発明に係る拡張Baum−Welchアルゴリズムを用いて、障害派生モデルAS→S及びイベント派生モデルAS→Eを計算する(ステップB130)。計算方法については後述される。計算された、障害派生モデルAS→S及びイベント派生モデルAS→Eを、それぞれ障害派生モデル格納領域200、イベント派生モデル格納領域210に格納する(ステップB140)。上記処理を実行して動作が終了する。
本障害派生学習により、基本モデルから生成した初期障害派生モデルAS→S、初期イベント派生モデルS→Eと学習用のイベント列とに、本発明に係る拡張Baum−Welchアルゴリズムを適用して、障害派生モデルAS→S及びイベント派生モデルAS→Eを生成(推定)することができる。これら拡張障害派生モデルAS→S及びイベント派生モデルAS→Eは、本発明に係る拡張HMMの一部として、後述される拡張Viterbi計算部320での本発明に係る拡張Viterbiアルゴリズムに用いられる。
7.インスタンス派生学習に関する動作(ステップA150)
次に、本発明の実施の形態に係る障害原因推定システムの動作のうちインスタンス派生学習に関する動作について、図1及び図10を参照して説明する。図10は、本発明の実施の形態に係る障害原因推定システムの動作のうちインスタンス派生学習に関する動作を示すフローチャートである。
まず、インスタンス派生確率計算部230は、本発明に係る前向きアルゴリズムを用いてインスタンス派生モデルAM→Mを生成する。具体的には、まず、読み込み部1400が、イベント列DB310に格納されているイベント列を取り出し、イベント列作業領域1405に格納する(ステップC100)。そのとき、読み込み部1400は、イベント列DB310にまだイベント列があるかチェックする(ステップC105)。
イベント列DB310にまだイベント列がある場合(ステップC105:Yes)、以下の処理を行う。
まず、転送部1430が、イベント作業領域(t−1)1420に格納されているイベントをイベント作業領域(t)1440に移動する(ステップC110)。次に、イベント発生時刻順抽出部1410が、イベント列作業領域1405に格納されているイベントのうち指定時間範囲のイベントを発生時刻順に取り出す。イベント作業領域(t−1)1420に格納する(ステップC120)。
そのとき、イベント発生時刻順抽出部1410が、イベント列作業領域1405にまだイベント列があるかチェックする(ステップC130)。
イベント列作業領域1405にまだイベントがある場合(ステップC130:Yes)、以下の処理を行う。
まず、イベント加算部1445が、イベント作業領域(t)1440とイベント作業領域(t−1)1420のそれぞれの発生箇所(M、Mt−1)を取得、イベントカウント表1450の該当エントリのカウンタを増やす。また、その際、イベントカウント表1450の合計欄を必要に応じて計算する(ステップC140)。
イベント列作業領域1405にもうイベントがない場合(ステップC130:No)、新たなイベント列を得るために、ステップC110に戻る。
ステップC105でイベント列DB310にイベント列がなくなった場合(ステップC105:No)、以下の処理を行う。
計算部1460が、イベントカウント表1450のエントリ(M、M)で示されている発生回数を合計欄Mで示す合計値で割った値をMでイベントが発生した状況でのMが発生する発生確率とし、インスタンス派生モデル格納領域250のインスタンス派生モデルの(M、M)の欄に格納する(ステップC150)。上記処理を実行して動作が終了する。
本インスタンス派生学習により、学習用のイベント列に、本発明に係る前向きアルゴリズムを適用して、インスタンス派生モデルAM→Mを生成(推定)することができる。このインスタンス派生モデルAM→Mは、本発明に係る拡張HMMの一部として、拡張Viterbi計算部320での本発明に係る拡張Viterbiアルゴリズムに用いられる。
8.イベント読み込みに関する動作(ステップA160)
次に、本発明の実施の形態に係る障害原因推定システムの動作のうちイベント読み込みに関する動作について、図1及び図11を参照して説明する。図11は、本発明の実施の形態に係る障害原因推定システムの動作のうちイベント読み込みに関する動作を示すフローチャートである。
まず、イベントモニタ270が、管理対象装置260の発生したイベントを取得し、イベント列パーザ300に受け渡す(ステップD110)。イベント列は、例えば管理対象装置260を試運転中に取得した学習用のイベント列や、管理対象装置260を実際に監視中にイベントモニタ270が取得するイベント列である。次に、イベント列パーザ300は、イベントモニタが取得したイベント列を、後述されるように(図18)、イベントが一定時間T発生しない時点で、イベントリージョンと呼ぶイベント列に切り分け、イベント列DB310に格納する(ステップD120)。上記処理を実行して処理を終了する。
本イベント読み込み動作により、学習用のイベント列を読み込んだ場合には、上記障害派生学習やインスタンス派生学習のための学習用のイベント列を準備することができる。また、監視中のイベント列を読み込んだ場合には、後述される障害派生分析を行うことができる。
9.障害派生分析に関する動作(ステップA140)
次に、本発明の実施の形態に係る障害原因推定システムの動作のうち障害派生分析に関する動作について、図1及び図12を参照して説明する。図12は、本発明の実施の形態に係る障害原因推定システムの動作のうち障害派生分析に関する動作を示すフローチャートである。
まず、拡張Viterbi計算部320は、障害派生モデル格納領域200の障害派生モデルAS→S、イベント派生モデル格納領域210のイベント派生モデルAS→E、インスタンス派生モデル格納領域250のインスタンス派生モデルAM→Mを読み込み、インスタンス定義DB220からインスタンス定義を読み込み、障害発生個別種別定義DBから障害発生個別種別定義を読み込み、イベント列DB310から指定された時間範囲のイベント列e(t)を読み込み、派生関係を分析し、障害の推移列(s(t),(t=0,…,T))と、装置m(t)で障害s(t)が発生した確率vs(t),m(t)(t)を時刻tごとに算出する。原因推定結果DB330に格納する(ステップE110)。
つぎに、フィルタリングモジュール335は、原因推定結果DB330に格納された分析結果を、結果表示340に表示する。また、所定の条件(例示:所定の確率よりも低い状態遷移の箇所で分割)で派生列(s(t),(t=0,…,T))を分割する。そして、分割された複数の障害の派生列の中から、確率vs(t),m(t)(t)の総和の高い障害sの列を尤もらしい派生列として抽出して、その派生列の開始状態を根源的な原因(障害原因)と推定する。そして、これら分析の結果を、更に結果表示部340に表示する(ステップE120)。これら計算方法については後述される。上記処理を実行して動作が終了する。
本障害派生分析により、障害派生モデルAS→S、イベント派生モデルAS→E、インスタンス派生モデルAM→Mと観測されたイベント列(出力系列)とに、本発明に係る拡張Viterbiアルゴリズムを適用して、障害系列(状態系列)の最尤パスを推定する。それにより、管理対象装置260における障害原因を推定することが可能となる。
10.拡張Viterbi計算部に関する動作(障害派生分析に関する詳細)
次に、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張Viterbi計算部に関する動作について図2及び図13を参照して説明する。図13は、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張Viterbi計算部に関する動作を示すフローチャートである。
まず、初期設定として、イベント作業領域510のs(0)=s、vs0、m(0)=1、v1、m(0)〜v|S|−1、m(0)=0と設定する(ステップF110)。ただし、sは正常状態を表す。また、s!=sである。
つぎに、読み出し部505は、インスタンス定義220を参照しつつ、イベント列DB310の指定された発生時間範囲のイベントの集合を、イベント作業領域510のイベント(e)、発生箇所(M)、そして、発生箇所の装置種別(C)に、時間tごとに格納する(ステップF120)。
つぎに、セレクタ540は、イベント作業領域510のうち、時刻カウンタ590の値tで指定されたイベント領域を選択し、遷移確率計算部530へ出力する(ステップF130)。具体的には、時刻tに基づいて、vs、m(t)、e(t+1)、m(t)、m(t+1)、c(t)、c(t+1)の値を出力する。図2の例では、時刻t=2で指定された領域520及び領域525、すなわち、e(3)=e、m(2)=m、m(3)=m、c(2)=c、c(3)=c、vs、m(2)=v|S|−2,m(2)=0.4、及びv|S|−1,m(2)=0.8の値を出力する。ただし、vs、m(2)は、e(2)=eの発生装置m(2)=mの種別c(2)=cにより、v0,m(2)〜v|S|−1,m(2)の中から、可能性のあるvs、m(2)としてv|S|−2,m(2)及びv|S|−1,m(2)を抽出して、出力している。他のvs、m(2)は“0”とする。それにより、v0,m(t)〜V|S|−1,m(t)の全ての数値を抽出して、後述の計算をする場合に比較して、その計算量を大幅に削減できる。
時刻カウンタ590の値tがイベント作業領域510の最大時刻Tより小さい場合(ステップF140:Yes)、以下の処理を実行する。
遷移確率計算部530は、障害発生個別種別定義と、障害派生モデルAS→Sと、イベント派生モデルAS→Eとを参照して、e(t+1)、m(t)、m(t+1)、c(t)、c(t+1)、vs、m(t)を入力とし、イベントの発生箇所の装置種別に応じた隠れ状態のみに関して、時刻(t+1)で障害uが発生する確率P(u|s)を上記(3)式により計算する(ステップF150)。図2の例では、u=s(3)、s=s(2)、vs、m(2)=(0、0、・・・、0.4、0.8)である。式(3)は、
P(s(3)|s(2))
=AS→E[e(3),s(3)]max{AS→S[s(3),s(2)]・vs、m(2)}
=AS→E[e,s(3)]max{AS→S[s(3),s(2)]・(0、0、・・・、0.4、0.8)}
=α×AS→E[e,s(3)]
となる。ただし、s(3)、s(2)は未定とし、ここではs〜s|S|−1である。
これにより、α(定数)×AS→E[e(t+1),u]=α×AS→E[e,s(3)]の形(要素数|S|のベクトル)で、P(u|s)が求まる。
つぎに、発生元確率乗算部570は、インスタンス生成モデルAM→Mを参照して、P(u|s)を入力とし、装置m(t+1)で障害uが発生する確率vu,m(t+1)(t+1)を上記式(4)により計算する。ただし、装置ごとの障害遷移確率と、障害種類ごとの障害遷移確率は独立とする。図2の例では、m(2)=m、m(3)=mである。式(4)は、
u,m(3)(3)
=AM→M[m(3),m(2)]・P(s(3)|s(2))
=AM→M[m,m]・α×AS→E[e,s(3)]
=β×α×AS→E[e,s(3)]
となる。ただし、s(3)は上記のとおりである。これにより、β(定数)×P(u|s)の形(要素数|S|のベクトル)で、vu,m(3)(3)が求まる。
そして、発生元確率乗算部570は、vs,m(t+1)(t+1)、及び、その最大値をとる障害s(t)を検出する。そして、イベント作業領域510のうち、セレクタ600が指す領域にそれぞれの値を格納する(ステップF160)。ただし、uは、c(t+1)で示されている装置種別が取りうる障害のみでよい。図2の例では、イベント作業領域510のうち、セレクタ600が指す領域535に(vs,m(3)(3))を、領域536にvs,m(3)(3)のうちの最大値をとるsをs(2)としてそれぞれ格納する。
つぎに、時刻加算部580は、時刻カウンタ590を1増加させる(ステップF170)。そして、ステップF130に戻る。このように、漸化式(3)、(4)を順次と解くことで、t=0〜Tについて、e、s、vs,m(t)を得ることができる。
時刻カウンタ590の値tがイベント作業領域510の最大時刻T以上の場合(ステップF140:No)、イベント作業領域510におけるt=0〜Tについて、e、s、vs,m(t)の結果を分析結果として、互いに関連付けて、原因推定結果DB330に格納する(ステップF180)。上記処理を実行して動作が終了する。
本拡張Viterbiアルゴリズムに関する動作により、障害sの派生列(s(t),(t=0,…,T);状態系列)、及び、各時刻tにおける各障害s(t)の発生確率(vs(t),m(t)(t),(t=0,…,T);状態遷移確率)を推定することができる。それにより、管理対象装置260における障害原因を推定することが可能となる。
11(1).拡張Baum−Welch計算部に関する動作(障害派生学習に関する)
次に、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張Baum−Welch計算部に関する動作について図3、図14A及び図14Bを参照して説明する。図14A及び図14Bは、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張Baum−Welch計算部に関する動作を示すフローチャートである。
まず、初期設定として、複製部710、複製部720は、それぞれ、初期障害派生モデル作業領域170、初期イベント派生モデル格納領域180を障害派生モデル作業領域740、イベント派生モデル作業750にコピーする(ステップG110)。
次に、拡張前向き計算部820は、イベント列DB310の時刻t=0〜t−1のイベント列が与えられたとき、インスタンス定義DB220、障害発生箇所種別定義DB370、障害派生モデル作業領域740、イベント派生モデル作業領域750を参照し、障害sの発生確率fs、m(t)を計算する。そして、計算された障害sの発生確率fs、m(t)を、内部のイベント作業領域1120に格納する(ステップG120)。
次に、拡張後向き計算部830は、イベント列DB310の時刻t=T〜t−1のイベント列が与えられたとき、インスタンス定義DB220、障害発生箇所種別定義DB370、障害派生モデル作業領域740、イベント派生モデル作業領域750を参照し、障害sの発生確率bs、m(t)を計算する。そして、計算された発生確率bs、m(t)を、内部のイベント作業領域1320に格納する(ステップG130)。
次に、拡張Baum−Welchサブモジュール770は、拡張前向き計算部820に格納されたf(t)と、拡張後向き計算部830に格納されたb(t)を入力とし、障害派生モデル作業領域740、イベント派生モデル作業領域750、イベントDB310を参照しつつ、上記の式(8)及び式(9)により障害派生モデルAS→S[j,i]及びイベント派生モデルAS→E[j,i]を計算する(ステップG140)。そして、それぞれ障害派生モデル作業領域780及びイベント派生モデル作業領域840に格納する。
次に、障害派生モデル作業領域780の障害派生モデルAS→S[j,i]をもとに、割り算計算部790は、上記式(5)により障害派生モデルAS→Sを正規化して、障害派生モデル作業領域800に格納する(ステップG150)。
また、並行して、イベント派生モデル作業領域840のイベント派生モデルAS→E[j,i]をもとに、割り算計算部850は、上記式(6)によりイベント派生モデルAS→Eを正規化して、イベント派生モデル作業領域860に格納する(ステップG160)。
次に、差分検査・複製部810は、障害派生モデル作業領域800に格納された障害派生モデルAS→S、を、障害派生モデル作業領域740に格納された障害派生モデルAS→Sと比較し、それらの差が少なく収束したか調べる。同様に、イベント派生モデル作業領域860に格納されたイベント派生モデルAS→Eを、イベント派生モデル作業領域750に格納されたイベント派生モデルAS→Eと比較し、それらの差が少なく収束したか調べる(ステップG170)。
障害派生モデルAS→S及びイベント派生モデルAS→Eのうちの少なくとも一方について、両者の差が大きい(所定の許容範囲を超える)場合(ステップG180:No)、障害派生モデル作業領域800に格納された障害派生モデルAS→Sとイベント派生モデル作業領域860に格納されたイベント派生モデルAS→Eを、障害派生モデル作業領域740及びイベント派生モデル作業領域750に複製する(ステップG190)。そして、ステップG120に戻る。
障害派生モデルAS→S及びイベント派生モデルAS→Eの両方について、両者の差が十分に小さい(所定の許容範囲以内)の場合(ステップG180:Yes)、求める解に収束したと判断し、障害派生モデル作業領域800に格納された障害派生モデルAS→Sとイベント派生モデル作業領域860に格納されたイベント派生モデルAS→Eを、障害派生モデル格納領域200とイベント派生モデル格納領域210に複製する(ステップG200)。上記処理を実行して動作が終了する。
本拡張Baum−Welchアルゴリズムに関する動作により、上記拡張Viterbiアルゴリズムに用いる障害派生モデルAS→S及びイベント派生モデルAS→Eを生成することができる。
11(2).拡張Baum−Welchサブモジュールに関する動作
次に、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張Baum−WelchサブモジュールB[j、i]に関する動作について図4、図15A〜図15Bを参照して説明する。図15A〜図15Bは、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張Baum−WelchサブモジュールB[j、i]に関する動作を示すフローチャートである。
まず、読み出し部900は、拡張前向き計算部820に格納された計算結果を、前向き格納結果fsi(t)に格納する(ステップH110)。
次に、読み出し部900は、拡張後向き計算部830に格納された計算結果を、後向き格納結果bsj(t)に格納する(ステップH120)。
次に、読み出し部900は、イベント列DB310の指定された発生時間範囲のイベントの集合を、イベント作業領域910のイベント(e)、発生箇所(M)に格納する(ステップH130)。
次に、読み出し部900は、ステップH130で格納する際、まだイベント列DB310にイベント列があるか確認する(ステップH135)。
イベント列がある場合(ステップH135:Yes)、以下の処理を行う。
遷移行列掛け算部920は、イベント作業領域910のfsi(t)及びbsj(t+1)をイベント作業領域910から抽出する(ステップH140)。そして、fsi(t)及びbsj(t+1)を入力として、障害派生モデル作業領域740に格納されている障害派生モデルAS→S[j,i]、及び、イベント派生モデル作業領域750に格納されているイベント派生モデルAS→E[e(t),i]を参照し、全ての時刻t=0,…,T−1に関して、時刻tごとの障害siからsjへの派生確率AS→S[j、i](t)を上記式(7)により計算する(ステップH150)。
次に、加算部930は、遷移行列掛け算部920が求めたAS→S[j、i](t)をt=0、…、T−1で、上記の式(8)により全て足し合わせて格納部935に格納する(ステップH160)。
また、ステップH150やH160と並行して、以下のステップH175、H180を実行する。すなわち、まず、B[j、i]がi==jか(B[i、i]の対角成分か)否かを調べる(ステップH175)。
i!=j(対角成分でない)の場合(ステップH175:No)、ステップH180をスキップする。
i==j(対角成分である)の場合(ステップH175:Yes)、ステップH180を実行する。i==jの場合、イベント遷移計算部950は、イベント作業領域910を参照し、障害sでイベントeが発生する確率AS→E[j、i]を上記式(9)により計算し、格納部955に格納する(ステップH180)。そして、ステップH160、H175又はH180の終了後、ステップH130へ戻る。
読み出し部900は、ステップH130で格納する際、イベント列DB310にイベント列がすでにない場合(ステップH135:No)、まず、平均計算部940は、格納部935に格納されているイベント列ごとに計算したAS→S[i、j]をすべて足し、イベント列の数で割って平均化し、障害派生モデル作業領域780に格納する(ステップH170)。
また、ステップH170と並行して、以下のステップH185を実行する。すなわち、まず、B[j、i]がi==jか(B[i、i]の対角成分か)を調べる(ステップH185)。
i!=j(対角成分でない)の場合(ステップH185:No)、ステップH190をスキップする。
i==j(対角成分である)の場合(ステップH185:Yes)、ステップH190を実行する。すなわち、i==jの場合、平均計算部960は、格納部955に格納されているイベント列ごとに計算したAS→E[j、i]をすべて足し、イベント列の数で割って平均化し、イベント派生モデル作業領域840に格納する(ステップH190)。上記処理を実行して動作が終了する。
11(3).拡張前向き計算部に関する動作
次に、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張前向き計算部に関する動作について図5及び図16を参照して説明する。図16は、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張前向き計算部に関する動作を示すフローチャートである。
まず、初期設定として、イベント作業領域1120にfs0(0)=1、fs1(0)〜f|S|−1(0)=0と代入する(ステップI110)。
次に、読み出し部1110は、イベント列DB310の指定された発生時間範囲のイベントの集合を読み出す。そして、読み出し部1110は、インスタンス定義DB220を参照しつつ、読み出したイベントの集合を、イベント作業領域1120のイベント(e)、そして、発生箇所(M)から求めた発生箇所の装置種別(C)に、時間(t)ごとに格納する(ステップI120)。
次に、時刻カウンタ1080が、イベント列の最大時間Tより小さいかチェックする(ステップI130)。
もし、時刻カウンタ1080が、イベント列の最大時間Tより小さい場合(ステップI130:Yes)、以下の処理を行う。
まず、セレクタ1030は、イベント作業領域1110のうち、時刻カウンタ1080の値で指されたイベント領域を選択し、遷移確率計算部1040に渡す(ステップI140)。具体的には、e(t+1)、c(t)、c(t+1)、f(t)(ただし、fs0(t)〜f|S|−1(t)のうちc(t)と同一種別で発生する障害sに対応するもの)を選択して、遷移確率計算部1040へ出力する。図5の例では、時刻t=2で指定されたe(3)=e、c(2)=c、c(3)=c、f(2)=f|S|−2(2)=s及びf|S|−1(2)=sの値を出力する。ただし、f(2)は、e(2)=eの発生装置の種別c(2)=c(領域1020)により、fs0(2)〜f|S|−1(2)の中から、可能性のあるf(2)としてf|S|−2(2)及びf|S|−1(2)(領域1010)を抽出して、出力している。それにより、fs0(t)〜f|S|−1(t)の全ての数値を抽出して、後述の計算をする場合に比較して、その計算量を大幅に削減できる。
次に、遷移確率計算部1040は、障害発生個別種別定義(障害発生個別種別定義DB370)、障害派生モデルAS→S(障害派生モデル作業領域740)、イベント派生モデルAS→E(イベント派生モデル作業領域750)を参照し、イベントの発生箇所の装置種別に応じた隠れ状態uのみごとにΣAS→S[u、s]f(t)を求める(ステップI150)。具体的には、障害u∈{s∈S|hS→C(s)=c(t+1)}ごとに、既述の式(10)を計算する。図5の例では、ある障害uについて、c(2)=cの場合、それに関連する障害が|S|−2、|S|−1とすると、f|S|−2(2)=s、f|S|−1(2)=sなので、式(10)は、
ΣS→S[u、s]f(2)
=[u、|S|−2]×f|S|−2(2)+[u、|S|−1]×f|S|−1(2)
の数値となる。
続いて、掛け算部1060は、イベント派生モデルAS→E(イベント派生モデル作業領域750を参照し、遷移確率計算部1040が計算したΣAS→S[u、s]f(t)にAS→E[e(t+1),u]をかけて、f(t+1)を隠れ状態uごとに求める。ただし、C[t+1]にあてはまらない隠れ状態uに関しては計算不要である。具体的には、遷移確率計算部1040の計算結果を入力とし、イベント派生モデルAS→Eを参照し、既述の漸化式(11)を計算する。図5の例では、ある障害uについて、
(t+1)
=AS→E[e(3)、u]・([u、|S|−2]×f|S|−2(2)+[u、|S|−1]×f|S|−1(2))
の数値となる。
そして、セレクタ1090が指すt+1に関して、f(t+1)の領域に格納する(ステップI170)。ただし、{s∈S|hS→C(s)=c(t+1)}のみに値を格納する。具体的には、c(3)=cに関連する障害がs0、s1の場合、セレクタ1090が指すf(3)の領域であって、関連するfs0(3)、fs1(3)の格納する領域1200のみに、計算結果fs0(3)、fs1(3)の値を格納する。
次に、時刻加算部1060は、掛け算部1060の出力に応答して、時刻カウンタ1080を1増加させる(ステップI180)。そして、ステップI130に戻る。
もし、時刻カウンタ1080が、イベント列の最大時間Tより小さい場合(ステップI130:No)、本処理を終了する。このようにして得られるf(t)(t=0〜T−1)、すなわち、fs0(t)〜f|S|−1(t)(t=0〜T−1)の各々は、fsi(t)(t=0〜T−1、i=0〜|S|−1))として、拡張Baum−Welchサブモジュール770へ出力される。
11(4).拡張後向き計算部に関する動作
次に、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張後向き計算部に関する動作について図6及び図17を参照して説明する。図17は、本発明の実施の形態に係る障害原因推定システムの動作のうち拡張後向き計算部に関する動作を示すフローチャートである。
まず、初期設定として、イベント作業領域1320にbs0(T)〜b|S|−1(T)=1と代入する(ステップJ110)。
次に、読み出し部1310は、イベント列DB310の指定された発生時間範囲のイベントの集合を読み出す。そして、読み出し部1310は、インスタンス定義DB220を参照しつつ、読み出したイベント集合を、イベント作業領域1320のイベント種別(e)、そして、発生箇所(M)から求めた発生箇所の装置種別(C)に、時間(t)ごとに格納する(ステップJ120)。
次に、時刻カウンタ1280が、0より大きいかチェックする(ステップJ130)。
もし、時刻カウンタ1280が、0より大きい場合(ステップJ130:Yes)、以下の処理を行う。
まず、セレクタ1230は、イベント作業領域1310のうち、時刻カウンタ1280の値で指されたイベント領域を選択し、遷移確率計算部1240に渡す(ステップJ140)。具体的には、e(t−1)、c(t)、c(t−1)、b(t)(ただし、bs0(t)〜b|S|−1(t)のうちc(t)と同一種別で発生する障害sに対応するもの)を選択し、遷移確率計算部1240へ出力する。図6の例では、時刻t=3で指定されたe(2)=e、c(3)=c、c(2)=c、b(3)=f|S|−2(3)=s及びb|S|−1(3)=sの値を出力する。ただし、b(2)は、e(3)=eの発生装置の種別c(3)=c(領域1220)により、bs0(3)〜b|S|−1(3)の中から、可能性のあるb(3)としてb|S|−2(3)及びb|S|−1(3)(領域1210)を抽出して、出力している。それにより、bs0(t)〜b|S|−1(t)の全ての数値を抽出して、後述の計算をする場合に比較して、その計算量を大幅に削減できる。
次に、遷移確率計算部1240は、障害発生個別種別定義(障害発生個別種別定義DB370)、障害派生モデルAS→S(障害派生モデル作業領域740)及びイベント派生モデルAS→E(イベント派生モデル作業領域750)を参照し、イベントの発生箇所の装置種別に応じた隠れ状態uのみごとにΣA[s、u]b(t)を求める(ステップJ150)。具体的には、障害u∈{s∈S|hS→C(s)=c(t−1)}ごとに、既述の式(12)を計算する。図6の例では、ある障害uについて、c(3)=cの場合、それに関連する障害が|S|−2、|S|−1とすると、b|S|−2(3)=s、b|S|−1(3)=sなので、式(12)は、
ΣS→S[s、u]b(3)
=[|S|−2、u]×b|S|−2(3)+[|S|−1、u]×b|S|−1(3)
の数値となる。
続いて、掛け算部1260は、イベント派生モデルAS→E(イベント派生モデル作業領域750)を参照し、遷移確率計算部1240が計算したΣAS→S[s、u]b(t)にAS→E[e(t−1)、u]をかけて、b(t−1)を隠れ状態uごとに求める。ただし、C[t−1]にあてはまらない隠れ状態uに関しては計算不要である。具体的には、遷移確率計算部1240の計算結果を入力として、イベント派生モデルAS→Eを参照し、既述の漸化式(13)を計算する。図6の例では、ある障害uについて、
(t−1)
=AS→E[e(2)、u]・([|S|−2、u]×b|S|−2(3)+[|S|−1、u]×b|S|−1(3))
の数値となる。
そして、セレクタ1290が指すt−1に関して、b(t−1)の領域に格納する(ステップJ170)。ただし、{s∈S|hS→C(s)=c(t−1)}のみに値を格納する。具体的には、c(2)=cに関連する障害がs0、s1の場合、セレクタ1290が指すb(2)の領域であって、関連するfs0(2)、fs1(2)の格納する領域1300のみに、計算結果bs0(2)、bs1(2)の値を格納する。
次に、時刻減算部1270は、掛け算部1260の出力に応答して、時刻カウンタ1280を1減少させる(ステップJ180)。そして、ステップJ130に戻る。
もし、時刻カウンタ1280が、0以下の場合(ステップJ130:No)、本処理を終了する。このようにして得られるb(t)(t=1〜T)、すなわち、bs0(t)〜f|S|−1(t)(t=1〜T)の各々は、bsj(t)(t=1〜T、j=0〜|S|−1))として、拡張Baum−Welchサブモジュール770へ出力される。
なお、上記実施の形態では、拡張Baum−Welch計算部を用いているが、本発明はその例に限定されるものではない。例えば、拡張Baum−Welch計算部の代わりに、“Statistical Methods for Speech Recognition (Language、 Speech、 and Communication)”、Frederick Jelinek著、9.3節や、特許文献3などに記述されている一般のBaum−Welch計算部を用いることも可能である。その場合にも、上記実施の形態と同様の効果を得ることが出来る。
12.イベント列パーザの動作
図18は、本発明の実施の形態に係る障害原因推定システムのイベント列パーザの動作を示す図である。
イベント列パーザ300は、取得したイベント列を、所定の条件で、複数のイベントの列に分割する。この図は、イベント列の分割の様子を示している。イベント列パーザ300は、イベントの発生間隔が一定時間T0よりも大きいと、イベント列を分割する。具体的には、例えば、イベント列(e(0),・・・,e(t))があるとき、イベントe(i)の発生時刻と、e(i+1)の発生時刻との間の時間が一定時間T0よりも長い場合、イベント列(e(0),・・・,e(t))を、イベントリージョンR:(e(0),・・・,e(i))と、イベントリージョンR:(e(i+1),・・・,e(j))、イベントリージョンR:(e(j+1),・・・,e(k))、・・・のように分割する。このことは、イベントリージョン内では、イベント発生間隔がしきい値T0以下であり、イベントリージョン間のイベント発生間隔はしきい値T0よりも大きいことを意味している。なお、ここでのイベントe(i)は、イベントタイプ(イベントの種別)ではなくイベントそのものである。学習用のイベント列では、1イベントリージョンを学習用のイベント列として、イベントリージョンの数だけ学習用に用いる。
13.拡張Viterbiアルゴリズムでの原因推定の原理
図19は、本発明の実施の形態に係る障害原因推定システムの拡張Viterbi計算部での原因推定の原理を示す図である。
管理対象装置260の実運用時で得られたイベント列から障害原因を推定するのは以下の原理による。
まず、イベント列をイベントリージョンRiに分割する(イベント列パーザ300による)。
そして、学習により生成されたモデル(拡張Baum−Welch計算部190による)に対して、あるイベントリージョンRiを与えて、最も遷移確率の高い隠れ状態列S=(s)=argmax{si}Pr(R)を得る(拡張Viterbi計算部320による)。
次に確率の低い(<P)遷移sの位置でSを、Si,jに分割する。すなわち、Sは、Si,1、Si,2,・・・,si,j,・・・に分割される。ただし、上記で求めたSi,j=(s,・・・s)に対して、Pr(sk+1|s)>P、かつ、s∈Si,j⇒sk+1∈Si,j、である。
次に、Si,j=(s,・・・s)に対してイベント発生確率P1のみをイベントコリレーション対象Ei,jとする。ただし、e∈R、かつ、s∈Si,j、かつ、Pr(e|Si,j)>P1⇒e∈Ri,j、である。このとき、集合Ri,j,シーケンスSi,jの集合が発生するが、シーケンスSi,j=(s,・・・s)のうち、sがルートコーズ(障害原因)、Ri,jがsが派生して発生したイベント集合とみなす(フィルタリングモジュール335による)。
14.実施例
次に、具体的な実施例を用いて本発明の実施の形態を説明する。
14(1).構成
図20は、本発明の実施例に係る障害原因推定システムの管理対称装置(システム)の構成を示すブロック図である。
LB1は、ロードバランサであり、クライアントからのリクエストをアプリケーションサーバAP1とAP2に振り分ける。
LB2は、ロードバランサであり、アプリケーションサーバAP1とAP2の要求を、副処理をおこなうアプリケーションサーバAP1とAP2に振り分ける。
アプリケーションサーバAP1とAP2は、ユーザの要求に応じたサービスを提供する。
アプリケーションサーバAP1とAP2は、ユーザの要求に応じたサービスを提供する。
DB1、DB2はRAID0など二重化されたデータベースであり、アプリケーションサーバAP1とAP2、AP1とAP2からの読み書き要求に応える。
各装置種類ごとから発生するイベントについて述べる。
ロードバランサLBは、以下の二種類のイベントを発生するとする。
connection_error@LB(eL1
hw_error@LB(eL2
アプリケーションサーバAPは、以下の二種類のイベントを発生するとする。
connection_error@AP(ea1
ap_error@AP(ea2
アプリケーションサーバAPは、以下の二種類のイベントを発生するとする。
connection_error@AP(eb1
ap_error@AP(eb2
データベースDBは、以下の二種類のイベントを発生するとする。
disk_full@DB(ed1
db_error@DB(ed2
また、各装置種別ごとの障害を述べる。
ロードバランサLBは、以下の障害を発生するとする。
hw_fault@LB(sL1
アプリケーションサーバAPは、以下の障害を発生するとする。
ap_fault@AP(sa1
アプリケーションサーバAPは、以下の障害を発生するとする。
ap_fault@AP(sb1
データベースDBは、以下の障害を発生するとする。
disk_full@DB(sd1
invalid_data@DB(sd2
また、これらの障害は、以下のイベントを発生することがわかっていたとする。
hw_fault@LB(sL1
connection_error@LB(eL1
hw_error@LB(eL2
ap_fault@AP(sa1
connection_error@AP(ea1
ap_error@AP(ea2
ap_fault@AP(sb1
connection_error@AP(eb1
ap_error@AP(eb2
disk_full@DB(sd1
disk_full@DB(ed1
db_error@DB(ed2
invalid_data@DB(sd2
db_error@DB(ed2
図21は、本発明の実施例に係る障害原因推定システムの基本モデル定義を示す図である。上記の障害を基本モデル定義として記述したものである。基本モデル定義は、例えば図のようなテキストファイルで記述される。[states]で始まる段落は、障害原因の集合Sを定義する。ここでは、5つの障害原因(例示:“ap_fault@AP”)が定義され、それぞれ発生装置種別(例示:“APb”)と対応付けられている。また、[observations]で始まる段落は、イベントの集合Eを定義する。ここでは、イベント名(例示:“connection_error@APa”)が定義され、それぞれ発生原因(例示:“ap_fault@APa”)と対応付けられている。
14(2).動作
次に、図8のステップA120である障害派生学習の手続きに関して具体的な実施例の動作を説明する。
初期モデルパーサ140が図21の基本モデル定義130を構文解釈し、その結果を障害定義DB150に格納する(図9のステップB110)。
ここで、障害定義DB150に格納される結果の例を図27に、障害発生箇所種別定義DB370に格納され結果の例を図28にそれぞれ示す。
次に、初期モデル生成部160が、障害定義DB150からデータを読み込み、初期障害派生モデルと、初期イベント派生モデルを生成、初期障害派生モデル格納領域170および初期イベント派生モデル格納領域240に格納する(図9のステップB120)。
本実施例における初期障害派生モデルの例を図22に、初期イベント派生モデルの例を図23にそれぞれ示す。すなわち、図22では、障害(S)に対して障害(S)が派生する遷移確率の初期設定が表中に記載されている。図23では、障害(S)に対してイベント(E)が派生する遷移確率の初期設定が表中に記載されている。ただし、「e」はイベントを示し、「s」は障害を示し、添え字の「0」は正常な状態、「a1」は「AP1」、「a2」は「AP2」、「b1」は「AP1」、「b2」は「AP2」、「L1」は「LB1」、「L2」は「LB2」、「d1」は「DB1」、「d2」は「DB2」、をそれぞれ示す。図22から図28について同じである。
次に、拡張Baum−Welch計算部190が、初期障害派生モデル格納領域170および初期イベント派生モデル格納領域240から、初期障害派生モデルと、初期イベント派生モデルを読み込み、障害派生モデル、イベント派生モデルを生成、障害派生モデル格納領域200、イベント派生モデル格納領域210に格納する(図9のステップB130)。
本実施例における障害派生モデルの例を図24に、イベント派生モデルの例を図25にそれぞれ示す。すなわち、図24では、障害(S)に対して障害(S)が派生する遷移確率の計算結果が表中に記載されている。図25では、障害(S)に対してイベント(E)が派生する遷移確率の計算結果が表中に記載されている。
次に、上記例に対して、図8のステップA150であるインスタンス派生確率計算部230についてその結果であるインスタンス派生モデルの例を図26に示す。図10の手続きに従ってイベントの発生装置の時間順番を記録してその割合を図26のような遷移確率行列AM→Mに表す。
すなわち、図26では、ある装置にイベント(障害のなしの状態を含む)が発生したとき、ある装置にイベントが派生する遷移確率が表中に示されている。
次に、上記例に対して、図8のステップA130に示すインスタンス定義の例を図29に示す。
すなわち、図29では、装置(M)と種別(クラス、C)との関係が示されている。
次に、図8のステップA140に示す障害学習の手続きについて上記例に対して、実施例の動作を説明する。
ここでは、DB1でdb_error@DB(ed2)発生し、続いて、AP2でconnection_error@AP(ea1)が発生したとする。このとき、図12のステップE110の結果、図30の結果が得られる。このsの行をみると、sd2からsa1と障害の推移関係が分析されたことがわかる。また、そのときに推移確率は、0。02%である。この確率が閾値Pよりも大きければ、sd2からsa1との推移関係が分析できたことになる。すなわち、DB1で起きたinvalid_data@DBからAP2で発生したap_fault@APに推移し、根本原因は、DB1で起きたinvalid_data@DBが判明した。これは、DBのデータエラーから、AP2で動作するアプリケーションがDBアクセスできず、connection_error@APを発生したと解釈できる。
図31は、本発明の実施例に係る障害原因推定システムの表示結果部での表示結果例を示す図である。
結果表示部340の表示画面340aに、複数のイベントリージョンのうちの、第40番目のイベントリージョン(40th EventRegion)341の分析内容が表示されている。すなわち、依存した障害原因鎖(原因→派生原因)342として、障害状態であるstate=thread_error343と、そこから派生したイベント344、及び、障害状態であるstate=My_SQL_is_stopped345と、そこから派生したイベント346、がそれぞれ表示されている。
上記実施の形態では、拡張Baum−Welch計算部は、特許文献3と同様に、イベント列から障害原因の推移関係を推測する。これにより、障害の推移関係が不明な障害にでも、推移する障害に対してその発生する確率を計算でき、障害原因分析を行うことが可能である。したがって、特許文献3と同様な仕組みで、人手で推移関係の規則を記述することなく、障害の原因を推測することができる。
また、拡張Viterbi計算部は、装置と装置ごとの障害の推移関係を計算するのではなく、装置種類(種別)ごとの派生関係と装置ごとのイベント推移関係が確率的に独立と仮定し、両者を独立に計算し、得た確率を掛け合わせる。独立に計算することで、計算量を低減する。
また、拡張Baum−Welch計算部と、拡張Viterbi計算部は、イベントに記載している障害発生元の装置に関して、その装置種別をインスタンス定義から求めるとともに、その装置種別に関係のある隠れ状態のみを検索することで、特許文献3よりも処理速度を向上させている。
すなわち、装置種別の集合をC、全装置での障害種類の集合をS、全イベントの集合をE、全装置の集合をMとすると、特許文献3の学習時間、処理時間ともO(|S||M|/|C|)となる。一方、本発明では、学習、分析ともO(|S|)となる。これらにより、本発明の目的を達成することができる。
第1の効果は、障害の推移関係が不明な障害にでも、推移する障害に関して原因分析ができる障害原因推定できることにある。その理由は、既存イベントを学習ログとして事前に与えることで、障害の推移関係を推測し、障害派生モデルを自動生成、それにより障害原因を推測するためである。
第2の効果は、人手で障害の推移関係に関する規則を記述することなく、推移する障害に関して原因分析ができることにある。その理由は、既存イベントを学習ログとして事前に与えることで、障害の推移関係を推測し、障害派生モデルを自動生成、それにより障害原因を推測するためである。
第3の効果は、大規模な管理対象システムに対して、推移する障害に関して原因分析ができることにある。その理由は、装置種類ごとの障害派生確率と、装置ごとの障害派生関係を独立に計算することで、計算量の削減を図っているためである。
本発明によれば、ネットワークやコンピュータシステムの障害監視システムといった用途に適用できる。また、組み込みシステムの障害発見系といった用途にも適用可能である。
本発明のプログラム、データ構造は、コンピュータ読取可能な記憶媒体に記録され、その記憶媒体から情報処理装置に読み込まれても良い。
本発明は、以下のようにも記載することができる。ただし、その内容に限定されない。
本発明の障害原因推定システムは、管理対象の複数の装置と前記複数の装置の種別との対応関係を定義したインスタンス定義を格納するインスタンス定義データベースと;前記複数の装置で発生し得る複数の障害と前記複数の装置の種別との対応関係を定義した障害発生箇所種別定義を格納する障害発生箇所種別定義データベースと;監視中の前記複数の装置において発生した複数のイベントが発生時刻順に並んだ障害原因推定用イベント列を格納するイベント列データベースと;前記複数の装置の種別と前記複数の装置の種別での障害との組み合わせに関する障害推移確率を示す障害派生モデルを記憶する第1記憶部と;前記複数の装置での障害と前記複数の装置の障害から派生するイベントとの組み合わせに関するイベント推移確率を示すイベント派生モデルを記憶する第2記憶部と;前記複数の装置のうちの障害の発生した発生装置に関する発生装置推移確率を示すインスタンス派生モデルを記憶する第3記憶部と;前記インスタンス定義及び前記障害発生箇所種別定義と、前記障害派生モデル、前記イベント派生モデル及び前記インスタンス派生モデルと、前記障害原因推定用イベント列とに基づいて、前記複数の装置の種別における前記複数の障害間の第1遷移確率と、前記複数の装置間の第2遷移確率とを独立に求め、両者を掛け合わせることで、前記障害原因推定用イベント列に対する障害の遷移列及び遷移確率を示す障害状態推移列及び障害状態遷移確率を推測する拡張Viterbi計算部と;前記障害状態遷移列及び障害状態遷移確率に基づいて、前記管理対象で発生した前記イベントの根源的な原因となる障害を推定するフィルタリングモジュールと;を具備する。
上記の障害原因推定システムにおいて、前記拡張Viterbi計算部は、前記障害原因推定用イベント列に含まれる第1時刻での第1発生装置での第1障害から第2時刻での第2発生装置での第2障害への遷移確率としての前記障害状態遷移確率を、前記第1時刻での前記第1発生装置の第1種別に対応する前記障害状態遷移確率と、前記第1障害から前記第2障害への前記障害推移確率と、前記第2障害での前記イベント推移確率とに基づいて算出される前記第1遷移確率と;前記第1発生装置から前記第2発生装置への前記発生装置推移確率である前記第2遷移確率と;に基づいて算出しても良い。
上記の障害原因推定システムにおいて、前記複数の装置で発生し得る複数のイベントと、前記複数のイベントを引き起こす複数の障害との対応関係を定義した基本モデル定義を格納する障害定義データベースと、前記基本モデル定義に基づいて、前記複数の障害同士の推移関係を示す初期障害派生モデル、及び、前記複数の障害と前記複数のイベントとの間の推移関係を示す初期イベント派生モデルを予め設定された条件で生成する初期モデル生成部と;前記インスタンス定義及び前記障害発生箇所種別定義と、前記初期障害派生モデル及び前記初期イベント派生モデルと、複数の装置において発生した複数のイベントが発生時刻順に並んだ学習用イベント列とに基づいて、前記学習イベント列に含まれる開始時刻から開始状態を出発して所定時刻で所定障害に至る前向き確率と、前記終了時刻から終了状態を出発して所定時刻で所定障害に至る後向き確率とを前記複数の装置の種別で障害を絞り込んで算出し、前記前向き確率と前記後向き確率とに基づいて、前記障害派生モデル及び前記イベント派生モデルを生成する拡張Baum−Welch計算部と;前記学習用イベント列における前記発生装置から次の前記発生装置への遷移確率を算出することにより前記インスタンス派生モデルを生成するインスタンス派生確率計算部と;を更に具備しても良い。
上記の障害原因推定システムにおいて、前記拡張Baum−Welch計算部は、前記学習用のイベント列に含まれる第3時刻での第3発生装置において第3障害から第4時刻での第4発生装置での第4障害への前記前向き確率を、前記第3時刻での前記第3発生装置の第3種別に対応する前記前向き確率と、前記第3障害から前記第4障害への前記障害遷移確率と、前記第4障害での前記イベント推移確率とに基づいて算出し;前記学習用のイベント列に含まれる第6時刻での第6発生装置において第6障害から第5時刻での第5発生装置での第5障害への前記後向き確率を、前記第6時刻での前記第6発生装置の第6種別に対応する前記後向き確率と、前記第6障害から前記第5障害への前記障害遷移確率と、前記第5障害での前記イベント推移確率とに基づいて算出し;前記イベント派生モデルを、前記前向き確率と前記後向き確率とに基づいて計算し;前記障害派生モデルを、前記前向き確率と前記後向き確率と各時点での前記イベント推移確率とに基づいて計算し;上記計算を、前記イベント推移確率と前記障害推移確率とが収束するまで繰り返して、前記障害派生モデル、及び、前記イベント派生モデルを生成しても良い。
上記の障害原因推定システムにおいて、拡張Baum−Welph計算部の代わりに、Baum−Welphアルゴリズムを実行するBaum−Welph計算部を用いても良い。
上記の障害原因推定システムにおいて、前記フィルタリングモジュールは、前記障害状態遷移列において、二つの障害間の遷移確率が、所定の確率よりも低い場合、前記障害状態遷移列を、当該二つの障害間で分割し;前記分割された障害状態推移列の各々の先頭の障害を、前記根源的な原因となる障害と推定しても良い。
上記の障害原因推定システムにおいて、前記学習用イベント列及び前記障害原因推定用イベント列の各々における隣接する2つのイベントの発生時間間隔は所定の値以下であっても良い。
本発明の障害原因推定方法は、管理対象の複数の装置と前記複数の装置の種別との対応関係を定義したインスタンス定義と、前記複数の装置で発生し得る複数の障害と前記複数の装置の種別との対応関係を定義した障害発生箇所種別定義と、前記複数の装置の種別と前記複数の装置の種別での障害との組み合わせに関する障害推移確率を示す障害派生モデルと、前記複数の装置での障害と前記複数の装置の障害から派生するイベントとの組み合わせに関するイベント推移確率を示すイベント派生モデルと、前記複数の装置のうちの障害の発生した発生装置に関する発生装置推移確率を示すインスタンス派生モデルと、監視中の前記複数の装置において発生した複数のイベントが発生時刻順に並んだ障害原因推定用イベント列とに基づいて、前記複数の装置の種別における前記複数の障害間の第1遷移確率と、前記複数の装置間の第2遷移確率とを独立に求め、両者を掛け合わせることで、前記障害原因推定用イベント列に対する障害の遷移列及び遷移確率を示す障害状態推移列及び障害状態遷移確率を推測するステップと;前記障害状態遷移列及び障害状態遷移確率に基づいて、前記管理対象で発生した前記イベントの根源的な原因となる障害を推定するステップと;を具備する。
上記の障害原因推定方法において、障害状態推移列及び障害状態遷移確率を推測するステップは、前記障害原因推定用イベント列に含まれる第1時刻での第1発生装置での第1障害から第2時刻での第2発生装置での第2障害への遷移確率としての前記障害状態遷移確率を;前記第1時刻での前記第1発生装置の第1種別に対応する前記障害状態遷移確率と、前記第1障害から前記第2障害への前記障害推移確率と、前記第2障害での前記イベント推移確率とに基づいて算出される前記第1遷移確率と;前記第1発生装置から前記第2発生装置への前記発生装置推移確率である前記第2遷移確率と;に基づいて算出するステップを含んでも良い。
上記の障害原因推定方法において、前記複数の装置で発生し得る複数のイベントと、前記複数のイベントを引き起こす複数の障害との対応関係を定義した基本モデル定義に基づいて、前記複数の障害同士の推移関係を示す初期障害派生モデル、及び、前記複数の障害と前記複数のイベントとの間の推移関係を示す初期イベント派生モデルを予め設定された条件で生成するステップと;前記インスタンス定義及び前記障害発生箇所種別定義と、前記初期障害派生モデル及び前記初期イベント派生モデルと、複数の装置において発生した複数のイベントが発生時刻順に並んだ学習用イベント列とに基づいて、前記学習イベント列に含まれる開始時刻から開始状態を出発して所定時刻で所定障害に至る前向き確率と、前記終了時刻から終了状態を出発して所定時刻で所定障害に至る後向き確率とを前記複数の装置の種別で障害を絞り込んで算出し、前記前向き確率と前記後向き確率とに基づいて、前記障害派生モデル及び前記イベント派生モデルを生成するステップと;前記学習用イベント列における前記発生装置から次の前記発生装置への遷移確率を算出することにより前記インスタンス派生モデルを生成するステップと;を更に具備しても良い。
上記の障害原因推定方法において、前記障害派生モデル及び前記イベント派生モデルを生成するステップは、前記学習用のイベント列に含まれる第3時刻での第3発生装置において第3障害から第4時刻での第4発生装置での第4障害への前記前向き確率を、前記第3時刻での前記第3発生装置の第3種別に対応する前記前向き確率と、前記第3障害から前記第4障害への前記障害遷移確率と、前記第4障害での前記イベント推移確率とに基づいて算出するステップと;前記学習用のイベント列に含まれる第6時刻での第6発生装置において第6障害から第5時刻での第5発生装置での第5障害への前記後向き確率を、前記第6時刻での前記第6発生装置の第6種別に対応する前記後向き確率と、前記第6障害から前記第5障害への前記障害遷移確率と、前記第5障害での前記イベント推移確率とに基づいて算出するステップと;前記イベント派生モデルを、前記前向き確率と前記後向き確率とに基づいて計算するステップと;前記障害派生モデルを、前記前向き確率と前記後向き確率と各時点での前記イベント推移確率とに基づいて計算するステップと;上記計算を、前記イベント推移確率と前記障害推移確率とが収束するまで繰り返して、前記障害派生モデル及び前記イベント派生モデルを生成するステップと;を含んでも良い。
上記の障害原因推定方法において、前記障害派生モデル及び前記イベント派生モデルを生成するステップの代わりに、Baum−Welphアルゴリズムを実行するステップを具備しても良い。
上記の障害原因推定方法において、前記根源的な原因となる障害を推定するステップは、前記障害状態遷移列において、二つの障害間の遷移確率が、所定の確率よりも低い場合、前記障害状態遷移列を、当該二つの障害間で分割するステップと;前記分割された障害状態推移列の各々の先頭の障害を、前記根源的な原因となる障害と推定するステップと;を含んでも良い。
上記の障害原因推定方法において、前記学習用イベント列及び前記障害原因推定用イベント列の各々における隣接する2つのイベントの発生時間間隔は所定の値以下であっても良い。
本発明のプログラムは、インスタンス定義データベースから、管理対象の複数の装置と前記複数の装置の種別との対応関係を定義したインスタンス定義を読み出すステップと;障害発生箇所種別定義データベースから、前記複数の装置で発生し得る複数の障害と前記複数の装置の種別との対応関係を定義した障害発生箇所種別定義を読み出すステップと;イベント列データベースから、監視中の前記複数の装置において発生した複数のイベントが発生時刻順に並んだ障害原因推定用イベント列を読み出すステップと;第1記憶部から、前記複数の装置の種別と前記複数の装置の種別での障害との組み合わせに関する障害推移確率を示す障害派生モデルを読み出すステップと;第2記憶部から、前記複数の装置での障害と前記複数の装置の障害から派生するイベントとの組み合わせに関するイベント推移確率を示すイベント派生モデルを読み出すステップと;第3記憶部から、前記複数の装置のうちの障害の発生した発生装置に関する発生装置推移確率を示すインスタンス派生モデルを読み出すステップと;拡張Viterbi計算部が、読み出された前記インスタンス定義及び前記障害発生箇所種別定義と、前記障害派生モデル、前記イベント派生モデル及び前記インスタンス派生モデルと、前記障害原因推定用イベント列とに基づいて、前記複数の装置の種別における前記複数の障害間の第1遷移確率と、前記複数の装置間の第2遷移確率とを独立に求め、両者を掛け合わせることで、前記障害原因推定用イベント列に対する障害の遷移列及び遷移確率を示す障害状態推移列及び障害状態遷移確率を推測するステップと;フィルタリングモジュールが、前記障害状態遷移列及び障害状態遷移確率に基づいて、前記管理対象で発生した前記イベントの根源的な原因となる障害を推定するステップと;を具備する障害原因推定方法をコンピュータに実行させる。
上記のプログラムにおいて、障害状態推移列及び障害状態遷移確率を推測するステップは、前記拡張Viterbi計算部が、前記障害原因推定用イベント列に含まれる第1時刻での第1発生装置での第1障害から第2時刻での第2発生装置での第2障害への遷移確率としての前記障害状態遷移確率を;前記第1時刻での前記第1発生装置の第1種別に対応する前記障害状態遷移確率と、前記第1障害から前記第2障害への前記障害推移確率と、前記第2障害での前記イベント推移確率とに基づいて算出される前記第1遷移確率と;前記第1発生装置から前記第2発生装置への前記発生装置推移確率である前記第2遷移確率と;に基づいて算出するステップを含んでも良い。
上記のプログラムにおいて、障害定義データベースから、前記複数の装置で発生し得る複数のイベントと、前記複数のイベントを引き起こす複数の障害との対応関係を定義した基本モデル定義を読み出すステップと;初期モデル生成部が、前記複数の装置で発生し得る複数のイベントと、前記複数のイベントを引き起こす複数の障害との対応関係を定義した基本モデル定義に基づいて、前記複数の障害同士の推移関係を示す初期障害派生モデル、及び、前記複数の障害と前記複数のイベントとの間の推移関係を示す初期イベント派生モデルを予め設定された条件で生成するステップと;拡張Baum−Welch計算部が、前記インスタンス定義及び前記障害発生箇所種別定義と、前記初期障害派生モデル及び前記初期イベント派生モデルと、複数の装置において発生した複数のイベントが発生時刻順に並んだ学習用イベント列とに基づいて、前記学習イベント列に含まれる開始時刻から開始状態を出発して所定時刻で所定障害に至る前向き確率と、前記終了時刻から終了状態を出発して所定時刻で所定障害に至る後向き確率とを前記複数の装置の種別で障害を絞り込んで算出し、前記前向き確率と前記後向き確率とに基づいて、前記障害派生モデル及び前記イベント派生モデルを生成するステップと;インスタンス派生確率計算部が、前記学習用イベント列における前記発生装置から次の前記発生装置への遷移確率を算出することにより前記インスタンス派生モデルを生成するステップと;を更に具備しても良い。
上記のプログラムにおいて、前記障害派生モデル及び前記イベント派生モデルを生成するステップは、前記拡張Baum−Welch計算部が、前記学習用のイベント列に含まれる第3時刻での第3発生装置において第3障害から第4時刻での第4発生装置での第4障害への前記前向き確率を、前記第3時刻での前記第3発生装置の第3種別に対応する前記前向き確率と、前記第3障害から前記第4障害への前記障害遷移確率と、前記第4障害での前記イベント推移確率とに基づいて算出するステップと;前記拡張Baum−Welch計算部が、前記学習用のイベント列に含まれる第6時刻での第6発生装置において第6障害から第5時刻での第5発生装置での第5障害への前記後向き確率を、前記第6時刻での前記第6発生装置の第6種別に対応する前記後向き確率と、前記第6障害から前記第5障害への前記障害遷移確率と、前記第5障害での前記イベント推移確率とに基づいて算出するステップと;前記拡張Baum−Welch計算部が、前記イベント派生モデルを、前記前向き確率と前記後向き確率とに基づいて計算するステップと;前記拡張Baum−Welch計算部が、前記障害派生モデルを、前記前向き確率と前記後向き確率と各時点での前記イベント推移確率とに基づいて計算するステップと;前記拡張Baum−Welch計算部が、上記計算を、前記イベント推移確率と前記障害推移確率とが収束するまで繰り返して、前記障害派生モデル及び前記イベント派生モデルを生成するステップと;を含んでも良い。
上記のプログラムにおいて、前記障害派生モデル及び前記イベント派生モデルを生成するステップの代わりに、Baum−Welch計算部が、Baum−Welphアルゴリズムを実行するステップを具備しても良い。
上記のプログラムにおいて、前記根源的な原因となる障害を推定するステップは、フィルタリングモジュールが、前記障害状態遷移列において、二つの障害間の遷移確率が、所定の確率よりも低い場合、前記障害状態遷移列を、当該二つの障害間で分割するステップと;フィルタリングモジュールが、前記分割された障害状態推移列の各々の先頭の障害を、前記根源的な原因となる障害と推定するステップと;を含んでも良い。
上記のプログラムにおいて、前記学習用イベント列及び前記障害原因推定用イベント列の各々における隣接する2つのイベントの発生時間間隔は所定の値以下であっても良い。
この出願は、2009年5月15日に出願された特許出願番号2009−118271号の日本特許出願に基づいており、その出願による優先権の利益を主張し、その出願の開示は、引用することにより、そっくりそのままここに組み込まれている。
以上、実施の形態を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。

Claims (21)

  1. 管理対象の複数の装置と前記複数の装置の種別との対応関係を定義したインスタンス定義を格納するインスタンス定義データベースと、
    前記複数の装置で発生し得る複数の障害と前記複数の装置の種別との対応関係を定義した障害発生箇所種別定義を格納する障害発生箇所種別定義データベースと、
    監視中の前記複数の装置において発生した複数のイベントが発生時刻順に並んだ障害原因推定用イベント列を格納するイベント列データベースと、
    前記複数の装置の種別と前記複数の装置の種別での障害との組み合わせに関する障害推移確率を示す障害派生モデルを記憶する第1記憶部と、
    前記複数の装置での障害と前記複数の装置の障害から派生するイベントとの組み合わせに関するイベント推移確率を示すイベント派生モデルを記憶する第2記憶部と、
    前記複数の装置のうちの障害の発生した発生装置に関する発生装置推移確率を示すインスタンス派生モデルを記憶する第3記憶部と、
    前記インスタンス定義及び前記障害発生箇所種別定義と、前記障害派生モデル、前記イベント派生モデル及び前記インスタンス派生モデルと、前記障害原因推定用イベント列とに基づいて、前記複数の装置の種別における前記複数の障害間の第1遷移確率と、前記複数の装置間の第2遷移確率とを独立に求め、両者を掛け合わせることで、前記障害原因推定用イベント列に対する障害の遷移列及び遷移確率を示す障害状態推移列及び障害状態遷移確率を推測する拡張Viterbi計算部と、
    前記障害状態遷移列及び障害状態遷移確率に基づいて、前記管理対象で発生した前記イベントの根源的な原因となる障害を推定するフィルタリングモジュールと
    を具備する
    障害原因推定システム。
  2. 請求項1に記載の障害原因推定システムにおいて、
    前記拡張Viterbi計算部は、前記障害原因推定用イベント列に含まれる第1時刻での第1発生装置での第1障害から第2時刻での第2発生装置での第2障害への遷移確率としての前記障害状態遷移確率を、
    前記第1時刻での前記第1発生装置の第1種別に対応する前記障害状態遷移確率と、前記第1障害から前記第2障害への前記障害推移確率と、前記第2障害での前記イベント推移確率とに基づいて算出される前記第1遷移確率と、
    前記第1発生装置から前記第2発生装置への前記発生装置推移確率である前記第2遷移確率と
    に基づいて算出する
    障害原因推定システム。
  3. 請求項1又は2に記載の障害原因推定システムにおいて、
    前記複数の装置で発生し得る複数のイベントと、前記複数のイベントを引き起こす複数の障害との対応関係を定義した基本モデル定義を格納する障害定義データベースと、
    前記基本モデル定義に基づいて、前記複数の障害同士の推移関係を示す初期障害派生モデル、及び、前記複数の障害と前記複数のイベントとの間の推移関係を示す初期イベント派生モデルを予め設定された条件で生成する初期モデル生成部と、
    前記インスタンス定義及び前記障害発生箇所種別定義と、前記初期障害派生モデル及び前記初期イベント派生モデルと、複数の装置において発生した複数のイベントが発生時刻順に並んだ学習用イベント列とに基づいて、前記学習イベント列に含まれる開始時刻から開始状態を出発して所定時刻で所定障害に至る前向き確率と、前記学習イベント列に含まれる終了時刻から終了状態を出発して所定時刻で所定障害に至る後向き確率とを前記複数の装置の種別で障害を絞り込んで算出し、前記前向き確率と前記後向き確率とに基づいて、前記障害派生モデル及び前記イベント派生モデルを生成する拡張Baum−Welch計算部と、
    前記学習用イベント列における前記発生装置から次の前記発生装置への遷移確率を算出することにより前記インスタンス派生モデルを生成するインスタンス派生確率計算部と
    を更に具備する
    障害原因推定システム。
  4. 請求項3に記載の障害原因推定システムにおいて、
    前記拡張Baum−Welch計算部は、
    前記学習用のイベント列に含まれる第3時刻での第3発生装置において第3障害から第4時刻での第4発生装置での第4障害への前記前向き確率を、前記第3時刻での前記第3発生装置の第3種別に対応する前記前向き確率と、前記第3障害から前記第4障害への前記障害遷移確率と、前記第4障害での前記イベント推移確率とに基づいて算出し、
    前記学習用のイベント列に含まれる第6時刻での第6発生装置において第6障害から第5時刻での第5発生装置での第5障害への前記後向き確率を、前記第6時刻での前記第6発生装置の第6種別に対応する前記後向き確率と、前記第6障害から前記第5障害への前記障害遷移確率と、前記第5障害での前記イベント推移確率とに基づいて算出し、
    前記イベント派生モデルを、前記前向き確率と前記後向き確率とに基づいて計算し、
    前記障害派生モデルを、前記前向き確率と前記後向き確率と各時点での前記イベント推移確率とに基づいて計算し、
    上記計算を、前記イベント推移確率と前記障害推移確率とが収束するまで繰り返して、前記障害派生モデル、及び、前記イベント派生モデルを生成する
    障害原因推定システム。
  5. 請求項1乃至3のいずれか一項に記載の障害原因推定システムにおいて、
    拡張Baum−Welph計算部の代わりに、Baum−Welphアルゴリズムを実行するBaum−Welph計算部を用いる
    障害原因推定システム。
  6. 請求項1乃至5のいずれか一項に記載の障害原因推定システムにおいて、
    前記フィルタリングモジュールは、
    前記障害状態遷移列において、二つの障害間の遷移確率が、所定の確率よりも低い場合、前記障害状態遷移列を、当該二つの障害間で分割し、
    前記分割された障害状態推移列の各々の先頭の障害を、前記根源的な原因となる障害と推定する
    障害原因推定システム。
  7. 請求項1乃至6のいずれか一項に記載の障害原因推定システムにおいて、
    前記学習用イベント列及び前記障害原因推定用イベント列の各々における隣接する2つのイベントの発生時間間隔は所定の値以下である
    障害原因推定システム。
  8. 管理対象の複数の装置と前記複数の装置の種別との対応関係を定義したインスタンス定義と、前記複数の装置で発生し得る複数の障害と前記複数の装置の種別との対応関係を定義した障害発生箇所種別定義と、前記複数の装置の種別と前記複数の装置の種別での障害との組み合わせに関する障害推移確率を示す障害派生モデルと、前記複数の装置での障害と前記複数の装置の障害から派生するイベントとの組み合わせに関するイベント推移確率を示すイベント派生モデルと、前記複数の装置のうちの障害の発生した発生装置に関する発生装置推移確率を示すインスタンス派生モデルと、監視中の前記複数の装置において発生した複数のイベントが発生時刻順に並んだ障害原因推定用イベント列とに基づいて、前記複数の装置の種別における前記複数の障害間の第1遷移確率と、前記複数の装置間の第2遷移確率とを独立に求め、両者を掛け合わせることで、前記障害原因推定用イベント列に対する障害の遷移列及び遷移確率を示す障害状態推移列及び障害状態遷移確率を推測するステップと、
    前記障害状態遷移列及び障害状態遷移確率に基づいて、前記管理対象で発生した前記イベントの根源的な原因となる障害を推定するステップと
    を具備する
    障害原因推定方法。
  9. 請求項8に記載の障害原因推定方法において、
    障害状態推移列及び障害状態遷移確率を推測するステップは、
    前記障害原因推定用イベント列に含まれる第1時刻での第1発生装置での第1障害から第2時刻での第2発生装置での第2障害への遷移確率としての前記障害状態遷移確率を、
    前記第1時刻での前記第1発生装置の第1種別に対応する前記障害状態遷移確率と、前記第1障害から前記第2障害への前記障害推移確率と、前記第2障害での前記イベント推移確率とに基づいて算出される前記第1遷移確率と、
    前記第1発生装置から前記第2発生装置への前記発生装置推移確率である前記第2遷移確率と
    に基づいて算出するステップを含む
    障害原因推定方法。
  10. 請求項8又は9に記載の障害原因推定方法において、
    前記複数の装置で発生し得る複数のイベントと、前記複数のイベントを引き起こす複数の障害との対応関係を定義した基本モデル定義に基づいて、前記複数の障害同士の推移関係を示す初期障害派生モデル、及び、前記複数の障害と前記複数のイベントとの間の推移関係を示す初期イベント派生モデルを予め設定された条件で生成するステップと、
    前記インスタンス定義及び前記障害発生箇所種別定義と、前記初期障害派生モデル及び前記初期イベント派生モデルと、複数の装置において発生した複数のイベントが発生時刻順に並んだ学習用イベント列とに基づいて、前記学習イベント列に含まれる開始時刻から開始状態を出発して所定時刻で所定障害に至る前向き確率と、前記学習イベント列に含まれる終了時刻から終了状態を出発して所定時刻で所定障害に至る後向き確率とを前記複数の装置の種別で障害を絞り込んで算出し、前記前向き確率と前記後向き確率とに基づいて、前記障害派生モデル及び前記イベント派生モデルを生成するステップと、
    前記学習用イベント列における前記発生装置から次の前記発生装置への遷移確率を算出することにより前記インスタンス派生モデルを生成するステップと
    を更に具備する
    障害原因推定方法。
  11. 請求項10に記載の障害原因推定方法において、
    前記障害派生モデル及び前記イベント派生モデルを生成するステップは、
    前記学習用のイベント列に含まれる第3時刻での第3発生装置において第3障害から第4時刻での第4発生装置での第4障害への前記前向き確率を、前記第3時刻での前記第3発生装置の第3種別に対応する前記前向き確率と、前記第3障害から前記第4障害への前記障害遷移確率と、前記第4障害での前記イベント推移確率とに基づいて算出するステップと、
    前記学習用のイベント列に含まれる第6時刻での第6発生装置において第6障害から第5時刻での第5発生装置での第5障害への前記後向き確率を、前記第6時刻での前記第6発生装置の第6種別に対応する前記後向き確率と、前記第6障害から前記第5障害への前記障害遷移確率と、前記第5障害での前記イベント推移確率とに基づいて算出するステップと、
    前記イベント派生モデルを、前記前向き確率と前記後向き確率とに基づいて計算するステップと、
    前記障害派生モデルを、前記前向き確率と前記後向き確率と各時点での前記イベント推移確率とに基づいて計算するステップと、
    上記計算を、前記イベント推移確率と前記障害推移確率とが収束するまで繰り返して、前記障害派生モデル及び前記イベント派生モデルを生成するステップと
    を含む
    障害原因推定方法。
  12. 請求項8乃至11のいずれか一項に記載の障害原因推定方法において、
    前記障害派生モデル及び前記イベント派生モデルを生成するステップの代わりに、Baum−Welphアルゴリズムを実行するステップを具備する
    障害原因推定方法。
  13. 請求項8乃至12のいずれか一項に記載の障害原因推定方法において、
    前記根源的な原因となる障害を推定するステップは、
    前記障害状態遷移列において、二つの障害間の遷移確率が、所定の確率よりも低い場合、前記障害状態遷移列を、当該二つの障害間で分割するステップと、
    前記分割された障害状態推移列の各々の先頭の障害を、前記根源的な原因となる障害と推定するステップと
    を含む
    障害原因推定方法。
  14. 請求項8乃至13のいずれか一項に記載の障害原因推定方法において、
    前記学習用イベント列及び前記障害原因推定用イベント列の各々における隣接する2つのイベントの発生時間間隔は所定の値以下である
    障害原因推定方法。
  15. インスタンス定義データベースから、管理対象の複数の装置と前記複数の装置の種別との対応関係を定義したインスタンス定義を読み出すステップと、
    障害発生箇所種別定義データベースから、前記複数の装置で発生し得る複数の障害と前記複数の装置の種別との対応関係を定義した障害発生箇所種別定義を読み出すステップと、
    イベント列データベースから、監視中の前記複数の装置において発生した複数のイベントが発生時刻順に並んだ障害原因推定用イベント列を読み出すステップと、
    第1記憶部から、前記複数の装置の種別と前記複数の装置の種別での障害との組み合わせに関する障害推移確率を示す障害派生モデルを読み出すステップと、
    第2記憶部から、前記複数の装置での障害と前記複数の装置の障害から派生するイベントとの組み合わせに関するイベント推移確率を示すイベント派生モデルを読み出すステップと、
    第3記憶部から、前記複数の装置のうちの障害の発生した発生装置に関する発生装置推移確率を示すインスタンス派生モデルを読み出すステップと、
    拡張Viterbi計算部が、読み出された前記インスタンス定義及び前記障害発生箇所種別定義と、前記障害派生モデル、前記イベント派生モデル及び前記インスタンス派生モデルと、前記障害原因推定用イベント列とに基づいて、前記複数の装置の種別における前記複数の障害間の第1遷移確率と、前記複数の装置間の第2遷移確率とを独立に求め、両者を掛け合わせることで、前記障害原因推定用イベント列に対する障害の遷移列及び遷移確率を示す障害状態推移列及び障害状態遷移確率を推測するステップと、
    フィルタリングモジュールが、前記障害状態遷移列及び障害状態遷移確率に基づいて、前記管理対象で発生した前記イベントの根源的な原因となる障害を推定するステップと
    を具備する障害原因推定方法をコンピュータに実行させるプログラム。
  16. 請求項15に記載のプログラムにおいて、
    障害状態推移列及び障害状態遷移確率を推測するステップは、
    前記拡張Viterbi計算部が、前記障害原因推定用イベント列に含まれる第1時刻での第1発生装置での第1障害から第2時刻での第2発生装置での第2障害への遷移確率としての前記障害状態遷移確率を、
    前記第1時刻での前記第1発生装置の第1種別に対応する前記障害状態遷移確率と、前記第1障害から前記第2障害への前記障害推移確率と、前記第2障害での前記イベント推移確率とに基づいて算出される前記第1遷移確率と、
    前記第1発生装置から前記第2発生装置への前記発生装置推移確率である前記第2遷移確率と
    に基づいて算出するステップを含む
    プログラム。
  17. 請求項15又は16に記載のプログラムにおいて、
    障害定義データベースから、前記複数の装置で発生し得る複数のイベントと、前記複数のイベントを引き起こす複数の障害との対応関係を定義した基本モデル定義を読み出すステップと、
    初期モデル生成部が、前記複数の装置で発生し得る複数のイベントと、前記複数のイベントを引き起こす複数の障害との対応関係を定義した基本モデル定義に基づいて、前記複数の障害同士の推移関係を示す初期障害派生モデル、及び、前記複数の障害と前記複数のイベントとの間の推移関係を示す初期イベント派生モデルを予め設定された条件で生成するステップと、
    拡張Baum−Welch計算部が、前記インスタンス定義及び前記障害発生箇所種別定義と、前記初期障害派生モデル及び前記初期イベント派生モデルと、複数の装置において発生した複数のイベントが発生時刻順に並んだ学習用イベント列とに基づいて、前記学習イベント列に含まれる開始時刻から開始状態を出発して所定時刻で所定障害に至る前向き確率と、前記学習イベント列に含まれる終了時刻から終了状態を出発して所定時刻で所定障害に至る後向き確率とを前記複数の装置の種別で障害を絞り込んで算出し、前記前向き確率と前記後向き確率とに基づいて、前記障害派生モデル及び前記イベント派生モデルを生成するステップと、
    インスタンス派生確率計算部が、前記学習用イベント列における前記発生装置から次の前記発生装置への遷移確率を算出することにより前記インスタンス派生モデルを生成するステップと
    を更に具備する
    プログラム。
  18. 請求項17に記載のプログラムにおいて、
    前記障害派生モデル及び前記イベント派生モデルを生成するステップは、
    前記拡張Baum−Welch計算部が、前記学習用のイベント列に含まれる第3時刻での第3発生装置において第3障害から第4時刻での第4発生装置での第4障害への前記前向き確率を、前記第3時刻での前記第3発生装置の第3種別に対応する前記前向き確率と、前記第3障害から前記第4障害への前記障害遷移確率と、前記第4障害での前記イベント推移確率とに基づいて算出するステップと、
    前記拡張Baum−Welch計算部が、前記学習用のイベント列に含まれる第6時刻での第6発生装置において第6障害から第5時刻での第5発生装置での第5障害への前記後向き確率を、前記第6時刻での前記第6発生装置の第6種別に対応する前記後向き確率と、前記第6障害から前記第5障害への前記障害遷移確率と、前記第5障害での前記イベント推移確率とに基づいて算出するステップと、
    前記拡張Baum−Welch計算部が、前記イベント派生モデルを、前記前向き確率と前記後向き確率とに基づいて計算するステップと、
    前記拡張Baum−Welch計算部が、前記障害派生モデルを、前記前向き確率と前記後向き確率と各時点での前記イベント推移確率とに基づいて計算するステップと、
    前記拡張Baum−Welch計算部が、上記計算を、前記イベント推移確率と前記障害推移確率とが収束するまで繰り返して、前記障害派生モデル及び前記イベント派生モデルを生成するステップと
    を含む
    プログラム。
  19. 請求項15乃至18のいずれか一項に記載のプログラムにおいて、
    前記障害派生モデル及び前記イベント派生モデルを生成するステップの代わりに、Baum−Welch計算部が、Baum−Welphアルゴリズムを実行するステップを具備する
    プログラム。
  20. 請求項15乃至19のいずれか一項に記載のプログラムにおいて、
    前記根源的な原因となる障害を推定するステップは、
    フィルタリングモジュールが、前記障害状態遷移列において、二つの障害間の遷移確率が、所定の確率よりも低い場合、前記障害状態遷移列を、当該二つの障害間で分割するステップと、
    フィルタリングモジュールが、前記分割された障害状態推移列の各々の先頭の障害を、前記根源的な原因となる障害と推定するステップと
    を含む
    プログラム。
  21. 請求項15乃至20のいずれか一項に記載のプログラムにおいて、
    前記学習用イベント列及び前記障害原因推定用イベント列の各々における隣接する2つのイベントの発生時間間隔は所定の値以下である
    プログラム。
JP2011513391A 2009-05-15 2010-05-14 障害原因推定システム、障害原因推定方法、及び障害原因推定プログラム Active JP5489085B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011513391A JP5489085B2 (ja) 2009-05-15 2010-05-14 障害原因推定システム、障害原因推定方法、及び障害原因推定プログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009118271 2009-05-15
JP2009118271 2009-05-15
JP2011513391A JP5489085B2 (ja) 2009-05-15 2010-05-14 障害原因推定システム、障害原因推定方法、及び障害原因推定プログラム
PCT/JP2010/058218 WO2010131746A1 (ja) 2009-05-15 2010-05-14 障害原因推定システム、障害原因推定方法、及び障害原因推定プログラム

Publications (2)

Publication Number Publication Date
JPWO2010131746A1 JPWO2010131746A1 (ja) 2012-11-08
JP5489085B2 true JP5489085B2 (ja) 2014-05-14

Family

ID=43085119

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011513391A Active JP5489085B2 (ja) 2009-05-15 2010-05-14 障害原因推定システム、障害原因推定方法、及び障害原因推定プログラム

Country Status (3)

Country Link
US (1) US8484514B2 (ja)
JP (1) JP5489085B2 (ja)
WO (1) WO2010131746A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102202696B1 (ko) * 2020-07-10 2021-01-13 (주)프론티스 확장현실과 사물인터넷 연동으로 산업시설물의 제어 및 관리를 위한 이동성 상태 기반 점유율 예측 원격협업 장치 및 방법

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012086443A1 (ja) * 2010-12-24 2012-06-28 日本電気株式会社 監視データ分析装置、監視データ分析方法および監視データ分析プログラム
JP6060969B2 (ja) * 2012-03-26 2017-01-18 日本電気株式会社 イベント相関検出システム
US9123004B2 (en) * 2012-03-29 2015-09-01 International Business Machines Corporation Predicting an effect of events on assets
US9535978B2 (en) * 2012-03-29 2017-01-03 International Business Machines Corporation Semantic mapping of topic map meta-models identifying assets and events to include weights
JP6126891B2 (ja) * 2013-03-29 2017-05-10 富士通株式会社 検出方法、検出プログラム、および検出装置
JP5836316B2 (ja) * 2013-05-16 2015-12-24 ソフトバンク株式会社 障害監視システム、障害監視方法、及び障害監視プログラム
US10346745B2 (en) 2013-09-05 2019-07-09 International Business Machines Corporation Method of using graphical index maps to provide automated relationship discovery and impact analyses
WO2015186342A1 (ja) * 2014-06-03 2015-12-10 日本電気株式会社 要因順序推定装置、要因順序推定方法、及び、要因順序推定プログラムが格納された記録媒体
US10042915B2 (en) 2015-09-28 2018-08-07 International Business Machines Corporation Semantic mapping of topic map meta-models identifying assets and events to include directionality
US10902524B2 (en) * 2015-09-30 2021-01-26 Sensormatic Electronics, LLC Sensor based system and method for augmenting underwriting of insurance policies
US10685043B2 (en) 2015-11-10 2020-06-16 International Business Machines Corporation Event analysis in network management event streams
US10387476B2 (en) 2015-11-24 2019-08-20 International Business Machines Corporation Semantic mapping of topic map meta-models identifying assets and events to include modeled reactive actions
JP6418260B2 (ja) * 2017-03-08 2018-11-07 オムロン株式会社 要因推定装置、要因推定システム、および要因推定方法
JP6878984B2 (ja) * 2017-03-23 2021-06-02 富士通株式会社 監視プログラム、監視方法および監視装置
US10467083B2 (en) * 2017-06-08 2019-11-05 International Business Machines Corporation Event relationship analysis in fault management
US10635521B2 (en) * 2017-12-15 2020-04-28 International Business Machines Corporation Conversational problem determination based on bipartite graph
US11354320B2 (en) * 2018-10-11 2022-06-07 International Business Machines Corporation Determining causes of events in data
CN112104495B (zh) * 2020-09-09 2022-07-05 四川信息职业技术学院 一种基于网络拓扑的系统故障根因定位方法
CN113098723B (zh) * 2021-06-07 2021-09-17 新华三人工智能科技有限公司 一种故障根因定位方法、装置、存储介质及设备
CN113571092B (zh) * 2021-07-14 2024-05-17 东软集团股份有限公司 一种发动机异响识别方法及其相关设备
US11809471B2 (en) 2021-10-15 2023-11-07 EMC IP Holding Company LLC Method and system for implementing a pre-check mechanism in a technical support session
US11941641B2 (en) 2021-10-15 2024-03-26 EMC IP Holding Company LLC Method and system to manage technical support sessions using historical technical support sessions
US11915205B2 (en) 2021-10-15 2024-02-27 EMC IP Holding Company LLC Method and system to manage technical support sessions using ranked historical technical support sessions
US20230236920A1 (en) * 2022-01-24 2023-07-27 Dell Products L.P. Method and system for providing solutions to a hardware component failure using a context-aware search
US20230236919A1 (en) * 2022-01-24 2023-07-27 Dell Products L.P. Method and system for identifying root cause of a hardware component failure
CN114441964B (zh) * 2022-04-08 2022-07-08 苏州浪潮智能科技有限公司 一种存储系统供电过程中的故障定位方法、装置以及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005141459A (ja) * 2003-11-06 2005-06-02 Nec Corp 異常挙動検出装置および異常挙動検出方法ならびにプログラム、希少挙動部分系列計算装置
JP2005141601A (ja) * 2003-11-10 2005-06-02 Nec Corp モデル選択計算装置,動的モデル選択装置,動的モデル選択方法およびプログラム
JP2007257184A (ja) * 2006-03-22 2007-10-04 Nec Corp 障害原因推定システム、方法、及び、プログラム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5548684A (en) * 1994-04-22 1996-08-20 Georgia Tech Research Corporation Artificial neural network viterbi decoding system and method
JPH08255093A (ja) 1995-03-16 1996-10-01 Matsushita Electric Ind Co Ltd 障害原因発見装置及びその方法
JPH10143190A (ja) 1996-11-11 1998-05-29 Matsushita Electric Ind Co Ltd 音声認識装置
JP2000122690A (ja) 1998-10-19 2000-04-28 Toshiba Corp パターン認識方法およびパターン認識装置
JP2002091480A (ja) 2000-09-19 2002-03-27 Atr Onsei Gengo Tsushin Kenkyusho:Kk 音響モデル生成装置及び音声認識装置
US6708308B2 (en) * 2001-01-10 2004-03-16 International Business Machines Corporation Soft output viterbi algorithm (SOVA) with error filters
JP2003022093A (ja) 2001-07-09 2003-01-24 Nippon Hoso Kyokai <Nhk> 音声認識方法および音声認識装置ならびに音声認識プログラム
JP4048741B2 (ja) 2001-07-24 2008-02-20 セイコーエプソン株式会社 Hmmの出力確率演算方法および音声認識装置
JP2004126641A (ja) 2002-09-30 2004-04-22 Toshiba Corp 因果関係モデル生成方法、因果関係モデル生成装置、原因推定方法、原因推定装置およびデータ構造
JP4298672B2 (ja) 2005-04-11 2009-07-22 キヤノン株式会社 混合分布hmmの状態の出力確率計算方法および装置
JP2007078943A (ja) 2005-09-13 2007-03-29 Hitachi Ltd 音響スコア計算プログラム
US7788205B2 (en) * 2006-05-12 2010-08-31 International Business Machines Corporation Using stochastic models to diagnose and predict complex system problems
US7765436B2 (en) * 2006-06-09 2010-07-27 International Business Machines Corporation Process for software support resource allocation based on analysis of categorized field problems
US8015134B2 (en) * 2007-05-31 2011-09-06 Solar Turbines Inc. Determining a corrective action based on economic calculation
KR100898339B1 (ko) * 2007-10-05 2009-05-20 한국전자통신연구원 홈 네트워크 환경을 위한 자율적인 오류 처리 시스템 및 그방법
US8180723B2 (en) * 2008-01-14 2012-05-15 Hewlett-Packard Development Company, L.P. Root cause analysis in a system having a plurality of inter-related elements
US8000931B2 (en) * 2008-10-23 2011-08-16 Advantest Corporation Deterministic component model judging apparatus, judging method, program, recording medium, test system and electronic device
JP2011025593A (ja) 2009-07-28 2011-02-10 Canon Inc サーマルプリンタ
US8260493B2 (en) * 2010-02-17 2012-09-04 GM Global Technology Operations LLC Health prognosis for complex system using fault modeling

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005141459A (ja) * 2003-11-06 2005-06-02 Nec Corp 異常挙動検出装置および異常挙動検出方法ならびにプログラム、希少挙動部分系列計算装置
JP2005141601A (ja) * 2003-11-10 2005-06-02 Nec Corp モデル選択計算装置,動的モデル選択装置,動的モデル選択方法およびプログラム
JP2007257184A (ja) * 2006-03-22 2007-10-04 Nec Corp 障害原因推定システム、方法、及び、プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102202696B1 (ko) * 2020-07-10 2021-01-13 (주)프론티스 확장현실과 사물인터넷 연동으로 산업시설물의 제어 및 관리를 위한 이동성 상태 기반 점유율 예측 원격협업 장치 및 방법

Also Published As

Publication number Publication date
WO2010131746A1 (ja) 2010-11-18
US8484514B2 (en) 2013-07-09
JPWO2010131746A1 (ja) 2012-11-08
US20120102371A1 (en) 2012-04-26

Similar Documents

Publication Publication Date Title
JP5489085B2 (ja) 障害原因推定システム、障害原因推定方法、及び障害原因推定プログラム
Cousineau et al. TLA+ proofs
Zhang et al. Large scale software test data generation based on collective constraint and weighted combination method.
Deb et al. Multi-signal flow graphs: a novel approach for system testability analysis and fault diagnosis
Shu et al. Generalized detectability for discrete event systems
Yu et al. The Bayesian Network based program dependence graph and its application to fault localization
US20100185694A1 (en) Query-Based Generation of Data Records
JP2008014912A (ja) 複数の観測結果の間の差異を検出するシステムおよびその方法
JP2007257184A (ja) 障害原因推定システム、方法、及び、プログラム
US20130246025A1 (en) System and method of generating equation-level diagnostic error messages for use in circuit simulation
US11194703B2 (en) System testing infrastructure for analyzing soft failures in active environment
Zhang et al. A mathematical model of performance-relevant feature interactions
Bharathi et al. A machine learning approach for quantifying the design error propagation in safety critical software system
Strasser et al. Diagnostic alarm sequence maturation in timed failure propagation graphs
US11243835B1 (en) Message-based problem diagnosis and root cause analysis
Singh et al. Specification-guided automated debugging of CPS models
US11609842B2 (en) System testing infrastructure for analyzing and preventing soft failure in active environment
Geng et al. Probabilistic logical approach for testing diagnosability of stochastic discrete event systems
US20070226274A1 (en) Database device, and computer product
US11593256B2 (en) System testing infrastructure for detecting soft failure in active environment
He et al. Repair diversification: A new approach for data repairing
Chen et al. The effectivity analysis of adding sensors for improving model based fault isolability properties
WO2022074796A1 (ja) 評価方法、評価装置、および評価プログラム
JP2022124240A (ja) 診断パターン生成方法及び計算機
Felgenhauer Algorithmic stability analysis for certain trust region methods

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130402

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131028

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140203

R150 Certificate of patent or registration of utility model

Ref document number: 5489085

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140216