(57)【要約】      （修正有）【課題】保存するログのデータサイズを削減する情報処理方法、情報処理装置および情報処理プログラムを提供する。【解決手段】処理部１ｂは、ソフトウェアのプロセスの実行に応じて出力されたログ群２〜４を取得する。処理部１ｂは、取得されたログ群２〜４のそれぞれから、プロセスの実行結果に応じて内容が変化する可変情報２ａ〜４ａを特定する。処理部１ｂは、特定された可変情報２ａ〜４ａのログ群２〜４における出現状況に基づいて、ログ群２〜４のうち保存対象とするログ群４を特定して記憶部１ａに保存する。【選択図】図１
2020038427.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
ソフトウェアのプロセスの実行に応じて出力された複数のログ群を取得し、
前記複数のログ群のそれぞれから、前記プロセスの実行結果に応じて内容が変化する可変情報を特定し、
特定された前記可変情報の前記複数のログ群における出現状況に基づいて、前記複数のログ群のうち保存対象とするログ群を特定する、
情報処理方法。
【請求項２】
前記複数のログ群のそれぞれには、前記プロセスの実行結果に応じて内容が変化する情報がそれぞれ設定される複数の項目に対応する設定情報が含まれ、
前記可変情報の特定では、前記複数の項目のうち特定の項目に対応する前記設定情報を前記可変情報として特定する、
請求項１記載の情報処理方法。
【請求項３】
前記複数のログ群の取得では、
前記プロセスの実行に応じて出力された２以上のログ群のそれぞれから、前記複数の項目のそれぞれに対応する前記設定情報を抽出し、
抽出された前記設定情報を前記複数の項目のそれぞれに対してあらかじめ決められたシンボル情報に置換することで、前記２以上のログ群のそれぞれをログパターン情報に変換し、
前記ログパターン情報の間で内容の一致性に関する判定を行い、
前記２以上のログ群のうち前記ログパターン情報の内容が互いに一致すると判定されたログ群を、前記複数のログ群として取得する、
請求項２記載の情報処理方法。
【請求項４】
前記複数の項目のうち一の項目には、前記プロセスの実行のための定義情報に定義された情報が前記設定情報として設定され、
前記可変情報の特定では、前記複数の項目のうち前記一の項目以外の項目に対応する前記設定情報を前記可変情報として特定する、
請求項２または３記載の情報処理方法。
【請求項５】
前記設定情報の抽出では、前記２以上のログ群のそれぞれから、前記プロセスの実行のための定義情報に定義された情報と一致する情報を前記設定情報として抽出する、
請求項３記載の情報処理方法。
【請求項６】
前記コンピュータがさらに、
前記２以上のログ群のうち、前記一致性に関する判定により前記ログパターン情報が他のいずれの前記ログパターン情報とも一致しないと判定されたログ群を、前記保存対象とするログ群としてさらに特定する、
請求項３または５記載の情報処理方法。
【請求項７】
前記複数のログ群を取得する処理は、
前記プロセスの実行に応じて出力されるログ群を１つずつ取得し、
取得したログ群から、前記複数の項目のそれぞれに対応する前記設定情報を抽出し、抽出された前記設定情報を前記複数の項目のそれぞれに対してあらかじめ決められたシンボル情報に置換することで、前記取得したログ群を第１ログパターン情報に変換する変換処理を実行し、
過去に取得したログ群に対する前記変換処理によって得られた１以上の第２ログパターン情報が登録されたパターン登録情報を参照して、前記第１ログパターン情報と前記第２ログパターン情報のそれぞれとの一致性に関する判定を行い、
前記第１ログパターン情報がいずれの前記第２ログパターン情報とも一致しないと判定された場合、前記第１ログパターン情報を新たな前記第２ログパターン情報として前記パターン登録情報に登録するとともに、前記取得したログ群から抽出された前記設定情報を付加情報として新たな前記第２ログパターン情報に付加する、
処理を含む請求項２記載の情報処理方法。
【請求項８】
前記複数のログ群を取得する処理は、
前記第２ログパターン情報の中に前記第１ログパターン情報と一致すると判定された第３ログパターン情報が存在した場合、前記取得したログ群から抽出された前記設定情報を新たな前記付加情報として前記第３ログパターン情報に付加するとともに、前記第１ログパターン情報を破棄する、
処理をさらに含み、
前記複数のログ群を示す情報として、前記第３ログパターン情報と、前記過去に取得したログ群に基づいて前記第３ログパターン情報に付加されていた前記付加情報と、前記取得したログ群に基づいて前記第３ログパターン情報に新たに付加された前記付加情報とが取得され、
前記可変情報の特定では、前記第３ログパターン情報に付加されている複数の前記付加情報のそれぞれから、前記複数の項目のうち特定の項目に対応する前記設定情報を前記可変情報として特定する、
請求項７記載の情報処理方法。
【請求項９】
記憶部と、
ソフトウェアのプロセスの実行に応じて出力された複数のログ群を取得し、前記複数のログ群のそれぞれから、前記プロセスの実行結果に応じて内容が変化する可変情報を特定し、特定された前記可変情報の前記複数のログ群における出現状況に基づいて、前記複数のログ群のうち保存対象とするログ群を特定して前記記憶部に保存する処理部と、
を有する情報処理装置。
【請求項１０】
コンピュータに、
ソフトウェアのプロセスの実行に応じて出力された複数のログ群を取得し、
前記複数のログ群のそれぞれから、前記プロセスの実行結果に応じて内容が変化する可変情報を特定し、
特定された前記可変情報の前記複数のログ群における出現状況に基づいて、前記複数のログ群のうち保存対象とするログ群を特定する、
処理を実行させる情報処理プログラム。
【請求項１１】
コンピュータが、
ソフトウェアのプロセスの実行に応じて出力された第１のログ群を取得し、
前記第１のログ群から所定の項目に対応する設定情報を抽出し、抽出された前記設定情報を前記所定の項目に対してあらかじめ決められたシンボル情報に置換することで、前記第１のログ群を第１ログパターン情報に変換する変換処理を実行し、
過去に取得した第２のログ群に対する前記変換処理によって得られた１以上の第２ログパターン情報が登録されたパターン登録情報を参照して、前記第１ログパターン情報と前記第２ログパターン情報のそれぞれとの一致性に関する判定を行い、
前記第１ログパターン情報がいずれの前記第２ログパターン情報とも一致しないと判定された場合、前記第１ログパターン情報を新たな前記第２ログパターン情報として前記パターン登録情報に登録するとともに、前記第１のログ群から抽出された前記設定情報を付加情報として新たな前記第２ログパターン情報に付加する、
情報処理方法。
【請求項１２】
前記コンピュータがさらに、
前記第２ログパターン情報の中に前記第１ログパターン情報と一致すると判定された第３ログパターン情報が存在した場合、前記第１のログ群から抽出された前記設定情報を新たな前記付加情報として前記第３ログパターン情報に付加するとともに、前記第１ログパターン情報を破棄し、
前記第３ログパターン情報に付加されている複数の前記付加情報のそれぞれから、前記所定の項目に対応する前記設定情報を抽出し、抽出された前記設定情報についての複数の前記付加情報における出現状況に基づいて、前記第３ログパターン情報に付加されているいずれかの前記設定情報を保存対象として選択し、
選択された前記設定情報と前記第３ログパターン情報とに基づく保存情報を記憶部に記憶させる、
請求項１１記載の情報処理方法。
【請求項１３】
前記変換処理では、前記第１のログ群から所定の複数の項目それぞれに対応する前記設定情報を抽出し、抽出された前記設定情報を前記複数の項目のそれぞれに対してあらかじめ決められた前記シンボル情報に置換することで、前記第１のログ群を前記第１ログパターン情報に変換し、
前記保存対象の選択では、前記第３ログパターン情報に付加されている複数の前記付加情報のそれぞれから、前記複数の項目のうち特定の項目に対応する前記設定情報を抽出し、抽出された前記設定情報についての複数の前記付加情報における出現状況に基づいて、前記第３ログパターン情報に付加されているいずれかの前記設定情報を前記保存対象として選択する、
請求項１２に記載の情報処理方法。
【請求項１４】
記憶部と、処理部とを有し、
前記処理部は、
ソフトウェアのプロセスの実行に応じて出力された第１のログ群を取得し、
前記第１のログ群から所定の項目に対応する設定情報を抽出し、抽出された前記設定情報を前記所定の項目に対してあらかじめ決められたシンボル情報に置換することで、前記第１のログ群を第１ログパターン情報に変換する変換処理を実行し、
過去に取得した第２のログ群に対する前記変換処理によって得られた１以上の第２ログパターン情報が登録された、前記記憶部に記憶されたパターン登録情報を参照して、前記第１ログパターン情報と前記第２ログパターン情報のそれぞれとの一致性に関する判定を行い、
前記第１ログパターン情報がいずれの前記第２ログパターン情報とも一致しないと判定された場合、前記第１ログパターン情報を新たな前記第２ログパターン情報として前記パターン登録情報に登録するとともに、前記第１のログ群から抽出された前記設定情報を付加情報として新たな前記第２ログパターン情報に付加する、
情報処理装置。
【請求項１５】
コンピュータに、
ソフトウェアのプロセスの実行に応じて出力された第１のログ群を取得し、
前記第１のログ群から所定の項目に対応する設定情報を抽出し、抽出された前記設定情報を前記所定の項目に対してあらかじめ決められたシンボル情報に置換することで、前記第１のログ群を第１ログパターン情報に変換する変換処理を実行し、
過去に取得した第２のログ群に対する前記変換処理によって得られた１以上の第２ログパターン情報が登録されたパターン登録情報を参照して、前記第１ログパターン情報と前記第２ログパターン情報のそれぞれとの一致性に関する判定を行い、
前記第１ログパターン情報がいずれの前記第２ログパターン情報とも一致しないと判定された場合、前記第１ログパターン情報を新たな前記第２ログパターン情報として前記パターン登録情報に登録するとともに、前記第１のログ群から抽出された前記設定情報を付加情報として新たな前記第２ログパターン情報に付加する、
処理を実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理方法、情報処理装置および情報処理プログラムに関する。
【背景技術】
【０００２】
コンピュータでの処理の実行に伴って出力されるログは、主として、障害の発生時にその原因を調査するために利用される。近年、処理内容の複雑化や、管理処理における管理対象リソースの増加に伴い、出力されるログのデータサイズが増大し、ログを保存するための記憶領域の容量不足が問題となっている。そのため、保存して残しておくログのデータサイズを削減するための技術が考えられている。
【０００３】
これに関連する技術の一例として、次のようなデータ管理装置が提案されている。このデータ管理装置は、情報処理手段の動作に関する動作情報の中から登録動作パターンに対応する動作情報を特定する。そして、データ管理装置は、情報処理手段のログのうち、登録動作パターンに許容されない動作情報が行われた時期のログによって示される性能値に基づいて、抽出するログの期間を特定する。
【０００４】
また、次のようなログ情報収集装置も提案されている。このログ情報収集装置は、端末装置の画面表示の遷移情報と、あらかじめ設定された画面遷移パターンの条件とに基づいて、端末装置からの処理要求に対応する処理についてのログ情報を優先的に保存するかを決定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−４４８８号公報
【特許文献２】特開２０１６−１５２０１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上記関連技術のいずれも、ログの内容とは別の情報に基づいてログの抽出や保存についての判定を行うものであり、十分なデータサイズの削減効果が得られないという問題がある。
【０００７】
１つの側面では、本発明は、保存するログのデータサイズを削減可能な情報処理方法、情報処理装置および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、コンピュータが、ソフトウェアのプロセスの実行に応じて出力された複数のログ群を取得し、複数のログ群のそれぞれから、プロセスの実行結果に応じて内容が変化する可変情報を特定し、特定された可変情報の複数のログ群における出現状況に基づいて、複数のログ群のうち保存対象とするログ群を特定する、情報処理方法が提供される。
【０００９】
また、１つの案では、上記の情報処理方法と同様の処理を実行する情報処理装置が提供される。
さらに、１つの案では、上記の情報処理装置と同様の処理をコンピュータに実行させる情報処理プログラムが提供される。
【００１０】
また、１つの案では、コンピュータが、ソフトウェアのプロセスの実行に応じて出力された第１のログ群を取得し、第１のログ群から所定の項目に対応する設定情報を抽出し、抽出された設定情報を所定の項目に対してあらかじめ決められたシンボル情報に置換することで、第１のログ群を第１ログパターン情報に変換する変換処理を実行し、過去に取得した第２のログ群に対する変換処理によって得られた１以上の第２ログパターン情報が登録されたパターン登録情報を参照して、第１ログパターンと第２ログパターンのそれぞれとの一致性に関する判定を行い、第１ログパターン情報がいずれの第２ログパターン情報とも一致しないと判定された場合、第１ログパターン情報を新たな第２ログパターン情報としてパターン登録情報に登録するとともに、第１のログ群から抽出された設定情報を付加情報として新たな第２ログパターン情報に付加する、情報処理方法が提供される。
【００１１】
また、１つの案では、上記の情報処理方法と同様の処理を実行する情報処理装置が提供される。
また、１つの案では、上記の情報処理装置と同様の処理をコンピュータに実行させる情報処理プログラムが提供される。
【発明の効果】
【００１２】
１つの側面では、保存するログのデータサイズを削減できる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態に係る情報処理装置の構成例および処理例を示す図である。
【図２】第２の実施の形態に係る管理装置のハードウェア構成例を示す図である。
【図３】管理装置が備える処理機能の構成例を示すブロック図である。
【図４】定義情報記憶部に記憶される定義情報の第１の例を示す図である。
【図５】定義情報記憶部に記憶される定義情報の第２の例を示す図である。
【図６】ログファイルの第１の例を示す図である。
【図７】ログファイルの第２の例を示す図である。
【図８】ログファイルの第３の例を示す図である。
【図９】ログファイルの第４の例を示す図である。
【図１０】テンプレートおよび可変値情報の例を示す図である。
【図１１】テンプレート記憶部のデータ構成例を示す図である。
【図１２】暫定テンプレート情報と正規テンプレートとの比較処理の例を示す図である。
【図１３】可変値情報の比較処理の例を示す図である。
【図１４】ログファイルの第５の例を示す図である。
【図１５】正規テンプレート情報の例を示す図である。
【図１６】正規テンプレート情報の他の例を示す図である。
【図１７】可変値統計情報の生成例を示す図である。
【図１８】ログの保存サイズ削減処理の全体の処理手順を示すフローチャートの例（その１）である。
【図１９】ログの保存サイズ削減処理の全体の処理手順を示すフローチャートの例（その２）である。
【図２０】テンプレート化処理の手順を示すフローチャートの例である。
【図２１】正規テンプレートとの比較処理の手順を示すフローチャートの例である。
【図２２】異常ログの検出処理の手順を示すフローチャートの例である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係る情報処理装置の構成例および処理例を示す図である。図１に示す情報処理装置１は、記憶部１ａと処理部１ｂを有する。記憶部１ａは、例えば、情報処理装置１が備える図示しない記憶装置として実現される。処理部１ｂは、例えば、情報処理装置１が備える図示しないプロセッサとして実現される。
【００１５】
この情報処理装置１は、例えば、ソフトウェアのプロセスの実行に応じて出力されるログを取得可能になっている。ログには、実行されたプロセスの内容や実行結果などの情報が記録される。また、ソフトウェアは、情報処理装置１で実行されてもよいし、他の情報処理装置で実行されてもよい。
【００１６】
記憶部１ａは、情報処理装置１で取得されるログのうち、保存対象として特定されたログの保存先として利用される。情報処理装置１で取得されるログの一部だけが記憶部１ａに保存されることで、保存するログのデータサイズが削減され、その保存に必要な記憶容量を削減できる。
【００１７】
処理部１ｂは、プロセスの実行に応じて出力された複数のログ群を取得する（ステップＳ１）。取得される各ログ群には、複数のログが含まれている。また、各ログ群は、例えば、プロセスの実行に応じて出力されたログが、所定の条件にしたがって分類されたものである。例えば、ログに記録されたプロセスなどの識別番号が一致するログが、１つのログ群として取得される。あるいは、ログに記録された時刻情報に基づき、時刻の差が一定時間以下となるログが１つのログ群として取得される。
【００１８】
以下、図１に示すように、ログ群２，３，４が取得されたものとして説明を続ける。処理部１ｂは、ログ群２，３，４のそれぞれから、プロセスの実行結果に応じて内容が変化する可変情報を特定する（ステップＳ２）。例えば、プロセスが正常に実行されたか、異常が生じたかなど、プロセスの実行状況を示す数値が、可変情報として特定される。
【００１９】
以下、図１に示すように、ログ群２，３，４からそれぞれ可変情報２ａ，３ａ，４ａが特定されたものとして説明を続ける。処理部１ｂは、特定された可変情報２ａ，３ａ，４ａのログ群２，３，４における出現状況に基づいて、ログ群２，３，４のうち保存対象とするログ群を特定する（ステップＳ３）。処理部１ｂは、特定されたログ群を記憶部１ａに保存する。
【００２０】
例えば、可変情報２ａ，３ａ，４ａが数値の場合、次のようにして保存対象のログ群が特定される。例えば、可変情報２ａ，３ａ，４ａのうちの１つだけが他の値と異なっている場合、その可変情報が特定された元のログ群が保存対象として特定される。あるいは、可変情報２ａ，３ａ，４ａのうち、それらの平均値との差分が所定値以上である可変情報を含むログ群が、保存対象として特定される。
【００２１】
このような処理により、情報処理装置１は、記憶部１ａに保存するログのデータサイズを削減できる。特に、ログ自体に含まれる情報に基づいて保存対象とするログ群が特定されることで、保守用の資材として有用なログを高精度に判別して保存できる。これにより、保存するデータサイズの高い削減効果を得ることができる。また、ログ自体の内容を解析することで保存対象とするログ群が特定されるので、ログ以外の情報を用いる場合と比較してその特定処理の効率を高めることができる。
【００２２】
〔第２の実施の形態〕
次に、図１に示した情報処理装置１の一例として、各種のシステムを管理する管理装置について説明する。
【００２３】
図２は、第２の実施の形態に係る管理装置のハードウェア構成例を示す図である。第２の実施の形態に係る管理装置１００は、例えば、図２に示すようなコンピュータとして実現される。
【００２４】
図２に示すように、管理装置１００は、プロセッサ１０１、ＲＡＭ（Random Access Memory）１０２、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース（Ｉ／Ｆ）１０５、読み取り装置１０６および通信インタフェース（Ｉ／Ｆ）１０７を有する。
【００２５】
プロセッサ１０１は、管理装置１００全体を統括的に制御する。プロセッサ１０１は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）またはＰＬＤ（Programmable Logic Device）である。また、プロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００２６】
ＲＡＭ１０２は、管理装置１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００２７】
ＨＤＤ１０３は、管理装置１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳプログラム、ミドルウェア、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置を使用することもできる。
【００２８】
グラフィック処理装置１０４には、表示装置１０４ａが接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令にしたがって、画像を表示装置１０４ａに表示させる。表示装置としては、液晶ディスプレイや有機ＥＬ（Electroluminescence）ディスプレイなどがある。
【００２９】
入力インタフェース１０５には、入力装置１０５ａが接続されている。入力インタフェース１０５は、入力装置１０５ａから出力される信号をプロセッサ１０１に送信する。入力装置１０５ａとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３０】
読み取り装置１０６には、可搬型記録媒体１０６ａが脱着される。読み取り装置１０６は、可搬型記録媒体１０６ａに記録されたデータを読み取ってプロセッサ１０１に送信する。可搬型記録媒体１０６ａとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【００３１】
通信インタフェース１０７は、ネットワーク１０７ａを介して他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、管理装置１００の処理機能を実現することができる。なお、プロセッサ１０１は、図１に示した処理部１ｂの一例である。また、ＲＡＭ１０２またはＨＤＤ１０３は、図１に示した記憶部１ａの一例である。
【００３２】
ところで、上記の管理装置１００は、例えばミドルウェアを実行することで、各種のシステムを管理する処理を実行する。管理処理としては、例えば、ジョブ管理、システム監視などの処理がある。例えば、図２に示すように、管理装置１００には、ネットワーク１０７ａを介してサーバ２０１，２０２，２０３，・・・が接続されている。この場合、管理装置１００は、次のような管理処理を実行可能である。
【００３３】
ジョブ管理の一例として、管理装置１００は、サーバ２０１，２０２，２０３，・・・におけるジョブの実行を管理する。例えば、サーバ２０１，２０２，２０３，・・・に実行させるジョブをスケジューリングし、サーバ２０１，２０２，２０３，・・・におけるジョブの実行を制御する。なお、他の例として、ジョブ管理では、管理装置１００で実行されるジョブの実行が管理されてもよい。
【００３４】
また、システム監視の一例として、管理装置１００は、サーバ２０１，２０２，２０３，・・・の状態を監視する。例えば、管理装置１００は、サーバ２０１，２０２，２０３，・・・に対して定期的にポーリングを行い、異常が発生しているか、動作が停止しているかなど、サーバ２０１，２０２，２０３，・・・のそれぞれの動作状態を検出する。なお、他の例として、システム監視では、管理装置１００に搭載されたハードウェア資源の状態が監視されてもよい。
【００３５】
さらに、管理装置１００は、上記のような管理処理の実行に伴って、処理の実行内容や実行結果を示すログを生成する。管理装置１００は、後述するように、一定サイズ分または一定期間分を超えるログのデータについて、必要なものだけを選別して残す機能や、選別されたデータを圧縮する機能を備える。
【００３６】
ここで、管理装置１００については、管理対象とする処理の複雑化や、管理対象とするハードウェアリソースの増大化に伴って、管理のためのミドルウェアやソフトウェアの処理量が増大する傾向にある。そして、このような処理量の増大に伴って、上記のログのような保守用資材のデータサイズも増大している。その一方で、障害の発生に対してより早く対応して解決することが要求されている。
【００３７】
システム管理者は、長時間にわたって採取されたより多くのログを用いることで、障害発生原因の解析精度を高め、障害を解決できる可能性を高められる。その反面、ログの保存領域のサイズが過大になるだけでなく、解決に要する時間も長くなってしまう。一方で、ログの保存期間を短くすることで、保存領域のサイズを削減し、解決に要する時間を短縮できるものの、障害発生原因の解析精度が低下する。古いログの削除により、障害発生原因の解析自体が不可能になるリスクも高まる。
【００３８】
そこで、本実施の形態に係る管理装置１００は、保守のために必要性の高いログ、具体的には異常発生を示すログだけを選別して保存する。上記のような管理処理では、異常発生だけでなく正常であることを示すログも出力される。このため、これらのログの中から異常発生を示すログだけを選別して保存することで、異常の原因解析のために有用なログだけを残してその解析精度の低下を抑制しつつ、ログの保存サイズを削減できる。
【００３９】
管理装置１００は、管理処理の実行に伴って出力されるログの内容を解析することで、異常発生を示すログを検出する。このようなログの保存サイズ削減処理は、次のような処理に大別される。
【００４０】
（処理１）出力されたログのブロック化。
（処理２）ブロック化されたログのテンプレート化。
（処理３）ログとテンプレート情報との比較による異常ログの検出。
【００４１】
処理１では、管理装置１００は、ログに含まれる特定の情報に基づいて、ひとまとめの処理に対応するログの集合を「ログブロック」として抽出する。例えば、処理の識別番号や時刻情報に基づいて、ログがブロック化される。
【００４２】
処理２では、管理装置１００は、ブロック化されたログ（ログブロック）から可変部分を抽出し、抽出された可変部分の情報をあらかじめ決められたシンボルに置換することで、ログブロックをテンプレート化する。可変部分とは、あらかじめ決められた複数種類の項目について可変の値（数値または文字列）が設定される部分である。また、抽出された可変部分の情報は、項目ごとにあらかじめ決められたシンボルに置換される。
【００４３】
作成されたテンプレートには、ログブロックの可変部分に設定されていた情報を示す「可変値情報」が対応付けられる。これにより、テンプレートと可変値情報とを含むテンプレート情報が生成されて、所定の記憶領域に保存される。
【００４４】
また、管理装置１００は、生成されたテンプレート（すなわち、可変部分が置換されたログブロック）同士を比較して、テンプレートの内容が一致するテンプレート情報を統合する。この統合により、１つのテンプレートに対して、複数のログブロックに対応する可変値情報が対応付けられる。
【００４５】
このようにして、処理２では、テンプレートに１以上の可変値情報が対応付けられたテンプレート情報が生成される。
次の処理３では、管理装置１００は、複数の可変値情報が対応付けられたテンプレートについて、可変値情報同士を比較することで、各可変値情報に対応するログブロックの中から異常ログを含むログブロックを検出する。例えば、可変値情報の間で、同一項目についての設定値が１つだけ他の可変値情報と異なる場合、この設定値が設定されていたログブロックが異常ログを含むと判定される。
【００４６】
以上が、ログの保存サイズ削減処理の概要である。上記処理では、ログブロックのテンプレート化により、ログブロックに含まれるデータ内容のパターンが抽出される。そして、テンプレート化されたときに内容が同一となるログブロックが、同じパターンのデータ内容を有するログブロックと判定され、これらのログブロックが異常ログ判定時の比較対象として特定される。
【００４７】
また、異常ログの判定時には、テンプレート化の際に使用された複数種類の項目のうち、特定の項目に対する設定値のみが比較される。これにより、異常か否かを示す項目だけを用いて異常ログが判定されるので、その判定精度を向上させることができる。すなわち、本来は異常を示していないログを異常を示すと誤判定する可能性が低減され、その結果として、保存される異常ログのデータサイズを削減できる。
【００４８】
以下、管理装置１００の処理について詳しく説明する。
図３は、管理装置が備える処理機能の構成例を示すブロック図である。
管理装置１００は、定義情報記憶部１１１、ログ記憶部１１２、ログ退避部１１３、テンプレート記憶部１１４および異常ログ記憶部１１５を備える。これらは、例えば、ＲＡＭ１０２、ＨＤＤ１０３など、管理装置１００が備える記憶装置の記憶領域によって実現される。また、管理装置１００は、管理処理部１２１、ログ出力部１２２、ブロック化処理部１２３、テンプレート化処理部１２４および異常ログ検出部１２５を備える。これらの処理は、例えば、プロセッサ１０１が所定のプログラムを実行することによって実現される。
【００４９】
管理処理部１２１は、前述のジョブ管理やシステム監視といったシステムの管理処理を実行する。定義情報記憶部１１１には、管理処理部１２１による管理処理の実行のための定義情報が記憶されている。ここで、定義情報の例を図４、図５に示す。
【００５０】
図４は、定義情報記憶部に記憶される定義情報の第１の例を示す図である。図４に示す定義情報１１１ａは、管理処理として前述のジョブ管理が実行される場合に定義情報記憶部１１１に記憶される情報である。定義情報１１１ａは、管理対象のジョブに関する情報を保持し、ジョブの実行制御のために管理処理部１２１から参照される。
【００５１】
定義情報１１１ａには、プロジェクト名に対して、ジョブネット名と、１以上のジョブ名とが対応付けて登録される。ジョブネットとは、同じ目的や同じサーバで実行されるひとまとめのジョブのグループを示す。定義情報１１１ａでは、１つのジョブネット名に対応付けられたジョブ名が、そのジョブネットに属するジョブを示す。なお、実際には、ジョブネットに属するジョブの依存関係を示す情報が定義情報１１１ａに定義されていてもよい。プロジェクト名は、ジョブネットが示す一連の処理を識別するためにユーザによって付与された名称を示す。
【００５２】
管理処理部１２１は、このような定義情報１１１ａを参照することで、実行するジョブのジョブ名や対応するジョブネット名を認識することができる。また、定義情報１１１ａには、例えば、各ジョブ名に対応付けてジョブの処理内容を示す情報が登録されていてもよい。
【００５３】
図５は、定義情報記憶部に記憶される定義情報の第２の例を示す図である。図５に示す定義情報１１１ｂは、管理処理として前述のシステム監視が実行される場合に定義情報記憶部１１１に記憶される情報である。定義情報１１１ｂは、監視対象のサーバに関する情報を保持し、監視処理の実行制御のために管理処理部１２１から参照される。
【００５４】
定義情報１１１ｂには、ホスト名とＩＰ（Internet Protocol）アドレスとが対応付けて登録される。ホスト名は、監視対象のサーバを識別するための名称を示し、ＩＰアドレスは、そのサーバについてのネットワーク上のアドレスを示す。なお、ホスト名は、監視対象のリソースを識別するための名称の一例である。管理処理部１２１は、このような定義情報１１１ｂを参照することで、監視対象のサーバの識別名やアクセス先を認識することができる。また、定義情報１１１ｂには、例えば、各ホスト名に対応付けて監視処理の内容を示す情報が登録されていてもよい。
【００５５】
以下、図３に戻って説明を続ける。
ログ出力部１２２は、管理処理部１２１の処理の実行に応じてログを生成し、生成されたログをログ記憶部１１２に格納する。また、ログ出力部１２２は、所定の条件が満たされると、ログ記憶部１１２に格納された古いログをログ退避部１１３に退避させる。以下、このように条件に基づいて古いログが退避される処理を「ログ切り替え」と記載する。また、ログ切り替えが実行される条件を「ログ切り替え条件」と記載する。
【００５６】
ログ切り替え条件としては、次のいずれかが適用される。１つは、ログ記憶部１１２に蓄積されたログの総データサイズが一定サイズを超えた場合である。他の１つは、ログに記録された生成時刻の情報に基づき、ログ記憶部１１２に蓄積されたログの中に、現時刻より所定時間だけ前の時刻より前に生成されたログが存在した場合である。
【００５７】
ログ出力部１２２は、ログ切り替え条件が満たされると、ログ切り替え条件が満たされなくなるように、ログ記憶部１１２に格納されたログを生成時刻が古い方からログ退避部１１３に退避させる。これにより、ログ記憶部１１２には、直近に生成された一定サイズ分または一定期間分のログが記憶されるようになり、それより古いログはログ退避部１１３に移動される。
【００５８】
以下、ログ切り替えが実行されるたびにログ退避部１１３に退避されるログを、「世代」という文言を用いて表現する。例えば、１回のログ切り替えによってログ退避部１１３に退避されたログを「１世代分のログ」と表現する。
【００５９】
ログ切り替えが実行されると、ログ退避部１１３に退避された１世代分のログを用いて、ブロック化処理部１２３、テンプレート化処理部１２４および異常ログ検出部１２５によるログの保存サイズ削減処理が実行される。この処理は、ログ退避部１１３に退避されたログの中から異常を示す異常ログを検出して異常ログ記憶部１１５に保存するとともに、残りのログ（正常ログ）のデータ量を圧縮してテンプレート記憶部１１４に保存するものである。なお、ログ退避部１１３は、退避されたログを用いた上記の保存サイズ削減処理が完了するまでの間、それらのログを一時的に記憶する。
【００６０】
次に、ブロック化処理部１２３、テンプレート化処理部１２４および異常ログ検出部１２５の処理の詳細について説明する。
＜ブロック化処理＞
ブロック化処理部１２３は、ログ退避部１１３に退避されたログをブロック化してログブロックを抽出する。例えば、処理の識別番号やログの生成時刻に基づいて、ログがブロック化される。これにより、ひとまとめの処理に対応する複数のログが１つのログブロックにまとめられる。
【００６１】
ここで、図６〜図９に、ログ退避部１１３に退避されたログを示すログファイルの例を示し、ログのブロック化の具体例について説明する。
図６は、ログファイルの第１の例を示す図である。図６に示すログファイル１３１は、ジョブ管理の実行に伴って出力されるログの内容の一例である。このログファイル１３１には、例えば、実行対象のジョブについて、その実行を開始したことや、実行が正常に完了したか否かについてのログが記録されている。
【００６２】
このようなログには、システム管理者による解析作業を効率化するために、同じ目的や同じサーバで実行されるひとまとめのジョブを識別するためのＩＤ（IDentification）番号が記録されることが多い。図６の例では、「ＩＤｘｘｘｘｘ」という形式で記録される設定値が、このようなＩＤ番号を示す。図６の例では、１つのジョブネットに属するジョブの実行に伴って出力されるログに対して、同一のＩＤ番号が付与されている。
【００６３】
ブロック化処理部１２３は、このようなＩＤ番号に基づき、同一のＩＤ番号が記録されたログを１つのログブロックにブロック化する。図６の例では、領域１３１ａに含まれる「ＩＤ００００８」が記録されたログが、１つのログブロックにブロック化される。
【００６４】
図７は、ログファイルの第２の例を示す図である。図７に示すログファイル１３２も、図６のログファイル１３１と同様に、ジョブ管理の実行に伴って出力されるログの内容の一例である。そして、図６のログファイル１３１と同様に、図７のログファイル１３２の各行のログにも、ＩＤ番号が記録されている。
【００６５】
ジョブの実行状況によっては、あるジョブネットに属するジョブの実行中に別のジョブネットに属するジョブが実行される場合がある。そのため、同一のジョブネットに含まれるすべてのジョブに関するログが連続して出力されるとは限らない。図７のログファイル１３２では、「ＩＤ００００９」が付与されたジョブネットＮ１の実行途中に、「ＩＤ０００１０」が付与されたジョブネットＮ５の実行も開始されている。このため、ともに「ＩＤ００００９」が記録されたログを含む領域１３２ａと領域１３２ｂとの間に、「ＩＤ０００１０」が記録された２行のログが存在している。このような場合、ブロック化処理部１２３は、同一のＩＤ番号が記録された領域１３２ａ，１３２ｂに含まれるログを、１つのログブロックにブロック化する。
【００６６】
図８は、ログファイルの第３の例を示す図である。図８に示すログファイル１３３は、システム監視の実行に伴って出力されるログの内容の一例である。このログファイル１３３には、例えば、監視対象のサーバに対するポーリングの結果として、所定の処理や機能が正常に動作しているか否か、所定の性能が出ているか否かについてのログが記録されている。
【００６７】
このようなログには、ＩＤ番号の一例として、ログを出力したプロセスを識別するプロセスＩＤが記録されることがある。図８の例では、［ｘｘｘｘ］という形式で記録された数字、または数字とアルファベットとの組み合わせによる設定値が、このようなプロセスＩＤを示す。ブロック化処理部１２３は、このようなプロセスＩＤに基づき、同一のプロセスＩＤが記録されたログを１つのログブロックにブロック化する。図８の例では、領域１３３ａに含まれるプロセスＩＤ［２２９ａ］が記録されたログが１つのログブロックにブロック化され、領域１３３ｂに含まれるプロセスＩＤ［２３４ｃ］が記録されたログが別の１つのログブロックにブロック化される。
【００６８】
図９は、ログファイルの第４の例を示す図である。図９に示すログファイル１３４も、図８のログファイル１３３と同様に、システム監視の実行に伴って出力されるログの内容の一例である。
【００６９】
図６〜図８のようなひとまとめの処理に対応するログを識別するＩＤ番号がログに記録されていない場合、ブロック化処理部１２３は、ログに記録された時刻情報に基づいてログブロックを抽出することができる。例えば、ブロック化処理部１２３は、隣接する行の間での時刻差が一定時間以内であるログの集合を、１つのログブロックとして抽出する。図９の例では、領域１３４ａに含まれるログが１つのログブロックにブロック化され、領域１３４ｂに含まれるログが別の１つのブロックにブロック化される。例えば、システム監視の処理では、２４時間ごとといった一定時間間隔で１つの監視対象に対する一連の監視処理が繰り返し実行される場合がある。このような場合、上記方法によってひとまとめの処理に対応するログをブロック化することができる。
【００７０】
＜テンプレート化処理＞
テンプレート化処理部１２４は、ブロック化処理部１２３によって生成されたログブロックに含まれるログから可変部分を抽出し、抽出された可変部分の情報をあらかじめ決められたシンボルに置換することで、ログブロックを暫定テンプレートに変換する。この「暫定テンプレート」とは、テンプレート記憶部１１４に正式に記憶されたテンプレートと比較されるテンプレートを意味する。以下、テンプレート記憶部１１４に正式に記憶されたテンプレートを「正規テンプレート」と記載する。
【００７１】
また、テンプレート化処理部１２４は、ログブロックの可変部分に設定されていた情報を含む可変値情報を生成し、可変値情報を暫定テンプレートに対応付けておく。これにより、暫定テンプレートとこれに対応する可変値情報とを含む「暫定テンプレート情報」が生成される。
【００７２】
図１０は、テンプレートおよび可変値情報の例を示す図である。図１０に示すテンプレート１４１ａおよび可変値情報１４２ａは、図６に示したログファイル１３１の領域１３１ａから抽出されたログブロックに基づいて生成される暫定テンプレート情報の一例である。
【００７３】
前述のように、テンプレート化処理部１２４は、まず、ログブロックに含まれる各ログから可変部分を抽出する。ここで、ログに含まれる可変部分としては、例えば、日時（日付と時刻）、ＩＤ番号、数値、文字列といった項目がある。テンプレート化処理部１２４は基本的に、項目ごとにあらかじめ決められた形式を有する単語または単語列をログブロック内の各ログから抽出することで、可変部分を抽出する。
【００７４】
例えば、上記項目のうち日時は、一般的なフォーマットである。このため、テンプレート化処理部１２４は、各ログから日付、時刻の一般的なフォーマットに該当する単語列を、日付、時刻を示す可変情報として抽出する。図６の領域１３１ａからは、例えば「２０１７／１０／２４」「１１：１０：００」が、それぞれ日付、時刻を示す可変情報として抽出される。
【００７５】
次に、テンプレート化処理部１２４は、ログの残りを単語ごとに分解する。例えば、上記項目のうちＩＤ番号は、上記のようにあらかじめ決められた形式を有するので、テンプレート化処理部１２４は、分解された単語の中からＩＤ番号の形式に合致する単語を、ＩＤ番号を示す可変情報として抽出する。図６の領域１３１ａからは、「ＩＤ００００８」がＩＤ番号を示す可変情報として抽出される。
【００７６】
また、上記項目のうち数値は、単なる数字または数字列であるので、テンプレート化処理部１２４は、分解された単語の中から数字だけを有する単語を、数値を示す可変情報として抽出する。図６の領域１３１ａからは、４行目および６行目〜８行目の各ログにおいて下線を引いて示した「０」が、数値を示す可変情報として抽出される。なお、これらの数値「０」は、ジョブが正常に完了したか否かを示すコード（ｅｎｄ  ｃｏｄｅ）を示している。また、以下の説明では、可変情報として抽出される数値を「可変数値」と記載する。
【００７７】
なお、図９に示したログファイル１３４では、例えば、「ＳＮＭＰ＝０」の「０」、「ｉｆＩｎＯｃｔｅｓ．２」の「２」、「ｍｐＣｐｕＲａｔｅＡｖｅ．１」の「１」などが、可変数値を示す可変情報として抽出される。
【００７８】
一方、上記項目のうち文字列は、ここでは、日時、ＩＤ番号、数値に分類されない文字列、または文字と数字との組み合わせを示すものとする。このような文字列としては、一般的には、文字列に含まれる文字や数字のパターンが多数存在するので、このような文字列を形式化してログから抽出することは難しい。しかし、システム管理の処理では、このような文字列としては、定義情報記憶部１１１に記憶された定義情報のように、処理で利用する情報として定義されていることが多い。そこで、テンプレート化処理部１２４は、ログから分解された単語の中から、定義情報記憶部１１１内の定義情報において定義された情報と一致するものを、文字列を示す可変情報として抽出する。
【００７９】
例えば、ジョブ管理では、図４に示したようにプロジェクト名、ジョブネット名、ジョブ名が定義情報１１１ａに定義されているとともに、図６、図７に示したようにログにも記録される。そこで、テンプレート化処理部１２４は、例えば、図６の領域１３１ａから、「プロジェクトＰ２」「ジョブネットＮ２」「ジョブＪ４」「ジョブＪ５」「ジョブＪ６」を、それぞれ文字列を示す可変情報として抽出する。
【００８０】
また、システム監視では、図５に示したようにホスト名（監視対象のリソース名）やＩＰアドレス（監視対象リソースのアドレス）が定義情報１１１ｂに定義されているとともに、これらの情報がログにも記録され得る。例えば、図９の領域１３４ａには、定義情報１１１ｂに定義されたホスト名「ｈｏｓｔｎａｍｅ．ｄｏｍａｉｎ．ｃｏｍ」が記録されている。また、図９の領域１３４ｂには、定義情報１１１ｂに定義されたホスト名「ｈｏｓｔｎａｍｅ１．ｄｏｍａｉｎ．ｃｏｍ」が記録されている。なお、図９ではこれらのホスト名について下線を引いて示している。テンプレート化処理部１２４は、図９の領域１３４ａから「ｈｏｓｔｎａｍｅ．ｄｏｍａｉｎ．ｃｏｍ」を、また図９の領域１３４ｂから「ｈｏｓｔｎａｍｅ１．ｄｏｍａｉｎ．ｃｏｍ」を、それぞれ文字列を示す可変情報として抽出する。
【００８１】
なお、以下の説明では、可変情報として抽出される文字列を「可変文字列」と記載する。
テンプレート化処理部１２４は、以上のようにしてログブロックから抽出された可変情報を、項目の種類ごとにあらかじめ決められたシンボルに置換する。ここでは例として、日付の可変情報が「％ｄａｔｅ」に、時刻の可変情報が「％ｔｉｍｅ」に、ＩＤ番号の可変情報が「％ｉｄ」に、可変数値の可変情報が「％ｄ」に、可変文字列の可変情報が「％ｓ」に、それぞれ変換される。
【００８２】
図６に示したログファイル１３１の領域１３１ａから抽出されたログブロックが、上記の法則にしたがって可変情報がシンボルに置換されることによって、図１０に示すテンプレート１４１ａが暫定テンプレートとして生成される。また、図１０に示すように、生成されたテンプレート１４１ａに対応付けて、このログブロックに設定されていた可変情報（シンボルに置換された可変情報）が所定の順序で記録された可変値情報１４２ａが生成される。この可変値情報１４２ａにはさらに、ログ切り替えの世代を示す番号が記録される。
【００８３】
ただし、可変値情報１４２ａでは、日時（日付、時刻）の可変情報については所要時間に変換されて記録される。所要時間は、ログブロックに対応する処理にかかった時間を示し、ログブロック内のログに記録された最も早い日時と最も遅い日時との差分として計算される。
【００８４】
なお、可変値情報１４２ａにおいては、例えば、可変文字列については、ログブロックから抽出された順に記録される。可変数値についても、ログブロックから抽出された順に記録される。これにより、テンプレート１４１ａと可変値情報１４２ａとから元のログブロック内のログを復元できるようになる。ただし、日時の情報は元通り復元されないものの、世代番号からログが出力された時間帯を特定することは可能となる。
【００８５】
このように、テンプレート化処理部１２４により、例えば図１０に示すテンプレート１４１ａ（暫定テンプレート）と可変値情報１４２ａとを含む暫定テンプレートが生成される。一方、テンプレート記憶部１１４には、正規テンプレートと通常２以上の可変値情報とを含む「正規テンプレート情報」が登録されている。
【００８６】
図１１は、テンプレート記憶部のデータ構成例を示す図である。
テンプレート記憶部１１４では、２以上のログブロックから変換された暫定テンプレートの内容が同一である場合に、これらの暫定テンプレートが１つの正規テンプレートに統合されて登録される。また、同一内容の暫定テンプレートにそれぞれ対応付けられていた可変値情報は、統合された１つの正規テンプレートに対応付けられた状態でテンプレート記憶部１１４に登録される。
【００８７】
図１１の例では、正規テンプレートであるテンプレート１４１ｂに対して、４つの可変値情報１４２ｂ〜１４２ｅが対応付けて登録されている。これは、４つのログブロックから同一内容のテンプレート１４１ｂが生成され、４つのログブロックの可変部分に設定されていた情報がそれぞれ可変値情報１４２ｂ〜１４２ｅに登録されていることを示す。
【００８８】
なお、図１１の例ではさらに、正規テンプレートであるテンプレート１４１ｃに対して、３つの可変値情報１４２ｆ〜１４２ｈが対応付けられている。また、正規テンプレートであるテンプレート１４１ｄに対して、２つの可変値情報１４２ｉ，１４２ｊが対応付けられている。
【００８９】
さらに、正規テンプレートには、１つ以上の可変値統計情報が対応付けられる場合もある。可変値統計情報は、正規テンプレートに対応付けられた可変値情報のうち、所定世代数以上前のログから生成された可変値情報が、統計情報化されることで圧縮された情報である。可変値統計情報は、例えば、世代ごとに生成される。図１１の例では、テンプレート１４１ｂに対して２世代分の可変値統計情報１４３ａ，１４３ｂが対応付けられ、テンプレート１４１ｃに対して１世代分の可変値統計情報１４３ｃが対応付けられている。
【００９０】
このように、テンプレート記憶部１１４に登録される正規テンプレート情報には、正規テンプレートと可変値情報に加えて、可変値統計情報が含まれる場合もある。
次に、テンプレート化処理部１２４は、ログブロックから生成された暫定テンプレート情報と、テンプレート記憶部１１４内の正規テンプレート情報とを比較することで、暫定テンプレートをいずれかの正規テンプレートとして利用するかを判定する。
【００９１】
図１２は、暫定テンプレート情報と正規テンプレートとの比較処理の例を示す図である。なお、この図１２以降では、可変値情報における世代数の記載を省略する。
図１２では例として、暫定テンプレート情報として図１０に示したテンプレート１４１ａおよび可変値情報１４２ａが用いられている。一方、テンプレート記憶部１１４には、正規テンプレート情報としてテンプレート１４１ｅおよび可変値情報１４２ｋ〜１４２ｍが登録されているとする。
【００９２】
ここで、暫定テンプレートであるテンプレート１４１ａの内容と正規テンプレートであるテンプレート１４１ｅの内容とが一致したとする。この場合、テンプレート化処理部１２４は、テンプレート情報を統合させる。すなわち、テンプレート化処理部１２４は、可変値情報１４２ａをテンプレート１４１ｅに対応付けてテンプレート記憶部１１４に追加登録し、暫定テンプレートであるテンプレート１４１ｅを破棄する。
【００９３】
一方、例えば、暫定テンプレートであるテンプレート１４１ａの内容が、テンプレート記憶部１１４に登録されているすべての正規テンプレートの内容と一致しなかったとする。この場合、テンプレート化処理部１２４は、テンプレート１４１ａと可変値情報１４２ａを、新規の正規テンプレート情報としてテンプレート記憶部１１４に登録する。
【００９４】
以上のテンプレート化処理部１２４の処理により、可変部分に設定された値が異なるログブロックの間でも、可変部分の置換後のテンプレート同士が同じである場合には、ログブロックに含まれるデータ内容のパターンが同じであると判定される。これにより、異常ログ検出部１２５の処理により、データ内容のパターンが同じログブロック同士で可変部分に設定された値を比較することで、異常ログを検出できるようになる。
【００９５】
＜異常ログ検出処理＞
異常ログ検出部１２５は、可変値情報の比較と、時間情報に基づくスローダウンの検出という２通りの方法を用いて、異常ログを検出する。
【００９６】
まず、可変値情報の比較による異常ログの検出方法について説明する。なお、可変値情報の比較による異常ログの検出は、テンプレート記憶部１１４内にある程度の個数のテンプレート情報が登録されたことを示す所定の実行条件が満たされた後に、実行される。
【００９７】
図１３は、可変値情報の比較処理の例を示す図である。図１３では、テンプレート１４１ｅに対して４つの可変値情報１４２ｋ〜１４２ｎが対応付けられた正規テンプレート情報の一例を示している。
【００９８】
異常ログ検出部１２５は、このように同一のテンプレート１４１ｅに対応付けられた可変値情報１４２ｋ〜１４２ｎの間で、同じ項目の可変情報同士を比較する。このとき、異常ログ検出部１２５は、可変値情報１４２ｋ〜１４２ｎに含まれる可変情報の項目のうち、あらかじめ決められた特定の項目の可変情報同士のみを比較する。これにより、異常か否かを示す項目だけを用いて異常ログが判定されるので、異常ログを含まない可変値情報が異常ログを含むものと誤判定される可能性を低減できる。
【００９９】
図１３の例では、可変値情報１４２ｋ〜１４２ｎの間で可変数値のみが比較される。可変値情報１４２ｋ〜１４２ｍでは互いに可変数値の値が一致するが、可変値情報１４２ｎの可変数値のみが他とは異なる。このため、可変値情報１４２ｎが異常と判定される。すなわち、可変値情報１４２ｎに対応するログブロックに、異常を示す異常ログが含まれていると判定される。
【０１００】
この場合、異常ログ検出部１２５は、テンプレート１４１ｅの可変情報の各項目（ただし、日時を除く）に、可変値情報１４２ｎに記録された可変情報を代入することで、可変値情報１４２ｎに対応する元のログブロックを復元する。異常ログ検出部１２５は、復元されたログブロックを異常ログを含む情報として異常ログ記憶部１１５に登録するとともに、テンプレート記憶部１１４から可変値情報１４２ｎを削除する。
【０１０１】
ここで、図１４は、ログファイルの第５の例を示す図である。この図１４を用いて、特定の項目の可変情報のみを比較して異常ログを検出する理由について説明する。
図１４に示すログファイル１３５は、図６のログファイル１３１と同様に、ジョブ管理の実行に伴って出力されるログの内容の一例である。ログファイル１３５からは、領域１３５ａに含まれるログと、領域１３５ｂに含まれるログが、それぞれ個別のログブロックとしてブロック化される。そして、これらのログブロックからテンプレートが生成される。また、領域１３５ａ，１３５ｂのいずれに基づくログブロックでも、ジョブが正常に完了したか否かを示す「ｅｎｄ  ｃｏｄｅ」に対応する可変数値が正常を示す「０」となっている。このため、いずれのログブロックにも異常ログは含まれない。
【０１０２】
ところで、別の比較方法の例として、可変数値だけでなく、可変文字列同士も比較する方法が考えられる。図１４の例では、領域１３５ａ内のログと領域１３５ｂ内のログとの間では、可変文字列を示すプロジェクト名、ジョブネット名、ジョブ名が異なっている。このため、可変文字列同士も比較した場合、領域１３５ａ，１３５ｂのどちらかに基づくログブロックに異常ログが含まれると判定される。
【０１０３】
しかし、ジョブ管理では、可変文字列を示すプロジェクト名、ジョブネット名、ジョブ名が異なっていても、管理対象が異なるだけで処理内容が同じである場合がある。例えば図１４の場合、領域１３５ａに含まれるログでは、プロジェクトＰ２、ジョブネットＮ２に属するジョブとして、まずジョブＪ４が開始され、次にジョブＪ５が開始され、ジョブＪ４が終了した後にジョブＪ６が開始され、ジョブＪ５、ジョブＪ６が順に終了したことが記録されている。一方、領域１３５ｂに含まれるログでは、プロジェクトＰ３、ジョブネットＮ３に属するジョブとして、まずジョブＪ７が開始され、次にジョブＪ８が開始され、ジョブＪ７が終了した後にジョブＪ９が開始され、ジョブＪ８、ジョブＪ９が順に終了したことが記録されている。
【０１０４】
このように、領域１３５ａ，１３５ｂのいずれに含まれるログでも、３つのジョブの開始、終了の手順が同じになっている。このため、領域１３５ａ，１３５ｂのいずれに基づくログブロックには、同じ処理内容を示すログが記録されているといえる。ジョブ管理では、この例のように、プロジェクト名、ジョブネット名、ジョブ名といったジョブ識別のための名称として異なる名称が定義されている場合でも、処理手順やジョブの構成（依存関係）のような処理内容が同じであるケースがある。例えば、定期的に実行されるデータのバックアップ処理では、バックアップ元やバックアップ先が異なっていても、処理手順やジョブの構成は同じになるケースが多い。
【０１０５】
上記のように、可変文字列同士も比較した場合には、領域１３５ａ，１３５ｂのどちらかに基づくログブロックに異常ログが含まれると判定されてしまう。しかし、本実施の形態では、テンプレート化処理部１２４によって可変文字列が所定のシンボルに置換されることで、テンプレートが生成される。これにより、可変文字列として設定されていた内容自体が異なっていても、ログブロック内での可変文字列の場所の出現位置が同じであれば、それらのログブロックは、同じ処理内容に対応するログが記録された、同じデータ内容のパターンを有すると判断される。そして、異常ログ検出部１２５により、可変文字列を用いずに可変数値だけを用いて比較が行われることで、異常ログの有無を正確に判定できる。すなわち、図１４の例では、領域１３５ａ，１３５ｂのいずれに基づくログブロックにも、異常ログが存在しないと判定される。
【０１０６】
また、システム監視の場合にも、同様に異常ログを正確に判定できる。システム監視では、ログブロック間で、可変文字列として記録されたホスト名やＩＰアドレスが異なる場合でも、監視対象のリソースの構成が同じであるために、ログブロックにおけるデータ内容のパターンが同じになるケースがある。
【０１０７】
例えば、図９に示したログファイル１３４においては、可変文字列として下線で示すホスト名が記録されている。例えば、領域１３４ａには、ホスト名を示す「ｈｏｓｔｎａｍｅ．ｄｏｍａｉｎ．ｃｏｍ」が記録され、これが可変文字列として抽出される。また、領域１３４ｂには、ホスト名を示す「ｈｏｓｔｎａｍｅ１．ｄｏｍａｉｎ．ｃｏｍ」が記録され、これが可変文字列として抽出される。このような領域１３４ａ，１３４ｂのいずれに基づくログブロックについても、テンプレート化によって同じ内容のパターンが含まれると判定される。したがって、ホスト名を示す可変文字列の違いによっていずれかのログブロックが異常ログを含むと誤判定されることがなくなる。
【０１０８】
次に、図１５は、正規テンプレート情報の例を示す図である。図１５では、正規テンプレートであるテンプレート１４１ｆに対して１つの可変値情報１４２ｏが対応付けられた正規テンプレート情報の例を示している。
【０１０９】
このように１つの可変値情報１４２ｏのみを有する正規テンプレート情報が、テンプレート記憶部１１４内にある程度の個数のテンプレート情報が登録されたことを示す所定の実行条件が満たされた状態において、テンプレート記憶部１１４に登録されているとする。この場合、テンプレート１４１ｆと同じ内容のテンプレートが過去に登録されていない。このことから、異常ログ検出部１２５は、テンプレート１４１ｆに対応するログブロックには異常ログが含まれており、テンプレート１４１ｆを正規テンプレートとして扱うべきでないと判定する。
【０１１０】
なお、図１５のテンプレート１４１ｆでは、異常が発生した場合に出力される情報が下線部に示した位置に記録され、この下線部のみが図１０に示したテンプレート１４１ａと異なっている。また、図９に示したログファイル１３４では、太線で示した位置には、異常が発生した場合に別のメッセージが記録される。これらの例のように、ログブロック内の情報のうち、可変情報の項目としての条件に合致しない情報が異常発生時に変更されるようなログブロックから、可変値情報が１つしか対応付けられない正規テンプレートが生成され得る。
【０１１１】
ここで、本実施の形態に係る管理装置１００によって実現される技術は、異常な事象の発生からその原因究明のための資料採取までの間に、ログの切り替えが発生して、原因究明に必要な古いログが削除されてしまうことを回避するものである。例えば、複数回異常が発生するような事象については、再現性があると考えられるので、ログ記憶部１１２に保存された切り替え前のログによって原因究明できる可能性が高い。一方、再現性に乏しい突発的な異常の事象については、その原因究明のためにできるだけ古いログを保存しておくことが望まれる。管理装置１００では、図１５で説明したように、可変値情報が１つしか含まれない正規テンプレート情報を異常と判定して、対応するログを保存しておくことで、このような突発的な異常の事象に関する古いログを確実に保存しておくことが可能になる。
【０１１２】
異常ログ検出部１２５は、図１５に示すテンプレート情報を異常と判定すると、次のような処理を実行する。異常ログ検出部１２５は、テンプレート１４１ｆの可変情報の各項目（ただし、日時を除く）に、可変値情報１４２ｏに記録された可変情報を代入することで、可変値情報１４２ｏに対応する元のログブロックを復元する。異常ログ検出部１２５は、復元されたログブロックを異常ログを含む情報として異常ログ記憶部１１５に登録するとともに、テンプレート記憶部１１４からテンプレート１４１ｆと可変値情報１４２ｏをともに削除する。
【０１１３】
次に、図１６は、正規テンプレート情報の他の例を示す図である。この図１６を用いて、時間情報に基づくスローダウンの検出によって異常ログを検出する方法について説明する。
【０１１４】
図１６に示す正規テンプレート情報は、テンプレート１４１ｅと、４つの可変値情報１４２ｋ〜１４２ｍ，１４２ｐと、１つの可変値統計情報１４３ｄとを含んでいる。ここで、可変値統計情報１４３ｄは、テンプレート１４１ｅに対応付けられた可変値情報のうち、所定世代数以上前のログから生成された可変値情報に基づいて生成された情報である。可変値統計情報１４３ｄには、サンプル数、平均時間、可変文字列および可変数値が記録される。
【０１１５】
サンプル数は、可変値統計情報１４３ｄの生成の元になった過去の可変値情報の数を示す。平均時間は、この過去の可変値情報に記録されていた所要時間の平均値を示す。可変文字列には、この過去の可変値情報に記録されていた可変文字列が順に記録される。可変数値には、この過去の可変値情報に記録されていた可変数値が順に記録される。
【０１１６】
異常ログ検出部１２５は、テンプレート１４１ｅに対応付けられている可変値情報１４２ｋ〜１４２ｍ，１４２ｐの中から、所要時間が極端に長いものを、処理のスローダウン（遅延）という異常が発生したときのログに基づく可変値情報と判定する。この判定のために、異常ログ検出部１２５は、可変値統計情報１４３ｄを参照する。異常ログ検出部１２５は、可変値統計情報１４３ｄに記録された平均時間を、過去の正常時における所要時間の基準値として用い、可変値情報１４２ｋ〜１４２ｍ，１４２ｐの中から所要時間が平均時間に対して所定数倍（例えば、１０倍）のものを、異常と判定する。
【０１１７】
図１６の例では、可変値情報１４２ｐに記録された所要時間が、可変値統計情報１４３ｄに記録された平均時間の１０倍以上になっている。このため、可変値情報１４２ｐが異常と判定される。この場合、異常ログ検出部１２５は、テンプレート１４１ｅの可変情報の各項目（ただし、日時を除く）に、可変値情報１４２ｐに記録された可変情報を代入することで、可変値情報１４２ｐに対応する元のログブロックを復元する。異常ログ検出部１２５は、復元されたログブロックを異常ログを含む情報として異常ログ記憶部１１５に登録するとともに、テンプレート記憶部１１４から可変値情報１４２ｐを削除する。
【０１１８】
以上のような異常ログ検出部１２５の処理により、異常を示す情報としてログに明示的に記録された可変情報に基づく異常の事象に加えて、ログに明示的に現れない処理のスローダウンという異常の事象を示すログも特定することができる。
【０１１９】
なお、上記の異常ログ検出部１２５の処理により、異常ログ検出の実行条件が満たされている場合、１世代分の異常ログ検出処理が完了した時点で、テンプレート記憶部１１４内のすべての正規テンプレートには２以上の可変値情報が対応付けられた状態となる。また、異常ログを含むと判定されたログブロックに基づく可変値情報はテンプレート記憶部１１４からすべて削除される。このため、テンプレート記憶部１１４内のすべての正規テンプレートには、正常なログブロックに基づく可変値情報のみが対応付けられた状態となる。
【０１２０】
＜可変値統計情報の生成＞
異常ログ検出部１２５は、異常ログの検出処理が完了すると、最後に、テンプレート記憶部１１４に登録された古い可変値情報の内容を可変値統計情報に集約する。これにより、テンプレート記憶部１１４に登録された、正常時のログに基づく情報のデータサイズを圧縮することができる。
【０１２１】
図１７は、可変値統計情報の生成例を示す図である。図１７には、テンプレート１４１ｅと可変値情報１４２ｋ〜１４２ｍ，１４２ｑとを含む正規テンプレート情報を例示している。
【０１２２】
ここでは例として、現世代から９世代前までの１０世代分の可変値情報のみをテンプレート記憶部１１４に残し、それより古い世代の可変値情報を可変値統計情報に集約するものとする。図１７の例では、可変値情報１４２ｍ，１４２ｑが９世代前のログに基づくものであり、可変値情報１４２ｋ，１４２ｌが１０世代前のログに基づくものであるとする。
【０１２３】
この場合、異常ログ検出部１２５は、可変値情報１４２ｋ，１４２ｌに基づいて可変値統計情報１４３ｅを生成する。前述のように、可変値統計情報１４３ｅには、サンプル数、平均時間、可変文字列および可変数値が記録される。可変値統計情報１４３ｅは２つの可変値情報１４２ｋ，１４２ｌから生成されるので、サンプル数は「２」となる。平均時間は、可変値情報１４２ｋ，１４２ｌの各所要時間の平均から、「１１７．５秒」となる。可変文字列としては、可変値情報１４２ｋ，１４２ｌに記録された可変文字列が順に抽出されて記録される。可変数値としては、可変値情報１４２ｋ，１４２ｌに記録された可変数値が順に抽出されて記録される。
【０１２４】
異常ログ検出部１２５は、このように生成された可変値統計情報１４３ｅを、テンプレート１４１ｅに対応付けてテンプレート記憶部１１４に登録する。そして、異常ログ検出部１２５は、可変値情報１４２ｋ，１４２ｌをテンプレート記憶部１１４から削除する。これにより、過去の正常なログに基づく情報を保持し続けながら、テンプレート記憶部１１４の保存データサイズを削減できる。また、登録された可変値統計情報１４３ｅは、図１６で説明したように、異常ログの検出にも用いられる。
【０１２５】
＜フローチャート＞
次に、管理装置１００の処理についてフローチャートを用いて説明する。
図１８、図１９は、ログの保存サイズ削減処理の全体の処理手順を示すフローチャートの例である。
【０１２６】
ログ出力部１２２は、ログ切り替え条件が満たされると、ログ切り替え条件が満たされなくなるように、ログ記憶部１１２に格納されたログを生成時刻が古い方からログ退避部１１３に退避させる。ログ切り替え条件は、例えば、ログ記憶部１１２に蓄積されたログの総データサイズが一定サイズを超えた場合である。あるいは、ログ切り替え条件は、ログに記録された生成時刻の情報に基づき、ログ記憶部１１２に蓄積されたログの中に、現時刻より所定時間だけ前の時刻より前に生成されたログが存在した場合である。ログ出力部１２２によってログ退避部１１３に対する１世代分のログの退避が完了すると、図１８の処理が開始される。
【０１２７】
［ステップＳ１１］ブロック化処理部１２３は、ログ退避部１１３に退避されたログの中に、ＩＤ番号が含まれているかを判定する。ＩＤ番号が含まれている場合、処理はステップＳ１２に進められ、ＩＤ番号に基づくログのブロック化処理が実行される。一方、ＩＤ番号が含まれていない場合、処理は図１９のステップＳ３１に進められ、ログに記録された時刻情報に基づくログのブロック化処理が実行される。
【０１２８】
［ステップＳ１２］ブロック化処理部１２３は、ログ退避部１１３からログを１行取得する。
［ステップＳ１３］ブロック化処理部１２３は、取得したログからＩＤ番号を抽出し、このＩＤ番号が既出のＩＤ番号かを判定する。「既出のＩＤ番号」とは、すでにステップＳ１２の処理を１回以上実行済みの場合に、実行済みのステップＳ１２においてログから抽出されたＩＤ番号を示す。ブロック化処理部１２３は、ＩＤ番号が既出でない場合、ステップＳ１４の処理を実行する。一方、ブロック化処理部１２３は、ＩＤ番号が既出の場合、処理をステップＳ１２に進めて、次の１行のログを取得する。
【０１２９】
［ステップＳ１４］ブロック化処理部１２３は、ログ退避部１１３から、ステップＳ１２で読み込んだログから抽出されたＩＤ番号と同じＩＤ番号が記録されているログをすべて取得する。
【０１３０】
［ステップＳ１５］ブロック化処理部１２３は、ステップＳ１２，Ｓ１４で取得したログの数（行数）が、ログ退避部１１３に退避されたログの全体数（全体の行数）の１割を超えたかを判定する。ブロック化処理部１２３は、取得したログの数が全体の１割以下の場合、ステップＳ１６の処理を実行する。一方、取得したログの数が全体の１割を超えている場合、取得したログの数が過多であり、ひとまとめの処理に対応するログではない可能性が高いと判定される。この場合、ブロック化処理部１２３は、抽出されたＩＤ番号がブロック化に適さないものと判定して、ここまでの処理を破棄して図１９のステップＳ３１に処理を進める。
【０１３１】
［ステップＳ１６］ブロック化処理部１２３は、ステップＳ１２，Ｓ１４で取得したログをブロック化して、ログブロックを生成する。
［ステップＳ１７］テンプレート化処理部１２４は、生成されたログブロックのテンプレート化処理を実行する。この処理では、テンプレート化処理部１２４は、ログブロックを基に、暫定テンプレートと可変値情報とを含む暫定テンプレート情報を生成する。
【０１３２】
［ステップＳ１８］テンプレート化処理部１２４は、生成された暫定テンプレートと、テンプレート記憶部１１４に記憶された正規テンプレートとの比較処理を実行する。この処理では、テンプレート化処理部１２４は、暫定テンプレートをいずれかの正規テンプレートに統合する処理、または、暫定テンプレート情報を新規の正規テンプレート情報としてテンプレート記憶部１１４に登録する処理のいずれかが実行される。
【０１３３】
［ステップＳ１９］ブロック化処理部１２３は、ステップＳ１２，Ｓ１４の実行により、ログ退避部１１３に退避されたすべてのログを取得済みかを判定する。ブロック化処理部１２３は、未取得のログがある場合、処理をステップＳ１２に進めて未取得のログを取得し、すべてのログを取得済みの場合、処理をステップＳ２０に進める。
【０１３４】
［ステップＳ２０］異常ログ検出部１２５は、この時点でテンプレート記憶部１１４に記憶されている正規テンプレート情報を用いて、異常ログの検出処理を実行する。
［ステップＳ２１］ブロック化処理部１２３は、ログ退避部１１３に退避されたログを消去する。
【０１３５】
以下、図１９を参照して説明を続ける。
［ステップＳ３１］ブロック化処理部１２３は、ログ退避部１１３からログを１行取得する。なお、図１８のステップＳ１５の次にステップＳ３１が実行された場合、退避されたログの先頭からあらためてログが取得される。
【０１３６】
［ステップＳ３２］ブロック化処理部１２３は、ステップＳ３１で取得したログの時刻と、退避された他のログの時刻とを比較し、ステップＳ３１で取得したログと近い時刻が記録された他のログを取得する。この処理では、まず、退避された他のログの中から、ステップＳ３１で取得したログとの時刻の差が一定時間以下のログが抽出される。さらに、未抽出の他のログの中から、抽出されたログとの時刻の差が一定時間以下のログが抽出される。このようにして、時刻が近いログの集合が取得される。ブロック化処理部１２３は、抽出されたログをブロック化して、ログブロックを生成する。
【０１３７】
［ステップＳ３３］テンプレート化処理部１２４は、生成されたログブロックのテンプレート化処理を実行する。この処理内容は、図１８のステップＳ１７と同様である。
［ステップＳ３４］テンプレート化処理部１２４は、生成された暫定テンプレートと、テンプレート記憶部１１４に記憶された正規テンプレートとの比較処理を実行する。この処理内容は、図１８のステップＳ１８と同様である。
【０１３８】
［ステップＳ３５］ブロック化処理部１２３は、ステップＳ３１，Ｓ３２の実行により、ログ退避部１１３に退避されたすべてのログを取得済みかを判定する。ブロック化処理部１２３は、未取得のログがある場合、処理をステップＳ３１に進めて未取得のログを取得し、すべてのログを取得済みの場合、処理を図１８のステップＳ２０に進める。
【０１３９】
図２０は、テンプレート化処理の手順を示すフローチャートの例である。この図２０の処理は、図１８のステップＳ１７および図１９のステップＳ３３の処理に対応する。
［ステップＳ４１］テンプレート化処理部１２４は、図１８のステップＳ１６または図１９のステップＳ３２で生成されたログブロックから、ログを読み取る。ステップＳ４１の実行のたびに、ログブロックの先頭側から順にログが読み取られる。
【０１４０】
［ステップＳ４２］テンプレート化処理部１２４は、読み取ったログから日付および時刻を示す可変部分を抽出する。テンプレート化処理部１２４は、日付を示す可変情報を「％ｄａｔｅ」に置換し、時刻を示す可変情報を「％ｔｉｍｅ」に置換する。
【０１４１】
［ステップＳ４３］テンプレート化処理部１２４は、読み取ったログからログＩＤを示す可変情報を抽出し、ログＩＤを示す可変情報を「％ｉｄ」に置換する。
［ステップＳ４４］テンプレート化処理部１２４は、読み取ったログから可変数値を示す可変情報を抽出し、可変数値の可変情報を「％ｄ」に置換する。
【０１４２】
［ステップＳ４５］テンプレート化処理部１２４は、読み取ったログの残りの部分を単語単位で分割する。
［ステップＳ４６］テンプレート化処理部１２４は、定義情報記憶部１１１を参照し、分割された単語の中に、定義情報記憶部１１１に定義された情報と一致する単語があるかを判定する。テンプレート化処理部１２４は、一致する単語があった場合、ステップＳ４７の処理を実行し、一致する単語がなかった場合、ステップＳ４８の処理を実行する。
【０１４３】
［ステップＳ４７］テンプレート化処理部１２４は、定義情報記憶部１１１に定義された情報と一致した単語、すなわち可変文字列を示す可変情報を、「％ｓ」に置換する。
［ステップＳ４８］テンプレート化処理部１２４は、ログブロック内のすべてのログをステップＳ４１で読み取り済みかを判定する。テンプレート化処理部１２４は、読み取り済みでないログがある場合、処理をステップＳ４１に進めて、次のログを読み取る。一方、テンプレート化処理部１２４は、すべてのログを読み取り済みの場合、ステップＳ４９の処理を実行する。
【０１４４】
［ステップＳ４９］テンプレート化処理部１２４は、ステップＳ４２〜Ｓ４４，Ｓ４７の処理によって可変情報がシンボルに置換されたログブロックを、暫定テンプレートとしてＲＡＭ１０２に一時的に保存する。また、テンプレート化処理部１２４は、ステップＳ４２〜Ｓ４４，Ｓ４７でシンボルに置換された元の可変情報を用いて可変値情報を生成し、生成された可変値情報を暫定テンプレートに対応付けてＲＡＭ１０２に一時的に保存する。これにより、暫定テンプレートと可変値情報とを含む暫定テンプレート情報が生成される。
【０１４５】
図２１は、正規テンプレートとの比較処理の手順を示すフローチャートの例である。この図２１の処理は、図１８のステップＳ１８および図１９のステップＳ３４の処理に対応する。
【０１４６】
［ステップＳ５１］テンプレート化処理部１２４は、図１８のステップＳ１７または図１９のステップＳ３３で生成された暫定テンプレートと、この時点でテンプレート記憶部１１４に記憶されている各正規テンプレートとを比較する。
【０１４７】
［ステップＳ５２］テンプレート化処理部１２４は、暫定テンプレートが正規テンプレートのいずれかと一致した場合、ステップＳ５３の処理を実行し、暫定テンプレートがいずれの正規テンプレートとも一致しなかった場合、ステップＳ５４の処理を実行する。
【０１４８】
［ステップＳ５３］テンプレート化処理部１２４は、暫定テンプレートに対応付けられている可変値情報を、暫定テンプレートと一致した正規テンプレートに対応付けてテンプレート記憶部１１４に登録する。また、テンプレート化処理部１２４は、暫定テンプレートを破棄する。
【０１４９】
［ステップＳ５４］テンプレート化処理部１２４は、暫定テンプレートと１つの可変値情報とが対応付けられた暫定テンプレート情報を、新規の正規テンプレート情報としてテンプレート記憶部１１４に登録する。
【０１５０】
図２２は、異常ログの検出処理の手順を示すフローチャートの例である。この図２２の処理は、図１８のステップＳ２０の処理に対応する。
［ステップＳ６１］異常ログ検出部１２５は、検出処理の実行条件を満たすかを判定する。異常ログ検出部１２５は、実行条件を満たす場合、ステップＳ６２の処理を実行する。一方、異常ログ検出部１２５は、実行条件を満たさない場合、処理を終了する。
【０１５１】
この実行条件とは、テンプレート記憶部１１４内にある程度の個数のテンプレート情報が登録されたことを示すものであり、例えば次のような条件が用いられる。一例として、テンプレート記憶部１１４に所定個数以上の正規テンプレートが登録されている、という条件が用いられる。他の例として、テンプレート記憶部１１４に所定個数以上の可変値情報が登録されている、という条件を用いることもできる。他の例として、テンプレート記憶部１１４に所定世代数以上のログに基づく可変値情報が登録されている、という条件を用いることもできる。
【０１５２】
［ステップＳ６２］異常ログ検出部１２５は、テンプレート記憶部１１４に記憶された正規テンプレートの中から、処理対象の正規テンプレートを選択する。
このステップＳ６２では、ステップＳ６１で最初に実行条件を満たすと判定された場合には、テンプレート記憶部１１４に記憶されたすべての正規テンプレートの中から、処理対象の正規テンプレートが選択される。一方、ステップＳ６１で２回目以降に実行条件を満たすと判定された場合には、図２１のステップＳ５３で可変値情報が追加された正規テンプレート、およびステップＳ５４で新規に登録された正規テンプレートの中から、処理対象の正規テンプレートが選択される。これは、ステップＳ６２以降が１回実行された後、該当する正規テンプレート以外の正規テンプレートには、異常ログを含むログブロックから生成された可変値情報が対応付けられていない状態になるからである。
【０１５３】
［ステップＳ６３］異常ログ検出部１２５は、処理対象の正規テンプレートに対応付けられた可変値情報が、複数存在するかを判定する。異常ログ検出部１２５は、可変値情報が複数存在する場合、ステップＳ６４の処理を実行し、可変値情報が１つだけ存在する場合、ステップＳ６８の処理を実行する。
【０１５４】
ただし、可変値情報が１つだけ対応付けられている場合でも、可変値統計情報が対応付けられている場合には、処理はステップＳ６４に進められる。
［ステップＳ６４］異常ログ検出部１２５は、処理対象の正規テンプレートに対応付けられた各可変値情報を参照し、各可変値情報に記録された可変数値がすべて同じかを判定する。異常ログ検出部１２５は、可変数値がすべて同じ場合、ステップＳ６５の処理を実行し、可変数値の少なくとも１つが他の可変数値と異なる場合、ステップＳ６８の処理を実行する。
【０１５５】
ただし、可変値統計情報が対応付けられておらず、かつ、可変値情報が２つのみ対応付けられている場合には、可変数値の値に関係なく、処理がステップＳ６５に進められる。
また、可変値情報が１つだけ対応付けられている場合、可変値情報の可変数値が可変値統計情報内の可変数値と同じかが判定される。これらが同じ場合、処理はステップＳ６５に進められ、異なる場合、処理はステップＳ６８に進められる。なお、可変値統計情報は、異常ログに対応する情報を排除した後に、異常ログを含まないログブロックに基づく古い可変値情報から生成される。このため、１つの正規テンプレートに対応付けられたすべての可変値統計情報では、可変数値の値が同じ値になる。
【０１５６】
［ステップＳ６５］異常ログ検出部１２５は、処理対象の正規テンプレートに可変値統計情報が対応付けられているかを判定する。異常ログ検出部１２５は、可変値情報が対応付けられている場合、ステップＳ６６の処理を実行し、可変値情報が対応付けられていない場合、ステップＳ６７の処理を実行する。
【０１５７】
［ステップＳ６６］異常ログ検出部１２５は、処理対象の正規テンプレートに対応付けられた可変値統計情報から、平均時間を取得する。なお、可変値統計情報が複数対応付けられている場合、異常ログ検出部１２５は、各可変値統計情報に記録された平均時間とサンプル数とを基に、これらを統合した平均時間を算出する。
【０１５８】
異常ログ検出部１２５は、正規テンプレートに対応付けられた可変値情報に記録されたすべての所要時間が、平均時間の１０倍以下かを判定する。異常ログ検出部１２５は、すべての所要時間が平均時間の１０倍以下の場合、ステップＳ６７の処理を実行し、所要時間が平均時間の１０倍を超える可変値情報がある場合、ステップＳ６８の処理を実行する。
【０１５９】
［ステップＳ６７］異常ログ検出部１２５は、処理対象の正規テンプレートには、異常ログを含むログブロックに基づく可変値情報が対応付けられていないと判定する。この場合、異常ログ検出部１２５は、処理対象の正規テンプレートを含む正規テンプレート情報を、テンプレート記憶部１１４にそのまま残す。これにより、処理対象の正規テンプレートとともに、これに対応付けられたすべての可変値情報もテンプレート記憶部１１４に残される。
【０１６０】
［ステップＳ６８］異常ログ検出部１２５は、処理対象の正規テンプレートに、異常ログを含むログブロックに基づく可変値情報が対応付けられていると判定する。この場合、異常ログを含むログブロックが復元されて、異常ログ記憶部１１５に保存される。
【０１６１】
ステップＳ６３で「Ｎｏ」と判定された場合、異常ログ検出部１２５は、処理対象の正規テンプレートと、これに１つだけ対応付けられた可変値情報とを基にログブロックを復元し、復元されたログブロックを異常ログ記憶部１１５に登録する。そして、異常ログ検出部１２５は、処理対象の正規テンプレートとこれに対応付けられた可変値情報とを、テンプレート記憶部１１４から削除する。
【０１６２】
ステップＳ６４で「Ｎｏ」と判定された場合、異常ログ検出部１２５は、可変数値が他の複数の可変値情報の可変数値、または可変値統計情報の可変数値とは異なると判定された可変値情報を、異常ログを含むログブロックに基づく可変値情報として特定する。また、ステップＳ６６で「Ｎｏ」と判定された場合、異常ログ検出部１２５は、所要時間が平均時間の１０倍を超える可変値情報を、異常ログを含むログブロックに基づく可変値情報として特定する。異常ログ検出部１２５は、処理対象の正規テンプレートと、特定された可変値情報とを基にログブロックを復元し、復元されたログブロックを異常ログ記憶部１１５に登録する。そして、異常ログ検出部１２５は、特定された可変値情報をテンプレート記憶部１１４から削除する。
【０１６３】
［ステップＳ６９］異常ログ検出部１２５は、ステップＳ６２で選択対象とされるすべての正規テンプレートについて、ステップＳ６２〜Ｓ６８の処理を実行済みであるかを判定する。異常ログ検出部１２５は、未実行の正規テンプレートがある場合、処理をステップＳ６２に進め、未実行の正規テンプレートを選択する。一方、異常ログ検出部１２５は、すべての正規テンプレートについて処理を実行済みである場合、ステップＳ７０の処理を実行する。
【０１６４】
［ステップＳ７０］異常ログ検出部１２５は、この時点でテンプレート記憶部１１４に記憶されている正規テンプレート情報のそれぞれについて、次のような処理を実行する。異常ログ検出部１２５は、正規テンプレート情報に含まれる可変値情報の中から、１０世代前の可変値情報を抽出する。該当する可変値情報が抽出された場合、異常ログ検出部１２５は、抽出された可変値情報を基に可変値統計情報を生成し、その可変値統計情報を正規テンプレートに対応付けてテンプレート記憶部１１４に登録する。これとともに、異常ログ検出部１２５は、抽出された可変値情報をテンプレート記憶部１１４から削除する。
【０１６５】
以上説明した管理装置１００では、出力されたログがブロック化された後、ログブロックがテンプレート化される。そして、同一内容のテンプレートに対応する可変値情報同士が比較されることで、異常ログを含むログブロックが異常ログ記憶部１１５への保存対象として選択される。これにより、異常ログを含むログブロックを検出して、異常ログ記憶部１１５に残しておくことができる。
【０１６６】
保存データサイズの削減のためにログ記憶部１１２には所定サイズ分または所定期間分のログだけを残しておく場合でも、それより古い異常ログを示す情報だけを異常ログ記憶部１１５に残しておくことができる。そのため、ログの喪失のために異常の事象の原因を究明できない、という事態が発生する可能性を低減できる。
【０１６７】
また、異常ログ検出のための可変値情報同士の比較の際には、テンプレート化のために利用された複数項目のうち特定の項目の可変情報だけが比較される。このような処理により、異常ログを含まないログブロックを保存対象として誤検出する可能性を低減できる。その結果、異常な事象の解析のために必要なログを確実に残しておきながら、異常ログ記憶部１１５に保存されるデータサイズを縮小できる。
【０１６８】
異常ログ記憶部１１５の保存データサイズが縮小されること、および、異常ログを含む可能性の高いログブロックのみが異常ログ記憶部１１５に残されることで、異常な事象の解析のために必要な情報を異常ログ記憶部１１５から採取するための時間を短縮できる。その結果、異常の事象の原因究明に要する時間も短縮できる。
【０１６９】
また、テンプレート記憶部１１４には、新たに生成されたログブロックとの比較のために、異常ログを含まないログブロックを示す情報も残される。これらの情報については、データ内容のパターンが共通するログブロックがテンプレートとして共通化されることで、そのデータサイズを圧縮できる。また、古いログに基づく可変値情報が可変値統計情報に集約されることで、さらにデータサイズを圧縮できる。
【０１７０】
なお、上記の各実施の形態に示した装置（例えば、情報処理装置１、管理装置１００）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、磁気テープなどがある。光ディスクには、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク（Blu-ray Disc：ＢＤ、登録商標）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１７１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１７２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【符号の説明】
【０１７３】
１  情報処理装置
１ａ  記憶部
１ｂ  処理部
２，３，４  ログ群
２ａ，３ａ，４ａ  可変情報
Ｓ１，Ｓ２，Ｓ３  ステップ
【図１】
2020038427.tif 000003
【図２】
2020038427.tif 000004
【図３】
2020038427.tif 000005
【図４】
2020038427.tif 000006
【図５】
2020038427.tif 000007
【図６】
2020038427.tif 000008
【図７】
2020038427.tif 000009
【図８】
2020038427.tif 000010
【図９】
2020038427.tif 000011
【図１０】
2020038427.tif 000012
【図１１】
2020038427.tif 000013
【図１２】
2020038427.tif 000014
【図１３】
2020038427.tif 000015
【図１４】
2020038427.tif 000016
【図１５】
2020038427.tif 000017
【図１６】
2020038427.tif 000018
【図１７】
2020038427.tif 000019
【図１８】
2020038427.tif 000020
【図１９】
2020038427.tif 000021
【図２０】
2020038427.tif 000022
【図２１】
2020038427.tif 000023
【図２２】
2020038427.tif 000024