JP2017111486A - 予兆検知プログラム、装置、及び方法 - Google Patents

予兆検知プログラム、装置、及び方法 Download PDF

Info

Publication number
JP2017111486A
JP2017111486A JP2015243219A JP2015243219A JP2017111486A JP 2017111486 A JP2017111486 A JP 2017111486A JP 2015243219 A JP2015243219 A JP 2015243219A JP 2015243219 A JP2015243219 A JP 2015243219A JP 2017111486 A JP2017111486 A JP 2017111486A
Authority
JP
Japan
Prior art keywords
configuration information
software configuration
failure
setting item
failure type
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.)
Granted
Application number
JP2015243219A
Other languages
English (en)
Other versions
JP6528669B2 (ja
Inventor
大塚 浩
Hiroshi Otsuka
浩 大塚
幸洋 渡辺
Koyo Watanabe
幸洋 渡辺
横山 乾
Ken Yokoyama
乾 横山
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015243219A priority Critical patent/JP6528669B2/ja
Priority to US15/373,428 priority patent/US10248517B2/en
Publication of JP2017111486A publication Critical patent/JP2017111486A/ja
Application granted granted Critical
Publication of JP6528669B2 publication Critical patent/JP6528669B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2257Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using expert systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • G06F11/0748Error 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 in a remote unit communicating with a single-box computer node experiencing an error/fault
    • 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2289Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)
  • Automation & Control Theory (AREA)
  • Fuzzy Systems (AREA)
  • Computational Linguistics (AREA)

Abstract

【課題】ソフトウェア構成が変更されている場合でも、適切に設定ミスを検知する。
【解決手段】学習部20が、システムにおける障害発生時に採取した構成情報に含まれる設定ミスのある設定項目及び設定値と障害種別とを対応付けた学習データを記憶すると共に、構成情報に含まれるソフトウェアの設定ファイルの組み合わせで表される第1ソフトウェア構成情報と障害種別及び設定項目とを対応付けて記憶する。依存度計算部25が、障害種別及び設定項目に対応付けて記憶された第1ソフトウェア構成情報に基づいて、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存するか否かを判定する。出力判定部27が、ソフトウェア構成に依存する検知結果を、検知対象の構成情報に含まれる第2ソフトウェア構成情報と、検知結果に含まれる障害種別及び設定項目該に対応付けて記憶された第1ソフトウェア構成情報とを比較し、出力するか否かを判定する。
【選択図】図2

Description

