(57)【要約】  検知装置（１０）は、第一の算出部（１５ｂ）と、第二の算出部（１５ｃ）と、格納部（１５ｄ）とを有する。第一の算出部（１５ｂ）は、システムの構成が変更された場合などに、システムで発生したメッセージの組み合わせについて、組み合わせが発生した数に対する、組み合わせが発生した時間に対応する時間にシステムで発生した事象の数の割合を算出する。第二の算出部（１５ｃ）は、割合と、事象の数とに基づいて、メッセージの組み合わせが、事象の発生などを検知する場合に用いられるか否かを判断するための指標を算出する。格納部（１５ｄ）は、指標が、事象の発生などを検知する場合に用いられる条件を満たすことを示す場合には、次のような処理を行う。すなわち、格納部（１５ｄ）は、メッセージの組み合わせを事象の発生などを検知する場合に用いられるメッセージの組み合わせとして記憶部（１４）に格納する。
2013088565.tif 000002
【特許請求の範囲】
【請求項１】
システムの運用が開始された場合または前記システムの構成が変更された場合に、該システムの運用が開始されてから、または、該システムの構成が変更されてから前記システムで発生したメッセージの組み合わせについて、該組み合わせが発生した数に対する、該組み合わせが発生した時間に対応する時間に前記システムで発生した事象の数の割合を算出する第一の算出部と、
前記第一の算出部により算出された割合と、前記事象の数とに基づいて、前記メッセージの組み合わせが、事象の発生または事象が発生する予兆を検知する場合に用いられるか否かを判断するための指標を算出する第二の算出部と、
前記第二の算出部で算出された指標が、事象の発生または事象が発生する予兆を検知する場合に用いられる条件を満たすことを示す場合には、前記メッセージの組み合わせを事象の発生または事象が発生する予兆を検知する場合に用いられるメッセージの組み合わせとして記憶部に格納する格納部と
を有することを特徴とする検知装置。
【請求項２】
前記第二の算出部は、前記第一の算出部により算出された割合と、前記事象の数との乗算値を前記指標として算出する
ことを特徴とする請求項１に記載の検知装置。
【請求項３】
さらに、
前記システムの運用が開始されてから、または、前記システムの構成が変更されてから所定時間が経過した場合に、前記システムで発生したメッセージの組み合わせのうち、前記格納部により前記記憶部に格納されていないメッセージの組み合わせについては、前記格納部により、事象の発生または事象が発生する予兆を検知する場合に用いられるメッセージの組み合わせとして前記記憶部に格納されないように制御する格納制御部
を有することを特徴とする請求項１または２に記載の検知装置。
【請求項４】
前記格納部は、前記第二の算出部で算出された指標が、第一の所定値、または、第二の所定値と前記システムの運用が開始されてから、または、前記システムの構成が変更されてから経過した時間に対応する値との乗算値を超えた場合には、前記メッセージの組み合わせを事象の発生または事象が発生する予兆を検知する場合に用いられるメッセージの組み合わせとして前記記憶部に格納する
ことを特徴とする請求項１または２に記載の検知装置。
【請求項５】
さらに、
前記格納部により、前記記憶部に事象の発生または事象が発生する予兆を検知する場合に用いられるメッセージの組み合わせとして格納されたメッセージの組み合わせ、および、該組み合わせが発生した数に対する、該組み合わせが発生した時間に対応する時間に前記システムで発生した事象の数の割合に基づいて、前記システムにおける事象の発生または事象が発生する予兆を検知する検知部
を有することを特徴とする請求項１または２に記載の検知装置。
【請求項６】
コンピュータに、
システムの運用が開始された場合または前記システムの構成が変更された場合に、該システムの運用が開始されてから、または、該システムの構成が変更されてから前記システムで発生したメッセージの組み合わせについて、該組み合わせが発生した数に対する、該組み合わせが発生した時間に対応する時間に前記システムで発生した事象の数の割合を算出し、
算出された前記割合と、前記事象の数とに基づいて、前記メッセージの組み合わせが、事象の発生または事象が発生する予兆を検知する場合に用いられるか否かを判断するための指標を算出し、
算出された前記指標が、事象の発生または事象が発生する予兆を検知する場合に用いられる条件を満たすことを示す場合には、前記メッセージの組み合わせを事象の発生または事象が発生する予兆を検知する場合に用いられるメッセージの組み合わせとして記憶部に格納する
処理を実行させることを特徴とする検知プログラム。
【請求項７】
コンピュータが実行する検知方法であって、
システムの運用が開始された場合または前記システムの構成が変更された場合に、該システムの運用が開始されてから、または、該システムの構成が変更されてから前記システムで発生したメッセージの組み合わせについて、該組み合わせが発生した数に対する、該組み合わせが発生した時間に対応する時間に前記システムで発生した事象の数の割合を算出し、
算出された前記割合と、前記事象の数とに基づいて、前記メッセージの組み合わせが、事象の発生または事象が発生する予兆を検知する場合に用いられるか否かを判断するための指標を算出し、
算出された前記指標が、事象の発生または事象が発生する予兆を検知する場合に用いられる条件を満たすことを示す場合には、前記メッセージの組み合わせを事象の発生または事象が発生する予兆を検知する場合に用いられるメッセージの組み合わせとして記憶部に格納する
ことを特徴とする検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検知装置、検知プログラムおよび検知方法に関する。
【背景技術】
【０００２】
ＩＴ（Information  Technology）システムなどの各種システムにおいて発生するメッセージのログ（メッセージログ）から、システムの障害などの各種事象の発生または事象が発生する予兆を検知する検知装置がある。【０００３】
例えば、検知装置は、メッセージログから、メッセージを抽出する。そして、検知装置は、抽出したメッセージをメッセージの種類ごとに分類する。続いて、検知装置は、システムの障害の種類と障害の発生日時とが対応付けられて登録された第一のＤＢ（Data  Base）を参照し、１つ以上のメッセージの種類のパターンと、そのパターンの発生日時に対応する障害の種類と用いて、次のような確率を算出する。すなわち、検知装置は、メッセージの種類のパターンごとに、このパターンが示すメッセージが発生した場合に発生する事象の確率を算出する。続いて、検知装置は、メッセージの種類のパターンと、事象と、確率とを対応付けて第二のＤＢに登録する。このようにして、検知装置は、メッセージの種類のパターンごとに、発生する事象の確率を学習する。そして、検知装置は、システムにおいて１つ以上のメッセージが発生した場合には、第二のＤＢを参照し、かかるメッセージの種類のパターンに対応する確率が閾値以上であるときに、このパターンに対応する事象の発生を検知する。そして、検知装置は、検知結果を、システムを管理する管理者などのユーザが使用する端末に通知する。【０００４】
なお、関連する技術として、ネットワークに多数のエラー（バーストエラー）が発生した場合に、多数のエラーを１つのエラーとして捉える装置がある。【０００５】
さらに、関連する技術として、学習済みの障害検知ルールをポリシーに従って加工し、加工した障害検知ルールの誤検出率や未検出率を評価して、評価結果が良好な障害検知ルールを採用するコンピュータシステムがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平９−２１９７２０号公報
【特許文献２】特開２００９−１５７８３０号公報
【非特許文献】
【０００７】
【非特許文献１】渡辺幸洋、松本安英「メッセージパターン学習による障害発生検知」  情報処理学会論文誌  ２００９年１２月１０日
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記の検知装置では、システムの運用開始直後や、サーバの追加やサーバ上で実行されるアプリケーションの変更および追加などのシステムの構成の変更直後に、精度良く、事象の発生などを検知できないという問題がある。【０００９】
例えば、システムの構成の変更直後には、新たな種類のメッセージが発生する場合がある。この場合、検知装置では、未学習の新たな種類のメッセージを含むパターンについて、事象の発生の確率などの学習が行われるが、学習された回数が少ないため、学習結果の精度が良好なものとは限らない。例えば、新たな種類のメッセージの発生と同じタイミングで、このメッセージの発生とは関係がない事象が発生した場合には、検知装置では、次のような学習結果が得られる。すなわち、検知装置では、新たな種類のメッセージを含むパターンに対して、かかる事象が発生する確率が１００％として学習されてしまう。よって、検知装置では、システムの構成変更直後には、学習結果の精度が低い場合がある。したがって、検知装置では、システムの構成変更直後に、精度良く、事象の発生などを検知することができない。【００１０】
また、システムの運用開始直後についても、検知装置では、学習回数が少ないため、同様に、学習結果の精度が低い場合がある。したがって、検知装置では、システムの運用開始直後についても、精度良く、事象の発生などを検知することができない。【００１１】
１つの側面では、本発明は、事象の発生などを検知する精度が低下することを抑制することを目的とする。
【課題を解決するための手段】
【００１２】
１つの案では、本願の開示する検知装置は、第一の算出部と、第二の算出部と、格納部とを有する。第一の算出部は、システムの運用が開始された場合またはシステムの構成が変更された場合に、次のような処理を行う。すなわち、第一の算出部は、システムで発生したメッセージの組み合わせについて、組み合わせが発生した数に対する、組み合わせが発生した時間に対応する時間にシステムで発生した事象の数の割合を算出する。なお、このメッセージは、システムの運用が開始されてから、または、システムの構成が変更されてから、システムで発生したものである。第二の算出部は、第一の算出部により算出された割合と、事象の数とに基づいて、メッセージの組み合わせが、事象の発生または事象が発生する予兆を検知する場合に用いられるか否かを判断するための指標を算出する。格納部は、第二の算出部で算出された指標が、事象の発生または事象が発生する予兆を検知する場合に用いられる条件を満たすことを示す場合には、次のような処理を行う。すなわち、格納部は、メッセージの組み合わせを事象の発生または事象が発生する予兆を検知する場合に用いられるメッセージの組み合わせとして記憶部に格納する。
【発明の効果】
【００１３】
事象の発生などを検知する精度が低下することを抑制することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施例に係る検知装置が適用されるシステム構成の一例を示す図である。
【図２】図２は、実施例に係る検知装置の機能構成の一例を示す図である。
【図３】図３は、第一のＤＢのデータ構成の一例を示す図である。
【図４】図４は、第二のＤＢのデータ構成の一例を示す図である。
【図５】図５は、第三のＤＢに登録されるファイルのデータ構成の一例を示す図である。
【図６】図６は、第四のＤＢのデータ構成の一例を示す図である。
【図７】図７は、第五のＤＢのデータ構成の一例を示す図である。
【図８】図８は、実施例に係る第一の登録処理の手順を示すフローチャートである。
【図９】図９は、実施例に係る削除処理の手順を示すフローチャートである。
【図１０】図１０は、実施例に係る第二の登録処理の手順を示すフローチャートである。
【図１１】図１１は、実施例に係る格納処理の手順を示すフローチャートである。
【図１２】図１２は、本実施例に係る検知装置１０による効果を説明するための図である。
【図１３】図１３は、検知プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１５】
以下に、本願の開示する検知装置、検知プログラムおよび検知方法の各実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例】
【００１６】
実施例に係る検知装置について説明する。図１は、実施例に係る検知装置が適用されるシステム構成の一例を示す図である。図１の例では、システム１は、検知装置１０と、クラウドシステム２０とを有する。検知装置１０と、クラウドシステム２０とは、ネットワーク５０を介して、通信可能である。検知装置１０およびクラウドサーバ４０は、例えば、クラウド事業者などのＩＣＴ（Information  and  Communication  Technology）システム内に設けられる。【００１７】
図１の例が示すクラウドシステム２０は、３台のクラウドサーバ２０ａを有する。なお、クラウドシステム２０が有するクラウドサーバ２０ａの台数は、任意の値を採用することができる。クラウドサーバ２０ａは、１つ以上のＶＭ（Virtual  Machine；仮想マシン）を生成する。ＶＭは、クラウドシステム２０を利用する利用者の利用者端末（図示せず）からの各種アプリケーションを実行する指示に応じて、各種アプリケーションを実行し、利用者端末にアプリケーションの実行結果を送信する。このようにして、クラウドシステム２０は、利用者にサービスを提供する。【００１８】
また、クラウドシステム２０では、クラウドサーバ２０ａ、ＶＭは、クラウドサーバ２０ａ、ＶＭで発生した障害などの各種の事象を、事象が発生した日時とともに検知装置１０へ送信する。また、クラウドシステム２０では、クラウドサーバ２０ａ、ＶＭは、クラウドサーバ２０ａ、ＶＭで生成された各種のメッセージを記憶装置（図示せず）へ格納する。また、クラウドシステム２０では、クラウドサーバ２０ａ、ＶＭは、メッセージを検知装置１０へ送信する。【００１９】
また、クラウドシステム２０では、ＶＭで実行されるアプリケーションの変更、クラウドサーバ２０ａの追加など構成変更が行われると、構成変更が行われたクラウドサーバ２０ａやＶＭは、構成変更が行われた旨のメッセージを検知装置１０へ送信する。また、クラウドシステム２０では、いずれかのクラウドサーバ２０ａは、クラウドシステム２０の運用が開始されると、運用が開始された旨のメッセージを検知装置１０へ送信する。【００２０】
検知装置１０は、後述するように、メッセージの組み合わせ（パターン）のうち、成熟度が閾値αを超えたメッセージの組み合わせを検知用のメッセージの組み合わせとして用いる。よって、検知装置１０によれば、システムの運用開始直後や、システムの構成の変更直後に新たに発生したメッセージについては、検知用のメッセージとして用いられない。したがって、検知装置１０によれば、システムの運用開始直後や、システムの構成の変更直後であっても、検知する際の精度が不確かなメッセージを用いないため、精度良く事象を検知することができる。【００２１】
なお、システム１に含まれる検知装置１０、クラウドサーバ２０ａの台数は、任意の台数を採用することができる。また、クラウドサーバ２０ａで生成されるＶＭの台数についても任意の台数を採用することができる。【００２２】
［検知装置の機能構成］
図２は、実施例に係る検知装置の機能構成の一例を示す図である。図２に示すように、検知装置１０は、入力部１１と、出力部１２と、通信部１３と、記憶部１４と、制御部１５とを有する。【００２３】
入力部１１は、各種情報を制御部１５に入力する。例えば、入力部１１は、ユーザから各種の指示を受け付けて、受け付けた指示を制御部１５に入力する。入力部１１のデバイスの一例としては、マウスやキーボードなどの利用者の操作を受け付けるデバイスなどが挙げられる。【００２４】
出力部１２は、各種の情報を出力する。例えば、出力部１２は、後述の報知制御部１５ｆの表示の制御により、検知結果を表示する。出力部１２のデバイスの一例としては、液晶ディスプレイなどが挙げられる。【００２５】
通信部１３は、各装置間の通信を行うためのインターフェースである。例えば、通信部１３は、クラウドシステム２０に接続される。これにより、検知装置１０と、クラウドシステム２０とが通信を行うことができる。例えば、通信部１３は、クラウドシステム２０から事象の種類と、事象が発生した日時とを受信すると、受信した事象の種類と事象が発生した日時とを制御部１５へ送信する。また、通信部１３は、クラウドシステム２０からメッセージを受信すると、受信したメッセージを制御部１５へ送信する。また、通信部１３は、クラウドシステム２０から、構成変更が行われた旨のメッセージを受信すると、受信したメッセージを制御部１５へ送信する。また、通信部１３は、クラウドシステム２０から、運用が開始された旨のメッセージを受信すると、受信したメッセージを制御部１５へ送信する。【００２６】
記憶部１４は、各種情報を記憶する。例えば、記憶部１４は、メッセージログ１４ａ、第一のＤＢ１４ｂ、第二のＤＢ１４ｃ、第三のＤＢ１４ｄ、第四のＤＢ１４ｅ、第五のＤＢ１４ｆを記憶する。【００２７】
メッセージログ１４ａは、クラウドシステム２０のクラウドサーバ２０ａ、ＶＭなどの装置の状態、アプリケーションの実行状態などを示す各種のメッセージのログである。メッセージログ１４ａは、後述の格納制御部１５ａにより記憶部１４に格納される。【００２８】
第一のＤＢ１４ｂには、クラウドシステム２０で発生した事象の種類、および、事象が発生した日時が対応付けられて登録される。図３は、第一のＤＢのデータ構成の一例を示す図である。図３の例では、第一のＤＢ１４ｂは、「事象の種類」、「発生日時」の各項目を有する。図３の例では、「事象の種類」の項目に、クラウドシステム２０で発生した事象の種類が登録される。また、図３の例では、「発生日時」の項目に、事象が発生した日時が登録される。第一のＤＢ１４ｂの各項目には、後述の格納制御部１５ａにより、対応する内容が登録される。図３の例に示す第一のＤＢ１４ｂの１番目のレコードは、ＨＤＤ（Hard  Disk  Drive）に障害が発生したＨＤＤ障害の事象が、２０１１年６月１２日１０時１５分０秒に発生したことを示す。また、図３の例に示す第一のＤＢ１４ｂの２番目のレコードは、アプリケーションの性能の劣化が発生したアプリ性能劣化の事象が、２０１１年６月１２日１０時１６分５秒に発生したことを示す。【００２９】
第二のＤＢ１４ｃには、メッセージと、メッセージの種類とが対応付けられて登録される。図４は、第二のＤＢのデータ構成の一例を示す図である。図４の例では、第二のＤＢ１４ｃは、「メッセージ」、「メッセージの種類」の各項目を有する。図４の例では、「メッセージ」の項目に、メッセージの内容が登録される。また、図４の例では、「メッセージの種類」の項目に、メッセージの種類を示す識別子が登録される。第二のＤＢ１４ｃは、後述の第一の算出部１５ｂにより、メッセージログ１４ａのメッセージの種類を分類する際に用いられる。図４の例に示す第二のＤＢ１４ｃの１番目のレコードは、内容が「ｕｂｕｚｏｕ  ｋｅｒｎｅｌ・・・」であるメッセージの種類が、「１」の識別子が示す種類である場合を示す。図４の例に示す第二のＤＢ１４ｃの２番目のレコードは、内容が「ｃｏｍ．ｆｆｆ・・・」であるメッセージの種類が、「２」の識別子が示す種類である場合を示す。【００３０】
第三のＤＢ１４ｄには、事象の発生または事象が発生する予兆を検知する際に用いられる後述の第五のＤＢ１４ｆに登録される前のメッセージの組み合わせが登録されたファイルが登録される。第三のＤＢ１４ｄには、クラウドシステム２０の運用が開始された場合に、１番目のファイルが登録され、クラウドシステム２０の構成変更が行われるたびに、新しいファイルが登録される。図５は、第三のＤＢに登録されるファイルのデータ構成の一例を示す図である。図５の例では、第三のＤＢ１４ｄに登録される各ファイル１４ｄ＿１、１４ｄ＿２、１４ｄ＿３、・・・は、「ＩＤ」、「構成変更日時」の項目を有する。【００３１】
図５の例では、「ＩＤ」の項目に、ファイルを識別するための識別子が登録される。また、図５の例では、「構成変更日時」の項目に、１番目のファイル１４ｄ＿１では、クラウドシステム２０の運用が開始された日時が登録され、２番目以降のファイル１４ｄ＿２、１４ｄ＿３、・・・では、構成変更が行われた日時が登録される。図５の例は、ファイル１４ｄ＿１の「ＩＤ」の項目に、ファイル１４ｄ＿１の識別子「０２ｅ６３１ｄ１−９４ｃ４−４３９１−ａ９ｃ２−０７ｄ５ｆｃ３ｆ７５ｆ９」が登録された場合を示す。また、図５の例は、ファイル１４ｄ＿１の「構成変更日時」の項目に、クラウドシステム２０の構成変更が行われた日時または運用が開始された日時「２０１１年６月１２日１０時１５分０秒」が登録された場合を示す。ファイルの「ＩＤ」、「構成変更日時」の各項目には、後述の格納制御部１５ａにより、対応する内容が登録される。【００３２】
また、図５の例では、第三のＤＢ１４ｄに登録される各ファイル１４ｄ＿１などは、「メッセージパターン」、「事象の種類」、「パターンが発生した回数」、「パターン発生後に事象が発生した回数」、「事象発生確率」、「成熟度」の項目を有する。【００３３】
図５の例では、「メッセージパターン」の項目に、１つ以上のメッセージの識別子の組み合わせが登録される。また、図５の例では、「事象の種類」の項目に、事象の種類が登録される。また、図５の例では、「パターンが発生した回数」の項目に、メッセージの組み合わせが発生した回数が登録される。また、図５の例では、「パターン発生後に事象が発生した回数」の項目に、メッセージの組み合わせが発生した後から、所定時間、例えば、１５秒経過後までの間に事象が発生した回数が登録される。また、図５の例では、「事象発生確率」の項目に、メッセージの組み合わせに対する事象が発生する確率が登録される。また、図５の例では、「成熟度」の項目に、事象の発生または事象が発生する予兆を検知する際に用いられる後述の第五のＤＢ１４ｆに、メッセージの組み合わせを登録するか否かを判断するための指標が登録される。【００３４】
図５の例は、ファイル１４ｄ＿１の「メッセージパターン」の項目に、５つのメッセージの識別子「１，３，４，７，１６」が登録された場合を示す。また、図５の例は、ファイル１４ｄ＿１の「事象の種類」の項目に、ＨＤＤ障害が登録された場合を示す。また、図５の例は、ファイル１４ｄ＿１の「パターンが発生した回数」の項目に、識別子「１，３，４，７，１６」が示す５つのメッセージが発生した回数「２」が登録された場合を示す。また、図５の例は、ファイル１４ｄ＿１の「パターン発生後に事象が発生した回数」の項目に、識別子「１，３，４，７，１６」が示す５つのメッセージが発生した後に、ＨＤＤ障害の事象が発生した回数「２」が登録された場合を示す。また、図５の例は、ファイル１４ｄ＿１の「事象発生確率」の項目に、識別子「１，３，４，７，１６」が示す５つのメッセージの組み合わせに対して、ＨＤＤ障害の事象が発生する確率「１．００（１００％）」が登録された場合を示す。また、図５の例は、ファイル１４ｄ＿１の「成熟度」の項目に、識別子「１，３，４，７，１６」が示す５つのメッセージの組み合わせについての上述した指標「２．０」が登録された場合を示す。ファイルの「メッセージパターン」、「事象の種類」、「パターンが発生した回数」、「パターン発生後に事象が発生した回数」、「事象発生確率」、「成熟度」の各項目には、後述の第一の算出部１５ｂまたは第二の算出部１５ｃにより、対応する内容が登録される。【００３５】
第四のＤＢ１４ｅには、メッセージの組み合わせと、メッセージの組み合わせが登録される第三のＤＢ１４ｄのファイルの識別子とが対応付けられて登録される。図６は、第四のＤＢのデータ構成の一例を示す図である。図６の例では、第四のＤＢ１４ｅは、「新規パターン登録先」の項目を有する。図６の例では、「新規パターン登録先」の項目に、新たに発生したメッセージの組み合わせが登録される第三のＤＢ１４ｄのファイルを特定するための情報、例えば、第三のＤＢ１４ｄのファイルの識別子が登録される。「新規パターン登録先」の項目には、後述の格納制御部１５ａにより、新たに発生したメッセージの組み合わせが登録される第三のＤＢ１４ｄのファイルの識別子が登録される。図６の例は、「新規パターン登録先」の項目に、ファイル１４ｄ＿２の識別子「２４ｆａ６６１８−２１１８−４４０ａ−８５９１−ｂｃ９ｃ５ｂ９９ｅｃ５２」が登録された場合を示す。【００３６】
また、図６の例では、第四のＤＢ１４ｅは、「メッセージパターン」、「登録先」の項目を有する。図６の例では、「メッセージパターン」の項目に、１つ以上のメッセージの識別子の組み合わせが登録される。また、図６の例では、「登録先」の項目に、メッセージの組み合わせが登録される登録先、例えば、第三のＤＢ１４ｄのファイル、および、第五のＤＢの識別子が登録される。図６の例では、識別子「１，３，４，７，９」が示す５つのメッセージの組み合わせの登録先が、識別子「００００００００−００００−００００−００００−００００００００」が示す第五のＤＢ１４ｆであることを示す。また、図６の例では、識別子「１，３，４，７，１６」が示す５つのメッセージの組み合わせの登録先が、識別子「０２ｅ６３１ｄ１−９４ｃ４−４３９１−ａ９ｃ２−０７ｄ５ｆｃ３ｆ７５ｆ９」が示すファイル１４ｄ＿１であることを示す。また、図６の例では、識別子「６，８，９，１１」が示す４つのメッセージの組み合わせの登録先が、識別子「２４ｆａ６６１８−２１１８−４４０ａ−８５９１−ｂｃ９ｃ５ｂ９９ｅｃ５２」が示すファイル１４ｄ＿２であることを示す。「登録先」の項目には、後述の第一の算出部１５ｂにより、新たに発生したメッセージの組み合わせが登録される第三のＤＢ１４ｄのファイルの識別子が登録される。また、「登録先」の項目は、後述の格納部１５ｄにより、登録先が更新される。【００３７】
第五のＤＢ１４ｆは、事象の発生または事象が発生する予兆を検知する際に用いられるメッセージの組み合わせが登録される。図７は、第五のＤＢのデータ構成の一例を示す図である。図７の例では、第五のＤＢ１４ｆは、「メッセージパターン」、「事象の種類」、「パターンが発生した回数」、「パターン発生後に事象が発生した回数」、「事象発生確率」の各項目を有する。【００３８】
図７の例では、「メッセージパターン」の項目に、１つ以上のメッセージの識別子の組み合わせが登録される。また、図７の例では、「事象の種類」の項目に、事象の種類が登録される。また、図７の例では、「パターンが発生した回数」の項目に、メッセージの組み合わせが発生した回数が登録される。また、図７の例では、「パターン発生後に事象が発生した回数」の項目に、メッセージの組み合わせが発生した後から、所定時間、例えば、１５秒経過後までの間に事象が発生した回数が登録される。また、図７の例では、「事象発生確率」の項目に、メッセージの組み合わせに対する事象が発生する確率が登録される。【００３９】
図７の例は、「メッセージパターン」の項目に、５つのメッセージの識別子「１，３，４，７，９」が登録された場合を示す。また、図７の例は、「事象の種類」の項目に、ＨＤＤ障害が登録された場合を示す。また、図７の例は、「パターンが発生した回数」の項目に、識別子「１，３，４，７，９」が示す５つのメッセージが発生した回数「１６５」が登録された場合を示す。また、図７の例は、「パターン発生後に事象が発生した回数」の項目に、識別子「１，３，４，７，９」が示す５つのメッセージが発生した後に、ＨＤＤ障害の事象が発生した回数「１３７」が登録された場合を示す。また、図７の例は、「事象発生確率」の項目に、識別子「１，３，４，７，９」が示す５つのメッセージの組み合わせに対して、ＨＤＤ障害の事象が発生する確率「０．８３（８３％）」が登録された場合を示す。「メッセージパターン」、「事象の種類」、「パターンが発生した回数」、「パターン発生後に事象が発生した回数」、「事象発生確率」の各項目には、後述の格納部１５ｄにより、対応する内容が登録される。また、「パターンが発生した回数」、「パターン発生後に事象が発生した回数」、「事象発生確率」の各項目の登録内容は、後述の第一の算出部１５ｂにより、更新される。【００４０】
記憶部１４は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部１４は、上記の種類の記憶装置に限定されるものではなく、ＲＡＭ（Random  Access  Memory)、ＲＯＭ（Read  Only  Memory)であってもよい。【００４１】
制御部１５は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図２に示すように、制御部１５は、格納制御部１５ａと、第一の算出部１５ｂと、第二の算出部１５ｃと、格納部１５ｄと、検知部１５ｅと、報知制御部１５ｆとを有する。【００４２】
格納制御部１５ａは、クラウドシステム２０から事象の種類と、事象が発生した日時を受信すると、受信した事象の種類、事象が発生した日時のそれぞれを第一のＤＢ１４ｂの「事象の種類」、「発生日時」の項目に対応付けて登録する。【００４３】
また、格納制御部１５ａは、クラウドシステム２０からメッセージを受信すると、受信したメッセージをメッセージログ１４ａに登録する。【００４４】
また、格納制御部１５ａは、クラウドシステム２０から運用が開始された旨のメッセージを受信すると、第三のＤＢ１４ｄに登録する１番目のファイル１４ｄ＿１を生成する。例えば、先の図５の例に示すように、格納制御部１５ａは、次のような処理を行う。すなわち、格納制御部１５ａは、「ＩＤ」の項目に「０２ｅ６３１ｄ１−９４ｃ４−４３９１−ａ９ｃ２−０７ｄ５ｆｃ３ｆ７５ｆ９」が登録され、「構成変更日時」の項目に「２０１１年６月１２日１０時１５分０秒」が登録されたファイル１４ｄ＿１を生成する。ここで、識別子「０２ｅ６３１ｄ１−９４ｃ４−４３９１−ａ９ｃ２−０７ｄ５ｆｃ３ｆ７５ｆ９」は、１番目のファイル１４ｄ＿１の識別子である。また、「２０１１年６月１２日１０時１５分０秒」は、運用が開始された旨のメッセージに含まれる、クラウドシステム２０の運用が開始された日時である。なお、生成したファイル１４ｄ＿１の他の項目、例えば、「メッセージパターン」、「事象の種類」、「パターンが発生した回数」、「パターン発生後に事象が発生した回数」、「事象発生確率」、「成熟度」の各項目には、内容が登録されていない。【００４５】
また、格納制御部１５ａは、クラウドシステム２０から、構成変更が行われた旨のメッセージを受信すると、第三のＤＢ１４ｄに登録する新たなファイルを生成する。例えば、格納制御部１５ａは、次のような処理を行う。すなわち、格納制御部１５ａは、「ＩＤ」の項目に「２４ｆａ６６１８−２１１８−４４０ａ−８５９１−ｂｃ９ｃ５ｂ９９ｅｃ５２」が登録され、「構成変更日時」の項目に「２０１１年６月１３日１０時１５分０秒」が登録されたファイルを生成する。ここで、識別子「２４ｆａ６６１８−２１１８−４４０ａ−８５９１−ｂｃ９ｃ５ｂ９９ｅｃ５２」は、新たなファイルの識別子である。また、「２０１１年６月１３日１０時１５分０秒」は、構成変更が行われた旨のメッセージに含まれる、クラウドシステム２０の構成変更が行われた日時である。なお、生成した新たなファイルの他の項目、例えば、「メッセージパターン」、「事象の種類」、「パターンが発生した回数」、「パターン発生後に事象が発生した回数」、「事象発生確率」、「成熟度」の各項目には、内容が登録されていない。【００４６】
そして、格納制御部１５ａは、生成したファイルを第三のＤＢ１４ｄへ登録する。続いて、格納制御部１５ａは、第四のＤＢ１４ｅの「新規パターン登録先」の項目に、生成したファイルの識別子を登録して、「新規パターン登録先」の項目の登録内容を更新する。【００４７】
また、格納制御部１５ａは、所定時間の間隔ごとに、第三のＤＢ１４ｄの登録内容を参照し、「構成変更日時」の項目に登録された日時から現在の日時までの期間が、所定期間を超えたファイルがあるか否かを判定する。所定期間を超えたファイルがある場合には、格納制御部１５ａは、所定期間を超えたファイルを第三のＤＢ１４ｄから削除する。その後、格納制御部１５ａは、第四のＤＢ１４ｅを参照し、所定期間を超えたファイルの識別子が「登録先」の項目に登録されたレコードを削除する。【００４８】
一方、所定期間を超えたファイルがない場合には、格納制御部１５ａは、「メッセージパターン」の項目に何も登録されていない、いわゆる空であるか否かを判定する。空である場合には、格納制御部１５ａは、空のファイルを第三のＤＢ１４ｄから削除する。その後、格納制御部１５ａは、第四のＤＢ１４ｅを参照し、空のファイルの識別子が「登録先」の項目に登録されたレコードを削除する。【００４９】
第一の算出部１５ｂは、クラウドシステム２０の運用が開始された場合またはクラウドシステム２０の構成が変更された場合に、次のような処理を行う。すなわち、第一の算出部１５ｂは、メッセージの組み合わせがクラウドシステム２０において発生した数に対する、メッセージの組み合わせが発生した時間に対応する時間にクラウドシステム２０で発生した事象の数の割合を算出する。なお、このメッセージの組み合わせは、その識別子が第三のＤＢ１４ｄに登録されたものである。【００５０】
例えば、第一の算出部１５ｂは、まず、メッセージログ１４ａに含まれるメッセージのうち、未処理のメッセージを記憶部１４から取得する。そして、第一の算出部１５ｂは、取得したメッセージを、第二のＤＢ１４ｃを用いて、メッセージの種類毎に分類する。なお、メッセージを種類毎に分類する方法は、様々な方法があるが、例えば、「渡辺幸洋、松本安英「メッセージパターン学習による障害発生検知」  情報処理学会論文誌  ２００９年１２月１０日」などに記載された方法を採用することができる。【００５１】
そして、第一の算出部１５ｂは、所定のルールに基づいて、メッセージの組み合わせを生成する。例えば、第一の算出部１５ｂは、組み合わされるメッセージの数が最大で１０であるというルールや、所定の時間幅に含まれるメッセージを組み合わせるというルールに基づいて、メッセージの組み合わせを複数生成する。【００５２】
次に、第一の算出部１５ｂは、生成した組み合わせのそれぞれについて、発生した日時が最新のメッセージの日時を特定する。なお、メッセージの発生した日時を示す情報は、当該メッセージに含まれる。第一の算出部１５ｂは、生成した組み合わせのそれぞれについて、特定した最新のメッセージの日時をメッセージの組み合わせが発生した日時とする。その後、第一の算出部１５ｂは、生成した組み合わせのそれぞれについて、メッセージの組み合わせが発生した日時から、所定時間、例えば、１５秒経過後までの間に発生した事象が第一のＤＢ１４ｂに登録されている場合には、第一のＤＢ１４ｂから事象を取得する。【００５３】
続いて、第一の算出部１５ｂは、生成したメッセージの組み合わせを全て選択したか否かを判定する。全て選択していない場合には、第一の算出部１５ｂは、未選択のメッセージの組み合わせを１つ選択する。【００５４】
その後、第一の算出部１５ｂは、選択したメッセージの組み合わせの登録先が、検知用の第五のＤＢ１４ｆであるか否かを、第四のＤＢ１４ｅを用いて判定する。すなわち、第一の算出部１５ｂは、第四のＤＢ１４ｅを参照し、選択した組み合わせに対応する「登録先」の項目に、検知用の第五のＤＢ１４ｆの識別子が登録されている場合には、選択したメッセージの組み合わせの登録先が、検知用の第五のＤＢ１４ｆであると判定する。また、第一の算出部１５ｂは、第四のＤＢ１４ｅを参照し、選択した組み合わせに対応する「登録先」の項目に、第三のＤＢ１４ｄのファイルの識別子が登録されている場合には、選択したメッセージの組み合わせの登録先が、識別子が示す第三のＤＢ１４ｄのファイルであると判定する。また、第一の算出部１５ｂは、第四のＤＢ１４ｅを参照し、選択した組み合わせに対応するメッセージの識別子の組み合わせが、「メッセージパターン」の項目に登録されていない場合には、新規の組み合わせであるため、次のような処理を行う。すなわち、第一の算出部１５ｂは、「新規パターン登録先」の項目に登録された識別子が示す第三のＤＢ１４ｄのファイルを、選択したメッセージの組み合わせの登録先として判定する。【００５５】
選択したメッセージの組み合わせの登録先が、第三のＤＢ１４ｄのファイルである場合には、第一の算出部１５ｂは、選択したメッセージの組み合わせが発生した日時から、所定時間経過後までの間に発生した事象を上記の処理で取得できたか否かを判定する。すなわち、第一の算出部１５ｂは、選択したメッセージの組み合わせが発生した日時に対応する日時に発生した事象があるか否かを判定する。【００５６】
選択したメッセージの組み合わせが発生した日時に対応する日時に発生した事象がある場合には、第一の算出部１５ｂは、選択したメッセージの組み合わせが、新規であるか否かを判定する。新規の場合には、第一の算出部１５ｂは、選択した組み合わせに対応するメッセージの識別子の組み合わせ、および、「新規パターン登録先」の項目に登録された識別子のそれぞれを、第四のＤＢ１４ｅの「メッセージパターン」、「登録先」の項目に対応付けて登録する。また、新規の場合には、第一の算出部１５ｂは、第三のＤＢ１４ｄの登録先のファイルに新規レコードを追加する。そして、第一の算出部１５ｂは、選択した組み合わせに対応するメッセージの識別子の組み合わせ、および、対応する発生した事象のそれぞれを、新規レコードの「メッセージパターン」、「事象の種類」の項目に対応付けて登録する。【００５７】
その後、第一の算出部１５ｂは、登録先である第三のＤＢ１４ｄのファイルの選択した組み合わせに対応するレコードを取得し、レコードに含まれる「パターンが発生した回数」の項目の値を１つインクリメントする。続いて、第一の算出部１５ｂは、レコードに含まれる「パターン発生後に事象が発生した回数」の項目の値を１つインクリメントする。そして、第一の算出部１５ｂは、それぞれ、値が１つインクリメントされた「パターン発生後に事象が発生した回数」および「パターンが発生した回数」の項目の値について、次のような処理を行う。すなわち、第一の算出部１５ｂは、「パターン発生後に事象が発生した回数」の項目の値を「パターンが発生した回数」の項目の値で除して、事象が発生する確率である事象発生確率を算出する。【００５８】
一方、選択したメッセージの組み合わせが発生した日時に対応する日時に発生した事象がない場合には、第一の算出部１５ｂは、選択したメッセージの組み合わせが、新規であるか否かを判定する。新規でない場合には、第一の算出部１５ｂは、登録先である第三のＤＢ１４ｄのファイルの選択した組み合わせに対応するレコードを取得し、レコードに含まれる「パターンが発生した回数」の項目の値を１つインクリメントする。そして、第一の算出部１５ｂは、「パターン発生後に事象が発生した回数」、および、値が１つインクリメントされた「パターンが発生した回数」の項目の値について、次のような処理を行う。すなわち、第一の算出部１５ｂは、「パターン発生後に事象が発生した回数」の項目の値を「パターンが発生した回数」の項目の値で除して、事象が発生する確率である事象発生確率を算出する。【００５９】
また、選択したメッセージの組み合わせの登録先が、検知用の第五のＤＢ１４ｆである場合には、第一の算出部１５ｂは、選択したメッセージの組み合わせが発生した日時に対応する日時に発生した事象があるか否かを判定する。【００６０】
選択したメッセージの組み合わせが発生した日時に対応する日時に発生した事象がある場合には、第一の算出部１５ｂは、登録先である第五のＤＢ１４ｆの選択した組み合わせに対応するレコードを取得し、レコードに含まれる「パターンが発生した回数」の項目の値を１つインクリメントする。続いて、第一の算出部１５ｂは、レコードに含まれる「パターン発生後に事象が発生した回数」の項目の値を１つインクリメントする。そして、第一の算出部１５ｂは、それぞれ、値が１つインクリメントされた「パターン発生後に事象が発生した回数」および「パターンが発生した回数」の項目の値について、次のような処理を行う。すなわち、第一の算出部１５ｂは、「パターン発生後に事象が発生した回数」の項目の値を「パターンが発生した回数」の項目の値で除して、事象が発生する確率である事象発生確率を算出する。【００６１】
そして、第一の算出部１５ｂは、登録先である第五のＤＢ１４ｆの選択した組み合わせに対応するレコードの「パターンが発生した回数」の項目の値を、１つインクリメントされた「パターンが発生した回数」の項目の値に更新する。また、第一の算出部１５ｂは、かかるレコードの「パターン発生後に事象が発生した回数」の項目の値を、１つインクリメントされた「パターン発生後に事象が発生した回数」の項目の値に更新する。また、第一の算出部１５ｂは、かかるレコードの「事象発生確率」の項目の値を、算出した事象発生確率の値に更新する。【００６２】
一方、選択したメッセージの組み合わせが発生した日時に対応する日時に発生した事象がない場合には、第一の算出部１５ｂは、登録先である第五のＤＢ１４ｆの選択した組み合わせに対応するレコードを取得し、レコードに含まれる「パターンが発生した回数」の項目の値を１つインクリメントする。そして、第一の算出部１５ｂは、レコードに含まれる「パターン発生後に事象が発生した回数」、および、値が１つインクリメントされた「パターンが発生した回数」の項目の値について、次のような処理を行う。すなわち、第一の算出部１５ｂは、「パターン発生後に事象が発生した回数」の項目の値を「パターンが発生した回数」の項目の値で除して、事象が発生する確率である事象発生確率を算出する。そして、第一の算出部１５ｂは、登録先である第五のＤＢ１４ｆの選択した組み合わせに対応するレコードの「パターンが発生した回数」の項目の値を、１つインクリメントされた「パターンが発生した回数」の項目の値に更新する。また、第一の算出部１５ｂは、かかるレコードの「事象発生確率」の項目の値を、算出した事象発生確率の値に更新する。【００６３】
そして、第一の算出部１５ｂは、未選択のメッセージの組み合わせを再度選択して、選択したメッセージの組み合わせについて上記の処理を行う。第一の算出部１５ｂは、全ての組み合わせが処理済みとなるまで、上記の処理を繰り返し行う。【００６４】
第二の算出部１５ｃは、第一の算出部１５ｂにより、選択したメッセージの組み合わせの登録先が、第三のＤＢ１４ｄのファイルであると判定された場合に、次のような処理を行う。すなわち、第二の算出部１５ｃは、第一の算出部１５ｂにより算出された事象発生確率と、発生した事象の数とに基づいて、選択したメッセージの組み合わせが、事象の発生または事象が発生する予兆を検知する場合に用いられるか否かを判断するための指標である成熟度を算出する。【００６５】
例えば、第一の算出部１５ｂにより、選択したメッセージの組み合わせが発生した日時に対応する日時に発生した事象があると判定された場合には、第二の算出部１５ｃは、次のような処理を行う。すなわち、第二の算出部１５ｃは、第一の算出部１５ｂにより算出された事象発生確率と、第一の算出部１５ｂにより１つインクリメントされた「パターンが発生した回数」の項目の値との乗算値を成熟度として算出する。【００６６】
また、第一の算出部１５ｂにより、選択したメッセージの組み合わせが発生した日時に対応する日時に発生した事象がないと判定された場合には、第二の算出部１５ｃは、次のような処理を行う。すなわち、第二の算出部１５ｃは、第一の算出部１５ｂにより算出された事象発生確率と、第一の算出部１５ｂにより取得されたレコードに含まれる「パターンが発生した回数」の項目の値との乗算値を成熟度として算出する。【００６７】
そして、第二の算出部１５ｃは、登録先である第三のＤＢ１４ｄのファイルの選択した組み合わせに対応するレコードの「パターンが発生した回数」の項目の値を、１つインクリメントされた「パターンが発生した回数」の項目の値に更新する。また、第二の算出部１５ｃは、かかるレコードの「事象発生確率」の項目の値を、算出した事象発生確率の値に更新する。また、第二の算出部１５ｃは、かかるレコードの「成熟度」の項目の値を、算出した成熟度の値に更新する。【００６８】
格納部１５ｄは、第二の算出部１５ｃで算出された成熟度が、事象の発生または事象が発生する予兆を検知する場合に用いられる条件を満たすことを示す場合には、次のような処理を行う。すなわち、格納部１５ｄは、メッセージの組み合わせを事象の発生または事象が発生する予兆を検知する場合に用いられるメッセージの組み合わせとして記憶部１４の第五のＤＢ１４ｆに登録する。【００６９】
例えば、格納部１５ｄは、まず、第三のＤＢ１４ｄの全ファイルの全レコードを取得する。そして、格納部１５ｄは、取得した全レコードのうち、未選択のレコードがあるか否かを判定する。未選択のレコードがある場合には、格納部１５ｄは、未選択のレコードを１つ選択する。そして、格納部１５ｄは、選択したレコードの「成熟度」の項目に登録された値が、閾値αより大きいか否かを判定する。すなわち、格納部１５ｄは、成熟度が、事象の発生または事象が発生する予兆を検知する場合に用いられる条件を満たすことを示すか否かを判定する。ここで、格納部１５ｄは、閾値αとして、第一の所定値、または、第二の所定値と、選択したレコードが登録されたファイルの「構成変更日時」の項目に登録された日時から現在日時までの期間との乗算値を採用することができる。【００７０】
選択したレコードの「成熟度」の項目に登録された値が、閾値αより大きい場合には、格納部１５ｄは、第五のＤＢ１４ｆにレコードを追加し、追加したレコードの各項目に、選択したレコードの「成熟度」の項目以外の各項目の値をコピーする。これにより、成熟度が、事象の発生または事象が発生する予兆を検知する場合に用いられる条件を満たす場合には、検知用の第五のＤＢ１４ｆにメッセージが登録される。そして、格納部１５ｄは、第三のＤＢ１４ｄから、選択したレコードを削除する。続いて、格納部１５ｄは、第五のＤＢ１４ｆにコピーされたレコードの「メッセージパターン」の内容と同一の内容が登録された第四のＤＢ１４ｅのレコードを特定し、特定したレコードの「登録先」の項目を、第五のＤＢ１４ｆの識別子に更新する。【００７１】
そして、格納部１５ｄは、未選択のレコードを再度選択して、選択したレコードについて上記の処理を行う。格納部１５ｄは、全てのレコードが処理済みとなるまで、上記の処理を繰り返し行う。【００７２】
検知部１５ｅは、第五のＤＢ１４ｆに登録されたメッセージの組み合わせ、および、事象発生確率に基づいて、クラウドシステム２０から送信されるメッセージから、事象の発生または事象が発生する予兆を検知する。検知部１５ｅは、かかる検知の方法として、例えば、「渡辺幸洋、松本安英「メッセージパターン学習による障害発生検知」  情報処理学会論文誌  ２００９年１２月１０日」などに記載された方法を採用することができる。【００７３】
報知制御部１５ｆは、検知部１５ｅにより検知された結果を報知するように制御する。例えば、報知制御部１５ｆは、検知部１５ｅにより検知された結果を表示するように、出力部１２を制御する。【００７４】
制御部１５は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路である。【００７５】
［処理の流れ］
次に、本実施例に係る検知装置１０の処理の流れを説明する。図８は、実施例に係る第一の登録処理の手順を示すフローチャートである。第一の登録処理は、例えば、クラウドシステム２０から運用が開始された旨のメッセージおよび構成変更が行われた旨のメッセージを受信するたびに検知装置１０により実行される。【００７６】
図８に示すように、格納制御部１５ａは、第三のＤＢ１４ｄに登録する新たなファイルを生成する（Ｓ１０１）。そして、格納制御部１５ａは、生成したファイルを第三のＤＢ１４ｄへ登録する（Ｓ１０２）。続いて、格納制御部１５ａは、第四のＤＢ１４ｅの「新規パターン登録先」の項目に、生成したファイルの識別子を登録して、「新規パターン登録先」の項目の登録内容を更新し（Ｓ１０３）、処理を終了する。【００７７】
図９は、実施例に係る削除処理の手順を示すフローチャートである。削除処理は、例えば、所定時間の間隔ごとに、検知装置１０により実行される。【００７８】
図９に示すように、格納制御部１５ａは、第三のＤＢ１４ｄの登録内容を参照する（Ｓ２０１）。そして、格納制御部１５ａは、「構成変更日時」の項目に登録された日時から現在の日時までの期間が、所定期間を超えたファイルがあるか否かを判定する（Ｓ２０２）。所定期間を超えたファイルがある場合（Ｓ２０２肯定）には、格納制御部１５ａは、所定期間を超えたファイルを第三のＤＢ１４ｄから削除する（Ｓ２０３）。その後、格納制御部１５ａは、第四のＤＢ１４ｅを参照し、所定期間を超えたファイルの識別子が「登録先」の項目に登録されたレコードを削除し（Ｓ２０４）、処理を終了する。【００７９】
一方、所定期間を超えたファイルがない場合（Ｓ２０２否定）には、格納制御部１５ａは、「メッセージパターン」の項目に何も登録されていない、いわゆる空であるか否かを判定する（Ｓ２０５）。空である場合（Ｓ２０５肯定）には、Ｓ２０３へ進む。空でない場合（Ｓ２０５否定）には、処理を終了する。【００８０】
図１０は、実施例に係る第二の登録処理の手順を示すフローチャートである。第二の登録処理は、例えば、所定時間の間隔ごとに、検知装置１０により実行される。【００８１】
図１０に示すように、第一の算出部１５ｂは、メッセージログ１４ａに含まれるメッセージのうち、未処理のメッセージを記憶部１４から取得する（Ｓ３０１）。そして、第一の算出部１５ｂは、取得したメッセージを、第二のＤＢ１４ｃを用いて、メッセージの種類毎に分類する（Ｓ３０２）。【００８２】
そして、第一の算出部１５ｂは、所定のルールに基づいて、メッセージの全部の組み合わせを生成する（Ｓ３０３）。次に、第一の算出部１５ｂは、生成した組み合わせのそれぞれについて、メッセージの組み合わせが発生した日時から、所定時間が経過するまでの間に発生した事象が第一のＤＢ１４ｂに登録されている場合には、第一のＤＢ１４ｂから事象を取得する（Ｓ３０４）。【００８３】
続いて、第一の算出部１５ｂは、生成したメッセージの組み合わせを全て選択したか否かを判定する（Ｓ３０５）。全て選択した場合（Ｓ３０５肯定）には、処理を終了する。全て選択していない場合（Ｓ３０５否定）には、第一の算出部１５ｂは、未選択のメッセージの組み合わせを１つ選択する（Ｓ３０６）。【００８４】
その後、第一の算出部１５ｂは、選択したメッセージの組み合わせの登録先が、検知用の第五のＤＢ１４ｆであるか否かを、第四のＤＢ１４ｅを用いて判定する（Ｓ３０７）。【００８５】
選択したメッセージの組み合わせの登録先が、第三のＤＢ１４ｄのファイルである場合（Ｓ３０７否定）には、第一の算出部１５ｂは、次のような処理を行う。すなわち、第一の算出部１５ｂは、選択したメッセージの組み合わせが発生した日時に対応する日時に発生した事象があるか否かを判定する（Ｓ３０８）。【００８６】
選択したメッセージの組み合わせが発生した日時に対応する日時に発生した事象がある場合（Ｓ３０８肯定）には、第一の算出部１５ｂは、選択したメッセージの組み合わせが、新規であるか否かを判定する（Ｓ３０９）。新規でない場合（Ｓ３０９否定）には、Ｓ３１２へ進む。一方、新規の場合（Ｓ３０９肯定）には、第一の算出部１５ｂは、次のような処理を行う。すなわち、第一の算出部１５ｂは、選択した組み合わせに対応するメッセージの識別子の組み合わせ、「新規パターン登録先」の項目に登録された識別子のそれぞれを、第四のＤＢ１４ｅの「メッセージパターン」、「登録先」の項目に対応付けて登録する（Ｓ３１０）。そして、第一の算出部１５ｂは、選択した組み合わせに対応するメッセージの識別子の組み合わせ、対応する発生した事象のそれぞれを、追加した新規レコードの「メッセージパターン」、「事象の種類」の項目に対応付けて登録する（Ｓ３１１）。【００８７】
その後、第一の算出部１５ｂは、登録先である第三のＤＢ１４ｄのファイルの選択した組み合わせに対応するレコードを取得し、レコードに含まれる「パターンが発生した回数」の項目の値を１つインクリメントする（Ｓ３１２）。続いて、第一の算出部１５ｂは、レコードに含まれる「パターン発生後に事象が発生した回数」の項目の値を１つインクリメントする（Ｓ３１３）。そして、第一の算出部１５ｂは、それぞれ、値が１つインクリメントされた「パターン発生後に事象が発生した回数」および「パターンが発生した回数」の項目の値について、次のような処理を行う。すなわち、第一の算出部１５ｂは、「パターン発生後に事象が発生した回数」の項目の値を「パターンが発生した回数」の項目の値で除して、事象が発生する確率である事象発生確率を算出する（Ｓ３１４）。【００８８】
第二の算出部１５ｃは、第一の算出部１５ｂにより算出された事象発生確率と、第一の算出部１５ｂにより１つインクリメントされた「パターンが発生した回数」の項目の値との乗算値を成熟度として算出する（Ｓ３１５）。そして、第二の算出部１５ｃは、登録先である第三のＤＢ１４ｄのファイルの選択した組み合わせに対応するレコードを更新し（Ｓ３１６）、Ｓ３０５へ戻る。【００８９】
一方、選択したメッセージの組み合わせが発生した日時に対応する日時に発生した事象がない場合（Ｓ３０８否定）には、第一の算出部１５ｂは、選択したメッセージの組み合わせが、新規であるか否かを判定する（Ｓ３１７）。新規である場合（Ｓ３１７肯定）には、Ｓ３０５へ戻る。一方、新規でない場合（Ｓ３１７否定）には、第一の算出部１５ｂは、次のような処理を行う。すなわち、第一の算出部１５ｂは、登録先である第三のＤＢ１４ｄのファイルの選択した組み合わせに対応するレコードを取得し、レコードに含まれる「パターンが発生した回数」の項目の値を１つインクリメントする（Ｓ３１８）。そして、第一の算出部１５ｂは、「パターン発生後に事象が発生した回数」、値が１つインクリメントされた「パターンが発生した回数」の項目の値について、次のような処理を行う。すなわち、第一の算出部１５ｂは、「パターン発生後に事象が発生した回数」の項目の値を「パターンが発生した回数」の項目の値で除して、事象が発生する確率である事象発生確率を算出する（Ｓ３１９）。【００９０】
第二の算出部１５ｃは、第一の算出部１５ｂにより算出された事象発生確率と、第一の算出部１５ｂにより取得されたレコードに含まれる「パターンが発生した回数」の項目の値との乗算値を成熟度として算出する（Ｓ３２０）。そして、第二の算出部１５ｃは、登録先である第三のＤＢ１４ｄのファイルの選択した組み合わせに対応するレコードを更新し（Ｓ３２１）、Ｓ３０５へ戻る。【００９１】
また、選択したメッセージの組み合わせの登録先が、検知用の第五のＤＢ１４ｆである場合（Ｓ３０７肯定）には、第一の算出部１５ｂは、選択したメッセージの組み合わせが発生した日時に対応する日時に発生した事象があるか否かを判定する（Ｓ３２２）。【００９２】
選択したメッセージの組み合わせが発生した日時に対応する日時に発生した事象がある場合（Ｓ３２２肯定）には、第一の算出部１５ｂは、次のような処理を行う。すなわち、第一の算出部１５ｂは、登録先である第五のＤＢ１４ｆの選択した組み合わせに対応するレコードを取得し、レコードに含まれる「パターンが発生した回数」の項目の値を１つインクリメントする（Ｓ３２３）。続いて、第一の算出部１５ｂは、レコードに含まれる「パターン発生後に事象が発生した回数」の項目の値を１つインクリメントする（Ｓ３２４）。そして、第一の算出部１５ｂは、それぞれ、値が１つインクリメントされた「パターン発生後に事象が発生した回数」および「パターンが発生した回数」の項目の値について、次のような処理を行う。すなわち、第一の算出部１５ｂは、「パターン発生後に事象が発生した回数」の項目の値を「パターンが発生した回数」の項目の値で除して、事象が発生する確率である事象発生確率を算出する（Ｓ３２５）。そして、第一の算出部１５ｂは、登録先である第五のＤＢ１４ｆの選択した組み合わせに対応するレコードを更新し（Ｓ３２６）、Ｓ３０５へ戻る。【００９３】
一方、選択したメッセージの組み合わせが発生した日時に対応する日時に発生した事象がない場合（Ｓ３２２否定）には、第一の算出部１５ｂは、次のような処理を行う。すなわち、第一の算出部１５ｂは、登録先である第五のＤＢ１４ｆの選択した組み合わせに対応するレコードを取得し、レコードに含まれる「パターンが発生した回数」の項目の値を１つインクリメントする（Ｓ３２７）。そして、第一の算出部１５ｂは、レコードに含まれる「パターン発生後に事象が発生した回数」、値が１つインクリメントされた「パターンが発生した回数」の項目の値について、次のような処理を行う。すなわち、第一の算出部１５ｂは、「パターン発生後に事象が発生した回数」の項目の値を「パターンが発生した回数」の項目の値で除して、事象が発生する確率である事象発生確率を算出する（Ｓ３２８）。そして、第一の算出部１５ｂは、登録先である第五のＤＢ１４ｆの選択した組み合わせに対応するレコードを更新し（Ｓ３２９）、Ｓ３０５へ戻る。【００９４】
図１１は、実施例に係る格納処理の手順を示すフローチャートである。格納処理は、例えば、所定時間の間隔ごとに、検知装置１０により実行される。【００９５】
格納部１５ｄは、第三のＤＢ１４ｄの全ファイルの全レコードを取得する（Ｓ４０１）。そして、格納部１５ｄは、取得した全レコードのうち、未選択のレコードがあるか否かを判定する（Ｓ４０２）。未選択のレコードが無い場合（Ｓ４０２否定）には、処理を終了する。一方、未選択のレコードがある場合（Ｓ４０２肯定）には、格納部１５ｄは、未選択のレコードを１つ選択する（Ｓ４０３）。そして、格納部１５ｄは、選択したレコードの「成熟度」の項目に登録された値が、閾値αより大きいか否かを判定する（Ｓ４０４）。【００９６】
「成熟度」の項目に登録された値が、閾値α以下である場合（Ｓ４０４否定）には、Ｓ４０２へ戻る。一方、閾値αより大きい場合（Ｓ４０４肯定）には、格納部１５ｄは、第五のＤＢ１４ｆにレコードを追加し、追加したレコードの各項目に、選択したレコードの「成熟度」の項目以外の各項目の値をコピーする（Ｓ４０５）。そして、格納部１５ｄは、第三のＤＢ１４ｄから、選択したレコードを削除する（Ｓ４０６）。続いて、格納部１５ｄは、第五のＤＢ１４ｆにコピーされたレコードの「メッセージパターン」の内容と同一の内容が登録された第四のＤＢ１４ｅのレコードを特定し、次のような処理を行う。すなわち、格納部１５ｄは、特定したレコードの「登録先」の項目を、第五のＤＢ１４ｆの識別子に更新し（Ｓ４０７）、Ｓ４０２へ戻る。【００９７】
上述してきたように、本実施例に係る検知装置１０は、クラウドシステム２０の運用が開始された場合またはクラウドシステム２０の構成が変更された場合に、次のような処理を行う。すなわち、検知装置１０は、メッセージの組み合わせがクラウドシステム２０において発生した数に対する、メッセージの組み合わせが発生した時間に対応する時間にクラウドシステム２０で発生した事象の数の割合である事象発生確率を算出する。また、検知装置１０は、算出された事象発生確率と、発生した事象の数とに基づいて、選択したメッセージの組み合わせが、事象の発生または事象が発生する予兆を検知する場合に用いられるか否かを判断するための指標である成熟度を算出する。そして、検知装置１０は、算出された成熟度が閾値αより大きい場合、すなわち、成熟度が事象の発生または事象が発生する予兆を検知する場合に用いられる条件を満たすことを示す場合には、次のような処理を行う。すなわち、検知装置１０は、メッセージの組み合わせを事象の発生または事象が発生する予兆を検知する場合に用いられるメッセージの組み合わせとして記憶部１４の第五のＤＢ１４ｆに登録する。このように、検知装置１０は、メッセージの組み合わせのうち、成熟度が閾値αより大きいメッセージの組み合わせを検知用のメッセージの組み合わせとして用いる。よって、検知装置１０によれば、システムの運用開始直後や、システムの構成の変更直後に新たに発生したメッセージについては、検知用のメッセージとして用いられない。したがって、検知装置１０によれば、システムの運用開始直後や、システムの構成の変更直後であっても、検知する際の精度が不確かなメッセージを用いないため、精度良く事象を検知することができる。【００９８】
また、検知装置１０は、閾値αとして、第二の所定値と、選択したレコードが登録されたファイルの「構成変更日時」の項目に登録された日時から現在日時までの期間との乗算値を採用することができる。そのため、検知装置１０によれば、構成変更が行われてからの期間が長くなるほど、その構成変更が行われた際に生成されたファイルに登録されたメッセージの組み合わせについては、閾値αを高くすることができる。よって、検知装置１０によれば、メッセージの組み合わせが発生した日時が古くなるほど、検知用の第五のＤＢ１４ｆに登録し難くなる。したがって、検知装置１０によれば、クラウドシステム２０において、期間の経過とともに成熟度が大きくならないようなメッセージの組み合わせが、検知用の第五のＤＢ１４ｆに登録されることを抑制することができる。【００９９】
図１２は、本実施例に係る検知装置１０による効果を説明するための図である。図１２の例に示す横軸は時間である。また、図１２の例に示す縦軸は、検知数である。図１２の例では、本実施例と同様のクラウドシステムにおいて、従来の検知装置、および、本実施例に係る検知装置１０の誤検知数を示す。図１２の例は、時間Ｔでクラウドシステムの構成変更が行われた場合を示す。図１２の例では、従来の検知装置、および、本実施例に係る検知装置１０の正解の検知数は、両装置ともほぼ同一であり、正解の検知数を示す線７０で示される。一方、図１２の例では、誤検知の数については、従来の検知装置については、誤検知の数を示す線７１で示され、本実施例に係る検知装置１０については、誤検知の数を示す線７２で示される。図１２の例に示すように、本実施例に係る検知装置１０によれば、従来の検知装置と比較して、構成変更が行われてからの誤検知の数が抑制される。【０１００】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。【０１０１】
また、実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。【０１０２】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。【０１０３】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。例えば、図９に示すＳ２０２の処理と、Ｓ２０３の処理との順番を変更できる。【０１０４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図２に示す第一の算出部１５ｂおよび第二の算出部１５ｃを統合し、１つの算出部とすることができる。【０１０５】
［検知プログラム］
また、上記の実施例で説明した検知装置１０の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図１３を用いて、上記の実施例で説明した検知装置１０と同様の機能を有する検知プログラムを実行するコンピュータの一例を説明する。図１３は、検知プログラムを実行するコンピュータを示す図である。【０１０６】
図１３に示すように、コンピュータ３００は、ＣＰＵ（Central  Processing  Unit）３１０、ＲＯＭ（Read  Only  Memory）３２０、ＨＤＤ（Hard  Disk  Drive）３３０、ＲＡＭ（Random  Access  Memory）３４０を有する。これら３１０〜３４０の各符号が示す各装置は、バス３５０を介して接続される。【０１０７】
ＲＯＭ３２０には、ＯＳなどの基本プログラムが記憶されている。また、ＨＤＤ３３０には、上記の実施例で示す格納制御部１５ａと、第一の算出部１５ｂと、第二の算出部１５ｃと、格納部１５ｄと、検知部１５ｅと、報知制御部１５ｆと同様の機能を発揮する検知プログラム３３０ａが予め記憶される。なお、検知プログラム３３０ａについては、適宜分離しても良い。また、ＨＤＤ３３０には、メッセージログ、第一〜第五のＤＢが設けられる。このメッセージログ、第一のＤＢ〜第五のＤＢは、上述したメッセージログ１４ａ、第一のＤＢ１４ｂ〜第五のＤＢ１４ｆに対応する。【０１０８】
そして、ＣＰＵ３１０が、検知プログラム３３０ａをＨＤＤ３３０から読み出して実行する。【０１０９】
そして、ＣＰＵ３１０は、メッセージログ、第一〜第五のＤＢを読み出してＲＡＭ３４０に格納する。さらに、ＣＰＵ３１０は、ＲＡＭ３４０に格納されたメッセージログ、第一〜第五のＤＢを用いて、検知プログラム３３０ａを実行する。なお、ＲＡＭ３４０に格納される各データは、常に全てのデータがＲＡＭ３３０に格納されなくともよい。処理に用いられるデータがＲＡＭ３４０に格納されれば良い。【０１１０】
なお、上記した検知プログラム３３０ａについては、必ずしも最初からＨＤＤ３３０に記憶させておく必要はない。【０１１１】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。  【０１１２】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１１３】
１０      検知装置
１４      記憶部
１４ａ    メッセージログ
１４ｂ    第一のＤＢ
１４ｃ    第二のＤＢ
１４ｄ    第三のＤＢ
１４ｅ    第四のＤＢ
１４ｆ    第五のＤＢ
１５      制御部
１５ａ    格納制御部
１５ｂ    第一の算出部
１５ｃ    第二の算出部
１５ｄ    格納部
１５ｅ    検知部
１５ｆ    報知制御部
【図１】
2013088565.tif 000003
【図２】
2013088565.tif 000004
【図３】
2013088565.tif 000005
【図４】
2013088565.tif 000006
【図５】
2013088565.tif 000007
【図６】
2013088565.tif 000008
【図７】
2013088565.tif 000009
【図８】
2013088565.tif 000010
【図９】
2013088565.tif 000011
【図１０】
2013088565.tif 000012
【図１１】
2013088565.tif 000013
【図１２】
2013088565.tif 000014
【図１３】
2013088565.tif 000015
【国際調査報告】
2013088565.tif 000016
2013088565.tif 000017