(57)【要約】      （修正有）【課題】障害の場所を予測する方法、システム及び装置を提供する。【解決手段】前処理段階２００は、各メッセージの分類を決定するためにメッセージ辞書１００を調べ、障害情報４４を抽出する２０４とともに、パターンを生成２０６する。学習段階２０８は、障害情報及びパターンを用いて各障害の可能性を計算し、パターン及びその関連する障害の可能性を、パターン辞書１０５に格納する。また、メッセージログ２８内の履歴メッセージを用いてテンプレートを生成し、テンプレートデータベース２１６に格納する。予測段階２１８は、一致を見付けるためにパターン及びパターン辞書を用い、予測障害メッセージを、パターンに関連するテンプレートを用いて予測し２２０、予測場所で予測した障害を警告するために、警告２２４を生成する。【選択図】図８
2015069643.tif 000002
【特許請求の範囲】
【請求項１】
障害を予測する方法であって、
受信した前記障害を記述するメッセージをメモリに格納するステップと、
プロセッサにより、前記メモリに格納された複数のメッセージに含まれるテキスト同士を比較して第1の障害より前に発生する前記テキスト内のパターンを決定するステップと、
受信したメッセージ内に前記パターンが含まれているか観察するステップと、
メモリに記憶された障害ごとに前記パターンを関連付けたテンプレートと受信したメッセージ内の前記パターンの観察に基づき、将来発生すると思われる障害を予測するステップと、
前記テンプレートに基づいて前記将来発生すると思われる障害の発生箇所を予測するステップと、
を有する方法。
【請求項２】
前記メモリに格納した複数のメッセージから所定の時間枠内に受信したメッセージのセットを読み出すステップと、
前記第1の障害を記述する前記メッセージのうちの１つを読み出すステップと、
前記メッセージのうちの前記１つのフィールド内のテキストを、前記メッセージのセットの対応するフィールド内のテキストと比較するステップと、
前記メッセージのうちの前記１つの前記フィールド内のテキストと、前記メッセージのセットの前記対応するフィールド内のテキストとの間の一致を決定するステップと、
前記一致に応答して、前記テンプレートを生成するステップと、
を更に有する請求項１に記載の方法。
【請求項３】
前記メッセージのうちの前記１つの前記フィールド内のテキストと、前記メッセージのセットの前記対応するフィールド内のテキストとが一致するとき、前記将来発生すると思われる障害の発生箇所を選択するステップ、を更に有する請求項２に記載の方法。
【請求項４】
前記メッセージを表にするステップ、を更に有する請求項１に記載の方法。
【請求項５】
前記テンプレートを四重の整数として生成するステップ、を更に有する請求項１に記載の方法。
【請求項６】
前記メッセージ内の位置に基づき、前記テンプレートを四重の整数として生成するステップ、を更に有する請求項１に記載の方法。
【請求項７】
前記将来の障害に関連する可能性を読み出すステップ、を更に有する請求項１に記載の方法。
【請求項８】
プロセッサと、
前記プロセッサに実行されると、動作を実行させる命令を格納するメモリと、
を有し、前記動作は、
受信した前記障害を記述するメッセージを前記メモリに格納するステップと、
前記プロセッサにより、前記メモリに格納された複数のメッセージに含まれるテキスト同士を比較して第1の障害より前に発生する前記テキスト内のパターンを決定するステップと、
受信したメッセージ内に前記パターンが含まれているか観察するステップと、
メモリに記憶された障害ごとに前記パターンを関連付けたテンプレートと受信したメッセージ内の前記パターンの観察に基づき、将来発生すると思われる障害を予測するステップと、
前記テンプレートに基づいて前記将来発生すると思われる障害の発生箇所を予測するステップと、
を有する、システム。
【請求項９】
前記動作は、
前記メモリに格納した複数のメッセージから所定の時間枠内に受信したメッセージのセットを読み出すステップと、
前記第1の障害を記述する前記メッセージのうちの１つを読み出すステップと、
前記メッセージのうちの前記１つのフィールド内のテキストを、前記メッセージのセットの対応するフィールド内のテキストと比較するステップと、
前記メッセージのうちの前記１つの前記フィールド内のテキストと、前記メッセージのセットの前記対応するフィールド内のテキストとの間の一致を決定するステップと、
前記一致に応答して、前記テンプレートを生成するステップと、
を更に有する、請求項８に記載のシステム。
【請求項１０】
前記動作は、
前記メッセージのうちの前記１つの前記フィールド内のテキストと、前記メッセージのセットの前記対応するフィールド内のテキストとが一致するとき、前記将来発生すると思われる障害の発生箇所を選択するステップ、を更に有する、請求項９に記載のシステム。
【請求項１１】
前記動作は、前記メッセージを表にするステップ、を更に有する、請求項８に記載のシステム。
【請求項１２】
前記動作は、
前記テンプレートを四重の整数として生成するステップ、を更に有する、請求項８に記載のシステム。
【請求項１３】
前記動作は、
前記メッセージ内の位置に基づき、前記テンプレートを四重の整数として生成するステップ、を更に有する、請求項８に記載のシステム。
【請求項１４】
前記動作は、
前記将来の障害に関連する可能性を読み出すステップ、を更に有する、請求項８に記載のシステム。
【請求項１５】
実行されると、プロセッサに動作を実行させる命令を格納するメモリであって、前記動作は、
受信した前記障害を記述するメッセージを前記メモリに格納するステップと、
前記プロセッサにより、前記メモリに格納された複数のメッセージに含まれるテキスト同士を比較して第1の障害より前に発生する前記テキスト内のパターンを決定するステップと、
受信したメッセージ内に前記パターンが含まれているか観察するステップと、
メモリに記憶された障害ごとに前記パターンを関連付けたテンプレートと受信したメッセージ内の前記パターンの観察に基づき、将来発生すると思われる障害を予測するステップと、
前記テンプレートに基づいて前記将来発生すると思われる障害の発生箇所を予測するステップと、
を有する、メモリ。
【請求項１６】
前記動作は、
前記メモリに格納した複数のメッセージから所定の時間枠内に受信したメッセージのセットを読み出すステップと、
前記第1の障害を記述する前記メッセージのうちの１つを読み出すステップと、
前記メッセージのうちの前記１つのフィールド内のテキストを、前記メッセージのセットの対応するフィールド内のテキストと比較するステップと、
前記メッセージのうちの前記１つの前記フィールド内のテキストと、前記メッセージのセットの前記対応するフィールド内のテキストとの間の一致を決定するステップと、
前記一致に応答して、前記テンプレートを生成するステップと、
を更に有する、請求項１５に記載のメモリ。
【請求項１７】
前記動作は、
前記メッセージのうちの前記１つの前記フィールド内のテキストと、前記メッセージのセットの前記対応するフィールド内のテキストとが一致するとき、前記将来発生すると思われる障害の発生箇所を選択するステップ、を更に有する、請求項１６に記載のメモリ。
【請求項１８】
前記動作は、前記メッセージを表にするステップ、を更に有する、請求項１５に記載のメモリ。
【請求項１９】
前記動作は、
前記テンプレートを四重の整数として生成するステップ、を更に有する、請求項１５に記載のメモリ。
【請求項２０】
前記動作は、
前記メッセージ内の位置に基づき、前記テンプレートを四重の整数として生成するステップ、を更に有する、請求項１５に記載のメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、障害の予測に関する。
【背景技術】
【０００２】
障害の予測は一般的である。プロセス又はシステムにおいて障害が生じる可能性があるときを予測するための多くの技術が知られている。しかしながら、複雑な環境では、障害の予測は不完全である。障害が生じると予測される場所が分からないと、障害の根本原因を決定しようとしてリソースが浪費される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
１つの側面では、本発明は、障害の場所を予測する方法、システム及び装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
一実施形態によると、障害を予測する方法であって、受信した前記障害を記述するメッセージをメモリに格納するステップと、プロセッサにより、前記メモリに格納された複数のメッセージに含まれるテキスト同士を比較して第1の障害より前に発生する前記テキスト内のパターンを決定するステップと、受信したメッセージ内に前記パターンが含まれているか観察するステップと、メモリに記憶された障害ごとに前記パターンを関連付けたテンプレートと受信したメッセージ内の前記パターンの観察に基づき、将来発生すると思われる障害を予測するステップと、前記テンプレートに基づいて前記将来発生すると思われる障害の発生箇所を予測するステップと、を有する方法が提供される。
【図面の簡単な説明】
【０００５】
例示的な実施形態の特徴、態様及び利点は、以下の詳細な説明を添付の図面を参照して読むと、より理解される。
【図１Ａ】例示的な実施形態が実施され得る環境を説明する簡略図である。
【図１Ｂ】例示的な実施形態が実施され得る環境を説明する簡略図である。
【図２】例示的な実施形態による、動作環境を説明するより詳細な図である。
【図３】例示的な実施形態による、障害メッセージを示す図である。
【図４】例示的な実施形態による、パターンを示す図である。
【図５】例示的な実施形態による、メッセージの分類を示す図である。
【図６】例示的な実施形態による、メッセージの表形式を示す図である。
【図７】例示的な実施形態による、テンプレートを生成するプログラムリストである。
【図８】例示的な実施形態による、障害の場所を予測する方法を説明するブロック図である。
【図９】例示的な実施形態による、実験結果を示す図である。
【図１０】例示的な実施形態による、実験結果を示す図である。
【図１１】例示的な実施形態による、プロセッサにより制御される装置を示す図である。
【図１２】例示的な実施形態の更なる態様の他の可能な動作環境を示す。
【発明を実施するための形態】
【０００６】
例示的な実施形態は、以下に添付の図面を参照してより完全に記載される。しかしながら、例示的な実施形態は、多くの異なる形式で実施されても良く、以下に説明する実施形態に限定されると見なされるべきではない。これらの実施形態は、本開示が詳細且つ完全になり、例示的な実施形態を当業者に完全に伝達するために提供される。さらに、本願明細書における実施形態及びそれらの特定の例を引用する全ての記載は、それらの構造的及び機能的等価物の両方を包含すると考えられる。さらに、このような等価物は、現在知られている等価物及び将来に開発される等価物（つまり如何なる開発される要素であって同一の機能を実行するもの）を構造に関係なく包含すると考えられる。
【０００７】
したがって、例えば、図、略図、説明図等は例示的な実施形態を説明する概念的観点又は処理を表すことが、当業者に理解される。図中に示した種々の要素の機能は、専用ハードウェア及び関連ソフトウェアを実行可能なハードウェアの使用を通じて提供されても良い。さらに、当業者は、本願明細書に記載の例示的なハードウェア、ソフトウェア、プロセス、方法、及び／又はオペレーティングシステムが説明を目的としており、したがって特定の名称の製造者に限定されないことを理解する。
【０００８】
本願明細書で用いられるように、単数形（ａ、ａｎ、ｔｈｅ）は、明示的に断らない限り、複数形も包含する。用語「有する」、「含む」及び／又は「備える」（includes、comprises、including、comprising）は、本願明細書で用いられるとき、記載される特徴、整数、ステップ、動作、要素、及び／又はコンポーネントの存在を指定するが、１又は複数の他の特徴、整数、ステップ、動作、要素、コンポーネント及び／又はそれらのグループの存在又は付加を排除しないことが理解される。要素が別の要素に「接続される（connected）」又は「結合される（coupled）」として表されるとき、該要素が他の要素に直接接続又は結合され得ること又は中間要素が存在し得ることが理解される。さらに、本願明細書で用いられる「接続される（connected）」又は「結合される（coupled）」は、無線で接続又は結合されることを含み得る。本願明細書で用いられるように、用語「及び／又は（and/or）」は、関連する列挙された項目のうちの１又は複数の任意の及び全ての組合せを包含する。
【０００９】
さらに理解されるべきことに、第１の、第２の等の用語は本願明細書で種々の要素を記述するために用いられるが、これらの要素は、これらの用語により限定されない。これらの用語は、ある要素を別の要素から区別するためにのみ用いられる。例えば、本開示の教示から逸脱することなく、第１の装置は第２の装置と命名でき、同様に第２の装置は第１の装置と命名できる。
【００１０】
図１Ａ、１Ｂは、例示的な実施形態が実施され得る環境を説明する簡略図である。図１Ａは、クラウドコンピューティング環境における障害の場所を予測するアーキテクチャを示す。サーバ２２は、１又は複数のメッセージ２６を、クラウドコンピューティングネットワーク２０内の１又は複数のソース装置２４から受信する。各メッセージ２６は、メッセージログ２８に記録されても良い。簡単のため、図１は、１つのメッセージ２６及び数個のソース装置２４のみを示す。しかしながら、実際には、サーバ２２は数千、数百万個のメッセージ２６を、クラウドコンピューティングネットワーク２０内の数百又は数千個ものコンポーネントから受信し得る。例えば、クラウドコンピューティングネットワーク２０は、数万台のソース装置２４を有し、特に、大規模クラウドデータセンタ内の多数のサーバ、スイッチ、及び記憶装置を検討する。クラウドコンピューティング環境では、クラウドプロバイダは、通常、数万台ものコンピュータ、スイッチ、記憶装置及び他のコンポーネントを有する１又は複数のデータセンタを有する。時間に渡り、サーバ２２は、数千個又は数百万個ものメッセージ２６を受信し得る。メッセージ２６は、分析のためにメッセージログ２８に全て記録されても良い。
【００１１】
例示的な実施形態は、クラウドコンピューティングネットワーク２０内の障害の根本原因を予測する。したがって、メッセージログ２８は、時間の経過と共に蓄積されるメッセージ２６の履歴データベース又はレポジトリを有する。サーバ２２は、メッセージログ２８に格納されたメッセージ２６を調べる予測アルゴリズム４０を実行する。予測アルゴリズム４０は、サーバ２２に、ネットワーク２０内の特定の過去の障害４４の前に発生する１又は複数のパターン４２を探すよう指示する。次に、サーバ２２は、同じパターン４２について同時期に起こったメッセージ２６を調べても良い。パターン４２が最近のメッセージ２６で多く認識される場合、サーバ２２は同じ障害４４を予測しても良い。つまり、サーバ２２は、同じパターン４２の発生に基づき、同じ障害４４が将来の特定の時間に生じるという障害予測４６を行う。
【００１２】
例示的な実施形態は、障害予測４６の場所４８も予測しても良い。サーバ２２がメッセージログ２８内のメッセージ２６のパターン４２を学習するので、サーバ２２は、どのノード又は装置が実際に故障するかも予測できる。つまり、パターン４２が同じ障害４４を予測するために用いられるので、サーバ２２は、どのノード装置（例えば、ホスト名及びＩＰアドレス）がネットワーク２０内で故障するかも予測できる。実際に、本開示が説明するように、例示的な実施形態は、予測障害メッセージ５０を生成しても良い。（メッセージログ２８内のメッセージ２６から学習した）パターン４２は、障害予測４６のためのテンプレート５２を生成するために用いられても良い。予測障害メッセージ５０は、予測した障害のノードの場所の記述を含んでも良い。したがって、例示的な実施形態はネットワーク２０内の将来の障害を予測するだけでなく、例示的な実施形態は、これらの予測した障害の場所も予測できる。したがって、管理者及び現地保守要員は、予測した障害に先手を打つよう警告されても良い。
【００１３】
図１Ｂは、例示的な実施形態が実施され得る代替の動作環境を示す。ここで、例示的な実施形態は、通信ネットワーク５６内の障害の場所を予測するために用いられても良い。通信ネットワーク５６は、数千ではないが数百個もの（ルータ、サーバ、スイッチ、ネットワーク回線、記憶装置、他のクライアントのような）ネットワークコンポーネント５７を有しても良い。通信ネットワーク５６は、ファイアウォール、ロードバランサ、ＮＡＴボックス、ＤＮＳサーバ、ＣＤＳ（Content  Distribution  Servers）、及び保護装置のような、機能を実行し及びサービスを提供するサーバを有しても良い。通信ネットワーク５６はクライアントをサーバに接続しても良く、通信ネットワーク５６は（ＶｏＩＰ（voice-over  Internet  Protocol）及びピアツーピア通信のように）クライアントをクライアントに接続しても良い。コンポーネント５７が何であろうと、コンポーネント５７は、それら個々のメッセージログ５８を、障害予測のためにサーバ２２へ送信しても良い。各メッセージログ５８は、中央メッセージログ２８にも格納されても良い。サーバ２２は、予測アルゴリズム４０を実行し、パターン４２を探す。パターン４２が最近のメッセージログ５８のうちの１つの中で認識された場合、サーバ２２は、ノード場所４８について、同じ障害４４を予測し、障害予測４６を生成しても良い。予測障害メッセージ５０は、予測した障害のノードの場所の記述を含んでも良い。したがって、管理者及び現地保守要員は、通信ネットワーク５６内の予測した障害に先手を打つよう警告されても良い。
【００１４】
例示的な実施形態は、任意のシステム又は産業に適用されても良い。図１Ａ及び１Ｂはクラウドベースのコンピューティング内の及び通信環境内の障害の場所予測を示すが、例示的な実施形態は、任意のソースからメッセージ及び／又はログを受信する任意のサーバに適用できる。例えば、例示的な実施形態は、製造プロセス、組み立てプロセス、塗装プロセス、機械加工プロセス、又は産業プロセスにおけるコンピュータ機器によりログを取られたメッセージに適用されても良い。例えば、予測アルゴリズム４０は、自動車組み立て工場、コンピュータ組み立て設備、及びコンポーネント組み立て工場内の障害の場所を予測しても良い。
【００１５】
図２は、例示的な実施形態による、動作環境を説明するより詳細な図である。サーバ２２は、プロセッサ６０（例えば、「μＰ」）、ＡＳＩＣ（application  specific  integrated  circuit）、又はメモリ６２に格納された予測アルゴリズム４０を実行する他のコンポーネントを有する。予測アルゴリズム４０は、プロセッサ６０に、グラフィカルユーザインタフェース（graphical  user  interface：GUI）６４を生成させても良い。グラフィカルユーザインタフェース６４は、ディスプレイ装置６６に視覚的に生成されるとして図示されるが、グラフィカルユーザインタフェース６４は、聴覚的特徴を有しても良い。しかしながら、予測アルゴリズム４０は、後述する任意のプロセッサにより制御される装置内で動作しても良い。
【００１６】
サーバ２０は、メッセージログ２８を問い合わせても良い。図２は、メッセージログ２８を、メモリ６２にローカルに格納されたデータベース又はレポジトリとして図示する。しかしながら、メッセージログ２８は、リモートに置かれネットワーク２０内の任意の場所からアクセスされても良い。メッセージログ２８に格納されたメッセージ２６（及び／又は図１Ｂに図示した個々のメッセージログ５８）は、任意のコンポーネントから送出された任意の情報であっても良い。
【００１７】
各メッセージ２６は入力されても良い。分類７０は、各メッセージ２６に追加されても良い。幾つかのメッセージは、構文的に同一でなくても良いが、メッセージ２６は（ディスク障害のような）同じ問題に関連する。任意のメッセージ２６は同じ障害４４に関連する場合、メッセージ２６は同じ種類として分類されても良い。
【００１８】
図３は、例示的な実施形態による、障害メッセージ２６のうちの１つを示す図である。各メッセージ２６は、メッセージログ（図１−２に参照符号２８で示す）内にイベントとして記録されても良い。さらに、各メッセージ２６は、種々のデータフィールド５４（例えば、タイムスタンプ、メッセージ２６の送信元、重要度、メッセージテキスト）を有しても良い。図３に示すように、各メッセージ２６は障害４４を示しても良い。障害４４は、配信サービスが正しいサービスから逸脱すると生じるイベントであっても良い。図３は、例として、メッセージ２６のフィールド５４内に重要度「ＥＲＲＯＲ」（参照符号８０で示す）を有する障害４４を示す。したがって、メッセージログ２８は、障害メッセージのみを格納し又は記録するよう構成されても良い。実際に、障害は、別個の事件データベースに記録されても良い。例示的な実施形態は、障害イベントを、重要度「ＥＲＲＯＲ」又は高を有する任意のメッセージ２６として定める。
【００１９】
図２に戻ると、例示的な実施形態は、メッセージウインドウ９０を用いても良い。メッセージウインドウ９０は、指定された時間枠内に含まれるメッセージログ２８に記録されたメッセージのセットを有する。例えば、例示的な実施形態は、過去５分以内に受信したメッセージ２６を読み出し分析しても良い。しかしながら、時間枠は、任意の時間長であっても良い。メッセージウインドウ９０の間に受信されたメッセージのセットは、障害を学習し予測する単位として用いられる。
【００２０】
予測アルゴリズム４０は、パターン４２を学習する。予測アルゴリズム４０は、プロセッサ６０に、メッセージウインドウ９０の間に受信したメッセージのセットを読み出し調べさせる。予測アルゴリズム４０は、異なるメッセージ２６間で一致するパターン４２について、メッセージのセットの中のフィールド５４を分析する。次に、メッセージパターン４２は、将来の障害の発生を予測するために用いられる。
【００２１】
予測アルゴリズム４０は、予測期間９２を有しても良い。予測期間９２は、メッセージパターン４２がタイムスタンプを付されてから実際の障害４４の発生までの時間期間である。
【００２２】
図４は、例示的な実施形態による、パターン４２を更に示す図である。パターン４２は、メッセージログ２８内のメッセージ２６から生成される。前述のように、各メッセージ２６は、分類７０をタイプされても良い。予測アルゴリズム４０は、各メッセージ２６内の１又は複数のフィールド５４を調べる。予測アルゴリズム４０は、フィールド５４内に含まれるメッセージテキストの１又は複数の類似性に基づきメッセージ２６を分類する。予測アルゴリズム４０は、各メッセージ２６が比較される基準テキストを有するメッセージ辞書１００を検索しても良い。したがって、予測アルゴリズム４０は、フィールド５４内のメッセージテキストを、メッセージ辞書１００内のエントリと比較しても良い。対応する分類フィールド７０に一致が割り当てられても良い。
【００２３】
障害情報が抽出されても良い。メッセージ２６が障害を意味する場合、予測アルゴリズム４０は、タイムスタンプ１０２及び分類フィールド７０をメッセージ２６から抽出しても良い。したがって、予測アルゴリズム４０は、（分類フィールド７０から）障害４４の種類及び障害４４に関連する時間を知る。この情報は、後に使用するために、障害情報テーブル１０４に記録されても良い。
【００２４】
次に、予測アルゴリズム４０は、パターン４２を生成する。所与の時間におけるメッセージパターン４２は、メッセージウインドウ９０内のメッセージ種類のセットである。この情報は、メッセージウインドウ９０のＩＤ及びタイムスタンプ１０２と共にメッセージ記録テーブルに記録される。メッセージパターン４２が記録されるとき、学習プロセス及び予測プロセスが起動される。したがって、予測アルゴリズム４０は、メッセージログ２８に記録されたメッセージ２６を、１又は複数のメッセージパターン４２に変換する。次に、メッセージパターン４２は、分析及び検索のためにパターン辞書１０５に格納されても良い。
【００２５】
予測アルゴリズム４０は、障害を予測する。メッセージ辞書１００は知られている障害の基準テキストを有するので、知られている障害は対応する知られている障害の可能性１０６に関連付けられる。つまり、障害４４が分かると、同じ障害４４が再び生じる可能性が決定でき、パターン辞書１０５に格納されても良い。予測アルゴリズム４０は、メッセージウインドウ９０内で受信したメッセージ２６をメッセージ辞書１００と比較し、対応する分類７０との一致を割り当てる。次に、予測アルゴリズム４０は、パターン辞書１０５に問い合わせ、障害の対応する可能性１０６を検索しても良い。予測アルゴリズム４０は、学習した可能性を用いて、各障害種類について可能性１０６を決定する。可能性が閾より高い１又は複数の障害種類が存在する場合、予測アルゴリズム４０は、（所与の種類の）障害が生じ得ると予測する。
【００２６】
予測アルゴリズム４０は、予測した障害の場所４８も識別しても良い。予測アルゴリズム４０は、メッセージ種類内の重要な可変フィールド５４（例えば、ＩＰアドレス、ノード名）を識別しても良い。メッセージウインドウ９０内で生じるメッセージ２６は、障害メッセージ内の重要なフィールドの値と一致するメッセージ種類及びフィールド番号について解析されても良い。記録されたペア（メッセージ種類、フィールド）が与えられると、予測アルゴリズム４０は、履歴データを用いて、該ペアが障害メッセージ内の正しい値を予測する精度を計算しても良い。実行中、予測アルゴリズム４０は、記録されたペアを用いて、重要な可変フィールドを予測しても良い。
【００２７】
したがって、例示的な実施形態は、テンプレートに基づく障害予測を用いる。予測アルゴリズム４０は、メッセージウインドウ９０内のメッセージ２６内のフィールド５４が予測障害メッセージ５０内のワードを推定するためにどのように用いられ得るかを示すテンプレート５２を学習する。例えば、これらのテンプレート５２は、ディスク障害が生じることだけでなく、ディスク障害がノード１、ノード２又はノード３における障害を示すことを予測することを可能にする。予測アルゴリズム４０が将来の障害４４の予測に成功した場合、予測アルゴリズム４０は、メッセージウインドウ９０内のメッセージフィールド５４間の関係のパターン４２を用いて、実際の障害メッセージのフィールド５４を予測できる。例えば、メッセージウインドウ９０内の特定のメッセージ種類内のフィールドは、実際の障害メッセージ内の場所フィールドと同じ場合が多い。したがって、テンプレート５２は、予測障害メッセージ５０内の各ワードを推定しても良い。例えば、テンプレートＴは、以下の用に四重の整数であっても良い。Ｔ＝｛ｔｙｐｅｔ，ｐｏｓｔ，ｔｙｐｅｓ，ｐｏｓｓ｝ここで、ｔｙｐｅｔはターゲットメッセージのメッセージ種類であり、ｐｏｓｔはターゲットメッセージ内のワードの位置であり、ｔｙｐｅｓはソースメッセージのメッセージ種類であり、ｐｏｓｓはソースメッセージ内のワードの位置である。ターゲットメッセージは、予測される予測障害メッセージ５０であり、ソースメッセージは、メッセージウインドウ９０内のメッセージ２６である。
【００２８】
図５は、例示的な実施形態による、メッセージ２６の分類を更に示す図である。図５は、予測期間９２の間のメッセージのセットを示す。予測アルゴリズム４０は、（メッセージログ２８に格納された）実際の障害メッセージ２６及び異なるメッセージフィールド５４の値（例えば、障害が生じたホスト名）を知る。ｆｌにより、実際の障害メッセージ２６を示す。種類ｆｌの障害メッセージが与えられると、例示的な実施形態は、履歴データ内でこの障害種類の全ての発生を識別しても良い。例示的な実施形態は、予測期間及び対応する予測も識別しても良い。Ｏｆによりこれらの予測のセットを表し、Ｍｆ（参照符号１１０として示す）は、空集合に初期化されるメッセージのセットである。図５に示すように、Ｏｆ内の各々の予測ｐについて、ｐのメッセージウインドウ９０の中の各々のメッセージ２６は、メッセージログ２８から読み出され、Ｍｆに追加される。メッセージウインドウの期間ｄｗ（参照符号９０として示す）、及び予測期間ｄｐ（参照符号９２として示す）は、予め定められても良い。図５に示す集合Ｍｓ（参照符号１１２として示す）は、メッセージウインドウ９０の外側で生じるメッセージを表す。簡単のため、予測アルゴリズム４０は、メッセージウインドウ９０の外側で生じるメッセージを無視する。
【００２９】
図６は、例示的な実施形態による、メッセージ２６の表形式１２０を示す図である。予測アルゴリズム４０は、ｆｌの表形式及び（図５に示した）Ｍｆ内の各メッセージを生成しても良い。（メッセージソースのような）メッセージ２６からの固定されたメッセージフィールド５４の後に、解析されるメッセージテキストを有する可変数のフィールドが続く。各メッセージ２６は、各フィールド５４が位置番号１２２及び値１２４を有する可変数のフィールドを有するレコードとして表せる。メッセージテキストは、空白又はコンマのような区切り文字の所定のリストを用いて解析される。
【００３０】
図７は、例示的な実施形態による、テンプレート５２を生成するサブアルゴリズムのためのプログラムリストである。（図６に示した）メッセージの表形式１２０が与えられると、予測アルゴリズム４０は、１又は複数のテンプレート５２を生成しても良い。予測アルゴリズム４０は、ターゲットメッセージとソースメッセージとの間のワードを照合しても良い。ターゲットメッセージはｆｌであり、Ｍｆ内の各メッセージは、ソースメッセージ（場合によっては一度に解析される１つのメッセージ）であっても良い。ソースメッセージ及びターゲットメッセージ内の各ワード対について、予測アルゴリズム４０は、２つのワードが等しいかどうかを比較し決定しても良い。一致が見付かった場合、予測アルゴリズム４０は、サブアルゴリズム４０に従って、メッセージ種類及び一致するフィールドの位置を指定するテンプレート５２を記録しても良い。
【００３１】
図５、６を参照すると、予測アルゴリズム４０は、実際の障害メッセージを予測する。実行中、予測段階の間、予測アルゴリズム４０は、将来の障害の種類だけでなく、対応する予測した障害メッセージ５０の少なくとも重要な部分も予測する。例えば、予測アルゴリズム４０は、予測したノード障害に関連するノード名、ホスト名及び／又はＩＰアドレスを予測する。予測アルゴリズム４０がｔｙｐｅｎの障害を予測する場合、予測アルゴリズム４０は、現在のメッセージウインドウ９０内のメッセージのセット及び所与の障害ｔｙｐｅｎのテンプレートＴにアクセスしても良い。予測のメッセージウインドウ９０内の各メッセージについて、予測アルゴリズム４０は、テンプレートデータベースに問い合わせても良い。予測アルゴリズム４０は、テンプレートデータベース内のメッセージの種類（例えば、ｔｙｐｅｓ）及びｔｙｐｅｎの障害について問い合わせる。このようなテンプレートが存在する場合、予測アルゴリズム４０は、ソースメッセージの位置ｐｏｓｓにあるワードを選択肢、予測ターゲットメッセージの位置ｐｏｓｔにあるフィールドを予測する。
【００３２】
図８は、例示的な実施形態による、障害の場所を予測する方法を説明するブロック図である。前処理段階（ブロック２００）は、各メッセージの分類７０を決定するためにメッセージ辞書１００を調べる（ブロック２０２）。障害情報は抽出され（ブロック２０４）、パターン４２が生成される（ブロック２０６）。障害情報及びパターン４２は、各障害の可能性１０６を計算するために（ブロック２１０）、学習段階（ブロック２０８）により用いられる。パターン４２及びその関連する障害の可能性１０６は、パターン辞書１０５に格納される。メッセージログ２８内の履歴メッセージは、テンプレート５２を生成するために用いられ（ブロック２１４）、テンプレート５２はテンプレートデータベースに格納される（ブロック２１６）。予測段階（ブロック２１８）は、一致を見付けるためにパターン４２及びパターン辞書を用いる（ブロック２２０）。次に、予測障害メッセージ５０は、パターン４２に関連するテンプレート５２を用いて予測される（ブロック２２２）。次に、予測場所で予測した障害を警告するために、警告が生成される（ブロック２２４）。
【００３３】
例示的な実施形態は、実験的に評価された。予測アルゴリズム４０の試行バージョンは、１６ＧＢのメモリを備えた４コアＩＮＴＥＬ（登録商標）ＣＯＲＥ（登録商標）ｉ７−２６００（＠３．４ＧＨｚ）コンピュータにより実行された。知られているデータセットが、数百台もの物理的サーバを有するクラウドシステムから用いられた。参照することにより全体が本願明細書に組み込まれる文献Y.  Watanabe,  H.  Otsuka,  M.  Sonoda,  S.  Kikuchi,Y.  Matsumoto,  Online  Failure  Prediction  in  Cloud  Datacenters  by  Real-time  Message  Pattern  Learning,  IEEE  ４th  International  Conference  on  Cloud  Computing  Technology  and  Science(CloudCom),  ５０４-５１１(December  ３-６,  ２０１２)を参照のこと。９０日の期間で、９百万通を超える（９,４４９,５９５通）メッセージ２６が受信された。このうち１１２通が障害であった。障害予測に用いられた構成パラメータを以下の表に示す。（図８に示すように）学習段階及び予測段階に、同じデータセットが用いられた。
［表１］構成パラメータ
【表１】
2015069643.tif 000003
【００３４】
精度も評価された。実験は、実際の障害メッセージの中の１つの特定のフィールド（例えば、ノード名）に焦点を当てた。障害の場所４８は、ノード名により示され、トラブルシューティングのためだけでなく、障害が実際に生じる前に実行される自動障害補償措置にとっても、通常、非常に重要である。正確さは障害予測評価のために広く用いられるメトリックなので、精度の指標として正確さが用いられた。正確さは、正しい障害メッセージ種類及び場所を有する予測の数を、正しい障害メッセージ種類を有する予測の数で除算した比として場所について定められた。具体的には、正確さは次式のように定められた。
【数１】
2015069643.tif 000004
ここで、Ｆは全障害発生の集合であり、Ｄは全予測の集合であり、ｔ（・）は障害／予測の種類であり、ｔｍ（・）は障害／予測の時間であり、Ｗ（ｄ）は予測の中で予測された場所の集合であり、ｌｏｃ（ｆｌ）はｆｌの場所フィールドである。
【００３５】
この評価は、（障害の種類の）障害予測が正しい場合のみを考慮する。実際に生じない障害についての場所予測の正確さを定めることは意味が無いので、障害の発生が予測されなかった場合の場所予測を評価する試みは行われなかった。
【００３６】
テンプレートに基づく予測は成功した。位置１（ノード名）の正確さは８１．０７％だった。結果は、例示的な実施形態が高い正確さで障害を予測し場所を特定できることを示した。実験は、５分のメッセージウインドウ９０のみを用いて、ワード、本例ではノード名、を探した。表２（以下に示す）は、障害種類による場所の正確さを示す。論理的上限の列は、メッセージウインドウ９０内の全てのメッセージ２６を見て、正しい障害場所を含むフィールド５４があるかを決定することにより、計算された。テンプレート５２は、正しい場所がメッセージウインドウ９０内の少なくとも１つのメッセージに含まれる場合にのみ正しい場所を提供できるので、これは、アプローチが達成できる論理的上限を提供する。これらの値の多くが１に近いという事実は、単にメッセージログを用いた場所予測が実現可能なことを示す。
【００３７】
表２に示すように、正確さは障害種類の間で大きく変化した。正確さは、特定の障害種類では非常に高かった。これは、例示的な実施形態が直ぐに使用可能な障害種類及び場所予測情報を、これらの障害種類のオペレータに提供できることを示す。
［表２］障害種類による正確さ
【表２】
2015069643.tif 000005
【００３８】
図９は、例示的な実施形態による、例示的な閾違反障害を示す図である。図９は、「Ｔｙｐｅ３０」障害を示す。この種類に関して、特定の障害メッセージ（ｔｙｐｅ３９）が事前に生じる。予測アルゴリズム４０は、（上述のように）この関係を学習した。これらの障害は、予測障害に直接又は間接的に関連する。したがって、予測アルゴリズム４０は、これらの障害メッセージからの場所情報の位置からテキストを得ても良い。
【００３９】
しかしながら、図１０は、場所予測のない図である。図１０は、予測アルゴリズム４０が障害を正確に予測したが、障害の場所は予測されなかった状況を示す。ノード停止エラー障害は、同じハードウェアにある別のノード停止エラーの予測障害を用いることにより予測に成功した。これらのメッセージは予測障害のネットワークインタフェースのような情報を含むが、メッセージは、第２の障害の場所情報を常に含むわけではない。特定の例では、障害種類４９４と同様に、上限はゼロに近い。これらの例では、予測のメッセージウインドウ９０内で場所情報を見付けることはできない。
【００４０】
したがって、例示的な実施形態は、高い正確さで障害のノード場所を予測し得る。例示的な実施形態は、その唯一の入力として、一般に利用可能なメッセージログを用いても良い。例示的な実施形態は、障害発生予測及び場所予測を、１つのアルゴリズム／システムに結合し、それらを同時に実行する。試験は、システムが予測障害場所を正確に示すのに高い正確さ（データセットを有し８１％）を達成でき、したがって、システムオペレータ及び自動システムに直ぐに使用可能な情報を提供できることを示す。例示的な実施形態は、履歴データから障害のテンプレートを自動的に学習する。
【００４１】
図１１は、更なる例示的な実施形態を示す図である。図１１は、プロセッサにより制御される装置３００内で動作する予測アルゴリズム４０を示す全体的ブロック図である。上述のように、予測アルゴリズム４０は、プロセッサにより制御される装置３００内で動作し得る。図１１は、プロセッサにより制御される装置３００のメモリサブシステムに格納された予測アルゴリズム４０を示す。１又は複数のプロセッサは、メモリサブシステムと通信し、予測アルゴリズム４０を実行する。図１１に示したプロセッサにより制御される装置３００は、当業者によく知られているので、詳細な説明は必要ない。
【００４２】
図１２は、例示的な実施形態の更なる態様の他の可能な動作環境を示す。図１２は、種々の他の装置４００内で動作する予測アルゴリズム４０を示す。例えば、図１２は、予測アルゴリズム４０が、セットトップボックス（ＳＴＢ）４０２、パーソナル／デジタルビデオレコーダ（ＰＶＲ／ＤＶＲ）４０４、スマートフォン４０６、ＧＰＳ（Global  Positioning  System）装置４０８、インタラクティブテレビ４１０、タブレットコンピュータ４１２、又は任意のコンピュータシステム、通信装置若しくはプロセッサ５０及び／又はデジタル信号プロセッサ（ＤＰ／ＤＳＰ）４１４を用いるプロセッサにより制御される装置内で全体又は部分的に動作し得ることを示す。装置４００は、時計、無線機、車載電子機器、クロック、プリンタ、ゲートウェイ、モバイル／埋め込み可能医療装置、及び他の装置及びシステムも含んでも良い。種々の装置４００のアーキテクチャ及び動作原理はよく知られているので、種々の装置４００のハードウェア及びソフトウェアは、更に示され記載されない。
【００４３】
例示的な実施形態は、コンピュータ可読記憶媒体に又はその中に物理的に具現されても良い。このコンピュータ可読媒体は、ＣＤ−ＲＯＭ、ＤＶＤ、テープ、カセット、フロッピー(登録商標)ディスク、メモリカード、大容量ディスクを有しても良い。１又は複数のコンピュータ可読媒体は、末端加入者、ライセンシー、及び受託者に分配され得る。これらの種類のコンピュータ可読媒体、及び他の種類は、ここに言及されないが、例示的な実施形態の範囲内に包含されると考えられる。コンピュータプログラムは、上述のように障害の場所を予測するための、プロセッサにより実行可能な命令を有する。
【００４４】
例示的な実施形態は種々の特徴、態様及び実施形態に関して記載されたが、当業者は、例示的な実施形態がそれらに限定されないことを認識する。他の変形、変更、及び代替の実施形態は、例示的な実施形態の精神及び範囲から逸脱することなく行われ得る。
【００４５】
本願明細書の開示の一部及び添付書類は、著作権を保護される内容を含む。著作権所有者は、特許及び商標当局の特許書類又は記録に現れるとき、任意の人による特許文書又は特許開示の複製に対して異議を有しないが、その他のいかなる著作権に係る全ての権利を留保する。
【符号の説明】
【００４６】
２０  クラウドコンピューティング環境
２２  サーバ
２４  ソース装置
２６  メッセージ
２８  メッセージログ
４０  予測アルゴリズム
４２  パターン
４４  障害
４６  障害予測
４８  場所
５０  予測障害メッセージ
５２  テンプレート
５４  フィールド
５６  通信ネットワーク
５７  クライアント、スイッチ、記憶装置、ルータ、サーバ
５８  メッセージログ
６６  ディスプレイ装置
７０  分類
９０  メッセージウインドウ
９２  予測期間
【図１Ａ】
2015069643.tif 000006
【図１Ｂ】
2015069643.tif 000007
【図２】
2015069643.tif 000008
【図３】
2015069643.tif 000009
【図４】
2015069643.tif 000010
【図５】
2015069643.tif 000011
【図６】
2015069643.tif 000012
【図７】
2015069643.tif 000013
【図８】
2015069643.tif 000014
【図９】
2015069643.tif 000015
【図１０】
2015069643.tif 000016
【図１１】
2015069643.tif 000017
【図１２】
2015069643.tif 000018