本発明は、予兆検知プログラム、予兆検知装置、及び予兆検知方法に関する。
従来、ユーザ側で運用しているシステムを監視し、システムでの障害発生の予兆を検知した場合に、ユーザ側のシステム管理者等に障害発生の予兆を検知したことを通知するサービスが行われている。
また、複数の装置にセットアップされる共通ソフトウェア、セットアップ作業が実施済みの装置の構成情報、及びセットアップ作業実施済み装置に対する共通ソフトウェアのセットアップ結果情報を記憶媒体に保持させる技術が提案されている。この技術では、分析装置は、自装置にセットアップする共通ソフトウェアを決定し、該共通ソフトウェアに対応する構成情報を記憶媒体から読み出し、自装置情報テーブルに保持されている自装置の構成情報と比較する。そして、分析装置は、セットアップ作業実施済み装置のうち、同一構成装置又は類似構成装置を決定する。そして、分析装置は、記憶媒体から同一構成装置又は類似構成装置に関するセットアップ結果情報を読み出し、共通ソフトウェアのセットアップ成否情報として出力する。
また、ノウハウを複数のCI(構成要素)で共有可能な構成情報管理データベース(CMDB)が提案されている。このCMDBには、CIとノウハウが個別に登録されている。そして、CMDB内において、CIに登録されている各“属性:値”の組を、それに関係するノウハウと関連付ける。ノウハウには、関連付けられたCIの多数に共通する“属性:値”の組が登録される。
また、プログラムモジュール等の複数の構成要素を有する稼動装置の障害に対する対応を支援する方法が提案されている。この方法では、一の稼動装置の障害に係る障害状況の入力を受け付け、受け付けた障害状況情報を検索キーとして、他の稼動装置に係る構成要素について、同様の障害状況情報をデータベースから抽出する。そして、抽出した障害状況情報に係る障害の原因及び対応方法を、受け付けた障害状況情報に係る障害の原因及び対応方法として出力する。
特開2009−277130号公報 特開2009−245029号公報 特開2007−257092号公報
システム運用中に現在のシステムに関する様々な設定を状況に応じて変更する場合がある。設定の変更は管理者等により行われるが、管理者のシステムに対する知識のレベルによって、設定ミスを起こすことが考えられる。設定ミスは、管理者が設定変更した後のシステムの稼働によって様々な状況となって表れる。様々な状況として表れた結果を、設定ミスのあった設定項目及び設定値と対応付けて学習データとして記憶しておき、システムに関する設定が行われた際に、この学習データに基づいて、設定ミスを検知することが考えられる。
しかしながら、設定の変更には、その後のシステムの動きを変化させるものがある。例えば、システムで使用されているソフトウェアの設定が変更された場合には、学習データが示す設定項目の設定値の正常範囲が変化する可能性がある。また、他のシステムで取得された学習データを用いる場合にも、他のシステムと自システムとでは、各システムで利用しているソフトウェアに相違がある場合がある。このような場合には、他のシステムで取得された学習データでは、自システムにおける設定ミスの検知が適切に行われない場合がある。
本発明は、一つの側面として、ソフトウェア構成が変更されている場合でも、適切に設定ミスを検知することを目的とする。
一つの態様として、システムにおける障害発生時に採取した構成情報に含まれる設定ミスのある設定項目及び設定値と障害種別とを対応付けた学習データを記憶する。また、前記構成情報に含まれるソフトウェアに関する設定が記述された設定ファイルの組み合わせで表される第1ソフトウェア構成情報と前記障害種別及び前記設定項目とを対応付けて記憶する。さらに、前記障害種別及び前記設定項目に対応付けて記憶された前記第1ソフトウェア構成情報に基づいて、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存するか否かを判定する。そして、検知対象の構成情報から前記学習データに基づいて検知された障害種別及び設定項目を含む検知結果のうち、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存する検知結果を出力するか否かを判定する。判定は、前記検知対象の構成情報に含まれる第2ソフトウェア構成情報と、前記検知結果に含まれる障害種別及び設定項目該に対応付けて記憶された第1ソフトウェア構成情報とを比較した結果に基づいて行う。
一つの側面として、ソフトウェア構成が変更されている場合でも、適切に設定ミスを検知することができる、という効果を有する。
本実施形態に係る予兆検知装置を含むシステム構成を示す概略図である。 本実施形態に係る予兆検知装置の機能ブロック図である。 障害の発生及び復旧と構成情報の採取との関係を説明するための図である。 事例データの一例を示す図である。 障害種別リストの一例を示す図である。 キーリストの一例を示す図である。 パターンリストの一例を示す図である。 無視リストの一例を示す図である。 学習データ・データベース(DB)の一例を示す図である。 カウントデータDBの一例を示す図である。 特定スコアDBの一例を示す図である。 設定ファイルリストの一例を示す図である。 ソフトウェア構成DBの一例を示す図である。 依存度の計算を説明するための図である。 依存度の計算を説明するための図である。 依存度DBの一例を示す図である。 予兆検知結果リストの一例を示す図である。 本実施形態に係る予兆検知装置として機能するコンピュータの概略構成を示すブロック図である。 学習処理の一例を示すフローチャートである。 パターン生成処理の一例を示すフローチャートである。 学習データ生成処理の一例を示すフローチャートである。 特定スコア計算処理の一例を示すフローチャートである。 ソフトウェア構成学習処理の一例を示すフローチャートである。 依存度計算処理の一例を示すフローチャートである。 検知処理の一例を示すフローチャートである。 出力判定処理の一例を示すフローチャートである。 類似度判定処理の一例を示すフローチャートである。 類似度判定処理の他の例を示すフローチャートである。
以下、図面を参照して本発明に係る実施形態の一例を詳細に説明する。
図1に示すように、本実施形態に係る予兆検知装置10は、インターネット等のネットワーク12を介して、複数の処理装置16を有する処理システム14と接続される。予兆検知装置10は、処理装置16の各々を監視し、処理装置16における障害発生の予兆を検知する。
処理装置16における障害発生の予兆検知は、例えば、処理装置16の構成情報(詳細は後述)における各種設定項目の設定値として、正しい値が設定されているか否かを判定することにより行うことができる。設定されている値が正しいか否かを判定する方法としては、設定されている値と、予め用意された正解の学習データ、又は誤りの学習データとを比較する方法が想定される。設定されている値と正解の学習データとを比較する場合には、両者が一致する場合に、設定されている値が正しいと判定することができる。設定されている値と誤りの学習データとを比較する場合には、両者が一致する場合に、設定されている値が正しくないと判定することができる。
しかし、処理装置16に障害が発生する要因には、構成情報の各設定項目の値として、誤った値を設定した場合と、変更すべき値の変更漏れが生じた場合とがある。このように、障害発生の要因に相違があるため、設定された値と、正解の学習データ又は誤りの学習データのいずれとを比較した方が、より適切な予兆検知を行うことができるかを判断することは困難である。
例えば、所定の初期値が設定された設定項目の値を、処理装置16毎に適切な値に変更しなければならない場合において、値の変更漏れがあった場合には、その設定項目の値は初期値のままになってしまい、障害発生の要因となる。この場合、正しい設定値は、処理装置16毎に各々異なる可能性があり、これら全てを網羅する正解の学習データを用意しておくことは容易ではない。この場合、初期値が設定されている場合には誤りであることを示す学習データを用意しておき、この誤りの学習データと設定されている値とを比較した方が、障害発生の予兆検知を適切に行うことができる。
そこで、本実施形態に係る予兆検知装置10では、設定されている値と比較するための正解の学習データと、誤りの学習データとを用意しておき、より適切に障害発生の予兆を検知できる学習データを特定して用いる。
また、構成情報の変更前後の値を比較して障害発生の予兆を検知する場合には、設定値の変更漏れが障害発生の要因になる場合を検知することができない。構成情報の変更前後の値を比較しても値に変化がないためである。本実施形態では、障害復旧前後の構成情報から正解の学習データ及び誤りの学習データを生成し、これらの学習データと設定された値とを比較することにより、設定されている値が正しいか否かを判定する。
図2に、予兆検知装置10の機能ブロック図を示す。図2に示すように、予兆検知装置10は、学習部20と、検知部26と、出力判定部27とを有する。学習部20は、さらに、パターン生成部21と、学習データ生成部22と、特定スコア計算部23と、ソフトウェア構成学習部24と、依存度計算部25とを含む。また、記憶部30には、学習データ・データベース(DB)31と、カウントデータDB32と、特定スコアDB33と、ソフトウェア構成DB34と、依存度DB35とが記憶される。各データベースについては後述する。
ここで、図3に示すように、処理装置16において障害が発生した場合には、障害発生時の状態を確認するために、障害発生直後に構成情報が採取される。そして、障害が復旧した後にも、復旧作業の記録及び動作確認のためなどに構成情報が採取される。予兆検知装置10には、この障害復旧前後で採取される構成情報の組が、事例データとして入力される。なお、構成情報には、処理装置16を構成するハードウェアの構成、及び処理装置16にインストールされているオペレーティングシステム(Operating System、OS)やアプリケーション等のソフトウェアに関する設定が記述された設定ファイル群が含まれる。構成情報は、例えば、処理装置16のファイルシステムから従来既知の専用のツールを用いて構成に関する情報を抽出したディレクトリ構造のデータである。
図4に事例データ36の一例を示す。図4の例では、障害復旧前に採取した構成情報37Aがその採取時刻と共に記録されている。また、障害復旧後に採取した構成情報37Bがその採取時刻と共に記録されている。構成情報37A及び37Bの各々には、各設定ファイル371について、設定ファイル371の識別情報372、及び更新日時373が記録されている。なお、ここでは、各設定ファイル371の識別情報372として、ルートディレクトリから設定ファイル371までのパスを用いている。設定ファイル371には、設定項目とその設定項目に対する設定値が記述されている。図4に示す障害復旧前の構成情報37Aの1つ目の設定ファイル371では、設定項目「AuthMySQLUser」について、設定値「user_name」が設定されている。
さらに、事例データ36には、障害の種別毎に予め定めた識別情報である障害種別38が記録されている。障害種別38は、例えば、障害復旧時に構成情報を採取する作業者等が事例データ36に記録する。
パターン生成部21は、複数の事例データ36を入力として受け付け、所定の記憶領域に蓄積する。また、パターン生成部21は、蓄積した複数の事例データ36の各々に含まれる障害種別38を、例えば、図5に示すような障害種別リスト42に記録する。なお、重複する障害種別は記録しない。
また、パターン生成部21は、各事例データ36に含まれる障害復旧前の構成情報37A、及び障害復旧後の構成情報37Bの各々から、構成に関する各種設定項目を特定するキーの全てを抽出する。例えば、キーとしては、設定項目の設定値が設定されている設定ファイルの識別情報と、その設定ファイルに設定される設定項目名との組合せを用いることができる。例えば、パターン生成部21は、図4の事例データ36の障害復旧前の構成情報37Aの1つ目の設定ファイルから、「/etc/httpd/conf/httpd.conf:AuthMySQLUser」をキーとして抽出する。パターン生成部21は、抽出したキーを羅列して、例えば、図6に示すようなキーリスト43を作成する。
また、パターン生成部21は、キーリスト43に記録された各キーについて、障害復旧の前後で値が異なる場合に、障害種別と、キーと、障害復旧前後の値とを対応付けたパターンを生成する。例えば、図4の事例データ36において、キー「/etc/httpd/conf/httpd.conf:AuthMySQLUser」については、障害復旧前の値「user_name」と、障害復旧後の値「user001」とが異なる。そのため、障害種別「F003」と、キー「/etc/httpd/conf/httpd.conf:AuthMySQLUser」と、障害復旧前の値「user_name」と、障害復旧後の値「user001」とを対応付けたパターンが生成される。パターン生成部21は、各キーについて生成したパターンを、例えば、図7に示すようなパターンリスト44に記録する。図7の例では、「値V」が障害復旧前の値、「値V」が障害復旧後の値である。
さらに、パターン生成部21は、例えば、図8に示すような無視リスト45に予め定められた障害種別とキーとの組に一致する障害種別とキーとを有するパターンを、パターンリスト44から削除する。無視リスト45には、例えば、システムを起動する毎に値が変わるキーなど、障害復旧前後の値を比較したとしても、障害発生の要因や予兆を見つけることが困難なキーを、障害種別毎に予め定めておく。
学習データ生成部22は、パターン生成部21で生成されたパターンリスト44に記録された各パターンから学習データを生成する。学習データは、障害種別毎に、あるキーについて、ある値が正解として出現した回数、及び誤りとして出現した回数を集計したデータである。パターンリスト44に記録されたパターンは、各キーについて障害復旧前後の値を有しており、障害復旧前の値Vは誤りの値、障害復旧後の値Vは正解の値である。
例えば、図9に示すように、学習データDB31には、障害種別、キー、正誤、値、及び回数の項目を有する複数の学習データが記録される。学習データ生成部22は、あるパターンの障害種別、キー、及び障害復旧前の値Vと、障害種別、キー、及び値が一致する学習データであって、正誤が「Failure」の学習データの回数を、1つのパターンに付き1増加させる。また、学習データ生成部22は、あるパターンの障害種別、キー、及び障害復旧後の値Vと、障害種別、キー、及び値が一致する学習データであって、正誤が「Success」の学習データの回数を、1つのパターンに付き1増加させる。なお、学習データ生成部22は、学習データDB31に障害種別、キー、及び障害復旧前の値V又は障害復旧後の値Vがパターンと一致する学習データが登録されていない場合には、該当の学習データを追加した上で、回数に1を設定する。
また、学習データ生成部22は、例えば、図10に示すように、正誤が「Success」の学習データの数を、障害種別毎かつキー毎にカウントした回数Nを、カウントデータDB32に記録する。同様に、学習データ生成部22は、正誤が「Failure」の学習データの数を、障害種別かつキー毎にカウントした回数Nを、カウントデータDB32に記録する。
特定スコア計算部23は、検知対象の構成情報から障害発生の予兆を検知する際に、学習データのうち、正解の値を有する学習データを利用するか、誤りの値を有する学習データを利用するかを特定するための特定スコアを計算する。特定スコアは、あるキーに対する値として、同じ値をとる確率が高いほど、すなわち、あるキーに対する値のバリエーションが少ないほど、その値が正解として、又は誤りとして確からしいことを表す。
例えば、特定スコア計算部23は、学習データDB31において、ある障害種別のあるキーについて、正誤が「Success」の学習データの各値が出現する経験的確率を求める。そして、特定スコア計算部23は、求めた確率から条件付エントロピーを計算し、これを、正誤が「Success」である学習データの確からしさを示す正解の特定スコアSとする。同様に、特定スコア計算部23は、正誤が「Failure」の学習データの各値が出現する経験的確率から条件付エントロピーを計算し、これを、正誤が「Failure」である学習データの確からしさを示す正解の特定スコアSとする。特定スコアSは下記(1)式で、特定スコアSは下記(2)式で表される。なお、XSuccessは、ある障害種別のあるキーについて、正誤が「Success」の学習データの集合、XFailureは、正誤が「Failure」の学習データの集合である。
より具体的に、図9に示す学習データDB31及び図10に示すカウントデータDB32を用いて、特定スコアS及び特定スコアSを計算する例を説明する。例えば、障害種別「F003」かつキー「/etc/httpd/conf/httpd.conf:AuthMySQLUser」についてのXSuccess及びXFailureは下記のとおりである。
Success={user001,webadmin}
Failure={user_name}
なお、上記の集合に含まれる各学習データは、その学習データが有する値で表している。
特定スコア計算部23は、学習データDB31から、XSuccessに含まれる値「user001」の学習データの出現回数(1回)、値「webadmin」の学習データの出現回数(1回)を取得する。同様に、特定スコア計算部23は、学習データDB31から、XFailureに含まれる値「user_name」の学習データの出現回数(2回)をそれぞれ取得する。また、特定スコア計算部23は、カウントデータDB32から、障害種別「F003」かつキー「/etc/httpd/conf/httpd.conf:AuthMySQLUser」の正誤「Success」の学習データの出現回数N(2回)を取得する。同様に、特定スコア計算部23は、正誤「Failure」の学習データの出現回数N(2回)を取得する。
特定スコア計算部23は、取得した回数を用いて、下記に示すように、学習データの各値について経験的確率を計算する。
p(user001|Success)=1/2
p(webadmin|Success)=1/2
p(user_name|Failure)=2/2
特定スコア計算部23は、計算した経験的確率を用いて、上記(1)式及び(2)式を用いて、下記のように特定スコアS及び特定スコアSを計算する。
特定スコア計算部23は、障害種別毎、かつキー毎に特定スコアS及び特定スコアSを計算し、例えば、図11に示すような特定スコアDB33に記録する。
ここで、予兆検知の精度向上のためには、事例データ36を多数採取し、多数の学習データが蓄積されていることが好ましい。そこで、多数の事例データ36を採取するために、他のシステムで採取された事例データ36も用いて、学習データを生成することを考える。この場合、事例データ36を採取したシステムと、障害の予兆検知の対象のシステムとの差異により、同じ設定項目であっても、正解又は誤りとなる設定値が異なる場合がある。
例えば、あるシステムから、設定項目「/etc/httpd/conf/httpd.conf:KeepAlive」の設定を誤っていたために、Apache HTTP Serverに障害が発生した事例データ36を採取したとする。この事例データ36から、キー「/etc/httpd/conf/httpd.conf:KeepAlive」についての学習データが得られる。この学習データは、他のシステムを予兆検知の対象とする場合にも有効に作用する。すなわち、検知対象のシステムの構成情報の該当の設定項目に、正解の学習データと異なる値、又は誤りの学習データと同じ値が設定されている場合には、障害の予兆を検知することができる。
一方、あるシステムから、設定項目「/etc/httpd/conf/httpd.conf:AuthMySQLUser」の設定を誤っていたために、Apache HTTP Serverに障害が発生した事例データ36を採取したとする。この事例データ36から、キー「/etc/httpd/conf/httpd.conf:AuthMySQLUser」についての学習データが得られる。そして、他のシステムを予兆検知の対象として、この学習データを用いた場合、他のシステムにおける該当の設定項目に対する設定値によっては、障害の予兆が検知されることになる。しかし、他のシステムで、設定項目「/etc/httpd/conf/httpd.conf:AuthMySQLUser」に該当する機能を使用していない場合には、その予兆検知は不適切なものとなる。
機能を使用する又は使用しないなど、システムで利用するソフトウェアの設定ファイルは、ソフトウェアがシステムにインストール後に編集される。特に、主要なソフトウェアほど設定項目を修正又は追記する可能性が高い。このような設定ファイルへの記述の相違、すなわちソフトウェア構成の相違がある場合、他のシステムで採取された学習データを用いた場合に、設定項目に設定された設定値の正誤を正しく判定できない場合がある。
そこで、本実施形態では、設定ミスがソフトウェア構成に依存するか否かを判定し、その上で、ソフトウェア構成が類似する他システムの学習データを用いることで、予兆検知を適切に行うことができるようにする。
そのために、ソフトウェア構成学習部24は、設定ミスがあった設定項目の設定値を学習すると共に、設定ミスがあった際のシステムのソフトウェア構成も学習する。具体的には、ソフトウェア構成学習部24は、学習データが抽出された構成情報37Aから、ソフトウェアの設定ファイル371の識別情報372及びその設定ファイルの更新日時373を抽出する。
より具体的には、ソフトウェア構成学習部24は、構成情報37Aから、正規表現に合致する設定項目と設定値との組を探索する。正規表現は、例えば、“:(コロン)”や“=(イコール)”で連結された設定項目と設定値との組や、予め定めた設定項目名などとすることができる。ソフトウェア構成学習部24は、正規表現に合致する設定項目と設定値との組が設定ファイル371内に存在する場合、ソフトウェアの設定ファイル371であると判定し、その設定ファイル371の識別情報372及び更新日時373を抽出する。
また、ソフトウェア構成学習部24は、抽出した設定ファイルの識別情報372を、例えば、図12に示すような、ソフトウェア構成DB34の一部である設定ファイルリスト46に記録し、識別情報372に、数字や記号等のIDを付与する。なお、設定ファイルリスト46に既に存在する設定ファイルの識別情報372については、新たに追記しない。また、ソフトウェア構成学習部24は、抽出した設定ファイルの識別情報372を、設定ファイルリスト46で付与されたIDに置き換え、かつ更新日時順に並び替えて、ソフトウェア構成パターンを生成する。
例えば、以下のような、設定ファイルの371の識別情報372及び更新日時373が抽出され、図12に示すように、各識別情報372にIDが付与されたとする。
2010/1/1, /etc/xxx.conf
2015/4/1, /etc/yyy.conf
2015/5/1, /etc/my.cnf
2015/6/1, /etc/httpd/conf/httpd.conf
この場合、ソフトウェア構成学習部24は、(4,3,2,1)というソフトウェア構成パターンを生成する。なお、更新日時での並び替えは、昇順でも降順でもよい。本実施形態では、降順で並び替える例について説明する。また、ソフトウェア構成パターンを生成する際、更新日時373がシステムのOS(Operating System)のインストール時刻以前の設定ファイルや、学習データの採取用に生成された設定ファイルの識別情報372を取り除いてもよい。
ソフトウェア構成学習部24は、生成したソフトウェア構成パターンを、該当の事例データ36から抽出された障害種別38及びキーと対応付けて、例えば、図13に示すようなソフトウェア構成DB34に記録する。同一の事例データ36から、複数の障害種別又は複数のキーが抽出されている場合には、ソフトウェア構成学習部24は、障害種別及びキーの全ての組み合わせに、生成したソフトウェア構成パターンを対応付ける。
依存度計算部25は、障害種別及びキーの組み合わせ毎に、障害種別及びキーの組み合わせが示す設定ミスによる障害が、ソフトウェア構成に依存して発生したか否かを示す依存度を計算する。ある障害がいつも同じソフトウェア構成で起きる場合には、そのソフトウェア構成に特有の障害であると考えられる。一方、ある障害が色々なソフトウェア構成で起きる場合には、その障害はソフトウェア構成に依存しないで発生する障害であると考えることができる。すなわち、ソフトウェア構成に依存する設定ミスによる障害は、依存しない場合に比べて、障害発生時のソフトウェア構成のバリエーションが少ない。そこで、障害発生時のソフトウェア構成のバリエーションに基づいて、依存度を計算する。
例えば、依存度計算部25は、下記(3)式により依存度を計算することができる。
なお、(i)は、該当の障害種別及びキーが抽出された事例データ36の件数、すなわち、ソフトウェア構成DB34に記録されたエントリ(各行)のうち、該当の障害種別及びキーを含むエントリの件数である。(ii)は、(i)の各エントリのソフトウェア構成パターンに含まれるIDの数である。(iii)は、(i)の各エントリのソフトウェア構成パターンに含まれるIDのうち、他のソフトウェア構成パターンに含まれない場合があるIDの数である。
例えば、図14に示すように、ある障害種別及びキーに対応して、ソフトウェア構成DB34に2件のエントリ(事例1、事例2)が存在したとする。事例1及び事例2共に、ソフトウェア構成パターンは、(4,3,2,1)である。この場合、(i)は2件、(ii)は4個、(iii)は0個であり、以下のように依存度が計算される。
また、例えば、図15に示すように、ある障害種別及びキーに対応して、ソフトウェア構成DB34に3件のエントリ(事例1、事例2、事例3)が存在したとする。事例1及び事例2共に、ソフトウェア構成パターンは、(4,3,2,1)であり、事例3のソフトウェア構成パターンは、(4,1,6,5)である。この場合、(i)は3件、(ii)は6個、(iii)は4個であり、以下のように依存度が計算される。
このように、上記(3)式によれば、ある障害種別及びキーについて、ソフトウェア構成パターンのバリエーションが少ないほど高くなる依存度を計算することができる。なお、依存度は(3)式の例に限定されず、ソフトウェア構成パターンのバリエーションが少ないほど高くなるものであればよい。また、上記(ii)及び(iii)をカウントする際、ソフトウェア構成パターン内のIDの並び順は考慮してよいし、考慮しなくてもよい。例えば、図15の例にさらに、ソフトウェア構成パターンが(1,6,5,4)の事例4が含まれるとする。この場合、ソフトウェア構成パターン内のIDの並び順を考慮しない場合には、事例3と同じ列にチェック(図15の例では「○」)が入る。ソフトウェア構成パターン内のIDの並び順を考慮する場合には、「bbb.conf ID=5」の右に、「httpd.comf ID=4」の列が追加され、1列目のID=4の列ではなく、7列目のID=4の列にチェックが入る。
依存度計算部25は、障害種別及びキーの組み合わせ毎に計算した依存度を、例えば図16に示すような依存度DB35に記録する。
検知部26は、検知対象の構成情報が入力された場合に、記憶部30に記憶された学習データDB31、カウントデータDB32、及び特定スコアDB33を用いて、障害発生の予兆を検知する。具体的には、検知部26は、検知対象の構成情報に含まれるキー及び値の組で表される各検知対象データと、学習データとの比較を行い、構成情報における各設定項目の値が正しく設定されているか否かを判定する。検知部26は、正しい値が設定されていないと判定した場合には、障害発生の予兆として検知し、予兆検知結果リストに記録する。
上述したように、本実施形態では、正解の学習データと誤りの学習データとのいずれを用いるかを特定したうえで、予兆検知を行う。具体的には、検知部26は、特定スコアDB33から、障害種別毎に、検知対象データに含まれるキーと一致するキーに対応する特定スコアS及び特定スコアSを取得する。上記(1)式に示す特定スコアSは、値が小さいほど正解の学習データの値が正解である確からしさの確度が高いことを表す。また、上記(2)式に示す特定スコアSは、値が小さいほど誤りの学習データの値が誤りである確からしさの確度が高いことを表す。そこで、検知部26は、特定スコアSが特定スコアSより小さい障害種別については、検知に用いる学習データとして、正解の学習データを特定する。一方、検知部26は、特定スコアSが特定スコアSより小さい障害種別については、検知に用いる学習データとして、誤りの学習データを特定する。
検知部26は、正解の学習データを特定した障害種別については、検知対象データと正解の学習データとを比較し、一致しなかった場合に障害発生の予兆を検知する。また、検知部26は、誤りの学習データを特定した障害種別については、検知対象データと誤りの学習データとを比較し、一致した場合に障害発生の予兆を検知する。検知部26は、障害発生の予兆を検知した場合には、その障害種別と、検知対象データ(キー及び値)とに、検知スコア(詳細は後述)を付与した予兆検知結果を、例えば、図17に示すような予兆検知結果リスト41に記録する。
検知スコアとは、その予兆検知結果の確からしさを示すスコアである。例えば、ある障害種別について、検知対象データのキーと一致するキーを有する誤りの学習データが複数存在し、検知対象データの値が、その誤りの学習データのいずれかと一致したとする。この場合、検知対象データの値と一致した誤りの学習データの出現回数が多いほど、その値が誤りであることの確からしさの確度が高くなる。そこで、検知部26は、例えば、検知対象データの値と一致した誤りの学習データの出現回数Nを、同一の障害種別及びキーの誤りの学習データの出現回数Nで除した値を検知スコアとすることができる。なお、出現回数Nは学習データDB31から取得することができ、出現回数NはカウントデータDB32から取得することができる。
また、ある障害種別について、検知対象データのキーと一致するキーを有する正解の学習データの値と、検知対象データの値とが一致しなかった場合には、上記のような出現回数に基づく検知スコアを計算することができない。そこで、検知部26は、上記の出現回数に基づく検知スコアとは異なり、正解の学習データと一致しなかったことを示す値(例えば、「−1」)を検知スコアとして付与する。
出力判定部27は、予兆検知結果リスト41に記録された各予兆検知結果について、キーが示す設定項目に対する設定ミスによる障害種別が示す障害の発生が、ソフトウェア構成に依存するか否かを判定する。具体的には、出力判定部27は、依存度DB35から、予兆検知結果に含まれる障害種別及びキーに対応する依存度Dを取得する。出力判定部27は、取得した依存度Dが予め定めた閾値Dthより大きい場合には、その障害種別及びキーに対応する障害の発生は、ソフトウェア構成に依存すると判定する。
また、出力判定部27は、検知対象の構成情報から、ソフトウェア構成学習部24と同様の手法により、ソフトウェア構成パターンpを生成する。例えば、検知対象の構成情報から、以下のような、設定ファイルの371の識別情報372及び更新日時373が抽出されたとする。
2010/1/1, /etc/xxx.conf
2015/6/10, /etc/my.cnf
2015/6/11, /etc/httpd/conf/httpd.conf
この場合、図12に示す設定ファイルリスト46に基づいて、各識別情報372がIDに置き換えられ、更新日時の降順で並び替えられて、(4,3,1)というソフトウェア構成パターンpが生成される。
また、出力判定部27は、ソフトウェア構成DB34から、障害の発生がソフトウェア構成に依存すると判定した障害種別及びキーに対応する全てのソフトウェア構成パターンP={P,P,・・・}を抽出する。例えば、F=0003、K=「/etc/httpd/conf/httpd.conf:AuthMySQLUser」の場合、図13に示すソフトウェア構成DB34から、P=(4,3,2,1)、P=(4,3,2,1)が抽出される。
出力判定部27は、生成したソフトウェア構成パターンpと、ソフトウェア構成DB34から抽出したソフトウェア構成パターンPの各々との類似度を計算する。具体的には、出力判定部27は、ソフトウェア構成パターンpと、ソフトウェア構成パターンPの各々とのレーベンシュタイン距離を、両ソフトウェア構成パターン間の類似度として計算する。以下では、xとyとのレーベンシュタイン距離をd(x,y)と表記する。なお、距離の計算においては、挿入・削除コストを1、置換のコストを2とする。レーベンシュタイン距離d(p,P)が小さいほど両ソフトウェア構成パターンは類似していることを表す。したがって、出力判定部27は、ソフトウェア構成パターンpと、いずれかのソフトウェア構成パターンPとのレーベンシュタイン距離d(p,P)が予め定めた閾値dthより小さい場合に、両ソフトウェア構成パターンは類似すると判定する。
例えば、ソフトウェア構成パターンp=(4,3,1)と、ソフトウェア構成パターンP=(4,3,2,1)とのレーベンシュタイン距離d(p,P)は「2」である。dth=1とすると、d(p,P)=2>dth=1であるので、両ソフトウェア構成パターンは類似すると判定される。
出力判定部27は、ソフトウェア構成パターンpが、ソフトウェア構成パターンPのいずれとも類似しないと判定した場合には、予兆検知結果リスト41の該当の予兆検知結果を削除する。これは、ソフトウェア構成に依存する障害は、ソフトウェア構成が類似するシステムにおいて発生するとの考えに基づき、ソフトウェア構成が類似していない場合には、該当の障害が発生する可能性は低いと見做すものである。出力判定部27は、予兆検知結果リスト41の各予兆検知結果について上記の判定を行い、最終的な予兆検知結果リスト41を出力する。
予兆検知装置10は、例えば図18に示すコンピュータ50で実現することができる。コンピュータ50はCPU51、一時記憶領域としてのメモリ52、及び不揮発性の記憶装置53を備える。また、コンピュータ50は、入出力装置54と、記録媒体59に対するデータの読み込み及び書き込みを制御するread/write(R/W)部55と、インターネット等のネットワーク12に接続されるネットワークI/F56とを備える。CPU51、メモリ52、記憶装置53、入出力装置54、R/W部55、及びネットワークI/F56は、バス57を介して互いに接続される。
記憶装置53はHDD(Hard Disk Drive)、SSD(solid state drive)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶装置53には、コンピュータ50を予兆検知装置10として機能させるための予兆検知プログラム60が記憶される。また、記憶装置53は、各種データベース及びリストを構成する情報が記憶される情報記憶領域70を有する。
CPU51は、予兆検知プログラム60を記憶装置53から読み出してメモリ52に展開し、予兆検知プログラム60が有するプロセスを順次実行する。また、CPU51は、情報記憶領域70に記憶された情報を読み出し、各種データベース及びリストとしてメモリ52に展開する。
予兆検知プログラム60は、パターン生成プロセス61と、学習データ生成プロセス62と、特定スコア計算プロセス63と、ソフトウェア構成学習プロセス64と、依存度計算プロセス65と、検知プロセス66と、出力判定プロセス67とを有する。
CPU51は、パターン生成プロセス61を実行することで、図2に示すパターン生成部21として動作する。また、CPU51は、学習データ生成プロセス62を実行することで、図2に示す学習データ生成部22として動作する。また、CPU51は、特定スコア計算プロセス63を実行することで、図2に示す特定スコア計算部23として動作する。また、CPU51は、ソフトウェア構成学習プロセス64を実行することで、図2に示すソフトウェア構成学習部24として動作する。また、CPU51は、依存度計算プロセス65を実行することで、図2に示す依存度計算部25として動作する。また、CPU51は、検知プロセス66を実行することで、図2に示す検知部26として動作する。また、CPU51は、出力判定プロセス67を実行することで、図2に示す出力判定部27として動作する。これにより、予兆検知プログラム60を実行したコンピュータ50が、予兆検知装置10として機能することになる。
なお、予兆検知プログラム60により実現される機能は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)等で実現することも可能である。
次に、本実施形態に係る予兆検知装置10の作用について説明する。まず、予兆検知装置10に複数の事例データ36が入力されると、予兆検知装置10において、図19に示す学習処理が実行される。そして、記憶部30に学習データDB31、カウントデータDB32、特定スコアDB33、ソフトウェア構成DB34、及び依存度DB35が記憶される。この状態で、予兆検知装置10に検知対象の構成情報が入力されると、予兆検知装置10において、図25に示す検知処理が実行され、予兆検知結果リスト41が出力される。なお、予兆検知装置10により実行される学習処理及び検知処理は、本発明の予兆検知方法の一例である。以下、各処理について詳述する。
図19に示す学習処理のステップS10で、パターン生成部21が、図20に詳細を示すパターン生成処理を実行する。
図20に示すパターン生成処理のステップS11で、パターン生成部21は、入力された複数の事例データ36から1つの事例データ36を取得する。事例データ36には、障害復旧前の構成情報37A、及び障害復旧後の構成情報37B、及び障害種別38が含まれる。また、パターン生成部21は、所定領域(図示省略)に記憶された無視リスト45を取得する。
次に、ステップS12で、パターン生成部21が、取得した事例データ36に含まれる障害種別38を、例えば、図5に示すような障害種別リスト42に記録する。
次に、ステップS13で、パターン生成部21が、取得した事例データ36に含まれる障害復旧前の構成情報37A、及び障害復旧後の構成情報37Bの各々から、キーを全て抽出し、例えば、図6に示すようなキーリスト43を作成する。
次に、ステップS14で、パターン生成部21が、キーリスト43に以下のステップS15〜S17の処理が未処理のキーが存在するか否かを判定する。未処理のキーが存在する場合には、処理はステップS15へ移行し、パターン生成部21が、未処理のキーから1つを選択し、キーKとする。
次に、ステップS16で、パターン生成部21が、キーKに対応する障害復旧前後の値を、障害復旧前の構成情報37A、及び障害復旧後の構成情報37Bの各々から取得する。そして、パターン生成部21は、取得した障害復旧前後の値が異なるか否かを判定する。異なる場合には、処理はステップS17へ移行し、等しい場合には、処理はステップS14に戻る。
ステップS17では、パターン生成部21が、ステップS11で取得した事例データ36に含まれる障害種別と、キーKと、キーKに対応する障害復旧前の値Vと、障害復旧前の値Vとを対応付けたパターンを生成する。そして、パターン生成部21は、例えば、図7に示すようなパターンリスト44に、生成したパターンを追加する。
上記ステップS14で、未処理のキーが存在しないと判定されると、処理はステップS18へ移行する。ステップS18では、パターン生成部21が、上記ステップS11で取得した無視リスト45に予め定められた障害種別とキーとの組に一致する障害種別とキーとを有するパターンを、パターンリスト44から削除する。
次に、ステップS19で、パターン生成部21が、生成した障害種別リスト42、及びパターンリスト44を出力する。入力された全ての事例データ36についてパターン生成処理が終了した場合には、処理は図19に示す学習処理に戻る。
次に、図19に示す学習処理のステップS20で、学習データ生成部22が、図21に詳細を示す学習データ生成処理を実行する。
図21に示す学習データ生成処理のステップS21で、学習データ生成部22が、パターン生成部21から出力されたパターンリスト44を取得する。
次に、ステップS22で、学習データ生成部22が、パターンリスト44に、以下のステップS23〜S26の処理が未処理のパターンが存在するか否かを判定する。未処理のパターンが存在する場合には、処理はステップS23へ移行する。ステップS23では、学習データ生成部22が、未処理のパターンから1つを選択し、パターンに含まれる障害種別をF、キーをK、障害復旧前の値をV、障害復旧後の値をVとする。
次に、ステップS24で、学習データ生成部22が、例えば、図9に示すような学習データDB31において、障害種別がF、キーがK、値がVである学習データであって、正誤が「Failure」の学習データの回数を1増加させる。次に、ステップS25で、学習データ生成部22が、学習データDB31において、障害種別がF、キーがK、値がVである学習データであって、正誤が「Success」の学習データの回数を1増加させる。なお、ステップS24及びS25において、該当の学習データが学習データDB31に登録されていない場合には、学習データ生成部22は、該当の学習データを追加した上で、回数に1を設定する。
次に、ステップS26で、学習データ生成部22が、例えば、図10に示すようなカウントデータDB32において、障害種別がF、キーがKのカウントデータ(N及びN)をそれぞれ1増加させ、処理はステップS22に戻る。なお、該当のカウントデータがカウントデータDB32に登録されていない場合には、学習データ生成部22は、該当のカウントデータを追加した上で、N及びNの各々に1を設定する。
上記ステップS22で、未処理のパターンが存在しないと判定された場合には、処理はステップS27へ移行し、学習データ生成部22が、学習データDB31及びカウントデータDB32を出力して、処理は図19に示す学習処理に戻る。
次に、図19に示す学習処理のステップS30で、特定スコア計算部23が、図22に詳細を示す特定スコア計算処理を実行する。
図22に示す特定スコア計算処理のステップS31で、特定スコア計算部23が、パターン生成部21から出力された障害種別リスト42と、学習データ生成部22から出力された学習データDB31及びカウントデータDB32とを取得する。
次に、ステップS32で、特定スコア計算部23が、障害種別リスト42に、以下のステップS33〜S40の処理が未処理の障害種別が存在するか否かを判定する。未処理の障害種別が存在する場合には、処理はステップS33へ移行し、特定スコア計算部23が、未処理の障害種別から1つを選択し、障害種別Fとする。
次に、ステップS34で、特定スコア計算部23が、学習データDB31に記録された学習データのうち、障害種別がFの学習データに含まれるキーを全て抽出し、Fのキーリストを作成する。次に、ステップS35で、特定スコア計算部23が、Fのキーリストに、以下のステップS36〜S40の処理が未処理のキーが存在するか否かを判定する。未処理のキーが存在する場合には、処理はステップS36へ移行し、特定スコア計算部23が、未処理のキーから1つを選択し、キーKとする。
次に、ステップS37で、特定スコア計算部23が、カウントデータDB32から、障害種別がFで、キーがKのカウントデータ(N及びN)を取得する。
次に、ステップS38で、特定スコア計算部23が、学習データDB31から、障害種別がF、キーがK、正誤が「Success」の学習データの回数を、学習データの値毎に取得する。そして、特定スコア計算部23が、上記ステップS37で取得した回数Nと、学習データから取得した回数とを用いて値毎の経験的確率を求め、例えば(1)式により、正解の特定スコアSを計算する。
次に、ステップS39で、特定スコア計算部23が、学習データDB31から、障害種別がF、キーがK、正誤が「Failure」の学習データの回数を、学習データの値毎に取得する。そして、特定スコア計算部23が、上記ステップS37で取得した回数Nと、学習データから取得した回数とを用いて値毎の経験的確率を求め、例えば(2)式により、誤りの特定スコアSを計算する。
次に、ステップS40で、特定スコア計算部23が、障害種別Fと、キーKと、特定スコアSと、特定スコアSとの組を、例えば、図11に示すような特定スコアDB33に記録し、処理はステップS35に戻る。
上記ステップS35で、未処理のキーが存在しないと判定されると、処理はステップS32に戻る。ステップS32で、未処理の障害種別が存在しないと判定されると、処理はステップS41へ移行する。
ステップS41では、特定スコア計算部23が、学習データDB31、カウントデータDB32、及び特定スコアDB33を、記憶部30に記憶して、処理は図19に示す学習処理に戻る。
次に、図19に示す学習処理のステップS50で、ソフトウェア構成学習部24が、図23に詳細を示すソフトウェア構成学習処理を実行する。
図23に示すソフトウェア構成学習処理のステップS51で、ソフトウェア構成学習部24が、学習データが抽出された構成情報37Aを取得する。また、ソフトウェア構成学習部24が、運用開始日時(例えば、OSインストール日時)Tの情報を受け付ける。
次に、ステップS52で、ソフトウェア構成学習部24が、構成情報37Aに、以下のS53〜S55の処理が未処理の設定ファイルが存在するか否かを判定する。未処理の設定ファイルが存在する場合には、処理はステップS53へ移行する。
ステップS53では、ソフトウェア構成学習部24が、未処理の設定ファイルから1つを選択し、正規表現を用いるなどして、設定ファイルの内容を構文解析し、正規表現に合致する設定項目と設定値との組を探索する。
次に、ステップS54で、ソフトウェア構成学習部24が、上記ステップS53の構文解析の結果、構成情報37Aから、正規表現に合致する設定項目と設定値との組が抽出されたか否かを判定する。設定項目と設定値との組が抽出された場合、ソフトウェア構成学習部24が、設定ファイルはソフトウェアの設定ファイルであると判定し、処理はステップS55へ移行する。一方、設定項目と設定値との組が抽出されなかった場合、ソフトウェア構成学習部24が、設定ファイルはソフトウェアの設定ファイルではないと判定し、処理はステップS52に戻る。
ステップS55では、ソフトウェア構成学習部24が、上記ステップS53で選択した設定ファイルの識別情報372及び更新日時373を抽出する。また、ソフトウェア構成学習部24は、例えば、図12に示すような設定ファイルリスト46に識別情報372を記録し、識別情報372に、数字や記号等のIDを付与する。
上記ステップS52で、未処理の設定ファイルが存在しないと判定されると、処理はステップS56へ移行する。ステップS56で、ソフトウェア構成学習部24が、上記ステップS54で抽出された設定ファイルの識別情報から、更新日時がTより小さい設定ファイルの識別情報を削除する。
次に、ステップS57で、ソフトウェア構成学習部24が、上記ステップS54で抽出された設定ファイルの識別情報を、設定ファイルリスト46で付与されたIDに置き換え、かつ更新日時順に並び替えて、ソフトウェア構成パターンを生成する。
次に、ステップS58で、ソフトウェア構成学習部24が、生成したソフトウェア構成パターンを、該当の事例データ36から抽出された障害種別38及びキーと対応付けて、例えば、図13に示すようなソフトウェア構成DB34に記録する。そして、処理は図19に示す学習処理に戻る。
次に、図19に示す学習処理のステップS60で、依存度計算部25が、図24に詳細を示す依存度計算処理を実行する。
図24に示す依存度計算処理のステップS61で、依存度計算部25が、ソフトウェア構成DB34を取得する。
次に、ステップS62で、依存度計算部25が、ソフトウェア構成DB34に、以下のステップS63〜S68の処理が未処理の障害種別が存在するか否かを判定する。未処理の障害種別が存在する場合には、処理はステップS63へ移行し、依存度計算部25が、未処理の障害種別を1つ選択し、Fとする。
次に、ステップS64で、依存度計算部25が、ソフトウェア構成DB34において、障害種別Fに対応するキーのうち、以下のステップS65〜S68の処理が未処理のキーが存在するか否かを判定する。未処理のキーが存在する場合には、処理はステップS65へ移行し、依存度計算部25が、未処理のキーから1つを選択し、Kとする。
次に、ステップS66で、依存度計算部25が、ソフトウェア構成DB34から、障害種別F及びキーKのエントリを抽出する。そして、次のステップS67で、依存度計算部25が、例えば、(3)式により、障害種別F及びキーKについての依存度を計算する。次に、ステップS68で、依存度計算部25が、障害種別F及びキーKに対応付けて、計算した依存度を、例えば図16に示すような依存度DB35に記録して、処理はステップS64に戻る。
ステップS64で、未処理のキーが存在しないと判定されると、処理はステップS62に戻り、ステップS62で、未処理の障害種別が存在しないと判定されると、図19に示す学習処理にリターンし、学習処理は終了する。
次に、図25に示す検知処理のステップS71で、検知部26が、入力された検知対象の構成情報を取得する。また、検知部26が、記憶部30に記憶された学習データDB31、カウントデータDB32、及び特定スコアDB33を取得する。
次に、ステップS72で、検知部26が、検知対象の構成情報に含まれるキー及び値の組で表される検知対象データのうち、以下のステップS73〜S83の処理が未処理の検知対象データが存在するか否かを判定する。未処理の検知対象データが存在する場合には、処理はステップS73へ移行し、検知部26が、未処理の検知対象データから1つを選択し、選択した検知対象データに含まれるキーをK、値をVとする。
次に、ステップS74で、検知部26が、特定スコアDB33に、キーKに対応して記録された障害種別のうち、以下のステップS75〜S83の処理が未処理の障害種別が存在するか否かを判定する。未処理の障害種別が存在する場合には、処理はステップS75へ移行し、検知部26が、未処理の障害種別から1つを選択してFとし、障害種別がF、かつキーがKに対応する特定スコアS及び特定スコアSを、特定スコアDB33から取得する。
次に、ステップS76で、検知部26が、特定スコアSと特定スコアSとを比較し、S<Sか否かを判定する。上述したように、上記(1)式に示す特定スコアSは、値が小さいほど正解の学習データの値が正解である確からしさの確度が高いことを表す。また、上記(2)式に示す特定スコアSは、値が小さいほど誤りの学習データの値が誤りである確からしさの確度が高いことを表す。従って、S<Sの場合には、正解の学習データを用いた方がより適切に予兆検知を行うことができ、S>Sの場合には、誤りの学習データを用いた方がより適切に予兆検知を行うことができる。S=Sの場合には、どちらを用いてもよいが、本実施形態では、誤りの学習データを用いることとする。S<Sの場合には、処理はステップS77へ移行し、S≧Sの場合には、処理はステップS80へ移行する。
ステップS77では、検知部26が、学習データDB31から、障害種別がF、キーがK、正誤が「Success」の学習データの値を取得し、Vとする。次に、ステップS78で、検知部26が、検知対象データの値Vと取得した学習データの値Vとが一致するか否かを判定する。V=Vの場合には、検知対象データの値Vには正しい値が設定されていることを表しているため、そのまま処理はステップS74に戻る。V≠Vの場合には、処理はステップS79へ移行し、検知部26が、検知スコアSに、検知対象データの値が、正解の学習データと一致しなかったことを示す値「−1」を設定し、処理はステップS83へ移行する。
一方、ステップS80では、検知部26が、学習データDB31から、障害種別がF、キーがK、正誤が「Failure」の学習データの値を取得し、Vとする。次に、ステップS81で、検知部26が、検知対象データの値Vと取得した学習データの値Vとが一致するか否かを判定する。V≠Vの場合には、検知対象データの値Vには誤りの値が設定されているとはいえないため、そのまま処理はステップS74に戻る。V=Vの場合には、処理はステップS82へ移行する。ステップS82では、検知部26が、障害種別がF、かつキーがKで、値Vを有する誤りの学習データの出現回数Nを学習データDB31から取得する。また、検知部26が、障害種別がF、かつキーがKの誤りの学習データの出現回数NをカウントデータDB32から取得する。そして、検知部26は、検知スコアSに、N/Nを設定し、処理はステップS83へ移行する。
ステップS83では、検知部26が、障害種別Fと、キーKと、値Vと、検知スコアSとの組を予兆検知結果として、例えば、図17に示すような予兆検知結果リスト41に記録し、処理はステップS74に戻る。ステップS74で、未処理の障害種別が存在しないと判定されると、処理はステップS72に戻る。ステップS72で、未処理の検知対象データが存在しないと判定されると、処理はステップS90へ移行する。
なお、上記ステップS77で、複数の値Vが取得された場合には、ステップS78で、検知対象データの値Vが、いずれの値Vとも一致しないと判定される場合に、ステップS79へ移行するようにするとよい。
また、上記ステップS80で、複数の値Vが取得された場合には、ステップS81で、検知対象データの値Vが、いずれかの値Vと一致すると判定される場合に、ステップS82へ移行するようにするとよい。また、検知スコアSに対する閾値Sthを設定しておき、S>Sthとなる予兆検知結果のみを予兆検知結果リスト41に追加するようにしてもよい。これにより、障害発生の予兆としてより確からしい場合のみを予兆検知結果リスト41に含めることができる。また、閾値Sthは、障害種別毎及びキー毎に異なる値を設定してもよい。
ステップS90では、出力判定部27が、図26に詳細を示す出力判定処理を実行する。
図26に示す出力判定処理のステップS91で、出力判定部27が、予兆検知結果リスト41と、ソフトウェア構成DB34と、依存度DB35とを取得する。次に、ステップS92で、出力判定部27が、予兆検知結果リスト41に以下のステップS93〜S112の処理が未処理の予兆検知結果が存在するか否かを判定する。未処理の予兆検知結果が存在する場合には、処理はステップS93へ移行する。
ステップS93では、出力判定部27が、未処理の予兆検知結果から1つ選択し、その予兆検知結果に含まれる障害種別をF、キーをKとする。次に、ステップS94で、出力判定部27が、依存度DB35から、障害種別F及びキーKに対応する依存度Dを取得する。
次に、ステップS95で、出力判定部27が、取得した依存度Dが予め定めた閾値Dthより大きいか否かを判定する。D>Dthの場合には、出力判定部27は、障害種別F及びキーKに対応する障害の発生は、ソフトウェア構成に依存すると判定し、処理はステップS96へ移行する。一方、D≦Dthの場合には、出力判定部27は、障害種別F及びキーKに対応する障害の発生は、ソフトウェア構成に依存しないと判定し、処理はステップS92に戻る。
例えば、Dth=1.5とした場合、図17に示す予兆検知結果リスト41の1つ目の予兆検知結果に対応する依存度は、図16に示す依存度DB35から、D=2.08であり、D=2.08>Dth=1.5であるので、ソフトウェア構成に依存する。また、図17に示す予兆検知結果リスト41の2つ目の予兆検知結果に対応する依存度は、図16に示す依存度DB35から、D=1.28であり、D=1.28<Dth=1.5であるので、ソフトウェア構成に依存しない。
ステップS96では、出力判定部27が、検知対象の構成情報から、図23に示すソフトウェア構成学習処理のステップS51〜S57と同様の処理により、ソフトウェア構成パターンpを生成する。なお、ステップS51の「障害復旧前の構成情報」は、「検知対象の構成情報」と読み替える。また、出力判定処理のループが繰り返される場合には、2回目以降のループでは、1回目のループで生成したソフトウェア構成パターンpを使用すればよい。
次に、ステップS97で、出力判定部27が、ソフトウェア構成DB34から、障害の発生がソフトウェア構成に依存すると判定した障害種別F及びキーKに対応する全てのソフトウェア構成パターンP={P,P,・・・}を抽出する。
次に、ステップS100で、出力判定部27が、図27に詳細を示す類似度判定処理を実行する。
図27に示す類似度判定処理のステップS101で、出力判定部27が、ソフトウェア構成DB34から抽出したソフトウェア構成パターンPに、以下のステップS102〜S106の処理が未処理のソフトウェア構成パターンPが存在するか否かを判定する。未処理のソフトウェア構成パターンPが存在する場合には、処理はステップS102へ移行する。
ステップS102では、出力判定部27が、ソフトウェア構成パターンPから、未処理のソフトウェア構成パターンPを1つ選択する。次に、ステップS103で、出力判定部27が、ソフトウェア構成パターンpと、ソフトウェア構成パターンPとのレーベンシュタイン距離d(p,P)を、両ソフトウェア構成パターン間の類似度として計算する。
次に、ステップS104で、出力判定部27が、レーベンシュタイン距離d(p,P)、予め定めた閾値dthより小さいか否かを判定する。d(p,P)<dthの場合、出力判定部27は、両ソフトウェア構成パターンは類似すると判定し、処理はステップS105へ移行する。ステップS105では、出力判定部27が、判定結果「Yes」を出力し、処理は図26に示す出力判定処理にリターンする。
一方、d(p,P)≧dthの場合、出力判定部27は、両ソフトウェア構成パターンは類似しないと判定し、処理はステップS101に戻る。ステップS101で、未処理のソフトウェア構成パターンPが存在しないと判定された場合、すなわち、いずれのソフトウェア構成パターンPもソフトウェア構成パターンpに類似していないと判定された場合には、処理はステップS106へ移行する。
ステップS106では、出力判定部27が、判定結果「No」を出力し、処理は図26に示す出力判定処理にリターンする。
次に、図26に示す出力判定処理のステップS111で、出力判定部27が、上記ステップS100の類似度判定処理での判定結果が「No」か否かを判定する。判定結果が「No」の場合には、処理はステップS112へ移行し、出力判定部27が、予兆検知結果リスト41の該当の予兆検知結果を削除する。
一方、判定結果が「Yes」の場合には、処理はステップS92に戻る。ステップS92で、予兆検知結果リスト41に未処理の予兆検知結果が存在しないと判定されると、処理はステップS113へ移行する。ステップS113では、出力判定部27が、予兆検知結果リスト41を出力し、処理は図25に示す検知処理にリターンし、検知処理は終了する。
以上説明したように、本実施形態によれば、学習データを用いて障害の予兆検知を行い、その障害がソフトウェア構成に依存するか否かを判定した上で、学習時と検知時とで、システムのソフトウェア構成が類似する場合に、該当の予兆検知結果を出力する。これにより、ソフトウェア構成が変更されている場合でも、適切に設定ミスを検知することができる。また、他のシステムで採取された学習データを用いたとしても、ソフトウェア構成の類似度に応じて、予兆検知結果を出力するか否かを判定するため、適切に設定ミスを検知することができる。
なお、上記実施形態では、ソフトウェア構成に依存する障害について、ソフトウェア構成パターンpと、ソフトウェア構成パターンPとのいずれかが類似している場合に、予兆検知結果を出力する場合について説明したが、これに限定されない。例えば、ソフトウェア構成DB34から抽出したソフトウェア構成パターンP全体と、ソフトウェア構成パターンpとの類似度を判定するようにしてもよい。
具体的には、図26に示す出力判定処理のステップS100で、図27に示す類似度判定処理に替えて、図28に示す類似度判定処理を実行するようにしてもよい。
図28に示す類似度判定処理のステップS201で、出力判定部27は、ソフトウェア構成DB34から抽出したソフトウェア構成パターンPに含まれる各ソフトウェア構成パターンP間の距離を総当りで計算する。ここでは、距離としてレーベンシュタイン距離を用いる。
例えば、P={P,P,P}で、P=(4,3,2,1)、P=(4,5,1)、P=(3,4,2,1,5,6)の場合、d(P,P)=3、d(P,P)=4、d(P,P)=5と計算される。
次に、ステップS202で、出力判定部27が、各ソフトウェア構成パターンPについて、他のソフトウェア構成パターンPとの平均距離d(P)を、下記(4)式により計算する。ここでは、d(P)=3.5、d(P)=4、d(P)=4.5と計算される。
次に、ステップS203で、出力判定部27が、平均距離d(P)が最小のソフトウェア構成パターンPを、重心Pとする。ここでは、Pが重心Pとなる。次に、ステップS204で、出力判定部27が、ソフトウェア構成パターンPの各々と、重心Pとのレーベンシュタイン距離d(P,P)の最大値を、閾値dthに設定する。ここでは、dth=4に設定される。
次に、ステップS205で、出力判定部27が、検知対象の構成情報から生成したソフトウェア構成パターンpと、重心Pとのレーベンシュタイン距離d(p,P)を計算する。ここで、p=(4,3,1)とすると、d(p,P)=1である。そして、出力判定部27が、d(p,P)<dthか否かを判定し、d(p,P)<dthの場合には、処理はステップS206へ移行し、出力判定部27が、判定結果「Yes」を出力する。一方、d(p,P)≧dthの場合には、処理はステップS207へ移行し、出力判定部27が、判定結果「No」を出力する。そして、処理は図26に示す出力判定処理にリターンする。
また、上記実施形態では、ソフトウェア構成パターン間の類似度として、レーベンシュタイン距離を用いる場合について説明したが、これに限定されない。例えば、学習されたソフトウェア構成パターンPのいずれかのPに含まれるIDが、検知対象の構成情報から生成したソフトウェア構成パターンpに含まれるIDをどの程度包含するかに基づいて、類似度を決定してもよい。具体的には、ソフトウェア構成パターンPに含まれるIDが、ソフトウェア構成パターンpに含まれるIDを全て包含する場合、又は所定割合以上包含する場合に、両ソフトウェア構成パターンが類似すると判定することができる。例えば、p={4,3,1}、P={4,3,2,1}の場合、{4,3,1}∈{4,3,2,1}であるので、両ソフトウェア構成パターンは類似する。
なお、この場合、ソフトウェア構成パターンに含まれるIDの順序は考慮していないため、ソフトウェア構成パターンを生成する際に、各設定ファイルに対応するIDを更新日時順に並べ替える必要はない。
また、上記実施形態では、障害復旧前後で取得した構成情報の各々から正解の学習データ及び誤りの学習データを生成し、この学習データを用いて障害の予兆検知を行う場合について説明したが、これに限定されない。学習データとしては、障害復旧前の構成情報から生成した誤りの学習データのみを用いてもよいし、障害復旧後の構成情報から生成した正解の学習データのみを用いてもよい。
なお、上記実施形態では、障害復旧前後で取得した構成情報の各々から正解の学習データ及び誤りの学習データを生成し、この学習データと検知対象の構成情報に含まれる検知対象データとを比較して、各設定項目に正しい値が設定されているか否かを判定する。これにより、構成情報の変更前後で値が異なる箇所を検出して、その箇所が障害の原因になり得るか否かを分析する手法では検知することができない、設定値の変更漏れに起因する障害発生の予兆も検知することができる。
また、上記実施形態によれば、正解の学習データと、誤りの学習データとで、より正解としての確からしさ、又は誤りとしての確からしさの確度が高い方の学習データを用いる。これにより、設定値の変更誤り又は変更漏れに起因する障害発生のいずれの場合も、より適切に予兆を検知することができる。
また、上記実施形態では、予兆検知結果に障害種別、キー、値、及び検知スコアを含める場合について説明したが、予兆検知結果に、正解の値も加えてもよい。具体的には、正解の学習データを用いて予兆検知を行った場合には、正解の学習データが有する値を正解の値として加えることができる。また、誤りの学習データを用いて予兆検知を行った場合には、その学習データと障害種別及びキーが同一で、正誤が「Success」の学習データが有する値を正解の値として加えることができる。
また、上記では、本発明に係る予兆検知プログラムの一例である予兆検知プログラム60が記憶装置53に予め記憶(インストール)されている態様を説明したが、これに限定されない。開示の技術に係る予兆検知プログラムは、CD−ROM、DVD−ROM、USBメモリ等の記録媒体に記録された形態で提供することも可能である。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
コンピュータに、
システムにおける障害発生時に採取した構成情報に含まれる設定ミスのある設定項目及び設定値と障害種別とを対応付けた学習データを記憶すると共に、前記構成情報に含まれるソフトウェアに関する設定が記述された設定ファイルの組み合わせで表される第1ソフトウェア構成情報と前記障害種別及び前記設定項目とを対応付けて記憶し、
前記障害種別及び前記設定項目に対応付けて記憶された前記第1ソフトウェア構成情報に基づいて、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存するか否かを判定し、
検知対象の構成情報から前記学習データに基づいて検知された障害種別及び設定項目を含む検知結果のうち、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存する検知結果を、前記検知対象の構成情報に含まれる第2ソフトウェア構成情報と、前記検知結果に含まれる障害種別及び設定項目該に対応付けて記憶された第1ソフトウェア構成情報とを比較した結果に基づいて、出力するか否かを判定する
ことを含む処理を実行させる予兆検知プログラム。
(付記2)
前記障害種別及び前記設定項目に対応付けて記憶された前記第1ソフトウェア構成情報のバリエーションが少ないほど高くなる依存度を計算し、該依存度が予め定めた閾値以上の場合に、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存すると判定する付記1記載の予兆検知プログラム。
(付記3)
前記第1ソフトウェア構成情報と前記第2ソフトウェア構成情報との類似度が予め定めた閾値以上の場合に、前記検知結果を出力すると判定する付記1又は付記2記載の予兆検知プログラム。
(付記4)
前記第1ソフトウェア構成情報及び前記第2ソフトウェア構成情報の各々に含まれる設定ファイルの包含関係に基づいて、前記類似度を求める付記3記載の予兆検知プログラム。
(付記5)
前記第1ソフトウェア構成情報及び前記第2ソフトウェア構成情報の各々を、前記設定ファイルを示す識別情報を該設定ファイルの更新日時順に並べたパターンとし、
前記第1ソフトウェア構成情報を示すパターンと、前記第2ソフトウェア構成情報を示すパターンとのレーベンシュタイン距離を、前記類似度として求める
付記3記載の予兆検知プログラム。
(付記6)
前記検知結果に含まれる設定項目及び障害種別に対応付けて記憶された前記第1ソフトウェア構成情報を示すパターンの各々の間のレーベンシュタイン距離から得られる重心と、前記第2ソフトウェア構成情報を示すパターンとのレーベンシュタイン距離を、前記類似度として求め、該類似度が、前記重心と前記第1ソフトウェア構成情報を示すパターンの各々とのレーベンシュタイン距離の最大値より小さい場合に、前記検知結果を出力すると判定する付記5記載の予兆検知プログラム。
(付記7)
前記第1ソフトウェア構成情報及び前記第2ソフトウェア構成情報の各々を、前記システムの運用開始から所定期間に設定された設定ファイルの組み合わせとする付記1〜付記6のいずれか1項記載の予兆検知プログラム。
(付記8)
システムにおける障害発生時に採取した構成情報に含まれる設定ミスのある設定項目及び設定値と障害種別とを対応付けた学習データを記憶すると共に、前記構成情報に含まれるソフトウェアに関する設定が記述された設定ファイルの組み合わせで表される第1ソフトウェア構成情報と前記障害種別及び前記設定項目とを対応付けて記憶する学習部と、
前記障害種別及び前記設定項目に対応付けて記憶された前記第1ソフトウェア構成情報に基づいて、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存するか否かを判定する依存判定部と、
検知対象の構成情報から前記学習データに基づいて検知された障害種別及び設定項目を含む検知結果のうち、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存する検知結果を、前記検知対象の構成情報に含まれる第2ソフトウェア構成情報と、前記検知結果に含まれる障害種別及び設定項目該に対応付けて記憶された第1ソフトウェア構成情報とを比較した結果に基づいて、出力するか否かを判定する出力判定部と、
を含む予兆検知装置。
(付記9)
前記依存判定部は、前記障害種別及び前記設定項目に対応付けて記憶された前記第1ソフトウェア構成情報のバリエーションが少ないほど高くなる依存度を計算し、該依存度が予め定めた閾値以上の場合に、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存すると判定する付記8記載の予兆検知装置。
(付記10)
前記出力判定部は、前記第1ソフトウェア構成情報と前記第2ソフトウェア構成情報との類似度が予め定めた閾値以上の場合に、前記検知結果を出力すると判定する付記8又は付記9記載の予兆検知装置。
(付記11)
前記出力判定部は、前記第1ソフトウェア構成情報及び前記第2ソフトウェア構成情報の各々に含まれる設定ファイルの包含関係に基づいて、前記類似度を求める付記10記載の予兆検知装置。
(付記12)
前記第1ソフトウェア構成情報及び前記第2ソフトウェア構成情報の各々を、前記設定ファイルを該設定ファイルの更新日時順に並べたパターンとし、
前記出力判定部は、前記第1ソフトウェア構成情報を示すパターンと、前記第2ソフトウェア構成情報を示すパターンとのレーベンシュタイン距離を、前記類似度として求める
付記10記載の予兆検知装置。
(付記13)
前記出力判定部は、前記検知結果に含まれる設定項目及び障害種別に対応付けて記憶された前記第1ソフトウェア構成情報を示すパターンの各々の間のレーベンシュタイン距離から得られる重心と、前記第2ソフトウェア構成情報を示すパターンとのレーベンシュタイン距離を、前記類似度として求め、該類似度が、前記重心と前記第1ソフトウェア構成情報を示すパターンの各々とのレーベンシュタイン距離の最大値より小さい場合に、前記検知結果を出力すると判定する付記12記載の予兆検知装置。
(付記14)
前記第1ソフトウェア構成情報及び前記第2ソフトウェア構成情報の各々を、前記システムの運用開始から所定期間に設定された設定ファイルの組み合わせとする付記8〜付記13のいずれか1項記載の予兆検知装置。
(付記15)
コンピュータに、
システムにおける障害発生時に採取した構成情報に含まれる設定ミスのある設定項目及び設定値と障害種別とを対応付けた学習データを記憶すると共に、前記構成情報に含まれるソフトウェアに関する設定が記述された設定ファイルの組み合わせで表される第1ソフトウェア構成情報と前記障害種別及び前記設定項目とを対応付けて記憶し、
前記障害種別及び前記設定項目に対応付けて記憶された前記第1ソフトウェア構成情報に基づいて、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存するか否かを判定し、
検知対象の構成情報から前記学習データに基づいて検知された障害種別及び設定項目を含む検知結果のうち、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存する検知結果を、前記検知対象の構成情報に含まれる第2ソフトウェア構成情報と、前記検知結果に含まれる障害種別及び設定項目該に対応付けて記憶された第1ソフトウェア構成情報とを比較した結果に基づいて、出力するか否かを判定する
ことを含む処理を実行させる予兆検知方法。
(付記16)
前記障害種別及び前記設定項目に対応付けて記憶された前記第1ソフトウェア構成情報のバリエーションが少ないほど高くなる依存度を計算し、該依存度が予め定めた閾値以上の場合に、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存すると判定する付記15記載の予兆検知方法。
(付記17)
前記第1ソフトウェア構成情報と前記第2ソフトウェア構成情報との類似度が予め定めた閾値以上の場合に、前記検知結果を出力すると判定する付記15又は付記16記載の予兆検知方法。
(付記18)
前記第1ソフトウェア構成情報及び前記第2ソフトウェア構成情報の各々に含まれる設定ファイルの包含関係に基づいて、前記類似度を求める付記17記載の予兆検知方法。
(付記19)
前記第1ソフトウェア構成情報及び前記第2ソフトウェア構成情報の各々を、前記設定ファイルを該設定ファイルの更新日時順に並べたパターンとし、
前記第1ソフトウェア構成情報を示すパターンと、前記第2ソフトウェア構成情報を示すパターンとのレーベンシュタイン距離を、前記類似度として求める
付記17記載の予兆検知方法。
(付記20)
前記検知結果に含まれる設定項目及び障害種別に対応付けて記憶された前記第1ソフトウェア構成情報を示すパターンの各々の間のレーベンシュタイン距離から得られる重心と、前記第2ソフトウェア構成情報を示すパターンとのレーベンシュタイン距離を、前記類似度として求め、該類似度が、前記重心と前記第1ソフトウェア構成情報を示すパターンの各々とのレーベンシュタイン距離の最大値より小さい場合に、前記検知結果を出力すると判定する付記19記載の予兆検知方法。
(付記21)
前記第1ソフトウェア構成情報及び前記第2ソフトウェア構成情報の各々を、前記システムの運用開始から所定期間に設定された設定ファイルの組み合わせとする付記15〜付記20のいずれか1項記載の予兆検知方法。
(付記22)
コンピュータに、
システムにおける障害発生時に採取した構成情報に含まれる設定ミスのある設定項目及び設定値と障害種別とを対応付けた学習データを記憶すると共に、前記構成情報に含まれるソフトウェアに関する設定が記述された設定ファイルの組み合わせで表される第1ソフトウェア構成情報と前記障害種別及び前記設定項目とを対応付けて記憶し、
前記障害種別及び前記設定項目に対応付けて記憶された前記第1ソフトウェア構成情報に基づいて、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存するか否かを判定し、
検知対象の構成情報から前記学習データに基づいて検知された障害種別及び設定項目を含む検知結果のうち、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存する検知結果を、前記検知対象の構成情報に含まれる第2ソフトウェア構成情報と、前記検知結果に含まれる障害種別及び設定項目該に対応付けて記憶された第1ソフトウェア構成情報とを比較した結果に基づいて、出力するか否かを判定する
ことを含む処理を実行させる予兆検知プログラムを記憶した記憶媒体。
10 予兆検知装置
14 処理システム
16 処理装置
20 学習部
21 パターン生成部
22 学習データ生成部
23 特定スコア計算部
24 ソフトウェア構成学習部
25 依存度計算部
26 検知部
27 出力判定部
30 記憶部
31 学習データ・データベース(DB)
32 カウントデータDB
33 特定スコアDB
34 ソフトウェア構成DB
35 依存度DB
36 事例データ
37A 障害復旧前の構成情報
37B 障害復旧後の構成情報
371 設定ファイル
372 設定ファイルの識別情報
373 設定ファイルの更新日時
38 障害種別
50 コンピュータ
51 CPU
52 メモリ
53 記憶装置
59 記録媒体
60 予兆検知プログラム

