(57)【特許請求の範囲】
【請求項１】
複数の監視対象からそれぞれ出力される複数のログのそれぞれから、各監視対象による定期的な処理の１サイクルに当該監視対象から出力される正常なログ項目群を取得する取得部と、
記憶部において記憶され管理される前記複数のログのうち、所定の条件に基づき選択された解析対象の第１ログに含まれるログ項目群と、前記取得部が取得した正常なログ項目群とを比較し、前記第１ログから、障害の調査に用いられる最小単位の１文であるログ項目であって、前記正常なログ項目群に含まれる前記ログ項目が欠落している、１サイクルの第１ログ項目群を検出する検出部と、
前記第１ログに関連する第２ログから前記第１ログ項目群と同期間に出力された第２ログ項目群を特定する特定部と、
前記第１ログから、前記正常なログ項目群に含まれる前記ログ項目が欠落していることを示す、前記第１ログ項目群を抽出して出力するとともに、前記第２ログから前記特定部が特定した前記第２ログ項目群を抽出して出力する出力部と、をそなえる
ことを特徴とする、ログ管理装置。
【請求項２】
前記第１ログ項目群と同期間に出力された前記第２ログ項目群は、前記第１ログ項目群が出力された期間に関連した、前記第２ログに含まれる複数のログ項目である、
ことを特徴とする、請求項１記載のログ管理装置。
【請求項３】
前記第１ログ項目群と同期間に出力された前記第２ログ項目群は、前記第１ログ項目群が出力された期間に関連した、前記第２ログにおける１サイクルのログ項目群である、
ことを特徴とする、請求項１記載のログ管理装置。
【請求項４】
前記検出部は、前記解析対象の第１ログから１サイクルのログ項目群を抽出し、前記抽出した１サイクルのログ項目群と、前記取得部が前記解析対象の第１ログについて取得した前記正常なログ項目群とを比較し、比較結果に応じて、前記抽出した１サイクルのログ項目群を前記第１ログ項目群として検出する、
ことを特徴とする、請求項１〜３のいずれか１項記載のログ管理装置。
【請求項５】
前記解析対象の第１ログは、対応する監視対象により削除される削除対象のログである、
ことを特徴とする、請求項１〜４のいずれか１項記載のログ管理装置。
【請求項６】
前記出力部は、前記第２ログが削除対象のログとなったときに、前記第２ログから前記第２ログ項目群を抽出して出力する、
ことを特徴とする、請求項５記載のログ管理装置。
【請求項７】
コンピュータに、
複数の監視対象からそれぞれ出力される複数のログのそれぞれから、各監視対象による定期的な処理の１サイクルに当該監視対象から出力される正常なログ項目群を取得し、
記憶部において記憶され管理される前記複数のログのうち、所定の条件に基づき選択された解析対象の第１ログに含まれるログ項目群と、前記取得により取得した正常なログ項目群とを比較し、前記第１ログから、障害の調査に用いられる最小単位の１文であるログ項目であって、前記正常なログ項目群に含まれる前記ログ項目が欠落している、１サイクルの第１ログ項目群を検出し、
前記第１ログに関連する第２ログから前記第１ログ項目群と同期間に出力された第２ログ項目群を特定し、
前記第１ログから、前記正常なログ項目群に含まれる前記ログ項目が欠落していることを示す、前記第１ログ項目群を抽出して出力し、
前記第２ログから前記特定した前記第２ログ項目群を抽出して出力する、
処理を実行させることを特徴とする、ログ管理プログラム。
【請求項８】
複数の監視対象からそれぞれ出力される複数のログを管理する情報処理装置におけるログ管理方法であって、
前記情報処理装置のログ管理部が、
前記複数のログのそれぞれから、各監視対象による定期的な処理の１サイクルに当該監視対象から出力される正常なログ項目群を取得し、
記憶部において記憶され管理される前記複数のログのうち、所定の条件に基づき選択された解析対象の第１ログに含まれるログ項目群と、前記取得により取得した正常なログ項目群とを比較し、前記第１ログから、障害の調査に用いられる最小単位の１文であるログ項目であって、前記正常なログ項目群に含まれる前記ログ項目が欠落している、１サイクルの第１ログ項目群を検出し、
前記第１ログに関連する第２ログから前記第１ログ項目群と同期間に出力された第２ログ項目群を特定し、
前記第１ログから、前記正常なログ項目群に含まれる前記ログ項目が欠落していることを示す、前記第１ログ項目群を抽出して出力し、
前記第２ログから前記特定した前記第２ログ項目群を抽出して出力する、
ことを特徴とする、ログ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログ管理装置，ログ管理プログラム，及びログ管理方法に関する。
【背景技術】
【０００２】
サーバ，ＰＣ（Personal Computer），又は種々の端末等の情報処理装置は、監視対象、例えば機器（のファームウェア等）又はアプリケーションが出力するトレース等のログデータを、ファイル（ログファイル）として記憶装置に蓄積することができる。記憶装置に蓄積されたログファイルは、例えば情報処理装置（監視対象）に障害が発生した場合に、情報処理装置の管理者や作業者（以下、これらをまとめて管理者という）による障害の原因調査（特定）に用いられる。
【０００３】
なお、関連する技術として、１以上のログファイルから、条件に合致する１以上のログを抽出する技術も知られている（例えば、特許文献１〜３及び５参照）。また、リングバッファが記憶するログデータのうち受信したトリガが示す障害に関連するログデータを抽出し、抽出したログデータを補助記憶装置に記録する技術も知られている（例えば、特許文献４参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２２７３６０号公報
【特許文献２】特開２００８−１４０２４８号公報
【特許文献３】特開２０１０−１８２１９４号公報
【特許文献４】特開２０１３−２０６１４７号公報
【特許文献５】特開２００８−１５８６３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
障害の原因調査にはログファイルに含まれるログデータ（１以上のログ項目；ログ項目群）が有用である。なお、ログ項目は障害の原因調査に用いられるログの１単位である。障害の原因調査に用いられるログデータは、障害の発生した監視対象が出力したログデータの他に、障害の発生した監視対象以外の監視対象が出力したログデータも含まれることが好ましい。障害の発生した監視対象から出力されたログデータを単体で参照するよりも、管理者による原因の調査（特定）を容易且つ正確に行なうためである。
【０００６】
しかし、ログファイルのサイズやファイル数は時間経過とともに増加し記憶装置の記憶容量を圧迫するため、情報処理装置は、過去の全てのログファイルを蓄積することが難しい。このため、例えば情報処理装置は、図２０に示すように、一定期間経過後やログファイルの一定容量蓄積後に、古いログファイルを記憶装置から削除する（上書きする）ことがある。なお、図２０では、Ａ，Ｂ，Ｃ，Ｄの順で記憶装置に蓄積されるログファイルのうち、（２）でログファイルＡがログファイルＣにより、（３）でログファイルＢがログファイルＤにより、それぞれ上書きされる例を示す。
【０００７】
従って、情報処理装置は、障害が発生した監視対象から出力されたログデータを含む障害に関連するログデータを、記憶装置の容量の制限が存在する中、削除せずに蓄積しておく（出力する）ことが好ましい。
【０００８】
ところで、情報処理装置において障害が発生した場合、管理者による障害の原因調査は障害発生の直後に行なわれるとは限らず、障害発生から時間が経過してから行なわれる場合がある。この場合、管理者が障害の原因調査を行なおうとしても、障害に関連するログデータが情報処理装置から既に削除され、障害の原因調査を行なうことが困難になり得る。
【０００９】
例えば、図２０の例では、ログファイルが（１），（２），（３）の順でサイクリックに上書きされるため、網掛けのログファイルＢに障害に関連するログデータが含まれる場合、ログファイルＢは（３）のタイミングでログファイルＤにより上書きされてしまう。
【００１０】
障害に関連するログデータの消失を防ぐため、例えば上述した関連する技術を用いて、情報処理装置にログファイルから障害に関連するログデータを抽出させ、抽出させたログデータを記憶装置に格納させることも考えられる。しかし、以下に例示する場合には、情報処理装置に適切なログデータを抽出・格納（出力）させることが困難となり得る。
【００１１】
・障害に関連するログデータに、情報処理装置が障害と認識する文字列（“error”や“warning”等）が含まれてない場合。
・正常な場合に出力されないログデータが出力され、情報処理装置が当該ログデータを障害と認識するための判断材料を有していない場合。
・正常な場合に出力されるログデータが欠落した場合。
【００１２】
また、障害に関連しないログデータに“error”や“warning”等の文字列が含まれる場合、正常なログデータであるにもかかわらず、情報処理装置は当該ログデータを障害に関連するログデータと判断してしまう場合もある。
【００１３】
１つの側面では、本発明は、障害に関連する適切なログ項目を出力することを目的とする。
【課題を解決するための手段】
【００１４】
１つの態様では、本件のログ管理装置は、取得部，検出部，特定部，及び出力部をそなえる。取得部は、複数の監視対象からそれぞれ出力される複数のログのそれぞれから、各監視対象による定期的な処理の1サイクルに当該監視対象から出力される正常なログ項目群を取得する。また、検出部は、記憶部において記憶され管理される前記複数のログのうち、所定の条件に基づき選択された解析対象の第１ログに含まれるログ項目群と、前記取得部が取得した正常なログ項目群とを比較し、前記第１ログから、障害の調査に用いられる最小単位の１文であるログ項目であって、前記正常なログ項目群に含まれる前記ログ項目が欠落している、１サイクルの第１ログ項目群を検出する。さらに、特定部は、前記第１ログに関連する第２ログから前記第１ログ項目群と同期間に出力された第２ログ項目群を特定する。また、出力部は、前記第１ログから、前記正常なログ項目群に含まれる前記ログ項目が欠落していることを示す、前記第１ログ項目群を抽出して出力するとともに、前記第２ログから前記特定部が特定した前記第２ログ項目群を抽出して出力する。
【発明の効果】
【００１５】
１つの側面では、障害に関連する適切なログ項目を出力することができる。
【図面の簡単な説明】
【００１６】
【図１】情報処理装置が実行するプロセスによるログ管理の一例を示す図である。
【図２】トレースの出力例を示す図である。
【図３】トレースの出力例を示す図である。
【図４】協調して動作する複数のプロセスから出力されたトレースの一例を示す図である。
【図５】図４に示すプロセスのソースの構成例を示す図である。
【図６】一実施形態の一例としての情報処理装置のハードウェア構成例を示す図である。
【図７】一実施形態の一例としての情報処理装置の機能構成例を示す図である。
【図８】トレースファイルの一例を示す図である。
【図９】正常トレース取得部の処理の一例を説明する図である。
【図１０】トレース解析部の処理の一例を説明する図である。
【図１１】解析対象のトレースファイルの一例を示す図である。
【図１２】関連トレース抽出部の処理の一例を説明する図である。
【図１３】図１２に示すプロセスのソースの構成例を示す図である。
【図１４】関連トレース抽出部による関連トレースの抽出範囲の一例を説明する図である。
【図１５】関連トレース抽出部による関連トレースの抽出範囲の第１の例を説明する図である。
【図１６】関連トレース抽出部による関連トレースの抽出範囲の第２の例を説明する図である。
【図１７】一実施形態に係る情報処理装置の一連の処理の例を説明する図である。
【図１８】一実施形態に係る情報処理装置の一連の処理の例を説明する図である。
【図１９】一実施形態に係る情報処理装置の処理の一例を説明するフローチャートである。
【図２０】情報処理装置においてログファイルが上書きされる例を示す図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１８】
〔１〕対比例について
はじめに、図１〜図４を参照しながら、一実施形態の対比例について説明する。図１に例示するように、情報処理装置１００は、図示しないＣＰＵ（Central Processing Unit）等のプロセッサが実行するプログラムにおいて、プロセス１１０−１及び１１０−２を実行する。
【００１９】
管理者による障害（トラブル）の調査を短期間で行なうには、例えば監視対象等のソースの実行履歴が分かるように、情報処理装置１００が多くのログデータ、例えばトレース情報（ソース通過箇所やパラメータ）を細分化して出力することが好ましい。しかし、情報処理装置１００の記憶装置の容量制限下では、多くのログデータを出力されても記憶装置に蓄積できるファイル数が限られるため、障害が発生した際に原因調査に有効な資料が残っているとは限らない。また、容量制限を設けず或いは無視して記憶装置に多くのログデータを蓄積させた場合、記憶装置の容量不足に起因して情報処理装置１００の性能劣化も発生し得る。
【００２０】
そこで、図１に例示するように、プロセス１１０−１が、トレースファイル（ログファイル）を削除するタイミングで削除対象のファイルを解析し、削除対象から障害に関連する特定のトレース（ログデータ）だけを除外する処理を行なうことが考えられる（（１）参照）。
【００２１】
また、プロセス１１０−１における上記（１）の処理に加えて、プロセス１１０−１から出力された特定のトレースに関連する、他のプロセス１１０−２から出力された関連トレース（障害に関連するログデータ）を保存することも考えられる。例えば、プロセス１１０−１で特定のトレースが出力されたときに、プロセス１１０−１がプロセス１１０−２への通信処理を行ないイベントを通知する（（２−１）参照）。そして、プロセス１１０−２は、通信処理をトリガに、出力中のトレースファイルからプロセス１１０−１の特定のトレースに関連する関連トレースを確認し（（２−２）参照）、当該関連トレースをプロセス１１０−２の削除対象のトレースファイルから除外する（削除せずに残す）。
【００２２】
しかし、上記（１）の処理を行なう場合、プロセス１１０−１では削除対象に対して解析処理が行なわれるため、プロセス１１０−１の本来の処理に遅延等の影響が及ぶことになる。また、さらに上記（２−１）及び（２−２）の処理を行なう場合、プロセス１１０−２は関連トレースを確認し、削除対象から除外するための印を付ける（保存対象と認識する）処理を行なうため、プロセス１１０−２の処理を広範囲に修正することになる。これにより、プロセス１１０−２の本来の処理の実行時間が増加し遅延等の影響が及ぶことになる。
【００２３】
一例として、プロセス１１０−１及び１１０−２で一度に削除されるトレースファイルは、それぞれ最大１０Ｍバイトであるとする。この場合、プロセス１１０−１及び１１０−２が削除対象から除外する特定のトレースを検出するためには、１０Ｍバイトのトレースファイルを１行ずつ解析することになる。この解析処理をプロセス１１０−１及び１１０−２の各々で行なう場合、解析処理に時間がかかりプロセス１１０−１及び１１０−２の処理に影響が生じる。
【００２４】
トレースファイルの最大サイズは情報処理装置１００が実行するプログラムにより異なるため、数Ｇバイトのトレースファイルについて１行ごとの解析が行なわれる場合もあり得る。この場合、ファイルサイズが大きいためＲＡＭ（Random Access Memory）等のメモリにトレースファイルを展開して解析処理を行なうことが困難となり得る。従って、情報処理装置１００は、メモリよりも低速なＨＤＤ（Hard Disk Drive）等の記憶装置にトレースファイルを展開するため、記憶装置へのＩ／Ｏ（Input/Output）が発生し、情報処理装置１００（システム）の性能低下等の悪影響を与え得る。
【００２５】
また、プロセス１１０−１又は１１０−２において、特定のトレース又は関連トレース（障害に関連するログデータ）を保存する場合にも、以下の場合には、情報処理装置１００に適切なトレースを抽出・格納（出力）させることが困難となり得る。
【００２６】
（ａ）正常なトレースであるが、トレースに情報処理装置１００が障害と認識する文字列が含まれる場合。
図２に例示するように、プロセス１１０−１又は１１０−２においてスレッドが立ち上がった（生成された）場合、スレッド立ち上げ後のトレースには、正常な場合でも“ERROR”や“WARNING”が含まれる。この場合、情報処理装置１００は図２に示す“ERROR”や“WARNING”が含まれるトレースを特定のトレース又は関連トレースと判断し、当該トレースを抽出・格納してしまう。
【００２７】
（ｂ）異常なトレースであるが、情報処理装置１００が当該トレースを障害と認識しない場合。
図３に例示するように、“ERROR”や“WARNING”が含まれていないトレースでも、“After APA_CO_02_protocol_2008_osname_”の行のように、スレッドがＯＳ（Operating System）種別を誤判断したことを表すトレースが出力される場合もあり得る。この場合、情報処理装置１００は、これらのトレースを特定のトレース又は関連トレースとは判断せず、当該トレースを抽出・格納することが難しい。このような場面は、以下の場合に生じ得る。
【００２８】
・トレースに情報処理装置１００が障害と認識する文字列（“ERROR”や“WARNING”等）が含まれない場合。
・正常な場合に出力されないトレースが出力され、情報処理装置１００が当該トレースを障害と認識するための判断材料を有していない場合（情報処理装置１００が事前に異常であるトレースを認識していない場合）。
【００２９】
（ｃ）トレースに欠落部分がある場合。
図４に例示するように、複数のプロセス１１０−１〜１１０−３が協調して動作する場合、プロセス１１０−２において“trace xxxx 2”のトレース自体が出力されていない場合、情報処理装置１００は当該トレースの欠落部分を認識することが難しい。例えば図１に示すプロセス１１０−１の確認処理においても、プロセス１１０−１がトレースの欠落を検出することが困難であり、プロセス１１０−２においてもプロセス１１０−１からのトリガがないため、関連トレースの確認を行なうことが困難である。この場合、管理者は、欠落したトレースに関連する障害の被疑箇所や影響範囲の絞り込みを行なうことが難しい。
【００３０】
ここで、上記（ｃ）について、図５に示すようにプロセス１１０−１〜１１０−３が協調動作を行ない１つの機能を提供する場合において、仮に情報処理装置１００がトレースの欠落部分を特定できた場合を考える。なお、図５において、プロセス１１０−１〜１１０−３は、それぞれ共通ソース１２０−１及び１２０−２を使用する。共通ソース１２０−１及び１２０−２は、各プロセス１１０−１〜１１０−３をコンパイルする際に用いられる共通関数である。
【００３１】
各プロセス１１０−１〜１１０−３のトレースは、共通ソース１２０−１及び１２０−２（共通関数）を用いて出力される。共通ソース１２０−１及び１２０−２からトレースが出力されない場合、管理者は、障害の原因調査において、該当時刻に他のプロセス１１０−１〜１１０−３がどのような動作であったかを調査する必要がある。このため、情報処理装置１００は、例えばプロセス１１０−２の正常時に出力されるトレース“trace xxxx Y”が出力されていないことを検知しても、管理者は共通ソース１２０−１及び１２０−２のどこに障害があるかを特定することや調査範囲を絞り込むことが困難である。
【００３２】
以上のように、図１に示す例では、情報処理装置１００は、プロセス１１０−１及び１１０−２の本来の処理の実行時間（性能）に影響を与えずに、特定のトレース及び関連トレースを抽出・格納（出力）することが困難である。また、情報処理装置１００は、障害の原因調査に有用な（適切な）トレースを抽出・格納することが難しい。
【００３３】
〔２〕一実施形態
〔２−１〕情報処理装置の構成例
そこで、一実施形態に係る情報処理装置（ログ管理装置）は、後述する処理により、障害に関連する適切なログ項目を出力することを可能とする。以下、一実施形態に係る情報処理装置について説明する。図６は、一実施形態に係る情報処理装置１のハードウェア構成例を示す図であり、図７は、一実施形態に係る情報処理装置１の機能構成例を示す図である。
【００３４】
情報処理装置１は、ファームウェア，ＯＳ，ＯＳ上で動作するアプリケーション等の各種プログラムをＣＰＵ等のプロセッサにより実行する装置である。そして、本実施形態では、情報処理装置１は、ファームウェア，ＯＳ，アプリケーション，情報処理装置１内の機器，情報処理装置１に接続された他の情報処理装置等を監視対象として、監視対象から出力されるログの管理を行なうことができる。
【００３５】
なお、情報処理装置１としては、例えばサーバやＰＣ等のコンピュータのほか、スマートフォン，携帯電話，タブレット，ＰＤＡ（Personal Digital Assistants）等の端末、腕時計や眼鏡等のウェアラブルデバイス等、種々の装置が挙げられる。
【００３６】
以下、情報処理装置１が、ＯＳ上で動作するアプリケーションを監視対象として、アプリケーションから出力されるログを管理するものとして説明する。
【００３７】
（ハードウェア構成例）
一例として、情報処理装置１は、図６に示すように、ＣＰＵ１ａ，メモリ１ｂ，記憶部１ｃ，インタフェース部１ｄ，入出力部１ｅ，及び読取部１ｆをそなえることができる。ＣＰＵ１ａは、種々の制御や演算を行なう演算処理装置（プロセッサ）の一例である。ＣＰＵ１ａは、対応する各ブロック１ｂ〜１ｆとそれぞれ接続され、メモリ１ｂ，記憶部１ｃ，記録媒体１ｇ，又は図示しないＲＯＭ（Read Only Memory）等に格納されたプログラムを実行することにより、種々の機能を実現することができる。
【００３８】
メモリ１ｂは、種々のデータやプログラムを格納する記憶装置である。ＣＰＵ１ａは、プログラムを実行する際に、メモリ１ｂにデータやプログラムを格納し展開する。なお、メモリ１ｂとしては、例えばＲＡＭ等の揮発性メモリが挙げられる。
【００３９】
記憶部１ｃは、種々のデータやプログラム等を格納するハードウェアである。記憶部１ｃとしては、例えばＨＤＤ等の磁気ディスク装置，ＳＳＤ（Solid State Drive）等の半導体ドライブ装置，フラッシュメモリやＲＯＭ等の不揮発性メモリ等の各種装置が挙げられる。
【００４０】
なお、メモリ１ｂ又は記憶部１ｃ（図６の例では記憶部１ｃ）は、情報処理装置１の各種機能の全部もしくは一部を実現するログ管理プログラム３，トレースファイル４１，正常トレース情報４２，及び関連トレース群４３（図７参照）等を格納することができる。
【００４１】
インタフェース部１ｄは、有線又は無線による、ネットワークや他の情報処理装置等との間の接続及び通信の制御等を行なう通信インタフェースである。インタフェース部１ｄとしては、例えば、ＬＡＮ（Local Area Network），ファイバチャネル（Fibre Channel；ＦＣ），インフィニバンド（InfiniBand）等に準拠したアダプタが挙げられる。また、インタフェース部１ｄの他の例としては、ＵＳＢ（Universal Serial Bus），ＢＬＵＥＴＯＯＴＨ（登録商標），ＰＣＩ（Peripheral Component Interconnect），ＰＣＩｅ（PCI Express）等に準拠したアダプタが挙げられる。例えば、ＣＰＵ１ａは、インタフェース部１ｄを介してネットワークから取得したログ管理プログラム３を記憶部１ｃに格納してもよい。また、ＣＰＵ１ａは、インタフェース部１ｄを介して監視対象としての他の情報処理装置等とアクセス可能に接続されてもよい。
【００４２】
入出力部１ｅは、タッチパネル，音声操作のためのマイク，マウス，及びキーボード等の入力装置（操作部），並びにディスプレイ，スピーカー，及びプリンタ等の出力装置（表示部）の少なくとも一方を含むことができる。例えば、入力装置はユーザや管理者等による情報処理装置１の各種操作やデータの入力等の作業に用いられてよく、出力装置は各種通知や処理結果等の出力に用いられてよい。
【００４３】
読取部１ｆは、コンピュータ読取可能な記録媒体１ｇに記録されたデータやプログラムを読み出す装置である。記録媒体１ｇにはログ管理プログラム３が格納されてもよい。
【００４４】
例えば、ＣＰＵ１ａは、記憶部１ｃに格納されたログ管理プログラム３をメモリ１ｂ等の記憶装置に展開して実行することにより、ログ管理装置（図７参照）の機能を実現することができる。
【００４５】
なお、記録媒体１ｇとしては、例えばフレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク等の光ディスクや、ＵＳＢ（Universal Serial Bus）メモリやＳＤカード等のフラッシュメモリが挙げられる。なお、ＣＤとしては、ＣＤ−ＲＯＭ、ＣＤ−Ｒ（CD-Recordable）、ＣＤ−ＲＷ（CD-Rewritable）等が挙げられる。また、ＤＶＤとしては、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等が挙げられる。
【００４６】
上述した各ブロック１ａ〜１ｆ間はそれぞれバスで相互に通信可能に接続される。また、情報処理装置１の上述したハードウェア構成は例示である。従って、情報処理装置１内でのハードウェアの増減（例えば任意のブロックの追加や省略），分割，任意の組み合わせでの統合，バスの追加又は省略等は適宜行なわれてもよい。例えば、情報処理装置１が端末やウェアラブルデバイス等の小型の装置である場合、メモリ１ｂ及び記憶部１ｃを統合してもよいし、インタフェース部１ｄ，入出力部１ｅ，及び読取部１ｆの少なくとも１つを省略してもよい。
【００４７】
（機能構成例）
上述の如く構成された情報処理装置１は、機能構成として、図７に示すように、例示的にプロセス実行部２及び保持部４をそなえることができる。プロセス実行部２は、情報処理装置１における種々のプログラム（処理）を実行するものであり、複数のプロセス２０と、プロセス２０が出力したログを管理するログ管理プロセス３０とをそなえることができる。
【００４８】
プロセス２０は、情報処理装置１により実行されるプログラム（処理）の実行単位である。プロセス２０としては、運用管理を行なうプロセス、一例としてアプリケーションの生存を確認するような監視プロセス（デーモンプロセス）が挙げられる。この場合、プロセス実行部２は、情報処理装置１又は他の装置の運用管理を行なう管理部であるといえる。なお、プロセス２０は運用管理を行なうプロセスに限定されるものではなく、種々のプロセスやモジュールであってよい。
【００４９】
各プロセス２０は、自身の処理に関する種々の情報をログデータとして出力することができる。本実施形態において、プロセス２０は、ログデータの一例として、１以上のファイル形式でトレースファイル（ログファイル，ログ）４１を出力し、保持部４に記憶するものとする。以下の説明において、特定のプロセス２０を表す場合には、プロセス２０−１，２０−２，・・・のように符号２０の後にハイフン及び番号を付すこととする。
【００５０】
ログ管理プロセス３０は、複数のプロセス２０の各々から出力されるログ（トレースファイル４１）を管理し、当該ログからログ項目を抽出・出力するログ管理部の一例である。ログ管理プロセス３０は、後述する処理により、トレースファイル４１から障害に関連するログデータの一例として１以上の関連トレース群４３を抽出し出力する。なお、障害に関連するログデータとしては、例えば、障害が監視対象の故障，バグ，高負荷等に起因するものか使用者による仕様の誤認であるのかの調査や、障害が監視対象の故障等に起因する場合の故障原因の調査等における判断に用いられるログデータが挙げられる。ログ管理プロセス３０の詳細な説明は後述する。
【００５１】
保持部４は、複数の監視対象の各々から出力されるログを記憶する記憶部の一例であり、図７に示すように、例示的にトレースファイル４１，正常トレース情報４２，及び関連トレース群４３を保持（記憶）することができる。なお、保持部４は、図６に示すメモリ１ｂ又は記憶部１ｃ等の記憶装置によって実現することができる。以下の説明において、特定のトレースファイル４１を表す場合には、トレースファイル４１−１，４１−２，・・・のように符号４１の後にハイフン及び番号を付すこととし、正常トレース情報４２及び関連トレース群４３についても同様とする。
【００５２】
トレースファイル４１には、例えばプロセス２０ごと又はプロセス２０のスレッドごとに、プロセス２０又はスレッドが立ち上がって（生成されて）から現在までに出力されたトレースが設定され得る。トレースファイル４１には、一例として、図８に示すように、プロセス２０又はスレッド（この場合スレッド）の起動を示すトレースと、繰り返し継続して出力されるトレースとが含まれ得る。なお、以下、１サイクル分のトレースをトレース群という。
【００５３】
ここで、トレースファイル（ログ）には１以上のログ項目が含まれる。ログ項目は、例えばトレースの１行分や、意味を持つ最小単位の１文等、障害の原因調査に用いられるログの１単位とすることができる。図８の例では、１行のトレースがログ項目であり、１サイクルのトレース群がログ項目群であるといえる。
【００５４】
なお、保持部４に蓄積されたトレースファイル４１は、情報処理装置１の記憶容量の確保の観点から、例えば古いトレースファイル４１から順にサイクリックに削除される。トレースファイル４１が削除されるタイミングはプロセス２０ごとに異なり、各プロセス２０は、例えば所定期間経過後又は出力中のトレースファイル４１が所定サイズに達した場合、古いトレースファイル４１を削除して次の出力先のトレースファイル４１を生成することができる。或いは、各プロセス２０は、例えば出力先のトレースファイル４１を１つとして、当該トレースファイル４１が所定サイズに達しないように当該トレースファイル４１内の古いトレース群から順に削除してもよい。
【００５５】
正常トレース情報４２及び関連トレース群４３の説明はログ管理プロセス３０の説明において行なう。
【００５６】
〔２−２〕ログ管理プロセスの構成例
次に、ログ管理プロセス３０の機能構成例について説明する。ログ管理プロセス３０は、図７に示すように、例示的に正常トレース取得部３１，トレース解析部３２，及び関連トレース群抽出部３３をそなえることができる。
【００５７】
正常トレース取得部３１は、複数のトレースファイル４１から、トレースファイル４１ごとに正常に処理が実行されたときの１サイクル分のトレース群（ログ項目群）を取得し、取得したトレース群を正常トレース情報４２として保持部４に格納する。
【００５８】
例えば情報処理装置１（プロセス実行部２）は、監視対象のアプリケーションがインストールされたときに、新たに追加されたモジュールを互いに関連性のあるモジュールと判定しておく。そして、情報処理装置１は、関連性のあるモジュールがトレースファイル４１を出力した場合、システム（アプリケーション）の起動から終了までの間に出力されたトレースファイル４１を保持部４に蓄積する。このとき、正常トレース取得部３１は、図９に例示するように、各モジュール（プロセス２０）について、正常時のトレース群を抽出して正常トレース情報４２として保持部４に保存することができる。
【００５９】
また、アプリケーションに対して修正パッチが適用されてモジュールが置き換わった場合やシステム構成が変更となった場合でも、システム上の同一パスに格納される同一名のモジュールは、旧モジュールと同様の動作になると推測される。しかし、この場合、新旧モジュール間でトレースの文字列が変化する可能性がある。
【００６０】
そこで、正常トレース取得部３１は、システム上のパス，モジュール（プロセス２０），タイムスタンプの情報と、正常時のトレース群とを関連付けて管理しておくことが好ましい（図９の正常トレース管理情報４２ａ参照）。これにより、システム構成が変更となった場合には、正常トレース取得部３１は、正常トレース管理情報４２ａに基づき、正常時のトレース群を再度抽出して正常トレース情報４２として保持部４に保存することができる。
【００６１】
なお、１サイクルのトレース群は、以下のように決定することができる。例えば、正常トレース取得部３１は、運用管理等を行なうプロセス２０が定期的に実行する、コマンド実行，スレッド作成，ファイルアクセス等の処理を監視する。そして、正常トレース取得部３１は、プロセス２０の定期的な動作（処理）と、その動作のタイミングに出力されるトレースとをマッチングさせることで、１サイクルが開始されるトリガ（サイクルの最初（始期）のトレース）を特定する。正常トレース取得部３１は、上記の処理を繰り返すことで、１サイクルが開始されるトリガについて精度を向上させることができる。
【００６２】
以上のように、正常トレース取得部３１は、複数の監視対象の各々から出力されるログごとに、ログに含まれる周期性を有するログ項目群を取得する取得部の一例であるといえる。
【００６３】
トレース解析部３２は、保持部４に蓄積されたトレースファイル４１を解析し、トレースファイル４１内の特異なトレースを検出する。
【００６４】
上述のように、トレースファイル４１には、図８において“１サイクル”として示すように、プロセス２０の処理が正常に実行されていれば、同一（或いは時刻等の可変な文字列を除き実質的に同一）の１サイクル分のトレース群が周期的に記録される。
【００６５】
そこで、トレース解析部３２は、プロセス２０から出力されたトレースファイル４１と、正常時のトレース群とを比較し、両者の差異を判定することで、正常時のトレース群とは異なる１サイクル分のトレース群（ログ項目群）を検出するのである。トレース解析部３２により検出されるトレース群には、障害に関連し得る特異なトレースが含まれる。
【００６６】
例えばトレース解析部３２は、図１０に示すように、プロセス２０からの解析用トレース群（トレースファイル４１）と、当該プロセス２０の正常時のトレース群（正常トレース情報４２）とを比較し、それぞれ同一又は実質的に同一であるか否かを判断する。図１０の例では、トレース解析部３２は、解析用トレース群に“トレース２”，“トレース５”，及び“トレース６”が含まれていないと判断し、解析対象のトレースファイル４１から当該解析用トレース群を特異なトレースを含むトレース群（以下、特異なトレース群という）として検出する。
【００６７】
トレース解析部３２は、トレースファイル４１と正常トレース情報４２との比較において、トレースの文字列や、各トレース（図１０の例ではトレース１〜トレース６）の出力される時間間隔等を評価することができる。トレースの文字列の評価としては、例えばいずれかのトレースにのみ存在する行又は文字列がある，両トレースの文字列が異なる等の評価が挙げられる。時間間隔の評価としては、トレースファイル４１の各トレースの出力される時間間隔が、対応する正常トレース情報４２での時間間隔よりも所定の割合或いは所定の時間以上空いているか否か等の評価が挙げられる。
【００６８】
なお、トレース解析部３２は、特異なトレース群を検出すると、当該トレース群を示す情報を関連トレース群抽出部３３に通知する。この通知の手法としては、検出したトレース群の保持部４での格納位置（アドレス等）を通知する，検出したトレース群に印を付け（例えば識別可能な文字列を設定し）、印を付けたトレースファイル４１の情報を通知する等、種々の手法が挙げられる。
【００６９】
ここで、トレース解析部３２は、解析用トレース群として、解析対象のトレースファイル４１から１サイクルのトレース群を抽出して用いることができる。解析対象のトレースファイル４１に複数のサイクルが含まれる場合には、トレース解析部３２は、当該トレースファイル４１から１サイクルずつトレース群を抽出し、抽出したサイクルごとに、正常トレース情報４２に基づく解析を行えばよい。
【００７０】
一例として、図１１に示すように、解析対象のトレースファイル４１に複数のサイクルが含まれる場合、トレース解析部３２は、１サイクルずつトレース群を抽出する。図１１の例では、紙面上から１番目〜３番目のサイクル（解析用トレース群）は正常トレース情報４２と同一であるが、４番目のサイクル（解析用トレース群）は太枠で囲んだトレース（１行）が正常トレース情報４２には含まれない。この場合、トレース解析部３２は、４番目のサイクルを特異なトレース群と検出する。
【００７１】
ところで、トレース解析部３２は、保持部４が保持する複数のトレースファイル４１のうち、所定の条件に基づき選択されたトレースファイル４１を解析対象のトレースファイル４１とする。既述のように、トレースファイル４１が削除されるタイミングはトレースファイル４１ごとに異なる。本実施形態では、トレース解析部３２は、トレースファイル４１がサイクリックに削除されるタイミングで、プロセス２０により削除対象として選択されたトレースファイル４１を解析することができる。
【００７２】
上述した対比例としての情報処理装置１００は、トレースファイルをサイクリックに出力し、古いトレースファイルを削除するため、障害に関連するトレースも削除されてしまう場合がある。これに対し、トレース解析部３２は、削除対象のトレースファイル４１を解析対象とするため、トレースファイル４１が削除される前に障害に関連するトレース群を確実に検出することができる。
【００７３】
トレース解析部３２によれば、トレースファイル４１の解析を行なう際に正常トレースから外れた文字列を含むトレース群、つまりプロセス２０が通常とは異なるルート（処理）を実行したときのトレース群を特異なトレース群と判別することができる。正常時とは異なるトレースは障害の被擬箇所を示す又は関連する可能性が高いため、障害とは判明していない事象においても、管理者がこのように検出されたトレースを調査することは効果的である。また、管理者は、障害に関する資料の調査時に、繰り返し出力される正常時の同一のトレースを確認せずに済み、効率よく資料の調査を行なえるため、障害の復旧時間を短縮することができる。
【００７４】
さらに、トレース解析部３２によれば、対比例において説明した（ａ）〜（ｃ）の状況のように、障害のトレースについて事前に認識できていない場合でも、障害に関連する適切なトレースを確実に検出することができる。例えば、トレース解析部３２は、潜在的な新規障害が発生したときにだけ出力されるトレースや、トレースの文字列が正常（例えば“Normal End”等）と出力されるトレースについても検出することができる。従って、事前に定義された重要度（例えば“ERROR”や“WARNING”等）等の固定文字列では判定することが困難なトレースを採取することが可能となる。
【００７５】
以上のように、トレース解析部３２は、保持部４において記憶され管理される複数のトレースファイル４１のうち、所定の条件に基づき選択された解析対象の第１ログから、取得部が取得した当該第１ログに含まれる周期性を有するログ項目群とは異なる第１ログ項目群を検出する検出部の一例であるといえる。
【００７６】
関連トレース群抽出部３３は、トレース解析部３２から特異なトレース群の情報を通知されると、当該特異なトレース群をトレースファイル４１から抽出し、関連トレース群４３として保持部４に保存する。すなわち、上述のように、トレース解析部３２により解析処理が行なわれる対象は削除対象となったトレースファイル４１である。従って、関連トレース群抽出部３３は、トレース解析部３２から通知された特異なトレース群を削除対象から除外することで、当該トレース群を関連トレース群４３として保持部４に退避させることができる。
【００７７】
また、関連トレース群抽出部３３は、保持部４の複数のトレースファイル４１から、特異なトレース群に関連するトレース群を特定（識別）する。なお、関連トレース群抽出部３３は、特定したトレース群について、保持部４での格納位置（アドレス等）を記憶する、或いは特定したトレース群に印を付け（例えば識別可能な文字列を設定し）、印を付けたトレースファイル４１の情報を記憶することができる。
【００７８】
さらに、関連トレース群抽出部３３は、特定した各トレース群をトレースファイル４１から抽出して、関連トレース群４３として保持部４に保存する。特定した各トレース群が保存されるタイミングとしては、例えば、特定したトレース群を含むトレースファイル４１が削除対象になった場合が挙げられる。この場合、関連トレース群抽出部３３は、当該特定したトレース群を削除対象から除外することで、当該トレース群を関連トレース群４３として保持部４に退避させることができる。これにより、トレースファイル４１が削除対象となるまでは関連トレース群４３の保存を保留にできるため、記憶装置の記憶容量の圧迫を低減することが可能となる。
【００７９】
なお、関連トレース群抽出部３３は、トレース解析部３２から特異なトレース群の情報を通知されると、当該特異なトレース群に関連する各トレース群を、対応するトレースファイル４１から直ちに抽出して、関連トレース群４３として保持部４に保存してもよい。
【００８０】
以下、図１２を参照して、プロセス２０−１〜２０−３の複数のプロセス２０が協調して動作する場合における関連トレース群抽出部３３の処理の一例を説明する。なお、図１２では、トレース解析部３２により、プロセス２０−２から出力されたトレースファイル４１−２が“trace xxxx 2”の欠落により特異なトレース群であると検出された場合を示す。
【００８１】
この場合、関連トレース群抽出部３３は、トレースファイル４１−２のトレースが欠落している部分を含む同期性のサイクル、つまり当該特異なトレース群をトレースファイル４１から抽出し、関連トレース群４３として保持部４に保存する。
【００８２】
また、関連トレース群抽出部３３は、特異なトレース群に対応する、同期間（同時間帯）に他プロセス２０−１及び２０−３から出力されたトレースファイル４１−１及び４１−３のトレース群を特定する。関連トレース群抽出部３３は、特定したトレース群を含むトレースファイル４１−１及び４１−３の各々が削除対象となった場合に、当該特定したトレース群をトレースファイル４１から抽出し、それぞれ関連トレース群４３として保持部４に保存する。
【００８３】
なお、関連トレース群抽出部３３は、関連トレース群４３を保存する際に、特異なトレース群と、１以上の特定したトレース群とを関連付けて管理してもよい（例えば図１２の関連トレース群管理情報４３ａ参照）。これにより、管理者は、互いに関係のある関連トレース群４３を容易に認識することができ、障害の原因調査にかかる時間を短縮することができる。
【００８４】
このように、関連トレース群抽出部３３は、図１２に示すように特異なトレース群と同一時間帯（１サイクル）に出力された他のトレース群をプロセス２０を横断して採取することができる。
【００８５】
ここで、プロセス２０−１〜２０−３が協調して動作する場合、図１３に例示するように、プロセス２０−１〜２０−３はそれぞれ共通ソース２１−１及び２１−２を使用することが想定される。共通ソース２１−１及び２１−２内の共通関数は、プロセス２０により実行されたときにトレースを出力する。なお、共通関数は、例えば図１３に示すように、ネットワーク関連の関数である“function1”，ファイル作成の関数である“function2”等、機能ごとに分かれているものとする。
【００８６】
図１３に示すソース構成の場合でも、管理者は、プロセス４１−１及び４１−３の関連トレース群４３に基づき、例えば障害の発生時に“function1”が正常に実行できていることからネットワーク的には問題が無かった等と判断することができる。このように、管理者は、プロセス２０−１及び２０−３等の正常な関連トレース群４３を、システム状況の調査，監視対象（ソース）の障害の被擬箇所や影響範囲等の絞り込み，特異なトレース群が出力された原因の特定等に用いることができる。
【００８７】
次に、関連トレース群抽出部３３による関連トレース群４３の抽出範囲（特定範囲）について説明する。
【００８８】
図１４に例示するように、プロセス２０−２のトレースファイル４１−２で“trace xxxx 2”が欠落した場合、同時間帯にプロセス２０−３のトレースファイル４１−３で“trace xxxx 2”が出力されていることは、障害の範囲を絞り込む上で重要な情報となり得る。プロセス２０−３のトレース“trace xxxx 2”により、調査対象の関数（被疑箇所）を絞り込めるだけでなく、トレース“trace xxxx 2”がプロセス２０−３で出力された時刻から、プロセス２０−２で出力されなかった時刻までの間に、何らかの問題が発生した可能性を調査できるためである。つまり、関連トレース群抽出部３３が特異なトレース群と同時間帯の他プロセス２０のトレース群を抽出（保存）することで、管理者は障害の発生した期間を絞り込むことが可能となる。
【００８９】
関連トレース群抽出部３３がトレースファイル４１から関連トレース群４３を抽出（特定）する範囲としては、以下の２つの例が挙げられる。
【００９０】
（Ａ）第１の例
図１５に示すように、関連トレース群抽出部３３は、プロセス２０−２のトレース“trace xxxx 2”が出力されなかった時刻について、プロセス２０−２の１サイクルの時間帯（始期〜終期）で、プロセス２０−１及び２０−３のトレース群を採取する。すなわち、第１の例により抽出される関連トレース群４３は、特異なトレース群が出力された期間に関連した、トレースファイル４１−１及び４１−３に含まれる複数のトレース（ログ項目）である。なお、第１の例は、図１４に示す抽出範囲と同様である。
【００９１】
（Ｂ）第２の例
図１６に示すように、関連トレース群抽出部３３は、プロセス２０−２のトレース“trace xxxx 2”が出力されなかった時刻について、プロセス２０−２の１サイクルの時間帯（始期〜終期）に掛かる、プロセス２０−１及び２０−３のトレース群を採取する。すなわち、第２の例により抽出される関連トレース群４３は、特異なトレース群が出力された期間に関連した、トレースファイル４１−１及び４１−３において周期性を有するトレース群である。
【００９２】
関連トレース群抽出部３３が第２の例のように関連トレース群４３を抽出することで、プロセス２０−２でトレース“trace xxxx 2”が出力されなかった時刻の前後で、関連するプロセス２０−１及び２０−３の処理は正常であったことが分かる。つまり、障害の発生箇所をプロセス２０−２の処理に絞り込むことが可能となる。
【００９３】
このように、関連トレース群抽出部３３によれば、特異なトレース群を含む複数の関連トレース群４３が抽出され、保持部４に保存される。従って、管理者による原因調査に有用な情報を確実に残すことができ、情報不足のために障害の再現待ちを行ない解決時期が延伸してしまうことや再調査のコストが発生することを抑制できる。
【００９４】
以上のように、関連トレース群抽出部３３は、第１ログに関連する第２ログから第１ログ項目群と同期間に出力された第２ログ項目群を特定する特定部の一例であるといえる。
【００９５】
また、関連トレース群抽出部３３は、第１ログから第１ログ項目群を抽出して出力するとともに、第２ログから特定部が特定した第２ログ項目群を抽出して出力する出力部の一例であるといえる。
【００９６】
〔２−３〕ログ管理プロセスによる一連の処理の説明
次に、図１７及び図１８を参照しながら情報処理装置１（ログ管理プロセス３０）の一連の処理を説明する。なお、図１７はプロセス２０−１及び２０−２が協調して動作する場合の情報処理装置１の動作例を示し、図１８はプロセス２０−１〜２０−３が協調して動作する場合の情報処理装置１の動作例を示す。
【００９７】
図１７及び図１８に示すように、正常トレース取得部３１は、各プロセス２０が出力するトレースファイル４１から正常トレース情報４２を取得する（（１）参照）。なお、正常トレース取得部３１は、図１７の例ではプロセス２０−１及び２０−２のトレースファイル４１から、図１８の例ではプロセス２０−１〜２０−３のトレースファイル４１から、それぞれ正常トレース情報４２を取得する。
【００９８】
次いで、トレース解析部３２は、例えばプロセス２０−１によりトレースファイル４１が削除されるタイミングで、正常トレース情報４２に基づき削除対象のトレースファイル４１を解析する（（２）参照）。
【００９９】
解析処理により、特異なトレースが出力されたことを検知すると、関連トレース群抽出部３３は、プロセス２０−１の当該特異なトレース群を関連トレース群４３として保持部４に保管する（（３）参照）。
【０１００】
また、関連トレース群抽出部３３は、特異なトレース群に関連する他のプロセス２０のトレース群を特定する（印を付ける）（（４）参照）。なお、関連トレース群抽出部３３は、図１７及び図１８の例ではプロセス２０−２のトレースファイル４１のトレース群（“トレース１”〜“トレース３”）を、図１８の例ではさらにプロセス２０−３のトレース群（“トレース４”〜“トレース６”）を、それぞれ特定する。
【０１０１】
そして、関連トレース群抽出部３３は、特定したトレース群を含むトレースファイル４１が削除対象になったときに、当該特定したトレース群を関連トレース群４３として保持部４に保管する（（５）参照）。
【０１０２】
〔２−４〕情報処理装置の動作例
次に、上述の如く構成された一実施形態に係る情報処理装置１の動作例を図１９を参照しながら説明する。なお、前提として、情報処理装置１のＯＳ上で例えば運用管理ツール等のアプリケーションが実行されるものとする。
【０１０３】
はじめに、図１９に示すように、運用管理ツールのプロセス２０が起動し（ステップＳ１）、起動したプロセス２０がトレースファイル４１の継続的な出力を開始する（ステップＳ２）。
【０１０４】
ログ管理プロセス３０において、正常トレース取得部３１は、トレースファイル４１を監視し１サイクルのトレースを決定する（ステップＳ３）。そして、正常トレース取得部３１は、正常トレース情報４２を取得して保持部４へ保存する。
【０１０５】
プロセス２０からトレースファイル４１が出力されると（ステップＳ４）、トレース解析部３２は、トレースファイル４１が削除されるか否かを判断する（ステップＳ５）。トレースファイル４１が削除されない場合（ステップＳ５のＮｏルート）、処理がステップＳ４に移行する。
【０１０６】
一方、トレースファイル４１が削除される場合（ステップＳ５のＹｅｓルート）、トレース解析部３２は、削除対象（解析対象）のトレースファイル４１から解析用トレース群抽出し、抽出した解析用トレース群の解析を行なう（ステップＳ６）。そして、トレース解析部３２は、正常トレース情報４２に基づき解析用トレース群に特異なトレースを含む特異なトレース群があるか否かを判断する（ステップＳ７）。
【０１０７】
解析用トレース群に特異なトレース群がある場合（ステップＳ７のＹｅｓルート）、関連トレース群抽出部３３は、削除対象のトレースファイル４１から当該特異なトレース群を抽出し関連トレース群４３として保持部４に保存する（ステップＳ８）。また、関連トレース群抽出部３３は、特異なトレース群と同時間帯に出力された、関連する他プロセス２０のトレース群を特定し（ステップＳ９）、処理がステップＳ１０に移行する。
【０１０８】
なお、ステップＳ７において、解析用トレース群に特異なトレース群がない場合（ステップＳ７のＮｏルート）、ステップＳ８及びＳ９をスキップし、処理がステップＳ１０に移行する。
【０１０９】
ステップＳ１０において、関連トレース群抽出部３３は、解析用トレース群に、他プロセス２０のトレースファイル４１についてのステップＳ９で特定した（印を付けた）、特定済みのトレース群があるか否かを判断する。解析用トレース群に特定済みのトレース群がない場合（ステップＳ１０のＮｏルート）、処理がステップＳ４に移行する。
【０１１０】
一方、解析用トレース群に特定済みのトレース群がある場合（ステップＳ１０のＹｅｓルート）、関連トレース群抽出部３３は、削除対象のトレースファイル４１から当該特定済みのトレース群を抽出し関連トレース群４３として保持部４に保存する（ステップＳ１１）。
【０１１１】
ログ管理プロセス３０は、システムの構成変更等があるか否かを判断し（ステップＳ１２）、構成変更がある場合（ステップＳ１２のＹｅｓルート）、再度正常トレース情報４２を取得するため、処理がステップＳ３に移行する。一方、構成変更がない場合（ステップＳ１２のＮｏルート）、処理がステップＳ４に移行する。
【０１１２】
以上のように、ログ管理プロセス３０によれば、障害に関連する適切なログ項目を出力することができる。
【０１１３】
また、ログ管理プロセス３０は、プロセス２０とは別個のプロセスによりトレースの解析及び動的な印付けの制御等を行なう。これにより、ログの管理によるプロセス２０の実行時間（性能）の低下を抑制することができ、且つ、最小限のプログラム修正で障害の原因調査に有用なトレースのみを保管することが可能となる。
【０１１４】
プロセス２０によっては、トレースの出力回数が少ない場合がある。このような出力回数の少ないトレースを１行だけ保存しても障害の原因調査を行なうことは難しい。
【０１１５】
本実施形態では、アプリケーションの生存を確認するような監視プロセス（デーモンプロセス）等で定期的に同様のトレースが出力されることに着目し、正常な１サイクル分のトレース群に基づき特異なトレースを含む１サイクル分の関連トレース群４３を採取する。これにより、出力回数が少ない特異なトレースについても、前後のトレース及び同時間帯に出力されている他プロセス２０のトレースを保存できるため、調査に有用な資料が上書きされることを防き、障害の解決時間を短縮し得る保守資料を出力することができる。
【０１１６】
また、トレースファイル４１から特異なトレース群を含む関連トレース群４３のみが抽出され、トレースファイル４１はサイクリックに削除されるため、障害の原因調査に有用なログ項目のみを出力することができ、記憶装置の記憶容量の圧迫を低減できる。情報処理装置１が端末やウェアラブルデバイス等の小型の装置である場合、記憶装置の記憶容量が小さく、保存できるトレースファイル４１の数やサイズの制約が大きい。本実施形態に係るログ管理プロセス３０は、特に情報処理装置１が小型の装置である場合に用いて好適である。
【０１１７】
〔３〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、かかる特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【０１１８】
例えば、図７に示す情報処理装置１の各機能ブロックは、任意の組み合わせで併合してもよく、分割してもよい。
【０１１９】
また、トレース解析部３２が、検出した特異なトレース群を示す情報を関連トレース群抽出部３３に通知し、関連トレース群抽出部３３が、当該特異なトレース群をトレースファイル４１から抽出して関連トレース群４３として保存するものとして説明したが、これに限定されるものではない。例えば、トレース解析部３２が、検出した特異なトレース群を示す情報を関連トレース群抽出部３３に通知し、且つ、当該特異なトレース群をトレースファイル４１から抽出して関連トレース群４３として保存してもよい。この場合、トレース解析部３２及び関連トレース群抽出部３３が出力部の一例であるといえる。
【０１２０】
さらに、出力部の一例としての関連トレース群抽出部３３が、抽出したトレース群を関連トレース群４３として保持部４に保存する（出力する）ものとして説明したが、これに限定されるものではない。例えば関連トレース群抽出部３３は、関連トレース群４３を、インタフェース部１ｄを介して他の装置に通知（送信）したり、書き込み可能に構成された読取部１ｆを介して記録媒体１ｇに書き込んでもよく、その他、種々の態様で出力することができる。
【０１２１】
〔４〕付記
以上の実施形態に関し、更に以下の付記を開示する。
【０１２２】
（付記１）
複数の監視対象からそれぞれ出力される複数のログのそれぞれについて、各ログに含まれる周期性を有するログ項目群を取得する取得部と、
記憶部において記憶され管理される前記複数のログのうち、所定の条件に基づき選択された解析対象の第１ログから、前記取得部が取得した当該第１ログに含まれる周期性を有するログ項目群とは異なる第１ログ項目群を検出する検出部と、
前記第１ログに関連する第２ログから前記第１ログ項目群と同期間に出力された第２ログ項目群を特定する特定部と、
前記第１ログから前記第１ログ項目群を抽出して出力するとともに、前記第２ログから前記特定部が特定した前記第２ログ項目群を抽出して出力する出力部と、をそなえる
ことを特徴とする、ログ管理装置。
【０１２３】
（付記２）
前記第１ログ項目群と同期間に出力された前記第２ログ項目群は、前記第１ログ項目群が出力された期間に関連した、前記第２ログに含まれる複数のログ項目である、
ことを特徴とする、付記１記載のログ管理装置。
【０１２４】
（付記３）
前記第１ログ項目群と同期間に出力された前記第２ログ項目群は、前記第１ログ項目群が出力された期間に関連した、前記第２ログおいて周期性を有するログ項目群である、
ことを特徴とする、付記１記載のログ管理装置。
【０１２５】
（付記４）
前記周期性を有するログ項目群は、対応する監視対象による定期的な処理の１サイクルに当該監視対象から出力される正常なログ項目群であり、
前記検出部は、前記解析対象の第１ログから１サイクルのログ項目群を抽出し、前記抽出した１サイクルのログ項目群と、前記取得部が前記解析対象の第１ログについて取得した前記周期性を有するログ項目群とを比較し、比較結果に応じて、前記抽出した１サイクルのログ項目群を前記第１ログ項目群として検出する、
ことを特徴とする、付記１〜３のいずれか１項記載のログ管理装置。
【０１２６】
（付記５）
前記解析対象の第１ログは、対応する監視対象により削除される削除対象のログである、
ことを特徴とする、付記１〜４のいずれか１項記載のログ管理装置。
【０１２７】
（付記６）
前記出力部は、前記第２ログが削除対象のログとなったときに、前記第２ログから前記第２ログ項目群を抽出して出力する、
ことを特徴とする、付記５記載のログ管理装置。
【０１２８】
（付記７）
コンピュータに、
複数の監視対象からそれぞれ出力される複数のログのそれぞれについて、各ログに含まれる周期性を有するログ項目群を取得し、
記憶部において記憶され管理される前記複数のログのうち、所定の条件に基づき選択された解析対象の第１ログから、前記取得した当該第１ログに含まれる周期性を有するログ項目群とは異なる第１ログ項目群を検出し、
前記第１ログに関連する第２ログから前記第１ログ項目群と同期間に出力された第２ログ項目群を特定し、
前記第１ログから前記第１ログ項目群を抽出して出力し、
前記第２ログから前記特定した前記第２ログ項目群を抽出して出力する、
処理を実行させることを特徴とする、ログ管理プログラム。
【０１２９】
（付記８）
前記第１ログ項目群と同期間に出力された前記第２ログ項目群は、前記第１ログ項目群が出力された期間に関連した、前記第２ログに含まれる複数のログ項目である、
ことを特徴とする、付記７記載のログ管理プログラム。
【０１３０】
（付記９）
前記第１ログ項目群と同期間に出力された前記第２ログ項目群は、前記第１ログ項目群が出力された期間に関連した、前記第２ログにおける周期性を有するログ項目群である、
ことを特徴とする、付記７記載のログ管理プログラム。
【０１３１】
（付記１０）
前記周期性を有するログ項目群は、対応する監視対象による定期的な処理の１サイクルに当該監視対象から出力される正常なログ項目群であり、
前記コンピュータに、
前記検出する処理において、前記解析対象の第１ログから１サイクルのログ項目群を抽出し、前記抽出した１サイクルのログ項目群と、前記解析対象の第１ログについて前記取得した前記周期性を有するログ項目群とを比較し、比較結果に応じて、前記抽出した１サイクルのログ項目群を前記第１ログ項目群として検出する、
処理を実行させることを特徴とする、付記７〜９のいずれか１項記載のログ管理プログラム。
【０１３２】
（付記１１）
前記解析対象の第１ログは、対応する監視対象により削除される削除対象のログである、
ことを特徴とする、付記７〜１０のいずれか１項記載のログ管理プログラム。
【０１３３】
（付記１２）
前記コンピュータに、
前記抽出して出力する処理において、前記第２ログが削除対象のログとなったときに、前記第２ログから前記第２ログ項目群を抽出して出力する、
処理を実行させることを特徴とする、付記１１記載のログ管理プログラム。
【０１３４】
（付記１３）
複数の監視対象からそれぞれ出力される複数のログを管理する情報処理装置におけるログ管理方法であって、
前記情報処理装置のログ管理部が、
前記複数のログのそれぞれについて、各ログに含まれる周期性を有するログ項目群を取得し、
記憶部において記憶され管理される前記複数のログのうち、所定の条件に基づき選択された解析対象の第１ログから、前記取得した当該第１ログに含まれる周期性を有するログ項目群とは異なる第１ログ項目群を検出し、
前記第１ログに関連する第２ログから前記第１ログ項目群と同期間に出力された第２ログ項目群を特定し、
前記第１ログから前記第１ログ項目群を抽出して出力し、
前記第２ログから前記抽出した前記第２ログ項目群を抽出して出力する、
ことを特徴とする、ログ管理方法。
【０１３５】
（付記１４）
前記第１ログ項目群と同期間に出力された前記第２ログ項目群は、前記第１ログ項目群が出力された期間に関連した、前記第２ログに含まれる複数のログ項目である、
ことを特徴とする、付記１３記載のログ管理方法。
【０１３６】
（付記１５）
前記第１ログ項目群と同期間に出力された前記第２ログ項目群は、前記第１ログ項目群が出力された期間に関連した、前記第２ログにおける周期性を有するログ項目群である、
ことを特徴とする、付記１３記載のログ管理方法。
【０１３７】
（付記１６）
前記周期性を有するログ項目群は、対応する監視対象による定期的な処理の１サイクルに当該監視対象から出力される正常なログ項目群であり、
前記ログ管理部が、
前記検出する処理において、前記解析対象の第１ログから１サイクルのログ項目群を抽出し、前記抽出した１サイクルのログ項目群と、前記解析対象の第１ログについて前記取得した前記周期性を有するログ項目群とを比較し、比較結果に応じて、前記抽出した１サイクルのログ項目群を前記第１ログ項目群として検出する、
ことを特徴とする、付記１３〜１５のいずれか１項記載のログ管理方法。
【０１３８】
（付記１７）
前記解析対象の第１ログは、対応する監視対象により削除される削除対象のログである、
ことを特徴とする、付記１３〜１６のいずれか１項記載のログ管理方法。
【０１３９】
（付記１８）
前記ログ管理部が、
前記抽出して出力する処理において、前記第２ログが削除対象のログとなったときに、前記第２ログから前記第２ログ項目群を抽出して出力する、
ことを特徴とする、付記１７記載のログ管理方法。
【符号の説明】
【０１４０】
１    情報処理装置（ログ管理装置）
１ａ    ＣＰＵ
１ｂ    メモリ
１ｃ    記憶部
１ｄ    インタフェース部
１ｅ    入出力部
１ｆ    読取部
１ｇ    記録媒体
２    プロセス実行部
２０，２０−１〜２０−３    プロセス
２１−１，２１−２    共通ソース
３    ログ管理プログラム
３０    ログ管理プロセス
３１    正常トレース取得部
３２    トレース解析部
３３    関連トレース群抽出部
４    保持部
４１，４１−１〜４１−３    トレースファイル
４２，４２−１〜４２−３    正常トレース情報
４２ａ    正常トレース管理情報
４３，４３−１〜４３−３    関連トレース群
４３ａ    関連トレース群管理情報
【図１】
0006528381.tif 000002
【図２】
0006528381.tif 000003
【図３】
0006528381.tif 000004
【図４】
0006528381.tif 000005
【図５】
0006528381.tif 000006
【図６】
0006528381.tif 000007
【図７】
0006528381.tif 000008
【図８】
0006528381.tif 000009
【図９】
0006528381.tif 000010
【図１０】
0006528381.tif 000011
【図１１】
0006528381.tif 000012
【図１２】
0006528381.tif 000013
【図１３】
0006528381.tif 000014
【図１４】
0006528381.tif 000015
【図１５】
0006528381.tif 000016
【図１６】
0006528381.tif 000017
【図１７】
0006528381.tif 000018
【図１８】
0006528381.tif 000019
【図１９】
0006528381.tif 000020
【図２０】
0006528381.tif 000021