(57)【要約】【課題】出現頻度の低いエラーメッセージを有効利用したインシデント検索を実行することを課題とする。【解決手段】情報処理装置は、過去に発生したメッセージ群に含まれる各メッセージの出現頻度に基づいて、頻出メッセージ群を生成する。情報処理装置は、エラーメッセージの発生に応じて、蓄積されるメッセージ群の中からエラーメッセージの前後所定時間分のメッセージ群をエラー周辺ログとして抽出する。情報処理装置は、エラー周辺ログと頻出メッセージ群の関連度合に基づいて、エラーメッセージが頻出メッセージ群に含まれるか否かを判定する。情報処理装置は、判定結果に応じて、頻出メッセージ群、または、エラー周辺ログのうち頻出メッセージ群に含まれないメッセージを、エラーメッセージに関連付けられる関連メッセージとして出力する。【選択図】図２
2020149250.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
過去に発生したメッセージ群に含まれる各メッセージの出現頻度に基づいて、頻出メッセージ群を生成し、
エラーメッセージの発生に応じて、蓄積されるメッセージ群の中から前記エラーメッセージの前後所定時間分のメッセージ群をエラー周辺ログとして抽出し、
前記エラー周辺ログと前記頻出メッセージ群の関連度合に基づいて、前記エラーメッセージが前記頻出メッセージ群に含まれるか否かを判定し、
判定結果に応じて、前記頻出メッセージ群、または、前記エラー周辺ログのうち前記頻出メッセージ群に含まれないメッセージを、前記エラーメッセージに関連付けられる関連メッセージとして出力する
処理を実行させることを特徴とする出力プログラム。
【請求項２】
前記エラー周辺ログのうち前記頻出メッセージ群では表現できないメッセージ群を、前記エラー周辺ログのうち前記頻出メッセージ群に含まれないメッセージであるアノマリメッセージ群として抽出する処理を前記コンピュータに実行させ、
前記出力する処理は、前記エラーメッセージが前記頻出メッセージ群に含まれる場合、前記頻出メッセージ群を前記関連メッセージとして出力し、前記エラーメッセージが前記頻出メッセージ群に含まれない場合、前記アノマリメッセージ群を前記関連メッセージとして出力することを特徴とする請求項１に記載の出力プログラム。
【請求項３】
前記生成する処理は、前記過去に発生したメッセージ群である観測メッセージ群に含まれる各メッセージを形式ごとに分類し、分類した各メッセージの形式の出現回数を集計して、観測データ行列を生成し、前記観測データ行列から前記頻出メッセージ群を生成することを特徴とする請求項２に記載の出力プログラム。
【請求項４】
前記抽出する処理は、前記観測メッセージ群に含まれる各メッセージの形式ごとに前記エラー周辺ログを分類し、分類した各メッセージ形式の出現回数を集計して、エラー周辺用の観測データ行列を生成し、
前記判定する処理は、前記エラー周辺用の観測データ行列に含まれる前記頻出メッセージ群を抽出するとともに、前記エラー周辺用の観測データ行列から前記頻出メッセージ群を除く前記アノマリメッセージ群を抽出し、前記エラーメッセージが発生した時間帯に前記頻出メッセージ群が発生しているかを判定することを特徴とする請求項３に記載の出力プログラム。
【請求項５】
前記出力する処理は、前記エラーメッセージが発生した時間帯に前記頻出メッセージ群が発生している場合、前記頻出メッセージ群を前記関連メッセージとして出力し、前記エラーメッセージが発生した時間帯に前記頻出メッセージ群が発生していない場合、前記アノマリメッセージ群を前記関連メッセージとして出力することを特徴とする請求項４に記載の出力プログラム。
【請求項６】
コンピュータが、
過去に発生したメッセージ群に含まれる各メッセージの出現頻度に基づいて、頻出メッセージ群を生成し、
エラーメッセージの発生に応じて、蓄積されるメッセージ群の中から前記エラーメッセージの前後所定時間分のメッセージ群をエラー周辺ログとして抽出し、
前記エラー周辺ログと前記頻出メッセージ群の関連度合に基づいて、前記エラーメッセージが前記頻出メッセージ群に含まれるか否かを判定し、
判定結果に応じて、前記頻出メッセージ群、または、前記エラー周辺ログのうち前記頻出メッセージ群に含まれないメッセージを、前記エラーメッセージに関連付けられる関連メッセージとして出力する
処理を実行することを特徴とする出力方法。
【請求項７】
過去に発生したメッセージ群に含まれる各メッセージの出現頻度に基づいて、頻出メッセージ群を生成する生成部と、
エラーメッセージの発生に応じて、蓄積されるメッセージ群の中から前記エラーメッセージの前後所定時間分のメッセージ群をエラー周辺ログとして抽出する抽出部と、
前記エラー周辺ログと前記頻出メッセージ群の関連度合に基づいて、前記エラーメッセージが前記頻出メッセージ群に含まれるか否かを判定する判定部と、
判定結果に応じて、前記頻出メッセージ群、または、前記エラー周辺ログのうち前記頻出メッセージ群に含まれないメッセージを、前記エラーメッセージに関連付けられる関連メッセージとして出力する出力部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力プログラム、出力方法および情報処理装置に関する。
【背景技術】
【０００２】
ＩＣＴ（Information  and  Communication  Technology）システムにおけるインシデント対応では、インシデント発生時に過去に発生済みであるか否かを判別する既知障害判別を実行し、発生していれば過去の対処方法などの再利用が行われる。
【０００３】
この既知障害判別は、過去のインシデント対応記録を保持した障害事例ＤＢを検索することで行われる。その際、インシデントの端緒となったエラーメッセージをキーワードとして検索することが多いが、端緒となったエラーメッセージのみによる障害事例ＤＢの検索では、エラーメッセージの内容は同一であるが、原因や対策が異なる事象が誤って検索される場合がある。このため、近年では、対象のエラーメッセージと過去に頻繁に一緒に出現した頻出メッセージ群を特定しておき、頻出メッセージ群をインシデントの検索に利用することで、誤検索を抑制する技術が利用されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−４３４６号公報
【特許文献２】特開２０１７−７２８８２号公報
【非特許文献】
【０００５】
【非特許文献１】Y．Watanabe，H．Otsuka，M．Sonoda，S．Kikuchi  and  Y．Matsumoto，“Online  failure  prediction  in  cloud  datacenters  by  real-time  message  pattern  learning”，4th  IEEE  International  Conference  on  Cloud  Computing  Technology  and  Science  Proceedings，Taipei，2012，pp.504-511.
【非特許文献２】東羅翔太郎，豊田真智子，中村吉孝，“Convolutive  NMFにおける時間フレームの間隔変化に関する一考察”，NTTソフトウェアイノベーションセンタ，DEIM  Forum  2015  F8−1．
【非特許文献３】Wang，Wenwu  and  Cichocki，Andrzej  and  Chambers，Jonathon  A，“A  multiplicative  algorithm  for  convolutive  non-negative  matrix  factorization  based  on  squared  Euclidean  distance”，IEEE  Transactions  on  Signal  Processing，vol57，No.7，p2858-2864，2009．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記技術では、頻出メッセージ群に含まれない、新規のエラーメッセージや出現頻度の低いエラーメッセージをインシデント検索に利用できないので、有効な対処方法が検索できるとは言い難い。
【０００７】
一つの側面では、出現頻度の低いエラーメッセージを有効利用したインシデント検索を実行することができる出力プログラム、出力方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の案では、出力プログラムは、コンピュータに、過去に発生したメッセージ群に含まれる各メッセージの出現頻度に基づいて、頻出メッセージ群を生成する処理を実行させる。出力プログラムは、コンピュータに、エラーメッセージの発生に応じて、蓄積されるメッセージ群の中から前記エラーメッセージの前後所定時間分のメッセージ群をエラー周辺ログとして抽出する処理を実行させる。出力プログラムは、コンピュータに、前記エラー周辺ログと前記頻出メッセージ群の関連度合に基づいて、前記エラーメッセージが前記頻出メッセージ群に含まれるか否かを判定する処理を実行させる。出力プログラムは、コンピュータに、判定結果に応じて、前記頻出メッセージ群、または、前記エラー周辺ログのうち前記頻出メッセージ群に含まれないメッセージを、前記エラーメッセージに関連付けられる関連メッセージとして出力する処理を実行させる。
【発明の効果】
【０００９】
一実施形態によれば、出現頻度の低いエラーメッセージを有効利用したインシデント検索を実行することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１にかかるインシデント検索システムの全体構成を説明する図である。
【図２】図２は、実施例１にかかる情報処理装置によるインシデント検索を説明する図である。
【図３】図３は、実施例１にかかる情報処理装置の機能構成を示す機能ブロック図である。
【図４】図４は、障害事例ＤＢに記憶される情報の例を示す図である。
【図５】図５は、利用するログメッセージを説明する図である。
【図６】図６は、学習手法を説明する図である。
【図７】図７は、学習手法の定義一覧を示す図である。
【図８】図８は、学習用ログの分類結果を示す図である。
【図９】図９は、観測データ行列の作成を説明する図である。
【図１０】図１０は、頻出メッセージ群の学習結果を示す図である。
【図１１】図１１は、エラー周辺ログの抽出を説明する図である。
【図１２】図１２は、エラー周辺ログに対する観測データ行列を説明する図である。
【図１３】図１３は、重み係数行列の算出結果の例を示す図である。
【図１４】図１４は、アノマリメッセージ群の抽出を説明する図である。
【図１５】図１５は、メッセージの判別を説明する図である。
【図１６】図１６は、関連メッセージ群を説明する図である。
【図１７】図１７は、学習フェーズの処理の流れを示すフローチャートである。
【図１８】図１８は、抽出フェーズの処理の流れを示すフローチャートである。
【図１９】図１９は、多点障害の問題点を説明する図である。
【図２０】図２０は、実施例２にかかる学習用ログの分類結果を示す図である。
【図２１】図２１は、実施例２にかかる観測データ行列の作成を説明する図である。
【図２２】図２２は、実施例２にかかる頻出メッセージ群の学習結果を説明する図である。
【図２３】図２３は、実施例２にかかるエラー周辺ログの抽出を説明する図である。
【図２４】図２４は、実施例２にかかるエラー周辺ログに対する観測データ行列を説明する図である。
【図２５】図２５は、実施例２にかかる重み係数行列の算出結果の例を示す図である。
【図２６】図２６は、実施例２にかかるアノマリメッセージ群の抽出を説明する図である。
【図２７】図２７は、実施例２にかかるメッセージの判別例１を説明する図である。
【図２８】図２８は、実施例２にかかるメッセージの判別例２を説明する図である。
【図２９】図２９は、実施例２にかかる出力結果を説明する図である。
【図３０】図３０は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する出力プログラム、出力方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１２】
［全体構成］
図１は、実施例１にかかるインシデント検索システムの全体構成を説明する図である。図１に示すように、このシステムは、情報処理装置１０と複数のユーザ端末５０とがネットワークＮを介して相互に通信可能に接続される。なお、ネットワークＮには、有線や無線を問わず、インターネットや専用線などの各種通信網を採用することができる。
【００１３】
情報処理装置１０は、過去のインシデント対応記録を保持した障害事例ＤＢを保持し、各ユーザ端末からの検索要求に応じて、過去の対処内容を応答するコンピュータ装置の一例である。
【００１４】
各ユーザ端末５０は、システム管理者などが利用するコンピュータ装置の一例であり、システム障害などの発生時に、エラーメッセージなどを検索条件とする検索要求を情報処理装置１０に送信する。そして、各ユーザ端末５０は、検索要求に対応する対処内容を取得する。このようにして、システム管理者は、障害発生時に、過去に対応された対処内容を取得して、障害対応を行う。
【００１５】
このような情報処理装置１０が、各ユーザ端末５０から検索要求に応じて実行するインシデント検索について説明する。図２は、実施例１にかかる情報処理装置１０によるインシデント検索を説明する図である。図２に示すように、情報処理装置１０は、対象システムのログメッセージ（以下では単に「ログ」と記載する場合がある）を出力順の時系列で収集する。
【００１６】
そして、情報処理装置１０は、システム障害「〇〇サービスでエラー」が発生すると、システム障害の端緒となったエラーメッセージである端緒エラーメッセージを特定する。すると、情報処理装置１０は、端緒エラーメッセージの発生前後から、端緒エラーメッセージ周辺の関連メッセージを自動的に選別して収集する。そして、情報処理装置１０は、関連メッセージを特徴量として、システム障害「〇〇サービスでエラー」に対応付けることでインシデントの特徴づけを行い、障害事例の事例照合に利用する。
【００１７】
ここで、情報処理装置１０は、全ログメッセージをよく一緒に出現する頻出メッセージ群と、これまで出現頻度の低いアノマリメッセージ群とに分解する。なお、頻出メッセージの例としては、定期サーバの再起動や定期バックアップなどである。そして、情報処理装置１０は、エラーを含むメッセージ群を関連メッセージ群として抽出する。具体的には、過去に頻繁に発生しているエラーは、頻出メッセージ群に含まれ、新規または頻繁ではないエラーは、アノマリメッセージ群に含まれることとなる。
【００１８】
つまり、情報処理装置１０は、発生頻度が少ないエラーであっても、当該エラーに関連する関連メッセージ群を生成して、当該エラーの特徴量として管理することができる。この結果、情報処理装置１０は、アノマリメッセージ群に該当するログもインシデント検索に利用することができるので、出現頻度の低いエラーメッセージを有効利用したインシデント検索を実行することができる。
【００１９】
［機能構成］
図３は、実施例１にかかる情報処理装置１０の機能構成を示す機能ブロック図である。図３に示すように、情報処理装置１０は、通信部１１、記憶部１２、制御部２０を有する。
【００２０】
通信部１１は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部１１は、対象システムのログメッセージの一覧を受信し、ユーザ端末５０から各種要求やデータを受信し、ユーザ端末５０に各種情報などを送信する。
【００２１】
記憶部１２は、データや制御部２０が実行する各種プログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部１２は、障害事例ＤＢ１３を記憶する。
【００２２】
障害事例ＤＢ１３は、過去のインシデント対応記録を記憶するデータベースである。具体的には、障害事例ＤＢ１３は、障害発生時の対処内容を記憶する。図４は、障害事例ＤＢ１３に記憶される情報の例を示す図である。図４に示すように、障害事例ＤＢ１３は、「メッセージ群、対処方法」を対応付けて記憶する。
【００２３】
ここで記憶される「メッセージ群」は、障害発生時に出力されたメッセージを示し、「対処方法」は、障害に対して実行された対処内容を示す。図４の例では、「〇〇でエラー」と「××サービス停止」のメッセージが両方出力されたときの障害に対して、「再起動後に××サービス起動」の対処が行われたことを示す。なお、障害事例ＤＢ１３が記憶する情報は、障害内容などをさらに対応付けることもでき、任意に変更することができる。また、ここで記憶される情報は、管理者などが格納することもでき、公知の手法を用いて情報処理装置１０が自動で生成することもできる。
【００２４】
制御部２０は、情報処理装置１０全体を司る処理部であり、例えばプロセッサなどである。この制御部２０は、学習処理部３０、抽出処理部４０を有する。なお、学習処理部３０、抽出処理部４０は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【００２５】
ここで、学習処理部３０や抽出処理部４０で利用するログメッセージについて説明する。図５は、利用するログメッセージを説明する図である。図５に示すように、出力順に時系列で保存されるログメッセージにおいて、学習処理部３０は、エラー発生前の一定期間のログを学習用ログとして利用する。また、抽出処理部４０は、学習用ログとは異なり、エラーメッセージを含むエラーメッセージ周辺時刻のログを、エラー周辺ログとして利用する。
【００２６】
また、本実施例では、例えば「NTTソフトウェアイノベーションセンタ,  Convolutive  NMFにおける時間フレームの間隔変化に関する一考察,  DEIM2015」に示されるように、ＮＭＦ（Non-negative  Matrix  Factorization）を拡張した畳込み非負値行列因子分解（ＣＮＭＦ）を利用することができる。図６は、学習手法を説明する図である。図６に示すように、本実施例では、問題を行列分解として定式化し、頻出メッセージ群を基底として抽出する。例えば、観測データ行列の時間枠において、各ログ（Ｌ１〜ＬＮ）の出現数を計数する。そして、観測データ行列から基底行列を抽出する際に、基底行列に幅Ｔを持たせるように処理して、頻出メッセージ群を基底として抽出する。
【００２７】
また、ＣＮＭＦで使用する定義一覧を図７に示す。図７は、学習手法の定義一覧を示す図である。図７に示すように、本実施例で使用する記号として、学習用ログの観測データ行列、学習用ログの重み係数行列、エラー周辺ログの観測データ行列、エラー周辺ログの重み係数行列、基底行例（頻出メッセージ群）、アノマリメッセージ行列、頻出メッセージ群の最大数、メッセージ形式数、観測データ行列の時間枠の幅、基底行列の時間幅を定義する。また、本実施例においては、観測データ行列の時間枠の幅をＴＭ、頻出メッセージ群の最大数をＫ、基底行列の時間幅をＴとする。
【００２８】
図３に戻り、学習処理部３０は、分類部３１、作成部３２、学習部３３を有し、頻出メッセージ群の学習処理を実行する処理部である。すなわち、学習処理部３０は、学習フェーズを実行する。
【００２９】
分類部３１は、学習用ログから形式が類似するメッセージを分類する処理部である。具体的には、分類部３１は、ログメッセージの一覧から図５に示す学習用ログに該当するログメッセージを取得し、メッセージに含まれるＩＰ（Internet  Protocol）アドレスやホスト名などのパラメータ部分を除外したメッセージ形式ごとに分類して、作成部３２に出力する。
【００３０】
図８は、学習用ログの分類結果を示す図である。図８に示すように、分類部３１は、「ＤＢでエラー」にメッセージ形式ＩＤ「１」を割当てて分類し、「ＩＰ：＊でバックアップを開始します」にメッセージ形式ＩＤ「２」を割当てて分類し、「ＩＰ：＊でバックアップを完了しました」にメッセージ形式ＩＤ「３」を割当てて分類する。また、分類部３１は、「Ａサービス起動」にメッセージ形式ＩＤ「４」を割当てて分類し、「Ｂサービス起動」にメッセージ形式ＩＤ「５」を割当てて分類する。
【００３１】
作成部３２は、分類部３１による分類結果を用いて、学習用の観測データ行列を作成する処理部である。具体的には、作成部３２は、分類されたメッセージ形式ごとの出現回数を集計し、集計結果に基づき観測データ行列Ｙを作成して、学習部３３に出力する。
【００３２】
図９は、観測データ行列の作成を説明する図である。図９に示すように、作成部３２は、メッセージ形式ＩＤ「１」から「５」のそれぞれが割当てられた「ＤＢでエラー」などの各メッセージの出現回数を、「1/1  00:00:00〜00:10:00」などの各時間帯で計数する。図９の例では、メッセージ形式ＩＤ「１」のメッセージ「ＤＢでエラー」は、時間帯「1/1  00:00:00〜00:10:00」では出現回数「０」、時間帯「1/1  00:10:00〜00:20:00」では出現回数「０」、時間帯「1/1  01:00:00〜01:10:00」では出現回数「１」であることを示す。このようにして、作成部３２は、各メッセージの集計結果を観測データ行列Ｙとして作成する。
【００３３】
学習部３３は、作成部３２による観測データ行列の作成結果から頻出メッセージ群を学習する処理部である。例えば、学習部３３は、基底行列の時間幅Ｔを２、頻出メッセージ群数Ｋを２として、上述したＣＮＭＦにより、頻出メッセージ群（基底行列Ｈｔ）を学習する。
【００３４】
図１０は、頻出メッセージ群の学習結果を示す図である。図１０に示すように、学習部３３は、図９に示した観測データ行列Ｙに対してＣＮＭＦを実行することで、頻出メッセージ群として、バックアップメッセージ群とサービス起動メッセージ群を抽出して、抽出処理部４０に出力する。
【００３５】
なお、バックアップメッセージ群は、図８や図９に示すメッセージ形式「ＩＤ」が「２」である「ＩＰ：＊でバックを開始します」と、メッセージ形式ＩＤが「３」である「ＩＰ：＊でバックアップを完了しました」とを含むメッセージ群である。また、サービス起動メッセージ群は、図８や図９に示すメッセージ形式「ＩＤ」が「４」である「Ａサービス起動」と、メッセージ形式ＩＤが「５」である「Ｂサービス起動」とを含むメッセージ群である。
【００３６】
抽出処理部４０は、ログ抽出部４１、行列作成部４２、メッセージ抽出部４３、判別部４４、出力部４５を有し、エラーメッセージに関連する関連メッセージ群の抽出を実行する処理部である。
【００３７】
ログ抽出部４１は、エラーログに関連するログ抽出を行うために、エラーログの周辺ログを抽出する処理部である。具体的には、ログ抽出部４１は、ログメッセージの一覧から図５に示すエラー周辺用ログに該当するログメッセージを取得して、行列作成部４２に出力する。
【００３８】
図１１は、エラー周辺ログの抽出を説明する図である。図１１に示すように、ログ抽出部４１は、全ログメッセージから、エラーメッセージ発生の前後６０分をエラー周辺ログとして抽出する。図１１の例では、「2/1  00：30：00」にエラーメッセージ「ＤＢでエラー」が発生しているので、「2/1  00：30：00」の６０分前である「1/31  23：30：00」に発生した「ＸＸＸＸＸ」から、「2/1  00：30：00」の６０分後である「2/1  01：30：00」に発生した「ＹＹＹＹＹ」までがエラー周辺ログとして抽出される。
【００３９】
行列作成部４２は、学習処理部３０による学習フェーズにより分類されたメッセージ形式ごとに出現回数を計数し、エラー周辺用の観測データ行列を作成する処理部である。具体的には、行列作成部４２は、図９に示すメッセージ形式ＩＤごとにエラー周辺ログを分類する。そして、行列作成部４２は、分類されたメッセージ形式ごとの出現回数を集計し、ＣＮＭＦにより観測データ行列Ｙを作成して、メッセージ抽出部４３に出力する。
【００４０】
図１２は、エラー周辺ログに対する観測データ行列を説明する図である。図１２に示すように、行列作成部４２は、ログ抽出部４１で抽出されたエラー周辺ログを、学習処理部３０で分類されたメッセージ形式ＩＤ「１」から「５」のそれぞれのメッセージに分類する。そして、行列作成部４２は、分類された各メッセージ形式の各時間帯の出現回数を、学習処理部３０と同様の手法により集計する。このようにして、行列作成部４２は、エラー周辺ログから観測データ行列Ｙ´を作成する。
【００４１】
メッセージ抽出部４３は、学習処理部３０による学習フェーズにて学習された基底行列を用いて、行列作成部４２により作成された観測データ行列に含まれる頻出メッセージ群を抽出する処理部である。例えば、メッセージ抽出部４３は、「Wang，Wenwu  and  Cichocki，Andrzej  and  Chambers，Jonathon  A，“A  multiplicative  algorithm  for  convolutive  non-negative  matrix  factorization  based  on  squared  Euclidean  distance”，IEEE  Transactions  on  Signal  Processing，vol57，No.7，p2858−2864，2009」に示される技術を用いることができる。具体的には、メッセージ抽出部４３は、学習処理部３０により学習された基底行列Ｈｔと観測データ行列Ｙ´とを用いて、式（１）により頻出メッセージ群を抽出する。
【００４２】
【数１】
2020149250.tif 000003
【００４３】
重み係数行列Ｕ´は、頻出メッセージ群のうちエラー周辺ログに含まれるものを表すことから、式（１）を最小化する重み行列Ｕ´を求めることで、エラー周辺メッセージから作成された観測データ行列Ｙ´に含まれる頻出メッセージ群を抽出することができる。図１３は、重み係数行列の算出結果の例を示す図である。本実施例では、図１３に示すように、頻出メッセージ群のうちバックアップメッセージ群について、時間帯「2/1  00:00:00〜00:10:00」に「１」が設定されたとする。
【００４４】
また、メッセージ抽出部４３は、頻出メッセージ群では表現できない観測データ行列Ｙ´をアノマリメッセージ群として抽出する。例えば、メッセージ抽出部４３は、式（２）を用いて、観測データ行列Ｙ´のうち基底行列Ｈｔの組み合わせで表現できないメッセージ群を、アノマリメッセージ行列として算出する。
【００４５】
【数２】
2020149250.tif 000004
【００４６】
そして、メッセージ抽出部４３は、算出されたアノマリメッセージ行列の要素のうち０より大きい要素値が設定されたメッセージ形式を、アノマリメッセージ群として抽出する。図１４は、アノマリメッセージ群の抽出を説明する図である。図１４に示すように、メッセージ抽出部４３は、学習処理部３０で分類されたメッセージ形式ＩＤ「１」から「５」のそれぞれのメッセージに対する算出結果をアノマリメッセージ行列Ａとして算出する。そして、メッセージ抽出部４３は、要素値が０より大きい「１」が設定される、「2/1  00：30：00  ＤＢでエラー」と「2/1  00：30：00  Ａサービス起動」とを、アノマリメッセージ群として抽出する。
【００４７】
図３に戻り、判別部４４は、エラーメッセージと関連する関連メッセージの判別を実行する処理部である。具体的には、判別部４４は、対象エラーメッセージを含む頻出メッセージ群を特定して関連メッセージ群とするとともに、頻出メッセージ群が特定されなかった場合に、アノマリメッセージ群を関連メッセージ群として抽出する。
【００４８】
図１５は、メッセージの判別を説明する図である。図１５に示すように、判別部４４は、図１１に示した「2/1  00：30：00」の対象のエラーメッセージ「ＤＢでエラー」の時間帯と、重み係数行列Ｕ´とを比較し、エラーメッセージの発生時間帯「2/1  00：30：00」を含む時間帯「00：30：：00〜00：40：00」に頻出メッセージ群の出現がないので、関連メッセージ群を特定できないと判別する。
【００４９】
そして、判別部４４は、頻出メッセージ群の出現がないことから、アノマリメッセージ群を関連メッセージ群と判別する。図１６は、関連メッセージ群を説明する図である。図１６に示すように、判別部４４は、図１４で抽出したアノマリメッセージ群を関連メッセージと判別するが、このとき対象エラー「ＤＢでエラー」を除外した「2/1  00：30：00  Ａサービス起動」のみを関連メッセージ群とする。
【００５０】
出力部４５は、判別部４４による判別結果を出力する処理部である。例えば、出力部４５は、対象のエラーメッセージ「2/1  00：30：00  ＤＢでエラー」と関連メッセージ「2/1  00：30：00  Ａサービス起動」とを対応付けて、ディスプレイに表示したり、管理者端末に送信したりする。
【００５１】
この結果、管理者などは、エラーメッセージ「ＤＢでエラー」が発生して対処が完了すると、エラーメッセージ「ＤＢでエラー」と関連メッセージ「Ａサービス起動」と対処内容とを対応付けて、障害事例ＤＢ１３に登録することができる。また、管理者は、次にエラーメッセージ「ＤＢでエラー」が発生したときに、「ＤＢでエラー」と「Ａサービス起動」と検索条件として、障害事例ＤＢ１３を検索することで、過去の対処方法を取得することもできる。
【００５２】
［学習フェーズの流れ］
図１７は、学習フェーズの処理の流れを示すフローチャートである。図１７に示すように、学習処理部３０の分類部３１は、１週間ごとのように定期的に、または、ログメッセージが一定値以上増加した場合に、処理開始と判定し（Ｓ１０１：Ｙｅｓ）、ログメッセージを取得して、ログメッセージから学習用ログを取得する（Ｓ１０２）。
【００５３】
続いて、分類部３１は、学習用ログをメッセージ形式で分類する（Ｓ１０３）。そして、作成部３２は、分類結果を用いて、学習用ログの観測データ行列を生成する（Ｓ１０４）。その後、学習部３３は、観測データ行列を用いて、学習用ログの頻出メッセージ群の学習を実行する（Ｓ１０５）。
【００５４】
［抽出フェーズの流れ］
図１８は、抽出フェーズの処理の流れを示すフローチャートである。図１８に示すように、抽出処理部４０のログ抽出部４１は、エラーがメッセージを検出すると、処理開始と判定し（Ｓ２０１：Ｙｅｓ）、ログメッセージからエラー周辺ログを抽出する（Ｓ２０２）。
【００５５】
続いて、行列作成部４２は、エラー周辺ログの観測データ行列を生成する（Ｓ２０３）。そして、メッセージ抽出部４３は、エラー周辺ログ中に出現する頻出メッセージ群を抽出し（Ｓ２０４）、エラー周辺ログ中のアノマリメッセージ群を抽出する（Ｓ２０５）。
【００５６】
その後、判別部４４は、頻出メッセージ群がエラーメッセージを含むか否かを判定する（Ｓ２０６）。そして、判別部４４は、頻出メッセージ群がエラーメッセージを含む場合（Ｓ２０６：Ｙｅｓ）、頻出メッセージ群を関連メッセージ群と決定し（Ｓ２０７）、頻出メッセージ群がエラーメッセージを含まない場合（Ｓ２０６：Ｎｏ）、アノマリメッセージ群を関連メッセージ群と決定する（Ｓ２０８）。
【００５７】
［効果］
上述したように、情報処理装置１０は、図５に示した全メッセージを、エラーメッセージを含まない頻出メッセージ群と、エラーメッセージを含むアノマリメッセージ群とに分類することができる。したがって、情報処理装置１０は、頻出メッセージ群に含まれない、新規のエラーメッセージや出現頻度の低いエラーメッセージも、エラーメッセージと関連する関連メッセージ群として対応付けることができる。このため、情報処理装置１０は、既知の障害判別において、新規または過去に出現頻度の低いエラーメッセージであっても、インシデント検索に利用することができるので、誤検索を抑制し、検索精度を向上させることができる。
【実施例２】
【００５８】
ところで、頻出メッセージ群だけを関連メッセージとして対応付ける一般技術では、同時に複数の障害が発生した場合（多点障害）、メッセージ全体からどのメッセージがどの障害に関連するメッセージであるかを特定できない場合がある。
【００５９】
図１９は、多点障害の問題点を説明する図である。図１９には、障害１、障害２、障害３の３つの多点障害が発生した例を示している。実施例１のようなアノマリメッセージ群を利用しない場合、各障害を頻出メッセージ群と対応付けることになる。例えば、頻出メッセージ群として障害１エラーの関連メッセージを特定し、頻出メッセージ群として障害２エラーの関連メッセージを特定できたとしても、障害３エラーが新規エラーや出現頻度の低いエラーであった場合、頻出メッセージ群が存在しないことから、関連メッセージ群を特定できないことがある。
【００６０】
この結果、障害３のエラー情報を障害事例として登録することができず、次に障害３と同様の障害が発生しても、その対処方法を共有することもできない。したがって、システムの信頼性の低下にもつながる。
【００６１】
そこで、実施例２では、実施例１で説明したアノマリメッセージ群を関連メッセージ群として抽出することで、同時に複数の障害が発生した場合（多点障害）に、メッセージ全体を各障害に対応する関連メッセージ群に分解する例を説明する。なお、機能構成や学習手法などは、実施例１と同様なので、詳細な説明は省略する。
【００６２】
［学習フェーズ］
まず、学習処理部３０は、実施例１と同様の手法を用いて、学習用ログから形式が類似するメッセージを分類する。図２０は、実施例２にかかる学習用ログの分類結果を示す図である。図２０に示すように、学習処理部３０は、「ＤＢでエラー」にメッセージ形式ＩＤ「１」を割当てて分類し、「ＩＰ：＊でバックアップを開始します」にメッセージ形式ＩＤ「２」を割当てて分類し、「ＩＰ：＊でバックアップを完了しました」にメッセージ形式ＩＤ「３」を割当てて分類する。また、分類部３１は、「Ａサービス起動」にメッセージ形式ＩＤ「４」を割当てて分類し、「Ｂサービス起動」にメッセージ形式ＩＤ「５」を割当てて分類する。
【００６３】
実施例１と異なる点は、実施例１の図８では、１つのＤＢエラーが発生している例であったのに対して、実施例２の図２０では、２つのＤＢエラーが発生している点である。すなわち、図２０は、多点障害が発生している。
【００６４】
次に、学習処理部３０は、実施例１と同様の手法を用いて、分類結果から学習用の観測データ行列を作成する。図２１は、実施例２にかかる観測データ行列の作成を説明する図である。図２１に示すように、学習処理部３０は、メッセージ形式ＩＤ「１」から「５」のそれぞれが割当てられた「ＤＢでエラー」などの各メッセージの出現回数を、「1/1  00:00:00〜00:10:00」などの各時間帯で計数する。図２１の例では、実施例１と異なり、メッセージ形式ＩＤ「１」のメッセージ「ＤＢでエラー」が、時間帯「1/1  00:00:00〜00:10:00」と、時間帯「1/1  01:00:00〜01:10:00」との両方で発生している。このようにして、学習処理部３０は、各メッセージの集計結果を観測データ行列Ｙとして作成する。
【００６５】
続いて、学習処理部３０は、実施例１と同様のＣＮＭＦにより、観測データ行列の作成結果から頻出メッセージ群を学習する。図２２は、実施例２にかかる頻出メッセージ群の学習結果を説明する図である。図２２に示すように、学習処理部３０は、図２１に示した観測データ行列Ｙに対してＣＮＭＦを実行することで、頻出メッセージ群として、バックアップメッセージ群とサービス起動メッセージ群を抽出する。
【００６６】
なお、実施例１と異なり、バックアップメッセージ群は、メッセージ形式「ＩＤ」が「２」である「ＩＰ：＊でバックを開始します」と、メッセージ形式ＩＤが「３」である「ＩＰ：＊でバックアップを完了しました」に加えて、メッセージ形式「ＩＤ」が「１」である「ＤＢでエラー」を含むメッセージ群である。サービス起動メッセージ群については、実施例１と同様である。
【００６７】
［抽出フェーズ］
まず、抽出処理部４０は、エラーログに関連するログ抽出を行うために、ログメッセージの一覧からエラー周辺ログを抽出する。図２３は、実施例２にかかるエラー周辺ログの抽出を説明する図である。ここでは、対象のエラーメッセージが２つ発生しており、１番目のエラーの６０分前から２番目のエラーの６０分後までをエラー周辺ログとして抽出する。
【００６８】
図２２の例では、抽出処理部４０は、「2/1  00：00：01」に１番目のエラーメッセージ１「ＤＢでエラー」が発生しているので、「2/1  00：00：01」の６０分前である「1/31  23：30：01」に発生した「ＸＸＸＸＸ」をエラー周辺ログの開始とする。また、抽出処理部４０は、「2/1  00：30：00」に２番目のエラーメッセージ２「ＤＢでエラー」が発生しているので、「2/1  00：30：00」の６０分後である「2/1  01：30：00」に発生した「ＹＹＹＹＹ」をエラー周辺ログの最後とする。
【００６９】
続いて、抽出処理部４０は、学習フェーズにより分類されたメッセージ形式ごとに出現回数を計数し、エラー周辺用の観測データ行列を作成する。図２４は、実施例２にかかるエラー周辺ログに対する観測データ行列を説明する図である。図２４に示すように、抽出処理部４０は、抽出されたエラー周辺ログを、学習処理部３０で分類されたメッセージ形式ＩＤ「１」から「５」のそれぞれのメッセージに分類する。そして、抽出処理部４０は、分類された各メッセージ形式の各時間帯の出現回数を、学習処理部３０と同様の手法により集計する。実施例１とは異なり、時間帯「2/1  00:00:00〜00:10:00」において、メッセージ形式ＩＤ「１」のメッセージ形式「ＤＢでエラー」がカウントされている。このようにして、抽出処理部４０は、エラー周辺ログから観測データ行列Ｙ´を作成する。
【００７０】
次に、抽出処理部４０は、学習フェーズにて学習された基底行列Ｈｔを用いて、実施例１と同様の式（１）により、観測データ行列Ｙ´に含まれる頻出メッセージ群を抽出する。図２５は、実施例２にかかる重み係数行列の算出結果の例を示す図である。ここで、抽出処理部４０は、頻出メッセージ群のうちエラー周辺ログに含まれるものを表す重み係数行列Ｕ´を算出する。図２５に示すように、重み係数行列Ｕ´は、実施例２においても実施例１と同様、バックアップメッセージ群について、時間帯「2/1  00:00:00〜00:10:00」に「１」が設定されたとする。
【００７１】
続いて、抽出処理部４０は、式（２）を用いて、観測データ行列Ｙ´のうち基底行列Ｈｔの組み合わせで表現できないメッセージ群を、アノマリメッセージ行列として算出する。図２６は、実施例２にかかるアノマリメッセージ群の抽出を説明する図である。図２６に示すように、抽出処理部４０は、学習フェーズで分類されたメッセージ形式ＩＤ「１」から「５」のそれぞれのメッセージに対する算出結果をアノマリメッセージ行列Ａとして算出する。そして、抽出処理部４０は、行列の要素値が０より大きい「１」が設定される、「2/1  00：30：00  ＤＢでエラー」と「2/1  00：30：00  Ａサービス起動」とを、アノマリメッセージ群として抽出する。
【００７２】
その後、抽出処理部４０は、エラーメッセージと関連する関連メッセージの判別を実行する。図２７は、実施例２にかかるメッセージの判別例１を説明する図であり、図２８は、実施例２にかかるメッセージの判別例２を説明する図である。
【００７３】
具体的には、図２７に示すように、抽出処理部４０は、図２３に示した対象のエラーメッセージ１「ＤＢでエラー」の時間帯「2/1  00：00：01」と、重み係数行列Ｕ´とを比較し、エラーメッセージの発生時間を含む時間帯「2/1  00：00：00〜  00：10：00」に頻出メッセージ群である「バックアップメッセージ群」が出現しているので、関連メッセージ群を特定できると判別する。
【００７４】
すなわち、抽出処理部４０は、エラーメッセージ１「ＤＢでエラー」の関連メッセージ群を「バックアップメッセージ群」と決定する。より詳細には、抽出処理部４０は、「2/1  00：00：01」の対象エラーメッセージ１「ＤＢでエラー」の関連メッセージ群として、図２３のエラー周辺ログを参照し、「2/1  00：00：00」から「2/1  00：10：00」の間に出現したバックアップメッセージ群である、「2/1  00：00：05」のメッセージ「ＩＰ：192.168.0.1でバックアップを開始します」と「2/1  00：10：00」のメッセージ「ＩＰ：192.168.0.1でバックアップを完了しました」とを決定する。
【００７５】
また、図２８に示すように、抽出処理部４０は、図２３に示した対象のエラーメッセージ２「ＤＢでエラー」の時間帯「2/1  00：30：00」と、重み係数行列Ｕ´とを比較し、エラーメッセージの発生時間を時間帯「2/1  00：30：00〜00：40：00」に頻出メッセージ群が出現していないので、関連メッセージ群を特定できないと判別する。
【００７６】
すなわち、抽出処理部４０は、エラーメッセージ２「ＤＢでエラー」の関連メッセージ群を「アノマリメッセージ群」と決定する。より詳細には、抽出処理部４０は、図２６で抽出したアノマリメッセージ群である「2/1  00：30：00」の「ＤＢでエラー」と「2/1  00：30：00」の「Ａサービス起動」のうち、対象エラー「ＤＢでエラー」を除外した「2/1  00：30：00」の「Ａサービス起動」のみを関連メッセージ群とする。
【００７７】
そして、抽出処理部４０は、各エラーメッセージに対する関連メッセージ群の判別結果を出力する。図２９は、実施例２にかかる出力結果を説明する図である。図２９に示すように、抽出処理部４０は、「2/1  00：00：01」の対象エラーメッセージ１「ＤＢでエラー」に対応付けて、関連メッセージ群として、「2/1  00：00：05，ＩＰ：192.168.0.1でバックアップを開始します」と「2/1  00：10：00，ＩＰ：192.168.0.1でバックアップを完了しました」とを出力する。同様に、抽出処理部４０は、「2/1  00：30：00」の対象エラーメッセージ２「ＤＢでエラー」に対応付けて、関連メッセージ群として、「2/1  00：30：00，Ａサービス起動」を出力する。
【００７８】
［効果］
上述したように、情報処理装置１０は、図２３に示した２つのエラーメッセージを含む全メッセージを、エラーメッセージ１を含む頻出メッセージ群と、エラーメッセージ２を含むアノマリメッセージ群とに分類することができる。したがって、情報処理装置１０は、出現頻度の少ないエラーのエラーメッセージを含む多点障害発生時に、各エラーメッセージと関連する関連メッセージ群を特定して対応付けることができる。
【実施例３】
【００７９】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００８０】
［数値等］
上記実施例で用いた数値、メッセージ内容、時間幅などはあくまで一例であり、例示したものや図示したものに限定されず、任意に変更することができる。また、２つのエラーメッセージが発生した多点障害を例にして説明したが、これに限定されず、３つ以上の多点障害であっても同様に処理することができる。
【００８１】
また、上記情報処理装置１０は、課金システム、受発注システム、銀行系システムなど、様々なシステムのインシデント管理に適用することができる。また、上記実施例では、エラーメッセージが発生したタイミングで抽出フェーズを実行する例を説明したが、これに限定されるものではない。例えば、エラーメッセージが数回発生したタイミング、情報処理装置１０がユーザ端末５０からエラーメッセージを含む検索要求を受信したタイミングなどで実行することもできる。
【００８２】
また、頻出メッセージ群の抽出やアノマリメッセージ行列の抽出は、式（１）や式（２）の手法に限らず、公知の手法を採用することができる。
【００８３】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、学習処理部３０と抽出処理部４０とを別々の装置で実現することもできる。
【００８５】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８６】
［ハードウェア］
図３０は、ハードウェア構成例を説明する図である。図３０に示すように、情報処理装置１０は、通信装置１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。また、図３０に示した各部は、バス等で相互に接続される。
【００８７】
通信装置１０ａは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。ＨＤＤ１０ｂは、図３に示した機能を動作させるプログラムやＤＢを記憶する。
【００８８】
プロセッサ１０ｄは、図３に示した各処理部と同様の処理を実行するプログラムをＨＤＤ１０ｂ等から読み出してメモリ１０ｃに展開することで、図３等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、情報処理装置１０が有する各処理部と同様の機能を実行する。具体的には、プロセッサ１０ｄは、学習処理部３０と抽出処理部４０等と同様の機能を有するプログラムをＨＤＤ１０ｂ等から読み出す。そして、プロセッサ１０ｄは、学習処理部３０と抽出処理部４０等と同様の処理を実行するプロセスを実行する。
【００８９】
このように情報処理装置１０は、プログラムを読み出して実行することでインシデント管理方法を実行する情報処理装置として動作する。また、情報処理装置１０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、情報処理装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【００９０】
１０  情報処理装置
１１  通信部
１２  記憶部
１３  障害事例ＤＢ
２０  制御部
３０  学習処理部
３１  分類部
３２  作成部
３３  学習部
４０  抽出処理部
４１  ログ抽出部
４２  行列作成部
４３  メッセージ抽出部
４４  判別部
４５  出力部
【図１】
2020149250.tif 000005
【図２】
2020149250.tif 000006
【図３】
2020149250.tif 000007
【図４】
2020149250.tif 000008
【図５】
2020149250.tif 000009
【図６】
2020149250.tif 000010
【図７】
2020149250.tif 000011
【図８】
2020149250.tif 000012
【図９】
2020149250.tif 000013
【図１０】
2020149250.tif 000014
【図１１】
2020149250.tif 000015
【図１２】
2020149250.tif 000016
【図１３】
2020149250.tif 000017
【図１４】
2020149250.tif 000018
【図１５】
2020149250.tif 000019
【図１６】
2020149250.tif 000020
【図１７】
2020149250.tif 000021
【図１８】
2020149250.tif 000022
【図１９】
2020149250.tif 000023
【図２０】
2020149250.tif 000024
【図２１】
2020149250.tif 000025
【図２２】
2020149250.tif 000026
【図２３】
2020149250.tif 000027
【図２４】
2020149250.tif 000028
【図２５】
2020149250.tif 000029
【図２６】
2020149250.tif 000030
【図２７】
2020149250.tif 000031
【図２８】
2020149250.tif 000032
【図２９】
2020149250.tif 000033
【図３０】
2020149250.tif 000034