Claims (9)

  1. コンピュータに、
    システムにおける障害発生時に採取した構成情報に含まれる設定ミスのある設定項目及び設定値と障害種別とを対応付けた学習データを記憶すると共に、前記構成情報に含まれるソフトウェアに関する設定が記述された設定ファイルの組み合わせで表される第1ソフトウェア構成情報と前記障害種別及び前記設定項目とを対応付けて記憶し、
    前記障害種別及び前記設定項目に対応付けて記憶された前記第1ソフトウェア構成情報に基づいて、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存するか否かを判定し、
    検知対象の構成情報から前記学習データに基づいて検知された障害種別及び設定項目を含む検知結果のうち、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存する検知結果を、前記検知対象の構成情報に含まれる第2ソフトウェア構成情報と、前記検知結果に含まれる障害種別及び設定項目該に対応付けて記憶された第1ソフトウェア構成情報とを比較した結果に基づいて、出力するか否かを判定する
    ことを含む処理を実行させる予兆検知プログラム。
  2. 前記障害種別及び前記設定項目に対応付けて記憶された前記第1ソフトウェア構成情報のバリエーションが少ないほど高くなる依存度を計算し、該依存度が予め定めた閾値以上の場合に、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存すると判定する請求項1記載の予兆検知プログラム。
  3. 前記第1ソフトウェア構成情報と前記第2ソフトウェア構成情報との類似度が予め定めた閾値以上の場合に、前記検知結果を出力すると判定する請求項1又は請求項2記載の予兆検知プログラム。
  4. 前記第1ソフトウェア構成情報及び前記第2ソフトウェア構成情報の各々に含まれる設定ファイルの包含関係に基づいて、前記類似度を求める請求項3記載の予兆検知プログラム。
  5. 前記第1ソフトウェア構成情報及び前記第2ソフトウェア構成情報の各々を、前記設定ファイルを示す識別情報を該設定ファイルの更新日時順に並べたパターンとし、
    前記第1ソフトウェア構成情報を示すパターンと、前記第2ソフトウェア構成情報を示すパターンとのレーベンシュタイン距離を、前記類似度として求める
    請求項3記載の予兆検知プログラム。
  6. 前記検知結果に含まれる設定項目及び障害種別に対応付けて記憶された前記第1ソフトウェア構成情報を示すパターンの各々の間のレーベンシュタイン距離から得られる重心と、前記第2ソフトウェア構成情報を示すパターンとのレーベンシュタイン距離を、前記類似度として求め、該類似度が、前記重心と前記第1ソフトウェア構成情報を示すパターンの各々とのレーベンシュタイン距離の最大値より小さい場合に、前記検知結果を出力すると判定する請求項5記載の予兆検知プログラム。
  7. 前記第1ソフトウェア構成情報及び前記第2ソフトウェア構成情報の各々を、前記システムの運用開始から所定期間に設定された設定ファイルの組み合わせとする請求項1〜請求項6のいずれか1項記載の予兆検知プログラム。
  8. システムにおける障害発生時に採取した構成情報に含まれる設定ミスのある設定項目及び設定値と障害種別とを対応付けた学習データを記憶すると共に、前記構成情報に含まれるソフトウェアに関する設定が記述された設定ファイルの組み合わせで表される第1ソフトウェア構成情報と前記障害種別及び前記設定項目とを対応付けて記憶する学習部と、
    前記障害種別及び前記設定項目に対応付けて記憶された前記第1ソフトウェア構成情報に基づいて、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存するか否かを判定する依存判定部と、
    検知対象の構成情報から前記学習データに基づいて検知された障害種別及び設定項目を含む検知結果のうち、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存する検知結果を、前記検知対象の構成情報に含まれる第2ソフトウェア構成情報と、前記検知結果に含まれる障害種別及び設定項目該に対応付けて記憶された第1ソフトウェア構成情報とを比較した結果に基づいて、出力するか否かを判定する出力判定部と、
    を含む予兆検知装置。
  9. コンピュータに、
    システムにおける障害発生時に採取した構成情報に含まれる設定ミスのある設定項目及び設定値と障害種別とを対応付けた学習データを記憶すると共に、前記構成情報に含まれるソフトウェアに関する設定が記述された設定ファイルの組み合わせで表される第1ソフトウェア構成情報と前記障害種別及び前記設定項目とを対応付けて記憶し、
    前記障害種別及び前記設定項目に対応付けて記憶された前記第1ソフトウェア構成情報に基づいて、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存するか否かを判定し、
    検知対象の構成情報から前記学習データに基づいて検知された障害種別及び設定項目を含む検知結果のうち、該障害種別及び該設定項目に対応する障害がソフトウェア構成に依存する検知結果を、前記検知対象の構成情報に含まれる第2ソフトウェア構成情報と、前記検知結果に含まれる障害種別及び設定項目該に対応付けて記憶された第1ソフトウェア構成情報とを比較した結果に基づいて、出力するか否かを判定する
    ことを含む処理を実行させる予兆検知方法。
JP2015243219A 2015-12-14 2015-12-14 予兆検知プログラム、装置、及び方法 Active JP6528669B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015243219A JP6528669B2 (ja) 2015-12-14 2015-12-14 予兆検知プログラム、装置、及び方法
US15/373,428 US10248517B2 (en) 2015-12-14 2016-12-08 Computer-implemented method, information processing device, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015243219A JP6528669B2 (ja) 2015-12-14 2015-12-14 予兆検知プログラム、装置、及び方法

Publications (2)

Publication Number Publication Date
JP2017111486A true JP2017111486A (ja) 2017-06-22
JP6528669B2 JP6528669B2 (ja) 2019-06-12

Family

ID=59020813

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015243219A Active JP6528669B2 (ja) 2015-12-14 2015-12-14 予兆検知プログラム、装置、及び方法

Country Status (2)

Country Link
US (1) US10248517B2 (ja)
JP (1) JP6528669B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109522095A (zh) * 2018-11-27 2019-03-26 无锡华云数据技术服务有限公司 云主机异常故障检测恢复系统、方法及云平台
JP2019153270A (ja) * 2018-02-28 2019-09-12 富士通株式会社 クロスプロジェクト学習のための関連ソフトウェアプロジェクトの自動識別
JP2020129274A (ja) * 2019-02-08 2020-08-27 富士通株式会社 情報処理装置、情報処理システム、及び情報処理プログラム
JP7457743B2 (ja) 2022-03-22 2024-03-28 Necパーソナルコンピュータ株式会社 情報処理方法、情報処理装置、プログラム及び記録媒体

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109245910B (zh) * 2017-07-10 2023-03-24 中兴通讯股份有限公司 识别故障类型的方法及装置
CN110442483B (zh) * 2019-06-24 2023-02-28 福建新大陆通信科技股份有限公司 一种自适配的智能终端自检测方法及系统
US12013776B2 (en) * 2020-04-03 2024-06-18 International Business Machines Corporation Intelligent application scenario testing and error detection

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6944759B1 (en) * 2000-09-29 2005-09-13 Hewlett-Packard Development Company, L.P. Automatic system configuration management
JP3876692B2 (ja) * 2001-11-13 2007-02-07 株式会社日立製作所 ネットワークシステム障害分析支援方法およびその方式
US7584382B2 (en) * 2004-02-19 2009-09-01 Microsoft Corporation Method and system for troubleshooting a misconfiguration of a computer system based on configurations of other computer systems
US7389444B2 (en) * 2004-07-27 2008-06-17 Microsoft Corporation Method and system for troubleshooting a misconfiguration of a computer system based on product support services information
JP2007257092A (ja) 2006-03-21 2007-10-04 Fujitsu Ltd 障害対応支援方法、障害対応支援装置及びコンピュータプログラム
US8041663B2 (en) * 2008-02-27 2011-10-18 International Business Machines Corporation Method for predicting problematic configurations and recommending safe configurations
JP5136159B2 (ja) 2008-03-31 2013-02-06 富士通株式会社 構成情報管理装置、構成情報管理プログラム及び構成情報管理方法
WO2009122525A1 (ja) * 2008-03-31 2009-10-08 富士通株式会社 トラブル対処システム、方法およびそのためのプログラム
JP5031662B2 (ja) 2008-05-16 2012-09-19 株式会社日立ハイテクノロジーズ 情報処理装置、セットアップ支援方法、及びセットアップ支援方法
JP5132779B2 (ja) * 2008-10-30 2013-01-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 障害イベントの検出を支援する装置、障害イベントの検出を支援する方法及びコンピュータプログラム
WO2013179450A1 (ja) * 2012-05-31 2013-12-05 富士通株式会社 情報処理方法、装置及びプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019153270A (ja) * 2018-02-28 2019-09-12 富士通株式会社 クロスプロジェクト学習のための関連ソフトウェアプロジェクトの自動識別
JP7131199B2 (ja) 2018-02-28 2022-09-06 富士通株式会社 クロスプロジェクト学習のための関連ソフトウェアプロジェクトの自動識別
CN109522095A (zh) * 2018-11-27 2019-03-26 无锡华云数据技术服务有限公司 云主机异常故障检测恢复系统、方法及云平台
JP2020129274A (ja) * 2019-02-08 2020-08-27 富士通株式会社 情報処理装置、情報処理システム、及び情報処理プログラム
JP7167749B2 (ja) 2019-02-08 2022-11-09 富士通株式会社 情報処理装置、情報処理システム、及び情報処理プログラム
JP7457743B2 (ja) 2022-03-22 2024-03-28 Necパーソナルコンピュータ株式会社 情報処理方法、情報処理装置、プログラム及び記録媒体

Also Published As

Publication number Publication date
US10248517B2 (en) 2019-04-02
US20170168911A1 (en) 2017-06-15
JP6528669B2 (ja) 2019-06-12

Similar Documents

Publication Publication Date Title
JP6528669B2 (ja) 予兆検知プログラム、装置、及び方法
JP6233411B2 (ja) 障害分析装置、障害分析方法、および、コンピュータ・プログラム
JP6327234B2 (ja) イベント解析装置、イベント解析システム、イベント解析方法、およびイベント解析プログラム
US9792388B2 (en) Pattern extraction apparatus and control method therefor
JP5141762B2 (ja) トラブル対処システム、方法およびそのためのプログラム
JP6665784B2 (ja) ログ分析システム、ログ分析方法およびログ分析プログラム
US20160378583A1 (en) Management computer and method for evaluating performance threshold value
JP6988304B2 (ja) 運用管理システム、監視サーバ、方法およびプログラム
JP6411696B1 (ja) バージョン管理システムおよびバージョン管理方法
JP6079243B2 (ja) 障害分析支援装置、障害分析支援方法、及びプログラム
JP2016012193A (ja) 抽出方法、装置、及びプログラム
JP2010086179A (ja) 情報処理装置、コンピュータプログラムおよび記録媒体
JP6405851B2 (ja) 予兆検知支援プログラム、方法、装置、及び予兆検知プログラム、
US20180173687A1 (en) Automatic datacenter state summarization
CN111191430B (zh) 自动建表方法、装置、计算机设备和存储介质
WO2007132564A1 (ja) データ処理装置及び方法
JP2015185027A (ja) ジョブ判別プログラム、装置、及び方法
US8478575B1 (en) Automatic anomaly detection for HW debug
JP6451417B2 (ja) デバッグ支援装置、デバッグ支援システム、デバッグ支援方法、および、デバッグ支援プログラム
JP2013069042A (ja) 情報処理装置及び情報処理プログラム
JP6571239B1 (ja) 検証装置及び検証用プログラム
JP2019148859A (ja) フローダイアグラムを用いたモデル開発環境におけるデザインパターンの発見を支援する装置および方法
JP2018112876A (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
JP5332918B2 (ja) 区分データレコメンド方法、プログラム、及び装置
JP2018067117A (ja) 管理計算機、及び電子計算機の管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190404

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: 20190416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190429

R150 Certificate of patent or registration of utility model

Ref document number: 6528669

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150