(57)【要約】運用中のシステムに属するいずれかのサーバでアラートが生じた場合等において、障害解析のための適切なログファイルを判定し、そのファイル名のリストを生成することができるファイル情報収集システム等を提供する。情報取得手段８１は、特定されたプロセスを包含したプロセスの親子関係を示すツリー構造によって表される各プロセスのプロセスＩＤ等をサーバから取得する。リスト作成手段８２は、ファイル属性がライト可能またはリード／ライト可能であって、ファイル名が所定の条件を満たしているファイルを選択し、選択したファイルを対象に、ファイルを出力したサーバの識別情報やファイル名等を含むレコードのリストを作成する。情報取得手段８１は、特定されたプロセスが呼び出しているプロセスや、特定されたプロセスの呼び出し元となっているプロセスを特定する。
2017094845.tif 000002
【特許請求の範囲】
【請求項１】
あるプロセスが特定された場合に、前記特定されたプロセスが呼び出しているプロセスと、前記特定されたプロセスの呼び出し元となっているプロセスとを包含する、前記特定されたプロセスと親子関係にある複数のプロセスにおいて、各プロセスのプロセスＩＤと、前記各プロセスが使用する各ファイルのファイル名およびファイル属性とを、前記特定されたプロセスが動作しているサーバから取得する、情報取得手段と、
前記ファイル属性がライト可能またはリード／ライト可能であって、前記ファイル名が所定の条件を満たしているファイルを選択し、当該選択されたファイルを対象に、当該ファイルを出力したサーバの識別情報と、当該ファイル名と、当該ファイルを出力したサーバのサーバ属性とを含むレコードのリストを作成し、新たなプロセスを特定することによってリストを作成した場合、当該リストを作成済みのリストの最後に追加する、リスト作成手段と、
前記リストの先頭から前記レコードを１つずつ順番に選択し、当該選択したレコードに対応するファイルの更新時刻の情報を、当該ファイルを出力したサーバから取得し、当該更新時刻がユーザによって指定された基準時刻より前である場合、前記選択したレコードのサーバ属性を所定の情報に変更し、当該レコードを前記リストの最後に移動させる順序制御手段
とを備える
ファイル情報収集システム。
【請求項２】
前記順序制御手段は、前記選択されたファイルの、更新時刻の情報およびサイズの情報を、当該ファイルを出力したサーバから取得し、当該更新時刻がユーザによって指定された基準時刻より前である場合、または、当該サイズが０である場合、当該ファイルのサーバ属性を所定の情報に変更し、当該ファイルのレコードをリストの最後に移動させる
請求項１に記載のファイル情報収集システム。
【請求項３】
前記リストに含まれている前記ファイル名を、サーバ別に表示する表示手段を備え、
前記表示手段は、前記サーバ属性に応じて、前記ファイル名の表示態様を変える
請求項１または請求項２に記載のファイル情報収集システム。
【請求項４】
前記順序制御手段は、
前記リストの先頭側から、前記サーバの識別情報が共通であって連続する未選択のレコードの集合を順次選択し、当該選択したレコードの集合に対応する各ファイルを、当該各ファイルを出力したサーバから取得し、
取得したファイル毎に、エラーが発生したことを示すエラー情報を含んでいるか否かを判定し、前記エラー情報を含んでいないファイルの種別を特定の種別に定め、
１つのサーバから取得した各ファイルが全て、前記エラー情報を含んでいない場合、直近に選択したレコードの集合の後に続くレコードの集合であって、前記サーバ属性が前記呼び出し先サーバであるレコードの集合を、前記リストの最後に移動するとともに、前記レコードの集合に対応する各ファイルの種別を前記特定の種別に定め、
前記サーバ属性は、前記特定されたプロセスが動作しているサーバ、前記特定されたプロセスが動作しているサーバに対する呼び出し先サーバ、前記特定されたプロセスが動作しているサーバに対する呼び出し元サーバ、または、前記所定の情報、のいずれかを示す情報である
請求項１または請求項２に記載のファイル情報収集システム。
【請求項５】
前記順序制御手段は、前記選択したレコードの集合に対応する各ファイルの全てが前記エラー情報を含んでいない場合、レコードの集合の選択を中止する
請求項４に記載のファイル情報収集システム。
【請求項６】
前記リストに含まれている前記ファイル名を、サーバ別に表示する表示手段を更に備え、
前記表示手段は、前記サーバ属性および前記ファイルの種別に応じて、前記ファイル名の表示態様を変える
請求項４または請求項５に記載のファイル情報収集システム。
【請求項７】
各サーバから通信記録を示す通信記録情報を取得し、前記各サーバの通信記録情報に基づいて、前記各サーバで動作しているプロセス間の呼び出し関係を特定する呼び出し関係特定手段を更に備える
請求項１から請求項６のうちのいずれか１項に記載のファイル情報収集システム。
【請求項８】
あるプロセスが特定された場合に、前記特定されたプロセスが呼び出しているプロセスと、前記特定されたプロセスの呼び出し元となっているプロセスとを包含する、前記特定されたプロセスと親子関係にある複数のプロセスにおいて、各プロセスのプロセスＩＤと、前記各プロセスが使用する各ファイルのファイル名およびファイル属性とを、前記特定されたプロセスが動作しているサーバから取得し、
前記ファイル属性がライト可能またはリード／ライト可能であって、前記ファイル名が所定の条件を満たしているファイルを選択し、当該選択されたファイルを対象に、当該ファイルを出力したサーバの識別情報と、当該ファイル名と、当該ファイルを出力したサーバのサーバ属性とを含むレコードのリストを作成し、新たなプロセスを特定することによってリストを作成した場合、当該リストを作成済みのリストの最後に追加し、
前記リストの先頭から前記レコードを１つずつ順番に選択し、当該選択したレコードに対応するファイルの更新時刻の情報を、当該ファイルを出力したサーバから取得し、当該更新時刻がユーザによって指定された基準時刻より前である場合、前記選択したレコードのサーバ属性を所定の情報に変更し、当該レコードを前記リストの最後に移動させる
ことを備えるファイル情報収集方法。
【請求項９】
あるプロセスが特定された場合に、前記特定されたプロセスが呼び出しているプロセスと、前記特定されたプロセスの呼び出し元となっているプロセスとを包含する、前記特定されたプロセスと親子関係にある複数のプロセスにおいて、各プロセスのプロセスＩＤと、前記各プロセスが使用する各ファイルのファイル名およびファイル属性とを、前記特定されたプロセスが動作しているサーバから取得し、
前記ファイル属性がライト可能またはリード／ライト可能であって、前記ファイル名が所定の条件を満たしているファイルを選択し、当該選択されたファイルを対象に、当該ファイルを出力したサーバの識別情報と、当該ファイル名と、当該ファイルを出力したサーバのサーバ属性とを含むレコードのリストを作成し、新たなプロセスを特定することによってリストを作成した場合、当該リストを作成済みのリストの最後に追加し、
前記リストの先頭から前記レコードを１つずつ順番に選択し、当該選択したレコードに対応するファイルの更新時刻の情報を、当該ファイルを出力したサーバから取得し、当該更新時刻がユーザによって指定された基準時刻より前である場合、前記選択したレコードのサーバ属性を所定の情報に変更し、当該レコードを前記リストの最後に移動させる
機能をコンピュータに実現させるためのファイル情報収集プログラムを格納する記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、運用中のシステムに属するいずれかのサーバでアラートが生じたときに、そのシステムに属するサーバから、プロセスが開いているファイルの情報を収集し、そのアラートに関係するログファイルのファイル名のリストを生成するファイル情報収集システム、ファイル情報収集方法およびファイル情報収集プログラムに関する。
【背景技術】
【０００２】
特許文献１には、障害発生時にエラーログを収集し、情報解析を行うシステムが記載されている。特許文献１に記載のシステムは、収集対象製品定義を読み込み、収集対象となるログファイルをシステム内に取り込む。収集対象製品定義には、予め、ログ収集対象製品毎のログファイル格納先が定義されている。すなわち、特許文献１に記載のシステムは、予め格納先が定められているログファイルをその格納先から収集する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２１６４５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般に、ログファイルは、ソフトウェアの設定に応じたディレクトリに出力される。【０００５】
近年、システムが巨大になり、システムに含まれる各サーバに搭載される各ソフトウェアの設定作業が分業化されるようになった。また、システムの規模が大きくなったことにより、ソフトウェアの種類も増加している。そのため、システムの運用者が、そのシステムのログファイルを全て把握することは困難になっている。【０００６】
さらに、障害解析に使用されるログファイルは、障害発生時にのみ参照され、平常時には参照されないという特徴がある。参照される頻度が少ないログファイルは、格納されているディレクトリ等を把握しにくいため、システムの運用者が、各ログファイルを把握することが困難であるという傾向が強くなる。【０００７】
運用中のシステムに属するいずれかのサーバでアラートが生じた場合に、障害解析を行うためには、適切なログファイルを収集する必要がある。しかし、上記のように、システムの運用者が、全てのログファイルを把握することは困難であるため、運用者が、アラートに応じて、障害解析のための適切なログファイルがどれであるかを判断することも困難である。【０００８】
特許文献１に記載のシステムは、ログファイルの格納先を予め定義しなければならない。しかし、システムの運用者が、全てのログファイルを把握することは困難であるため、各ログファイルの格納先を定義すること自体が困難である。【０００９】
そこで、本発明は、運用中のシステムに属するいずれかのサーバでアラートが生じた場合等において、障害解析のための適切なログファイルを判定し、そのファイル名のリストを生成することができるファイル情報収集システム、ファイル情報収集方法およびファイル情報収集プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明によるファイル情報収集システムは、あるプロセスが特定された場合に、前記特定されたプロセスが呼び出しているプロセスと、前記特定されたプロセスの呼び出し元となっているプロセスとを包含する、前記特定されたプロセスと親子関係にある複数のプロセスにおいて、各プロセスのプロセスＩＤと、前記各プロセスが使用する各ファイルのファイル名およびファイル属性とを、前記特定されたプロセスが動作しているサーバから取得する、情報取得手段と、前記ファイル属性がライト可能またはリード／ライト可能であって、前記ファイル名が所定の条件を満たしているファイルを選択し、当該選択されたファイルを対象に、当該ファイルを出力したサーバの識別情報と、当該ファイル名と、当該ファイルを出力したサーバのサーバ属性とを含むレコードのリストを作成し、新たなプロセスを特定することによってリストを作成した場合、当該リストを作成済みのリストの最後に追加する、リスト作成手段と、前記リストの先頭から前記レコードを１つずつ順番に選択し、当該選択したレコードに対応するファイルの更新時刻の情報を、当該ファイルを出力したサーバから取得し、当該更新時刻がユーザによって指定された基準時刻より前である場合、前記選択したレコードのサーバ属性を所定の情報に変更し、当該レコードを前記リストの最後に移動させる順序制御手段とを備えることを特徴とする。【００１１】
また、本発明によるファイル情報収集方法は、あるプロセスが特定された場合に、前記特定されたプロセスが呼び出しているプロセスと、前記特定されたプロセスの呼び出し元となっているプロセスとを包含する、前記特定されたプロセスと親子関係にある複数のプロセスにおいて、各プロセスのプロセスＩＤと、前記各プロセスが使用する各ファイルのファイル名およびファイル属性とを、前記特定されたプロセスが動作しているサーバから取得し、前記ファイル属性がライト可能またはリード／ライト可能であって、前記ファイル名が所定の条件を満たしているファイルを選択し、当該選択されたファイルを対象に、当該ファイルを出力したサーバの識別情報と、当該ファイル名と、当該ファイルを出力したサーバのサーバ属性とを含むレコードのリストを作成し、新たなプロセスを特定することによってリストを作成した場合、当該リストを作成済みのリストの最後に追加し、前記リストの先頭から前記レコードを１つずつ順番に選択し、当該選択したレコードに対応するファイルの更新時刻の情報を、当該ファイルを出力したサーバから取得し、当該更新時刻がユーザによって指定された基準時刻より前である場合、前記選択したレコードのサーバ属性を所定の情報に変更し、当該レコードを前記リストの最後に移動させることを特徴とする。【００１２】
また、本発明によるファイル情報収集プログラムは、あるプロセスが特定された場合に、前記特定されたプロセスが呼び出しているプロセスと、前記特定されたプロセスの呼び出し元となっているプロセスとを包含する、前記特定されたプロセスと親子関係にある複数のプロセスにおいて、各プロセスのプロセスＩＤと、前記各プロセスが使用する各ファイルのファイル名およびファイル属性とを、前記特定されたプロセスが動作しているサーバから取得し、前記ファイル属性がライト可能またはリード／ライト可能であって、前記ファイル名が所定の条件を満たしているファイルを選択し、当該選択されたファイルを対象に、当該ファイルを出力したサーバの識別情報と、当該ファイル名と、当該ファイルを出力したサーバのサーバ属性とを含むレコードのリストを作成し、新たなプロセスを特定することによってリストを作成した場合、当該リストを作成済みのリストの最後に追加し、前記リストの先頭から前記レコードを１つずつ順番に選択し、当該選択したレコードに対応するファイルの更新時刻の情報を、当該ファイルを出力したサーバから取得し、当該更新時刻がユーザによって指定された基準時刻より前である場合、前記選択したレコードのサーバ属性を所定の情報に変更し、当該レコードを前記リストの最後に移動させる機能をコンピュータに実現させる。尚、ファイル情報収集プログラムは記憶媒体に格納されていてもよい。
【発明の効果】
【００１３】
本発明によれば、運用中のシステムに属するいずれかのサーバでアラートが生じた場合等において、障害解析のための適切なログファイルを判定し、そのファイル名のリストを生成することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態のファイル情報収集システムの構成例を示すブロック図である。
【図２】プロセスの親子関係を示すツリー構造の例を示す模式図である。
【図３】include 条件およびexclude 条件の例を示す説明図である。
【図４】呼び出し関係情報の例を示す模式図である。
【図５】本発明の第１の実施形態の処理経過の例を示すフローチャートである。
【図６】本発明の第１の実施形態の処理経過の例を示すフローチャートである。
【図７】本発明の第１の実施形態の処理経過の例を示すフローチャートである。
【図８】各サーバで動作しているプロセスのプロセスＩＤ等、およびそれらのプロセスが開いているファイルのファイル名等の例を示す説明図である。
【図９】リストの例を示す説明図である。
【図１０】リストの例を示す説明図である。
【図１１】リストの例を示す説明図である。
【図１２】ファイルの更新時刻の例を示す説明図である。
【図１３】リストの例を示す説明図である。
【図１４】リストの例を示す説明図である。
【図１５】表示手段が表示する画面の例を示す説明図である。
【図１６】本発明の第２の実施形態のファイル情報収集システムの構成例を示すブロック図である。
【図１７】本発明の第２の実施形態の処理経過の例を示すフローチャートである。
【図１８】リストの例を示す説明図である。
【図１９】リストの例を示す説明図である。
【図２０】表示手段が表示する画面の例を示す説明図である。
【図２１】本発明の第３の実施形態のファイル情報収集システムの構成例を示すブロック図である。
【図２２】各サーバがそれぞれ生成した通信記録情報の例を示す説明図である。
【図２３】起点サーバから見て呼び出し先側のプロセス間の呼び出し関係を特定する処理の例を示すフローチャートである。
【図２４】ステップＳ３２で生成した呼び出し関係情報の例を示す模式図である。
【図２５】起点サーバから見て呼び出し元側のプロセス間の呼び出し関係を特定する処理の例を示すフローチャートである。
【図２６】ステップＳ４２で生成した呼び出し関係情報の例を示す模式図である。
【図２７】生成した呼び出し関係情報の例を示す模式図である。
【図２８】本発明のファイル情報収集システムの概要を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を図面を参照して説明する。
【００１６】
実施形態１．
図１は、本発明の第１の実施形態のファイル情報収集システムの構成例を示すブロック図である。
【００１７】
図１では、ファイル情報収集システムだけでなく、所定の目的のために用いられるシステムに属するサーバ１０ａ〜１０ｎも図示している。サーバ上で動作するプロセスは、他のサーバ上で動作するプロセスを呼び出すことがある。この場合、異なるサーバ上で動作するプロセス間に呼び出し関係がある。以下、呼び出している方を「呼び出し元」と記し、呼び出されている方を「呼び出し先」と記す。いずれかのサーバでエラーが生じた場合、そのサーバから見て呼び出し元のサーバにエラーが波及していく。なお、エラーの発生に伴い、サーバはアラートを出力するが、アラートを出力するサーバは、１番最初にエラーが発生したサーバであるとは限らない。
【００１８】
各サーバ１０ａ〜１０ｎはそれぞれ、情報採取手段１１を備える。情報採取手段１１は、ファイル情報収集システム１から要求された情報を採取し、ファイル情報収集システム１に送信する。
【００１９】
各サーバ１０ａ〜１０ｎおよびファイル情報収集システム１は、例えば、ネットワーク２０を介して接続されている。
【００２０】
ファイル情報収集システム１は、情報取得手段２と、ファイル特定手段３と、呼び出し関係情報記憶手段４と、順序制御手段５と、表示手段６とを備える。
【００２１】
ファイル情報収集システム１の管理者は、運用中のシステム（サーバ１０ａ〜１０ｎを含むシステム）でいずれかのサーバがアラートを出力した場合、そのサーバの識別情報と、そのサーバにおいてアラートを出力したプロセスのプロセス名とを含む情報（以下、起点情報）を作成する。ここで、起点とは、アラートを出力したサーバを意味する。また、以下の説明では、サーバの識別情報として、サーバ名を用いるものとする。また、管理者は、アラートの出力時刻の情報も起点情報に含める。以下、アラートの出力時刻を基準時刻と記す。管理者は、起点情報を作成すると、その基点情報をファイル情報収集システム１に入力する。
【００２２】
ここで、起点情報によって特定されるプロセス、または、既に特定されているプロセスとの呼び出し関係に基づいて新たに特定されるプロセスを特定プロセスと記す。最初の特定プロセスは、起点情報に含まれるプロセス名によって特定されるプロセスである。
【００２３】
サーバ名とプロセス名と基準時刻とを含む起点情報が情報取得手段２に入力されたとする。すると、情報取得手段２は、そのプロセス名によって特定されるプロセス（特定プロセス）を包含したプロセスの親子関係を示すツリー構造で表される各プロセスのプロセスＩＤ(Identification)を、特定プロセスが動作しているサーバに要求することによって、その各プロセスのプロセスＩＤをそのサーバから取得する。そのサーバの情報採取手段１１は、情報取得手段２から要求された各プロセスのプロセスＩＤを、情報取得手段２に送信すればよい。また、情報取得手段２は、各プロセスのプロセスＩＤとともに、その各プロセスのプロセス名を取得してもよい。なお、あるプロセスが別のプロセスを生成した場合、そのプロセス間には親子関係があるといい、生成されたプロセスを子と呼び、子を生成したプロセスを親と呼ぶ。
【００２４】
特定プロセスを包含したプロセスの親子関係を示すツリー構造で表される各プロセスのプロセスＩＤを情報取得手段２が取得する態様は、特に限定されない。例えば、情報取得手段２は、プロセス名を指定して、そのプロセス名を有するプロセスのプロセスＩＤ、プロセス名、およびそのプロセスと親子関係にあるプロセスのプロセスＩＤ（親または子のプロセスＩＤ）を含むプロセス情報を取得する。そして、情報取得手段２は、親または子のプロセスＩＤを指定して、そのプロセスＩＤに対応するプロセス情報を取得することを、親子関係のツリー構造が得られるまで繰り返せばよい。
【００２５】
また、一回の要求で、特定プロセスを包含したプロセスの親子関係を示すツリー構造で表される各プロセスのプロセスＩＤを取得できるのであれば、情報取得手段２は、一回の要求でその各プロセスのプロセスＩＤを取得してもよい。
【００２６】
図２は、プロセスの親子関係を示すツリー構造の例を示す模式図である。図２に示す各ノードはプロセスを表し、各ノードに示す番号は、プロセスＩＤであるものとする。例えば、起点情報に含まれるプロセス名を有するプロセス（特定プロセス）のプロセスＩＤが“５３”であり、その特定プロセスを包含したプロセスの親子関係を示すツリー構造が図２に例示するツリー構造となる場合、情報取得手段２は、ツリー構造で表される各プロセスのプロセスＩＤ“５０”，“５１”，“５２”，“５３”を取得する。このような親子関係を有するプロセス群がまとまって処理を実行している。
【００２７】
また、情報取得手段２は、取得した各プロセスＩＤに対応する各プロセス（ツリー構造で表される各プロセス）が開いている各ファイルのファイル名およびファイル属性を、特定プロセスが動作しているサーバに要求することによって、その各ファイルのファイル名およびファイル属性をそのサーバから取得する。そのサーバの情報採取手段１１は、情報取得手段２から要求された各ファイル名および各ファイル属性を、情報取得手段２に送信すればよい。
【００２８】
なお、各ファイル名は、例えば、“/var/log/error.log”のように、ルートディレクトリからのパスも含めて記述される。
【００２９】
情報取得手段２が取得したファイル名の中には、ログファイルのファイル名や、ログファイル以外の種々のファイルのファイル名が含まれる。
【００３０】
また、ファイル属性とは、ファイルが開かれるときに指定される属性である。ファイル属性の内容は、ライト（WRITE）可能、リード（READ）可能、リード／ライト（READ/WRITE）可能のうちのいずれかである。
【００３１】
ファイル特定手段３は、情報取得手段２が取得したファイル名のうち、ログファイルのファイル名を判定し、そのファイル名のリストを生成する。本実施形態では、ファイル特定手段３は、ログファイルであると判定することはできないがログファイルである可能性があるファイル（以下、ログファイル候補と記す。）もそのリストに含める場合を例にして説明する。
【００３２】
ファイル特定手段３は、情報取得手段２が取得したファイル名のうち、対応するファイル属性がライト可能またはリード／ライト可能となっているファイル名を選択する。エラーに関する情報が書き込まれるログファイルのファイル属性は、ライト可能またはリード／ライト可能であるためである。
【００３３】
対応するファイル属性がリード可能であるファイル名は、ログファイルに該当しないので、ファイル特定手段３は、そのようなファイル名は選択せずに、破棄する。
【００３４】
ファイル特定手段３が選択したファイル名の集合の中に、同一のファイル名が複数ある場合がある。異なるプロセスが同一ファイルを開くことがあるので、情報取得手段２が同一ファイルのファイル名を重複して取得することがあるためである。
【００３５】
ファイル特定手段３は、選択したファイル名の集合の中に同一のファイル名が複数あれば、重複を排除する。すなわち、ファイル特定手段３は、同一のファイル名が複数あれば、そのうち、１つだけを残し、残りを破棄する。
【００３６】
さらに、ファイル特定手段３は、ファイル名が所定の条件を満たしている場合、そのファイルをログファイルのファイル名であると判定する。この所定の条件は、include 条件とexclude 条件の組み合わせで表される。include 条件は、ファイル名に少なくとも所定の形式で“log” の文字列が含まれているという条件である。exclude 条件は、ログファイルには用いられない文字列を含んでいるという条件である。図３は、include 条件およびexclude 条件の例を示す。図３に示す例では、include 条件およびexclude 条件を正規表現で示している。図３に示す“log[s]”は、“log” または“logs”という文字列を表している。図３に示す例において、“[.+]”は、“.”と一文字以上の任意の文字列を意味している。“.*”は、“.”と０文字以上の任意の文字列を意味している。“/dev/” という文字列を含んでいるファイル名はログファイルではないと言える。従って、図３に示す例では、exclude 条件の例として、“/dev/.*” を示している。
【００３７】
ファイル特定手段３は、ファイル名が「include 条件を満たし、かつ、exclude 条件を満たしていない」という条件を満足している場合、そのファイル名が、ログファイルのファイル名であると判定する。
【００３８】
また、ファイル特定手段３は、ファイル名が「include 条件とexclude 条件の双方を満たしていない」という条件を満たしている場合、そのファイル名が、ログファイル候補のファイル名であると判定する。
【００３９】
なお、include 条件およびexclude 条件は、図３に示す例に限定されない。
【００４０】
ファイル特定手段３は、ログファイルまたはログファイル候補のファイル名であると判定したファイル名毎にレコード作成し、そのレコードのリストを作成する。個々のレコードは、サーバ名、ファイル名、ファイルを出力したサーバのサーバ属性の情報を含む。本実施形態では、個々のレコードがファイルの種別も含む場合を例にして説明する。また、本実施形態では、「ファイルの種別」が「ログファイル」および「ログファイル候補」の２種類である場合を例にして説明する。なお、以下の説明において、サーバがファイルを出力するとは、サーバがファイルを生成または更新し、サーバ内に保持することである。
【００４１】
サーバ属性は、最初の特定プロセス（すなわち、起点情報によって特定されるプロセス）が動作しているサーバ（以下、起点サーバと記す。）であるか、起点サーバから見て呼び出し先側のサーバであるか、あるいは、起点サーバから見て呼び出し元側のサーバであるかを示す。また、後述するように、リスト内のレコードが、リストの最後に移動する場合がある。この場合、リストの最後に移動したレコードのサーバ属性は、レコードがリストの最後に移動したことを意味する所定の内容（本実施形態の例では「参照」という文字列）に書き換えられる。
【００４２】
呼び出し関係情報記憶手段４は、呼び出し関係情報を記憶する記憶装置である。呼び出し関係情報とは、どのプロセスが他のサーバのどのプロセスを呼び出しているかを示す情報である。図４は、呼び出し関係情報の例を示す模式図である。図４に例示する呼び出し関係情報は、サーバ１のプロセス“httpd”が、サーバ２のプロセス“java”を呼び出し、サーバ２のプロセス“java”が、サーバ３のプロセス“mysqld”を呼び出すという関係を示している。以下、「サーバ１」、「サーバ２」および「サーバ３」がサーバ名であるものとして説明する。そして、例えば、サーバ名が「サーバ１」であるサーバを、単にサーバ１と記す。予め管理者が呼び出し関係情報を作成し、呼び出し関係情報記憶手段４に記憶させておく。図４では、呼び出し関係を有するプロセスが３つである場合を例示しているが、呼び出し関係を有するプロセスの数は３つに限定されない。例えば、“mysqld”の呼び出し先側にさらにプロセスが存在していてもよい。同様に、“httpd”の呼び出し元側にさらにプロセスが存在していてもよい。
【００４３】
情報取得手段２は、特定プロセスに応じてファイル特定手段３がリストを生成すると、新たに特定プロセスを定める。このとき、情報取得手段２は、特定プロセスが呼び出しているプロセスを新たな特定プロセスに定める。ただし、特定プロセスが呼び出しているプロセスが存在しなくなった場合、情報取得手段２は、最初の特定プロセス（起点情報によって特定されるプロセス）の呼び出し元になっているプロセスを新たな特定プロセスに定める。その後、情報取得手段２は、呼び出し元になっているプロセスが存在しなくなるまで、順次、特定プロセスの呼び出し元になっているプロセスを新たな特定プロセスに定める。情報取得手段２は、呼び出し関係情報を参照して、あるプロセスが呼び出しているプロセスや、あるプロセスの呼び出し元となっているプロセスを判定すればよい。
【００４４】
ファイル特定手段３は、新たに特定プロセスが定められた場合、上記と同様にリストを生成する。そして、ファイル特定手段３は、新たに生成したリストを、既に生成したリストの最後に追加する。
【００４５】
順序制御手段５は、新たな特定プロセスが存在しなくなったときに、その時点で得られているリスト内のレコードの順序を操作する。順序制御手段５は、リストの先頭からレコードを順番に１つずつ選択する。順序制御手段５は、選択したレコードに対応するファイルの更新時刻の情報を、そのファイルを出力したサーバから取得する。このとき、順序制御手段５は、そのサーバの情報採取手段１１に、ファイルの更新時刻の情報を要求し、情報採取手段１１は、要求された更新時刻の情報を順序制御手段５に送信すればよい。順序制御手段５は、サーバから取得した更新時刻が、管理者によって指定された基準時刻（起点情報に含まれている基準時刻）よりも前の時刻であるか否かを判定する。順序制御手段５は、サーバから取得した更新時刻が基準時刻より前の時刻である場合、選択したレコードのサーバ属性を「参照」に書き換え、そのレコードをリストの最後に移動する。「参照」とは、レコードがリストの最後に移動したことを意味する。また、順序制御手段５は、サーバから取得した更新時刻が基準時刻以降の時刻である場合、そのレコードの内容および順序を変更しない。レコードをリストの最後に移動するか否かの判断基準として、順序制御手段５は、ファイルサイズを用いてもよい。
【００４６】
順序制御手段５は、未選択のレコードがなくなるまで、レコードを順番に１つずつ選択し、上記の処理を行う。
【００４７】
順序制御手段５の処理の後、表示手段６は、リストに含まれているファイル名を、サーバ別に表示する。このとき、順序制御手段５は、サーバ属性に応じて、ファイル名の表示態様を変える。本実施形態では、順序制御手段５が、サーバ属性だけでなく、ファイルの種別によっても、表示態様を変える場合を例にして説明する。
【００４８】
情報取得手段２、ファイル特定手段３、順序制御手段５および表示手段６は、例えば、ディスプレイ装置を有するコンピュータのＣＰＵ(Central Processing Unit)によって実現される。この場合、ＣＰＵは、コンピュータのプログラム記憶装置（図示略）等のプログラム記録媒体からファイル情報収集プログラムを読み込み、そのプログラムに従って、情報取得手段２、ファイル特定手段３、順序制御手段５および表示手段６として動作すればよい。表示手段６のうち、表示内容を決定する部分が、ＣＰＵによって実現される。表示手段６のうち、実際に表示を行う部分は、ディスプレイ装置によって実現される。この点は、後述の他の実施形態においても同様である。
【００４９】
また、情報取得手段２、ファイル特定手段３、順序制御手段５および表示手段６がそれぞれ別々のハードウェアによって実現されていてもよい。
【００５０】
次に、第１の実施形態の処理経過について説明する。図５、図６および図７は、本発明の第１の実施形態の処理経過の例を示すフローチャートである。
【００５１】
本発明のファイル情報収集システム１は、管理者によって起点情報が入力されると、ステップＳ１から処理を実行する。以下に示す例では、管理者が、図４に例示する呼び出し関係情報を予め呼び出し関係情報記憶手段４に記憶させている場合を例にして説明する。また、以下の説明では、アラートを出力したプロセスが、図４に例示する“java”である場合を例にして説明する。また、管理者によって入力された起点情報には、サーバ名“サーバ２”と、プロセス名“java”と、基準時刻“2015/8/24 13:00:00”とが含まれている場合を例にして説明する。
【００５２】
また、以下の説明では、図４に示す各サーバ１〜３で動作しているプロセスのプロセスＩＤ等、およびそれらのプロセスが開いているファイルのファイル名およびファイル属性が、図８に例示するように表される場合を例にして説明する。ただし、図８では、図４に示すプロセスを包含するツリー構造で表される各プロセスを示している。なお、図８に例示するように、プロセスＩＤをＰＩＤと記す場合がある。また、「親ＰＩＤ」は、親プロセスのプロセスＩＤを意味する。「親ＰＩＤ」が“０”であるということは、親プロセスが存在しないことを意味する。また、以下の説明では、ライト可能というファイル属性を“Ｗ”で表し、リード可能というファイル属性を“Ｒ”と表し、リード／ライト可能というファイル属性を“Ｗ／Ｒ”と表す場合がある。
【００５３】
また、以下の説明では、ログファイルのファイル名およびログファイル候補のファイル名を判定する際、ファイル特定手段３が、図３に例示するinclude 条件およびexclude 条件を用いる場合を例にして説明する。
【００５４】
情報取得手段２は、特定プロセスを包含したプロセスの親子関係を示すツリー構造で表される各プロセスのプロセスＩＤを、特定プロセスが動作しているサーバから取得する（ステップＳ１）。
【００５５】
起点情報が入力された直後に実行されるステップＳ１では、起点情報に含まれるプロセス名によって特定されるプロセスが、特定プロセスになる。また、起点情報が入力された直後に実行されるステップＳ１では、起点情報に含まれるサーバ名によって特定されるサーバが、特定プロセスが動作しているサーバである。
【００５６】
情報取得手段２は、例えば、プロセス名“java”を指定して、そのプロセス名を有するプロセスのプロセスＩＤ、プロセス名、およびそのプロセスと親子関係にあるプロセスのプロセスＩＤ（親または子のプロセスＩＤ）を含むプロセス情報を、サーバ２から取得する。そして、情報取得手段２は、親または子のプロセスＩＤを指定して、そのプロセスＩＤに対応するプロセス情報をサーバ２から取得することを、親子関係のツリー構造が得られるまで繰り返せばよい。このように、情報取得手段２は、プロセスＩＤの他に、プロセス名等も取得してよい。
【００５７】
本例では、情報取得手段２は、図８に例示する情報５２を、サーバ２から取得する。
【００５８】
続いて、情報取得手段２は、ステップＳ１で取得した各プロセスＩＤに対応する各プロセスが開いている各ファイルのファイル名およびファイル属性を、特定プロセスが動作しているサーバから取得する（ステップＳ２）。
【００５９】
ここでは、情報取得手段２は、プロセスＩＤが２００（図８参照）であるプロセスが開いている各ファイルのファイル名およびファイル属性を、サーバ２から取得する。同様に、情報取得手段２は、プロセスＩＤが２０１であるプロセスが開いている各ファイルの情報、および、プロセスＩＤが２０１であるプロセスが開いている各ファイルの情報もサーバ２から取得する。
【００６０】
本例では、情報取得手段２は、図８に例示する情報５５をサーバ２から取得する。情報５４〜５６はいずれも、プロセスＩＤとファイル名とファイル属性との組を含んでいる。なお、図８に例示する情報５５では、プロセスＩＤ“２０１”，“２０２”に対応するファイル名およびファイル属性が含まれていない。このことは、プロセスＩＤ“２０１”，“２０２”に対応するプロセスはファイルを開いていないことを意味する。
【００６１】
次に、ファイル特定手段３は、ステップＳ２で取得されたファイル名のうち、ファイル属性がライト可能またはリード／ライト可能となっているファイル名を選択する。さらに、ファイル特定手段３は、選択したファイル名の集合の中に同一のファイル名が複数あれば、重複を排除する（ステップＳ３）。
【００６２】
本例では、情報５５として図８に示す各ファイル名のうち、ファイル特定手段３は、１番目から４番目までの各ファイル名までを選択する。また、これらの４つのファイル名は重複していないので、ファイル特定手段３は、重複排除は行わなくてよい。
【００６３】
次に、ファイル特定手段３は、ステップＳ３の結果得た各ファイル名に基づいて、その各ファイル名の中から、ログファイルのファイル名およびログファイル候補のファイル名を特定する（ステップＳ４）。
【００６４】
図８に示す情報５５における１番目から４番目までの各ファイル名は、いずれも、「include 条件を満たし、かつ、exclude 条件を満たしていない」という条件を満足している。従って、ファイル特定手段３は、その４つのファイル名がいずれもログファイルのファイル名であると判定する。この４つのファイル名の中には、ログファイル候補のファイル名は存在していない。
【００６５】
次に、ファイル特定手段３は、ログファイルのファイル名毎、および、ログファイル名候補のファイル名毎に、サーバ名、ファイル名、サーバ属性、ファイルの種別を含むレコードを作成し、レコードのリストを生成する（ステップＳ５）。
【００６６】
本例では、ファイル特定手段３は、図９に例示するリストを生成する。サーバ２は、起点サーバであるので、図９に示す各レコードのサーバ属性は、「起点」である。また、ステップＳ４の結果により、ここでは、「ファイルの種別」は、全て「ログファイル」である。
【００６７】
ファイル特定手段３は、以前にステップＳ５を実行している場合、既に生成済みのリストの最後に、新たに生成したリストを追加する。ここでは、起点情報入力後、最初にステップＳ５に移行した状態であるので、既存のリストはない。従って、ここでは、ファイル特定手段３は、図９に示すリストを生成すればよい。
【００６８】
なお、ファイル特定手段３は、リスト（既存のリストに新たなリストを追加した場合には、追加後のリスト）内にログファイル候補のレコードがある場合、そのレコードをリストの最後に移動する。
【００６９】
ステップＳ５の後、情報取得手段２は、現在の特定プロセスが最初の特定プロセス（起点情報によって特定されるプロセス）よりも呼び出し元側のプロセスであるか否かを示すフラグ（以下、単にフラグと記す。）の値が１であるか否かを判定する（ステップＳ６）。フラグの初期値は０である。フラグの値が１であるということは、現在の特定プロセスが最初の特定プロセスよりも呼び出し元側のプロセスであることを意味する。フラグの値が０であるということは、現在の特定プロセスが最初の特定プロセスよりも呼び出し元側のプロセスでないことを意味する。
【００７０】
フラグの値が１であれば（ステップＳ６のＹｅｓ）、ステップＳ１２に移行し、フラグの値が０であれば（ステップＳ６のＮｏ）、ステップＳ７に移行する。ここでは、フラグの値は初期値“０”であるので、ステップＳ７に移行する。
【００７１】
ステップＳ７において、情報取得手段２は、現在の特定プロセスの呼び出し先のプロセスが存在するか否かを、呼び出し関係情報（図４参照）に基づいて判定する（ステップＳ７）。現在の特定プロセスの呼び出し先のプロセスが存在する場合（ステップＳ７のＹｅｓ）、ステップＳ８に移行し、存在しない場合（ステップＳ７のＮｏ）、ステップＳ９に移行する。ここでは、現在の特定プロセスの呼び出し先のプロセス（“mysqld”）が存在するので、ステップＳ８に移行する。
【００７２】
ステップＳ８において、情報取得手段２は、現在の特定プロセスが呼び出しているプロセスを新たな特定プロセスとして定める（ステップＳ８）。また、情報取得手段２は、呼び出し関係情報（図４参照）を参照して、新たな特定プロセスが動作しているサーバを認識する。ここでは、情報取得手段２は、“java”が呼び出している“mysqld”を新たな特定プロセスとして定める。また、情報取得手段２は、“mysqld”が動作しているサーバが、サーバ３であることを認識する。
【００７３】
ステップＳ８の後、ステップＳ１に移行し、ステップＳ１以降の動作を繰り返す。
【００７４】
“mysqld”が特定プロセスとなった場合、情報取得手段２は、ステップＳ１で、図８に例示する情報５３をサーバ３から取得する。さらに、情報取得手段２は、ステップＳ２で、図８に例示する情報５６をサーバ３から取得する。
【００７５】
ステップＳ３において、ファイル特定手段３は、情報５６として示す各ファイル名のうち、１番目、３番目および４番目のファイル名を選択する。これらの３つのファイル名は重複していないので、ファイル特定手段３は、重複排除は行わなくてよい。
【００７６】
ステップＳ３の結果得た各ファイル名のうち、“/dev/null” は、「include 条件を満たし、かつ、exclude 条件を満たしていない」という条件も、「include 条件とexclude 条件の双方を満たしていない」という条件も満たしていない。
【００７７】
また、“/var/log/mysqld.log” は、「include 条件を満たし、かつ、exclude 条件を満たしていない」という条件を満たしている。
【００７８】
また、“/var/lib/mysql/ib_logfile”は、「include 条件とexclude 条件の双方を満たしていない」という条件を満たしている。
【００７９】
従って、ステップＳ４において、ファイル特定手段３は、“/dev/null”は、ログファイルおよびログファイル候補のいずれにも該当しないと判定する。また、ファイル特定手段３は、“/var/log/mysqld.log” がログファイルのファイル名であり、“/var/lib/mysql/ib_logfile”がログファイル候補のファイル名であると判定する。
【００８０】
次のステップＳ５において、ファイル特定手段３は、“/var/log/mysqld.log” のレコードおよび“/var/lib/mysql/ib_logfile”のレコードを含むリストを作成する。これらのレコードにおけるサーバ属性は全て「呼び出し先」である。また、“/var/log/mysqld.log” のレコードにおいて、ファイルの種別はログファイルである。“/var/lib/mysql/ib_logfile”のレコードにおいて、ファイルの種別はログファイル候補である。
【００８１】
ここでは、既存のリスト（前回のステップＳ５で作成したリスト、図９参照）が存在する。従って、ファイル特定手段３は、新たに作成したリストを既存のリストの最後に追加する。この結果、図１０に示すリストが得られる。
【００８２】
次に、情報取得手段２は、フラグの値が１であるか否かを判定する（ステップＳ６）。ここでは、フラグの値は０であるので、ステップＳ７に移行する。
【００８３】
情報取得手段２は、現在の特定プロセス（“mysqld”）の呼び出し先のプロセスが存在するか否かを、呼び出し関係情報に基づいて判定する（ステップＳ７）。本例では、“mysqld”の呼び出し先のプロセスが存在しないので（図４参照）、ステップＳ９に移行する。“mysqld”の呼び出し先のプロセスが存在する場合には、再度、ステップＳ８以降の処理を実行すればよい。
【００８４】
ステップＳ９において、情報取得手段２は、最初の特定プロセス（“java”）を呼び出しているプロセスが存在するか否かを、呼び出し関係情報（図４参照）に基づいて判定する（ステップＳ９）。最初の特定プロセス（“java”）を呼び出しているプロセスが存在する場合（ステップＳ９のＹｅｓ）、ステップＳ１０に移行し、存在しない場合（ステップＳ９のＮｏ）、ステップＳ１４に移行する。例えば、図４に示す“httpd”が起点情報に記載されている場合、ステップＳ９からステップＳ１４に移行する。ここでは、最初の特定プロセス（“java”）を呼び出しているプロセス“httpd”が存在するので、ステップＳ１０に移行する。
【００８５】
ステップＳ１０において、情報取得手段２は、最初の特定プロセス（“java”）を呼び出しているプロセスを新たな特定プロセスとして定める（ステップＳ１０）。ここでは、情報取得手段２は、“java”を呼び出している“httpd”を新たな特定プロセスとして定める。また、情報取得手段２は、“httpd”が動作しているサーバが、サーバ１であることを認識する。
【００８６】
次に、情報取得手段２は、フラグの値を１に変更する（ステップＳ１１）。
【００８７】
ステップＳ１１の後、ステップＳ１に移行し、ステップＳ１以降の動作を繰り返す。
【００８８】
“httpd”が特定プロセスとなった場合、ステップＳ１で、図８に例示する情報５１をサーバ１から取得する。さらに、情報取得手段２は、ステップＳ２で、図８に例示する情報５４をサーバ１から取得する。
【００８９】
ステップＳ３において、ファイル特定手段３は、情報５４として示す各ファイル名のうち、１番目、２番目、４番目、５番目、７番目および８番目のファイル名を選択する。これらのファイルのうち、１番目、４番目および７番目のファイル名（“/var/log/access.log” ）は重複しているので、ファイル特定手段３は、重複を排除する。例えば、ファイル特定手段３は、４番目および７番目のファイル名を破棄し、１番目だけを残す。同様に、２番目、５番目および８番目のファイル名（“/var/log/error.log”）は重複しているので、ファイル特定手段３は、重複を廃棄する。
【００９０】
この結果得られた２つのファイル名（“/var/log/access.log” および“/var/log/error.log”）は、「include 条件を満たし、かつ、exclude 条件を満たしていない」という条件を満たしている。従って、ファイル特定手段３は、この２つのファイル名がいずれもログファイルのファイル名であると判定する（ステップＳ４）。
【００９１】
次のステップＳ５において、ファイル特定手段３は、“/var/log/access.log” のレコードおよび“/var/log/error.log”のレコードを含むリストを作成する。これらのレコードにおけるサーバ属性は全て「呼び出し元」である。また、これらのレコードにおけるファイルの種別は全て「ログファイル」である。
【００９２】
さらに、ファイル特定手段３は、そのリストを、既存のリスト（図１０参照）の最後に追加する。また、ファイル特定手段３は、ログファイル候補のレコードをリストの最後に移動する。この結果、図１１に示すリストが得られる。
【００９３】
次に、情報取得手段２は、フラグの値が１であるか否かを判定する（ステップＳ６）。ここでは、フラグの値は１であるので、ステップＳ１２に移行する。
【００９４】
ステップＳ１２において、情報取得手段２は、現在の特定プロセス（“httpd”）を呼び出しているプロセスが存在するか否かを、呼び出し関係情報（図４参照）に基づいて判定する（ステップＳ１２）。
【００９５】
現在の特定プロセスを呼び出しているプロセスが存在する場合（ステップＳ１２のＹｅｓ）、情報取得手段２は、現在の特定プロセスを呼び出しているプロセスを新たな特定プロセスとして定める（ステップＳ１３）。このとき、情報取得手段２は、そのプロセスが動作しているサーバも認識する。この後、ステップＳ１に移行し、ステップＳ１以降の動作を繰り返す。
【００９６】
現在のプロセスを呼び出しているプロセスが存在しない場合（ステップＳ１２のＮｏ）、ステップＳ１４に移行する。本例では、“httpd”を呼び出しているプロセスは存在しないので、ステップＳ１４に移行する。
【００９７】
ステップＳ１４では、順序制御手段５は、生成されたリスト（図１１参照）内のレコードを全て選択したか否かを判定する（ステップＳ１４）。
【００９８】
未選択のレコードが残っている場合（ステップＳ１４のＮｏ）、順序制御手段５は、リストの先頭側に最も近い未選択のレコードを選択する（ステップＳ１５）。例えば、１番最初にステップＳ１５に移行した場合、順序制御手段５は、リストの１番目のレコードを選択する。ここでは、図１１に示す１番目のレコードを選択した場合を例にして説明する。
【００９９】
また、サーバ１、サーバ２およびサーバ３が、図１１に示す各ファイル名のファイルを更新した時刻は、図１２に例示する時刻であるものとする。また、ここでは、図１１に示す各ファイルのサイズはいずれも０でないものとし、ファイルの更新時刻に着目して説明する。
【０１００】
ステップＳ１５の後、順序制御手段５は、選択したレコードに対応するファイルを出力したサーバから、そのファイルの更新時刻およびサイズの情報を取得する（ステップＳ１６）。ここでは、順序制御手段５は、サーバ２から、“/opt/tomcat/log/catalina.out”の更新日時およびサイズの情報を取得する。順序制御手段５は、取得した更新日時の情報を、ステップＳ１５で選択したレコードに追加してもよい。
【０１０１】
ステップＳ１６の後、順序制御手段５は、選択したレコードに対応するファイルの更新時刻が基準時刻より前の時刻であるか否かを判定するとともに、そのファイルのサイズが０であるか否かを判定する（ステップＳ１７）。説明を簡単にするために、前述のように、図１１に示す各ファイルのサイズは０でないものとする。
【０１０２】
更新時刻が基準時刻より前であるか、または、ファイルのサイズが０である場合（ステップＳ１７のＹｅｓ）、ステップＳ１８に移行する。また、更新時刻が基準時刻以降の時刻であり、かつ、ファイルのサイズが０でない場合（ステップＳ１７のＮｏ）、順序制御手段５は、ステップＳ１４以降の処理を繰り返す。“/opt/tomcat/log/catalina.out”の更新日時は“2015/8/24 14:00:00”であり（図１２参照）、入力された起点情報が示す基準時刻“2015/8/24 13:00:00”以降の時刻である。また、“/opt/tomcat/log/catalina.out”のファイルサイズは０ではない。従って、ここでは、順序制御手段５は、ステップＳ１７からステップＳ１４に移行し、ステップＳ１４以降の処理を行う。
【０１０３】
２番目のレコード（“/opt/tomcat/log/catalina.log”）を選択した場合にも、順序制御手段５は、ステップＳ１７からステップＳ１４に移行する。
【０１０４】
ステップＳ１５で、順序制御手段５が、図１１に示す３番目のレコード（“/opt/tomcat/log/localhost.log” ）を選択したとする。順序制御手段５は、このレコードに対応するファイルの更新時刻の情報として、“2015/8/24 00:00:00”（図１２参照）を取得する（ステップＳ１６）。
【０１０５】
従って、順序制御手段５は、“/opt/tomcat/log/localhost.log” の更新時刻は基準時刻より前であると判定し（ステップＳ１７のＹｅｓ）、ステップＳ１８に移行する。
【０１０６】
ステップＳ１８では、順序制御手段５は、選択したレコードのサーバ属性の内容を「参照」に書き換え、そのレコードをリストの最後に移動する（ステップＳ１８）。従って、順序制御手段５は、図１１に示す３番目のレコードのサーバ属性を「参照」に書き換え、リストの最後に移動する。ステップＳ１８の後、順序制御手段５は、ステップＳ１４に移行し、ステップＳ１４以降の処理を行う。
【０１０７】
図１１に示す４番目のレコードの更新時刻は“2015/8/24 01:00:00”であり、基準時刻よりも前の時刻である。従って、順序制御手段５は、図１１に示す４番目のレコードを選択した場合にも、ステップＳ１７からステップＳ１８に移行し、図１１に示す４番目のレコードのサーバ属性を「参照」に書き換え、そのレコードをリストの最後に移動する。この時点でのリストは、図１３に示すようになる。この後、順序制御手段５は、ステップＳ１４以降の処理を行う。
【０１０８】
ステップＳ１５で、図１１に示す最後のレコード（“/var/lib/mysql/ib_logfile” ）を選択した場合、ステップＳ１７からステップＳ１４に戻る。この結果、リストは、図１４に示すようになる。
【０１０９】
図１１に示す最後のレコード（“/var/lib/mysql/ib_logfile” ）を選択した後、ステップＳ１４に移行した場合、リスト内のレコードが全て選択済みとなっている（ステップＳ１４のＹｅｓ）。この場合、ステップＳ１９に移行する。
【０１１０】
なお、上記の説明では、主に更新時刻に着目して、ステップＳ１７を説明したが、ステップＳ１６で取得したファイルのサイズが０である場合にも、ステップＳ１８に移行する。すなわち、ファイルのサイズが０である場合にも、順序制御手段５は、選択しているレコードのサーバ属性を「参照」に書き換え、そのレコードをリストの最後に移動する。
【０１１１】
ステップＳ１９では、表示手段６が、リストに含まれている各ファイル名をサーバ別に表示する（ステップＳ１９）。このとき、表示手段６は、サーバ属性に応じて、ファイル名の表示態様を変える。また、表示手段６は、サーバ属性だけでなく、ファイルの種別によってもファイル名の表示態様を変えてもよい。本実施形態では、表示手段６がファイル名の表示部分の背景を、サーバ属性およびファイルの種別に応じて変える場合を例にして説明する。
【０１１２】
図１５は、表示手段６が表示する画面の例を示す説明図である。この画面内で表示されるファイル名は、リストに含まれているファイル名である。表示手段６は、例えば、各サーバを示すアイコン６１〜６３を表示する。そして、表示手段６は、そのアイコンの近傍に、サーバが出力したファイルのファイル名を表示する。例えば、表示手段６は、サーバ１のアイコン６１の近傍に、サーバ１が出力したファイルのファイル名を表示する。アイコン６２，６３に関しても同様である。
【０１１３】
また、表示手段６は、サーバ属性が参照であるレコードのファイル名の背景を、他のファイル名の背景と異なる背景にする。図１５に示す例では、サーバ属性が「参照」であるレコードのファイル名の背景を斜線としている。同様に、表示手段６は、ファイルの種別がログファイル候補であるレコードのファイル名の背景を、他のファイル名の背景と異なる背景にする。図１５に示す例では、ファイルの種別がログファイル候補であるレコードのファイル名（サーバ３下）の背景をグレーにしている。
【０１１４】
図１５に例示する画面に表示されるファイル名は、いずれも、ログファイルまたはログファイル候補のファイル名である。従って、管理者は、ログファイルまたはログファイル候補のファイル名を把握することができる。
【０１１５】
また、サーバ属性が「参照」であるファイルは、更新時刻が基準時刻（アラートの出力時刻）より前であるか、あるいは、ファイルのサイズが０であるファイルである。更新時刻が基準時刻より前であるファイルは、ログファイルであったとしても、アラート出力の起因となったエラーとの関連性が低いと考えられる。同様に、サイズが０のファイルも、ログファイルであったとしても、アラート出力の起因となったエラーとの関連性が低いと考えられる。従って、これらのファイルは、アラート出力の起因となったエラーの解析の際、重要度は低い。図１５に例示する画面によって、管理者は、そのような重要度の低いファイルのファイル名を把握することができる。また、ログファイル候補は、ログファイルに比べて重要度が低いと言える。図１５に例示する画面によって、管理者は、ログファイルと、ログファイル候補とを区別して把握することができる。
【０１１６】
第１の実施形態によれば、情報取得手段２が、起点情報や呼び出し関係情報に基づいて特定プロセスを定める。そして、情報取得手段２が、そのプロセスを包含するツリー構造（親子関係を示すツリー構造）によって表される各プロセスが開いている各ファイルのファイル名およびファイル属性を取得する。そして、情報取得手段２が、ファイル属性がライト可能またはリード／ライト可能となっているファイル名を選択し、そのファイル名に基づいて、ログファイルのファイル名およびログファイル候補のファイル名を特定する。さらに、情報取得手段２が、ログファイルのファイル名を含むレコード、および、ログファイル候補のファイル名を含むレコードのリストを生成する。また、順序制御手段５は、生成されたリスト内で、ファイルの更新時刻が基準時刻より前のレコードや、サイズが０であるファイルのレコードをリストの最後に移動する。
【０１１７】
従って、アラートの出力の起因となったエラーに関連するファイルのリストが生成されるので、管理者は、全てのログファイルを把握していなくても、障害解析のための適切なログファイルのファイル名のリストを得ることができる。この結果、管理者は、障害解析のための適切なログファイルを把握することができる。
【０１１８】
また、ファイルの更新時刻が基準時刻より前のレコードや、サイズが０であるファイルのレコードは、リストの最後に移動しているので、エラーとの関連性が高いファイルのファイル名がリストの先頭から並ぶことになる。従って、管理者は、エラーとの関連性が高いファイルとそうでないファイルを区別して把握することができる。
【０１１９】
さらに、本実施形態では、ファイルの種別がログファイルとログファイル候補とに分類されている。従って、管理者は、ログファイルと、ログファイル候補とを区別して把握することができる。
【０１２０】
さらに、表示手段６は、図１５に例示するように、サーバ属性やファイルの種別に応じて表示態様を変えて、ファイル名を表示する。従って、管理者は、エラーとの関連性が高いファイルとそうでないファイルとを容易に区別することができる。同様に、管理者は、ログファイルとログファイル候補とを容易に区別することができる。
【０１２１】
実施形態２．
第２の実施形態のファイル情報収集システムは、リストを生成するだけでなく、リスト内のレコードに対応するファイルをサーバから取得する。ただし、ファイル情報収集システムは、リスト内の各レコードに対応する全てのファイルを取得するとは限らない。
【０１２２】
図１６は、本発明の第２の実施形態のファイル情報収集システムの構成例を示すブロック図である。図１６では、図１と同様に、サーバ１０ａ〜１０ｎも図示している。また、第１の実施形態のファイル情報収集システムの要素と同一の要素については、図１と同一の符号を付し、説明を省略する。
【０１２３】
各サーバ１０ａ〜１０ｎはそれぞれ、情報採取手段１１と、ファイル送信手段１２とを備える。情報採取手段１１は、第１の実施形態における情報採取手段１１と同様であり、説明を省略する。
【０１２４】
ファイル送信手段１２は、ファイル情報収集システム１から要求されたファイルを、ファイル情報収集システム１に送信する。
【０１２５】
第２の実施形態のファイル情報収集システム１は、第１の実施形態のファイル情報収集システム１が備える各手段に加え、ファイル判定手段７を備える。
【０１２６】
順序制御手段５は、第１の実施形態で示した処理の他に、以下の処理も実行する。順序制御手段５は、ステップＳ１４（図７参照）で、リスト内のレコードを全て選択したと判定した場合（ステップＳ１４のＹｅｓ）、その時点で得られているリストから、再度、レコードを選択する。このとき、順序制御手段５は、リストの先頭側から、サーバ名が共通であって連続する未選択のレコードの集合を、サーバ名毎に順次、選択する。また、本実施形態では、サーバ属性が「起点」または「呼び出し先」であるレコードが選択対象である場合を例にして説明する。サーバ属性が「起点」または「呼び出し先」であるレコードは、リストの先頭から連続して並んでいる。
【０１２７】
そして、順序制御手段５は、選択した各レコードに対応する各ファイルを、その各ファイルを出力したサーバに要求することによって、その各ファイルを取得する。このとき、ファイル送信手段１２は、順序制御手段５から要求されたファイルを順序制御手段５に送信すればよい。
【０１２８】
ファイル判定手段７は、順序制御手段５がサーバから取得したファイル毎に、エラーが発生したことを示す情報（以下、エラー情報と記す。）を含んでいるか否かを判定する。ファイル判定手段７は、エラー情報を含んでいないファイルに対応するレコードの「ファイルの種別」を「ログファイル＿ＮＯＥＲＲＯＲ」に変更する。「ログファイル＿ＮＯＥＲＲＯＲ」は、ファイルがエラー情報を含んでいないということを示す。
【０１２９】
また、順序制御手段５は、選択したレコードの集合に属する全てのレコードで「ファイルの種別」がログファイル＿ＮＯＥＲＲＯＲとなった場合、そのレコードに対応する各ファイルを出力したサーバよりも呼び出し先側のサーバから出力されたファイルに対応するレコードの集合をリストの最後に移動する。また、順序制御手段５は、その集合に属するレコードの「ファイルの種別」を「ログファイル＿ＮＯＥＲＲＯＲ」に変更する。
【０１３０】
情報取得手段２、ファイル特定手段３、順序制御手段５、表示手段６およびファイル判定手段７は、例えば、ディスプレイ装置を有するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵは、コンピュータのプログラム記憶装置（図示略）等のプログラム記録媒体からファイル情報収集プログラムを読み込み、そのプログラムに従って、情報取得手段２、ファイル特定手段３、順序制御手段５、表示手段６およびファイル判定手段７として動作すればよい。また、各手段がそれぞれ別々のハードウェアによって実現されていてもよい。
【０１３１】
次に、第２の実施形態の処理経過について説明する。図１７は、本発明の第２の実施形態の処理経過の例を示すフローチャートである。ステップＳ１〜Ｓ１８の動作は、第１の実施形態と同様であり、説明を省略する。図１７では、ステップＳ１４（図７参照）でリスト内のレコードを全て選択したと判定した後（ステップＳ１４のＹｅｓ）の動作を図示している。
【０１３２】
前述のように、順序制御手段５は、ステップＳ１４でリスト内のレコードを全て選択したと判定した場合、その時点で得られているリストから、再度、レコードを選択する。本実施形態では、ステップＳ１４でリスト内のレコードを全て選択したと判定した時点で、図１８に例示するリストが得られている場合を例にして説明する。図１８に示すサーバ４は、サーバ３の呼び出し先側のサーバである。また、図１８では、サーバ属性が「参照」であるレコードが存在しない場合を例示しているが、サーバ属性が「参照」であるレコードがリスト内に含まれていてもよい。ただし、第１の実施形態の説明から明らかなように、サーバ属性が「参照」であるレコードの集合は、リストの最後に連続して並ぶ。
【０１３３】
順序制御手段５は、リストから、サーバ属性が「起点」または「呼び出し先」となっているレコードを全て選択したか否かを判定する（ステップＳ２１）。このことは、サーバ属性が「起点」または「呼び出し先」となっているレコードに対応するファイルが取得対象であることを意味する。図１８に示す例では、１番目から５番目までの各レコードに対応するファイルが取得対象となる。ただし、後述するように、取得対象のファイルであっても、順序制御手段５が、サーバから取得しない場合がある。
【０１３４】
サーバ属性が「起点」または「呼び出し先」となっているレコードであって未選択となっているレコードがあれば（ステップＳ２１のＮｏ）、順序制御手段５はステップＳ２２に移行する。
【０１３５】
ステップＳ２２において、順序制御手段５は、共通のサーバから出力されたファイルに対応するレコードの集合であって、連続するレコードの集合を選択する（ステップＳ２２）。順序制御手段５は、サーバ名が共通であって連続する未選択のレコードを選択すればよい。ただし、順序制御手段５は、リストの先頭に最も近い未選択のレコードの集合を選択する。なお、ステップＳ２２で選択されるレコードの集合に属するレコードの数は１個であってもよい。例えば、あるサーバ名のレコードが１つしか存在しない場合には、順序制御手段５は、ステップＳ２２で、その１つのレコードを選択すればよい。
【０１３６】
最初にステップＳ２２に移行した場合、順序制御手段５は、リスト（図１８参照）の先頭から、サーバ名が「サーバ２」となっている連続する２つのレコードを選択する。
【０１３７】
順序制御手段５は、ステップＳ２２で選択したレコードに対応する各ファイルを、その各ファイルを出力したサーバから取得する（ステップＳ２３）。本例では、順序制御手段５は、図１８に示す１番目および２番目の各レコードに対応する各ファイルをサーバ２のファイル送信手段１２に要求することによって、その各ファイルを取得する。
【０１３８】
順序制御手段５は、ステップＳ２３において、ファイルをサーバに要求する際、基準時刻の情報もサーバに送信し、ファイルの記載内容のうち、その基準時刻以降の記録に該当する部分のみを要求してもよい。この要求を受けたファイル送信手段１２は、要求されたファイルの記載内容のうち、基準時刻以降の記録に該当する部分のみを順序制御手段５に送信してもよい。ログファイルには、時系列順に種々の事項が記録されるが、基準時刻より前の時刻の記録は、アラート出力の起因となったエラーとの関連性が低いと考えられる。従って、順序制御手段５は、基準時刻以降の記録に該当する部分のみを取得することによって、ファイル情報収集システム１が保持するファイルの容量の増加を抑えることができる。
【０１３９】
なお、順序制御手段５は、ステップＳ２３において、要求したファイル全体をサーバから取得してもよい。
【０１４０】
次に、ファイル判定手段７は、ステップＳ２３で得られたファイル毎に、エラー情報を含んでいるか否かを判定する（ステップＳ２４）。ファイル判定手段７は、ファイル内に所定のエラーレベルが記録されていれば、そのファイルがエラー情報を含んでいると判定し、ファイル内に所定のエラーレベルが記録されていなければ、そのファイルがエラー情報を含んでいないと判定してもよい。また、ファイル判定手段７は、ファイル内に所定の文言（例えば、“error”，“fatal”等の文言）が含まれていれば、そのファイルがエラー情報を含んでいると判定し、ファイル内に上記の所定の文言が含まれていなければ、そのファイルがエラー情報を含んでいないと判定してもよい。
【０１４１】
また、ステップＳ２４において、ファイル判定手段７は、エラー情報を含んでいないと判定したファイルに対応するレコードの「ファイルの種別」をログファイル＿ＮＯＥＲＲＯＲに変更する。
【０１４２】
次に、順序制御手段５は、ステップＳ２２で選択したレコードの集合に属する全てのレコードで「ファイルの種別」がログファイル＿ＮＯＥＲＲＯＲになっているか否かを判定する（ステップＳ２５）。選択したレコードの集合に属する全てのレコードで「ファイルの種別」がログファイル＿ＮＯＥＲＲＯＲであるということは、ステップＳ２２で取得した全てのファイルがエラー情報を含んでいないということである。
【０１４３】
選択したレコードの集合に属する全てのレコードの中で、「ファイルの種別」がログファイル＿ＮＯＥＲＲＯＲでないレコードが存在する場合（ステップＳ２５のＮｏ）、ステップＳ２１に移行し、ステップＳ２１以降の動作を行う。
【０１４４】
選択したレコードの集合に属する全てのレコードで「ファイルの種別」がログファイル＿ＮＯＥＲＲＯＲである場合（ステップＳ２５のＹｅｓ）、ステップＳ２６に移行する。
【０１４５】
本例では、図１８に示す１番目および２番目の各レコードに対応する各ファイルはエラー情報を含んでいるものとして説明する。この場合、１番目および２番目の各レコードのファイルの種別は変更されず、ステップＳ２５から、ステップＳ２１に移行する。
【０１４６】
この場合、サーバ属性が「起点」または「呼び出し先」となっているレコードであって未選択となっているレコード（図１８に示す３番目から５番目までのレコード）が存在する（ステップＳ２１のＮｏ）。従って、順序制御手段５は、サーバ名が「サーバ３」となっている連続する２つのレコード（図１８に示す３番目および４番目のレコード）を選択する（ステップＳ２２）。
【０１４７】
次に、順序制御手段５は、その２つのレコードに対応するファイルを、サーバ３に要求することによって、サーバ３から２つのファイルを取得する（ステップＳ２３）。
【０１４８】
図１８に示す３番目および４番目の各レコードに対応する２つのファイルがいずれもエラー情報を含んでいないものとして説明する。この場合、ファイル判定手段７は、その２つのファイルがそれぞれエラー情報を含んでいないと判定し、ステップＳ２２で選択された２つのレコードの「ファイルの種別」をログファイル＿ＮＯＥＲＲＯＲに変更する（ステップＳ２４）。
【０１４９】
そして、順序制御手段５は、ステップＳ２２で選択したレコードの集合に属する全てのレコードで「ファイルの種別」がログファイル＿ＮＯＥＲＲＯＲになっていると判定し（ステップＳ２５のＹｅｓ）、ステップＳ２６に移行する。
【０１５０】
ステップＳ２６において、順序制御手段５は、直近のステップＳ２２で選択したレコードの集合（図１８に示す３番目および４番目のレコード）の後に続くレコードの集合であって、サーバ属性が「呼び出し先」となっているレコードの集合をリストの最後に移動する。さらに、順序制御手段５は、その集合に属するレコードの「ファイルの種別」をログファイル＿ＮＯＥＲＲＯＲに変更する（ステップＳ２６）。
【０１５１】
本例では、図１８に示す３番目および４番目のレコードの後に続くレコードの集合であって、サーバ属性が「呼び出し先」となっているレコードの集合は、図１８に示す５番目のレコードのみを含む集合である。従って、順序制御手段５は、図１８に示す５番目のレコードをリストの最後に移動し、その２つのレコードの「ファイルの種別」をログファイル＿ＮＯＥＲＲＯＲに変更する。図１９は、この時点でのリストの状態を示す模式図である。
【０１５２】
ステップＳ２６の後、ステップＳ２７に移行する。このことは、ステップＳ２１，Ｓ２２に移行せず、レコードの集合の選択を中止すること意味する。
【０１５３】
ステップＳ２７において、表示手段６は、リストに含まれている各ファイル名をサーバ別に表示する（ステップＳ２７）。このとき、表示手段６は、サーバ属性およびファイルの種別に応じて、ファイル名の表示態様を変える。
【０１５４】
図２０は、表示手段６が表示する画面の例を示す説明図である。表示手段６は、例えば、各サーバを示すアイコン６１〜６４を表示する。そして、表示手段６は、そのアイコンの近傍に、サーバが出力したファイルのファイル名を表示する。この点は、第１の実施形態におけるステップＳ１９と同様である。
【０１５５】
さらに、表示手段６は、ファイルの種別がログファイル＿ＮＯＥＲＲＯＲであるレコードのファイル名の背景を、他のファイル名の背景と異なる背景にする（図１９および図２０参照）。同様に、表示手段６は、ファイルの種別がログファイル候補であるレコードのファイル名の背景を、他のファイル名の背景と異なる背景にする（図１９および図２０参照）。
【０１５６】
また、図１８および図１９に示す例では、サーバ属性が「参照」であるレコードが存在していない場合を示しているが、サーバ属性が参照であるレコードが存在する場合、表示手段６は、そのレコードのファイル名の背景を、他のファイル名の背景と異なる背景にする。
【０１５７】
また、表示手段６は、サーバから取得したファイルのファイル名と、サーバから取得していないファイルのファイル名とで、表示態様を変えてもよい。
【０１５８】
ステップＳ２７で処理を終了する。
【０１５９】
上記の例では、ファイル情報収集システム１は、サーバ４が出力したファイル“/var/log/storage.log”を取得せずに、処理を終了することになる。既に述べたように、いずれかのサーバでエラーが生じた場合、そのサーバから見て呼び出し元のサーバにエラーが波及していく。従って、サーバ３が出力した各ファイルがいずれもエラー情報を含んでいない場合、サーバ３から見て呼び出し先側のサーバ４が出力したファイルもエラー情報を含んでいないと考えられる。さらに、エラー情報を含まないファイルは、取得したとしても、エラー発生箇所の特定等の障害解析にあまり寄与しないと考えられる。よって、サーバ４が出力したファイルを取得しないことで、障害解析にあまり寄与しないと考えられるファイルの保持量を抑えることができる。
【０１６０】
以上の説明では、図１８に示す３番目および４番目の各レコードに対応する２つのファイルがエラー情報を含んでいない場合を示した。
【０１６１】
図１８に示す３番目および４番目の各レコードに対応する２つのファイルのうち、少なくともいずれか一方がエラー情報を含んでいる場合には、ステップＳ２５からステップＳ２１に移行し、ステップ２１以降の動作を行う。この場合、ステップＳ２１からステップＳ２２に移行し、順序制御手段５は、図１８に示す５番目のレコードを選択する。その後、ステップＳ２３，Ｓ２４，Ｓ２５に移行する。ステップＳ２５で、順序制御手段５が、図１８に示す５番目のレコードの「ファイルの種別」がログファイル＿ＮＯＥＲＲＯＲでないと判定したとする（ステップＳ２５のＮｏ）。すなわち、そのレコードに対応するファイルがエラー情報を含んでいたとする。この場合、再度、ステップＳ２１に移行する。ここで、順序制御手段５は、リストから、サーバ属性が「起点」または「呼び出し先」となっているレコードを全て選択したと判定する（ステップＳ２１のＹｅｓ）。この場合、表示手段６は、ステップＳ２７の表示処理を実行する。ステップＳ２７の表示処理は既に説明した通りであるので、ここでは説明を省略する。このように、図１７に示す例では、ステップＳ２６からステップＳ２７に移行して処理を終了する場合と、ステップＳ２１からステップＳ２７に移行して処理を終了する場合とがある。
【０１６２】
第２の実施形態によれば、第１の実施形態と同様の効果が得られる。さらに、第２の実施形態では、障害解析に用いるファイルを各サーバからファイル情報収集システム１に集めることができる。前述のように、いずれかのサーバでエラーが生じた場合、そのサーバから見て呼び出し元のサーバにエラーが波及していく。従って、エラー発生箇所の特定等の障害解析では、起点サーバ、および、呼び出し先側の各サーバが出力したファイルが重要であると言える。本実施形態では、起点サーバ、および、呼び出し先側の各サーバが出力したファイルをファイル情報収集システム１が取得することができる。
【０１６３】
また、あるサーバが出力した各ファイルにエラー情報が含まれていなければ、そのサーバの呼び出し先側の各サーバが出力したファイルにもエラー情報が含まれていないと考えられる。本実施形態では、そのような呼び出し先側の各サーバが出力したファイルを、ファイル情報収集システム１は取得しない。従って、障害解析にあまり寄与しないと考えられるファイルの保持量を抑えることができる。
【０１６４】
図１７に示すフローチャートにおいて、ステップＳ２２の後、ファイル情報収集システム１は、ステップＳ２２で選択したレコードの集合に属するレコード毎に、ステップＳ２３，Ｓ２４の処理を実行してもよい。例えば、ファイル情報収集システム１は、ステップＳ２２で選択したレコードの集合に属する１つのレコードを対象に、ステップＳ２３，Ｓ２４の処理を実行した後、次のレコードを対象に、ステップＳ２３，Ｓ２４の処理を実行してもよい。そして、ファイル情報収集システム１は、選択したレコードの集合に属する全てのレコードに関してステップＳ２３，Ｓ２４の処理を終えた後に、ステップＳ２５に移行してもよい。
【０１６５】
次に、第２の実施形態の変形例について説明する。
【０１６６】
上記の第２の実施形態では、ステップＳ２１において、順序制御手段５は、リストから、サーバ属性が「起点」または「呼び出し先」となっているレコードを全て選択したか否かを判定する場合を説明した。
【０１６７】
ステップＳ２１において、順序制御手段５は、リストから、サーバ属性が「起点」、「呼び出し先」または「呼び出し元」となっているレコードを全て選択したか否かを判定してもよい。このことは、サーバ属性が「起点」、「呼び出し先」、「呼び出し元」のいずれかになっているレコードに対応するファイルが取得対象であることを意味する。この場合、ステップＳ２６の後、ステップＳ２１に移行してもよい。ただし、順序制御手段５は、ステップＳ２６でリストの最後に移動されたレコードの集合は選択済みであるものとみなして、ステップＳ２１の判定を行う。
【０１６８】
また、ステップＳ２２で、順序制御手段５が、サーバ属性が「呼び出し元」となっているファイルの集合を選択した場合、順序制御手段５は、ステップＳ２５の判定処理は行わず、ステップＳ２４の後、ステップＳ２１に移行する。
【０１６９】
この場合、ファイル情報収集システム１は、起点サーバから見て呼び出し元側のサーバが出力したログファイルも取得することができる。
【０１７０】
また、ファイル情報収集システム１は、リストに含まれる全てのレコードに対応する各ファイルを収集してもよい。
【０１７１】
実施形態３．
第３の実施形態のファイル情報収集システムは、サーバの通信記録情報に基づいて、呼び出し関係情報を生成し、その呼び出し関係情報を記憶する。
【０１７２】
図２１は、本発明の第３の実施形態のファイル情報収集システムの構成例を示すブロック図である。図２１では、図１と同様に、サーバ１０ａ〜１０ｎも図示している。また、第１の実施形態のファイル情報収集システムの要素と同一の要素については、図１と同一の符号を付し、説明を省略する。
【０１７３】
各サーバ１０ａ〜１０ｎはそれぞれ、情報採取手段１１と、通信記録手段１３とを備える。情報採取手段１１は、第１の実施形態における情報採取手段１１と同様であり、説明を省略する。
【０１７４】
通信記録手段１３は、他のサーバとの通信の通信記録情報を生成し、保持する。通信記録情報は、プロセスＩＤと、自ポート番号と、宛先と、宛先ポート番号との組み合わせを含む。図２２は、サーバ１〜３がそれぞれ生成した通信記録情報の例を示す説明図である。
【０１７５】
プロセスＩＤは、通信記録手段１３を備えるサーバ上で動作するプロセスのＩＤである。例えば、サーバ１の通信記録手段１３が生成した通信記録情報に記述されているプロセスＩＤは、サーバ１上で動作するプロセスのプロセスＩＤである。
【０１７６】
自ポート番号は、通信記録手段１３を備えるサーバのポートのポート番号である。例えば、サーバ１の通信記録手段１３が生成した通信記録情報に記述されている自ポート番号は、サーバ１のポート番号である。
【０１７７】
宛先は、通信記録手段１３を備えるサーバと通信したサーバのサーバ名である。例えば、サーバ１の通信記録手段１３が生成した通信記録情報に記述されている宛先は、サーバ１と通信したサーバのサーバ名である。
【０１７８】
宛先ポート番号は、通信記録手段１３を備えるサーバと通信したサーバのポート番号である。より具体的には、宛先ポート番号は、通信記録手段１３を備えるサーバの通信相手となるサーバが通信時に用いたポートのポート番号である。
【０１７９】
図２２に示すサーバ１の通信記録情報７１の最後の行を例にして説明すると、この最後の行は、以下の事項を表している。サーバ１のプロセス“１０１”は、サーバ２と通信し、その時、プロセス“１０１”は、サーバ１のポート“３３８９４”を用い、サーバ２は、サーバ２のポート“８０８０”を用いた。
【０１８０】
通信記録手段１３は、他のサーバとの通信が新たに発生すると、プロセスＩＤと、自ポート番号と、宛先と、宛先ポート番号との組を、新たに通信記録情報に追加する。
【０１８１】
また、通信記録手段１３は、通信記録手段１３を備えるサーバのポートのうち、プロセスＩＤと、リッスン（listen）しているポートのポート番号との対も通信記録情報に含める。リッスンしているポートとは、他のサーバからの通信を受け付けられる状態となっているポートである。
【０１８２】
リッスンしているポートのポート番号は、対応する宛先および宛先ポート番号の内容が特定されていない自ポート番号として、通信記録情報内に記述される。例えば、サーバ１の通信記録情報７１では、対応する宛先および宛先ポート番号の内容が特定されていない自ポート番号として“８０”が記述されている。従って、サーバ１において、リッスンしているポートは、ポート“８０”である。
【０１８３】
通信記録手段１３は、対応する宛先および宛先ポート番号の内容が特定されていない自ポート番号として、リッスンしているポートのポート番号を通信記録情報内に記述する。
【０１８４】
サーバは、他のサーバに呼び出される場合、リッスンしているポートを用いる。例えば、サーバＡが、リッスンしているポートで、他のサーバＢと通信したとする。この場合、サーバＢが呼び出し元となり、サーバＡを呼び出し、サーバＡ，Ｂが通信したことになる。この場合、サーバＡはサーバＢから見て呼び出し先サーバである。
【０１８５】
また、サーバは、他のサーバを呼び出す場合、リッスンしているポート以外のポートを用いる。例えば、サーバＡが、リッスンしているポート以外のポートでサーバＢと通信したとする。この場合、サーバＡが呼び出し元となり、サーバＢを呼び出し、サーバＡ，Ｂが通信したことになる。この場合、サーバＡはサーバＢから見て呼び出し元サーバである。
【０１８６】
通信記録手段１３は、ファイル情報収集システム１からの要求に応じて、保持している通信記録情報をファイル情報収集システム１に送信する。
【０１８７】
以下の説明では、第３の実施形態のファイル情報収集システム１が、第１の実施形態のファイル情報収集システム１が備える呼び出し関係情報記憶手段４（図１参照）に代えて、呼び出し関係情報生成手段８（図２１参照）を備える場合を例にして説明する。
【０１８８】
ただし、第３の実施形態のファイル情報収集システム１は、第２の実施形態のファイル情報収集システム１が備える呼び出し関係情報記憶手段４（図１６参照）に代えて、呼び出し関係情報生成手段８を備える構成であってもよい。すなわち、第３の実施形態は、第２の実施形態に適用されてもよい。
【０１８９】
呼び出し関係情報生成手段８は、各サーバから順次、通信記録情報を取得し、各サーバの通信記録情報に基づいて、各サーバで動作しているプロセス間の呼び出し関係を特定し、呼び出し関係情報を生成する。呼び出し関係情報生成手段８は、生成した呼び出し関係情報を記憶する。
【０１９０】
すなわち、第１および第２の実施形態では、呼び出し関係情報記憶手段４（図１、図１６参照）が予め管理者等によって準備された呼び出し関係情報を記憶する構成であるのに対し、本実施形態では、呼び出し関係情報生成手段８が呼び出し関係情報を生成し、記憶する。
【０１９１】
以下の説明では、起点情報が入力されたときに、呼び出し関係情報生成手段８が呼び出し関係情報を生成し、記憶し、その後、ステップＳ１（図５参照）に移行する場合を例にして説明する。ただし、呼び出し関係情報生成手段８が呼び出し関係情報を生成するタイミングは本例に限定されず、呼び出し関係情報生成手段８は、例えば、定期的に呼び出し関係情報を生成してもよい。
【０１９２】
情報取得手段２、ファイル特定手段３、順序制御手段５、表示手段６および呼び出し関係情報生成手段８は、例えば、ディスプレイ装置を有するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵは、コンピュータのプログラム記憶装置（図示略）等のプログラム記録媒体からファイル情報収集プログラムを読み込み、そのプログラムに従って、情報取得手段２、ファイル特定手段３、順序制御手段５、表示手段６および呼び出し関係情報生成手段８として動作すればよい。また、各手段がそれぞれ別々のハードウェアによって実現されていてもよい。
【０１９３】
以下、呼び出し関係情報生成手段８の処理経過を説明する。図２３は、起点サーバから見て呼び出し先側のプロセス間の呼び出し関係を特定する処理の例を示すフローチャートである。
【０１９４】
起点情報が入力されると、呼び出し関係情報生成手段８は、サーバから通信記録情報を取得する（ステップＳ３１）。起点情報入力後、最初にステップＳ３１に移行した場合、呼び出し関係情報生成手段８は、起点情報に含まれているサーバ名に対応するサーバから、通信記録情報を取得する。また、ステップＳ３１〜Ｓ３５はループ処理になっていて、ステップＳ３５からステップＳ３１に移行する場合もある。この場合、呼び出し関係情報生成手段８は、直近のステップＳ３４で特定したサーバから、通信記録情報を取得する。
【０１９５】
呼び出し関係情報生成手段８は、サーバが備えている通信記録手段１３に対して通信記録情報を要求することによって、通信記録情報を取得すればよい。通信記録手段１３は、その要求に応じて、保持している通信記録情報を呼び出し関係情報生成手段８に送信すればよい。
【０１９６】
ここでは、起点情報内に「サーバ２」というサーバ名が含まれているとする。この場合、最初にステップＳ３１に移行したとき、呼び出し関係情報生成手段８は、サーバ２から通信記録情報を取得する。ここでは、図２２に例示する通信記録情報７２を取得したとする。
【０１９７】
ステップＳ３１の次に、呼び出し関係情報生成手段８は、直近のステップＳ３１で取得した通信記録情報と、前々回のステップＳ３１で取得した通信記録情報とに基づいて、プロセスの呼び出し関係を特定する（ステップＳ３２）。「前々回のステップＳ３１」とは、直近のステップＳ３１の１回前のステップＳ３１である。
【０１９８】
ただし、最初にステップＳ３２に移行した場合、直近のステップＳ３１が最初のステップＳ３１であり、呼び出し関係情報生成手段８は、それ以前に通信記録情報を取得していない。この場合、呼び出し関係情報生成手段８は、ステップＳ３２でプロセスの呼び出し関係を特定せずに、ステップＳ３３に移行してよい。ここでは、呼び出し関係情報生成手段８は、最初のステップＳ３１で通信記録情報７２を取得しているだけであるので、ステップＳ３３に移行する。
【０１９９】
ステップＳ３３では、呼び出し関係情報生成手段８は、直近のステップＳ３１で取得した通信記録情報を参照し、サーバ（ステップＳ３１で通信記録情報を提供したサーバ）のポートのうち、リッスンしているポートを特定する。通信記録情報７２（図２２参照）では、対応する宛先および宛先ポート番号の内容が特定されていない自ポート番号は“８０８０”である。従って、呼び出し関係情報生成手段８は、サーバ２において、リッスンしているポートはポート“８０８０”であると特定する。
【０２００】
次に、呼び出し関係情報生成手段８は、直近のステップＳ３１で取得した通信記録情報を参照し、リッスンしているポート以外のポートで通信した通信相手のサーバを特定する（ステップＳ３４）。通信記録情報７２では、リッスンしているポート以外のサーバ２のポートのポート番号として“４８９４０”が記述されている。従って、呼び出し関係情報生成手段８は、自ポート番号“４８９４０”に対応するサーバ３（図２２参照）を特定する。
【０２０１】
なお、リッスンしているポート以外のポートのポート番号が自ポート番号として記述されていない場合、呼び出し関係情報生成手段８は、ステップＳ３４でサーバを特定できない。
【０２０２】
また、運用されているシステムに属する各サーバ（図２２に示す例では、サーバ１、サーバ２およびサーバ３）が、そのシステムに属さないサーバ（例えば、ＤＮＳ（Domain Name System）サーバ等）を呼び出している場合もある。システムに属さないサーバのサーバ名が、リッスンしているポート以外のポートのポート番号に対応付けられている場合、呼び出し関係情報生成手段８は、サーバを特定できなかったと判定する。呼び出し関係情報生成手段８は、例えば、運用されているシステムに属する各サーバのサーバ名を予め記憶しておき、通信履歴情報から得られたサーバ名と比較することによって、得られたサーバ名を有するサーバがシステムに属するか否かを判定すればよい。
【０２０３】
ステップＳ３４でサーバを特定できた場合（ステップＳ３５のＹｅｓ）、呼び出し関係情報生成手段８は、ステップＳ３１に移行する。
【０２０４】
次のステップＳ３１において、呼び出し関係情報生成手段８は、直近のステップＳ３４で特定したサーバ３から通信記録情報を取得する。ここでは、呼び出し関係情報生成手段８が、図２２に例示する通信記録情報７３をサーバ３から取得したものとする。
【０２０５】
続いて、呼び出し関係情報生成手段８は、直近のステップＳ３１で取得した通信記録情報と、前々回のステップＳ３１で取得した通信記録情報とに基づいて、プロセスの呼び出し関係を特定する（ステップＳ３２）。
【０２０６】
ここでは、直近のステップＳ３１で取得した通信記録情報は、通信記録情報７３であり、前々回のステップＳ３１で取得した通信記録情報は、通信記録情報７２である。また、ステップＳ３２の説明において、前々回のステップＳ３１で取得した通信記録情報を第１通信記録情報と記し、直近のステップＳ３１で取得した通信記録情報を第２通信記録情報と記す。
【０２０７】
呼び出し関係情報生成手段８は、第１通信記録情報（通信記録情報７２）に基づいて、リッスンしているポート以外のポート番号を特定し、さらに、そのポート番号に対応するプロセスＩＤおよび宛先ポート番号を特定する。ステップＳ３２の説明において、このプロセスＩＤを有するプロセスを第１プロセスと記す。また、呼び出し関係情報生成手段８は、第１プロセスが動作するサーバとして、第１通信記録情報を提供したサーバを特定する。本例では、呼び出し関係情報生成手段８は、通信記録情報７２に基づいて、リッスンしているポート以外のポート番号“４８９４０”を特定し、そのポート番号に対応するプロセスＩＤ“２０１”を特定する。また、呼び出し関係情報生成手段８は、第１プロセスが動作するサーバとして、「サーバ２」を特定する。また、本例では、呼び出し関係情報生成手段８は、“４８９４０”に対応する宛先ポート番号“３３０６”を特定する。
【０２０８】
さらに、呼び出し関係情報生成手段８は、第２通信記録情報（通信記録情報７３）に基づいて、第１通信記録情報から特定した宛先ポート番号と同一の自ポート番号に対応するプロセスＩＤを特定する。ステップＳ３２の説明において、このプロセスＩＤを有するプロセスを第２プロセスと記す。また、呼び出し関係情報生成手段８は、第２プロセスが動作するサーバとして、第２通信記録情報を提供したサーバを特定する。本例では、呼び出し関係情報生成手段８は、通信記録情報７３を参照して、第１通信記録情報から特定した宛先ポート番号“３３０６”と同一の自ポート番号に対応するプロセスＩＤ“３０１”を特定する（図２２参照）。また、呼び出し関係情報生成手段８は、第２プロセスが動作するサーバとして、「サーバ３」を特定する。
【０２０９】
呼び出し関係情報生成手段８は、第１プロセスが第２プロセスを呼び出しているという関係と、第１プロセスが動作しているサーバと、２プロセスとを示す呼び出し関係情報を生成する。図２４は、ステップＳ３２で生成した呼び出し関係情報の例を示す模式図である。なお、呼び出し関係情報生成手段８は、前回のステップＳ３２までに生成した呼び出し関係情報が存在していれば、新たに生成した呼び出し関係情報を、その呼び出し関係情報に追加する。
【０２１０】
ステップＳ３２の後、呼び出し関係情報生成手段８は、直近のステップＳ３１で取得した通信記録情報を参照し、サーバ（ステップＳ３１で通信記録情報を提供したサーバ）のポートのうち、リッスンしているポートを特定する（ステップＳ３３）。ここでは、呼び出し関係情報生成手段８は、通信記録情報７３に基づいて、リッスンしているポートは、ポート“３３０６”であると特定する。
【０２１１】
次に、呼び出し関係情報生成手段８は、直近のステップＳ３１で取得した通信記録情報を参照し、リッスンしているポート以外のポートで通信した通信相手のサーバを特定する（ステップＳ３４）。本例では、通信記録情報７３において、リッスンしているポートのポート番号“３３０６”以外のポート番号は、自ポート番号として記述されていない。従って、呼び出し関係情報生成手段８は、ステップＳ３４でサーバを特定できない。
【０２１２】
この場合（ステップＳ３５のＮｏ）、起点サーバから見て呼び出し先側のプロセス間の呼び出し関係を特定する処理を終了する。この結果、図２４に模式的に示す呼び出し関係情報が得られたことになる。
【０２１３】
なお、上記のステップＳ３４でサーバを特定できた場合には、サーバ３のプロセスが呼び出している他のサーバのプロセスが存在していることになる。この場合（ステップＳ３５のＹｅｓ）、呼び出し関係情報生成手段８は、さらにステップＳ３１以降の処理を行えばよい。
【０２１４】
次に、起点サーバから見て呼び出し元側のプロセス間の呼び出し関係を特定する処理について説明する。図２５は、起点サーバから見て呼び出し元側のプロセス間の呼び出し関係を特定する処理の例を示すフローチャートである。なお、呼び出し関係情報生成手段８は、図２３に示す処理の完了後に、以下に示す処理を行えばよい。
【０２１５】
呼び出し関係情報生成手段８は、サーバから通信記録情報を取得する（ステップＳ４１）。起点情報入力後、最初にステップＳ４１に移行した場合、呼び出し関係情報生成手段８は、起点情報に含まれているサーバ名に対応するサーバから、通信記録情報を取得する。ただし、呼び出し関係情報生成手段８は、最初にステップＳ３１（図２３参照）に移行したときに、起点情報に含まれているサーバ名に対応するサーバから、通信記録情報を取得している。従って、最初にステップＳ４１に移行した場合、呼び出し関係情報生成手段８は、その通信記録情報を、最初のステップＳ４１で取得した通信記録情報とみなしてよい。ここでは、呼び出し関係情報生成手段８は、通信記録情報７２を、最初のステップＳ４１でサーバ２から取得した通信記録情報とみなす。
【０２１６】
また、ステップＳ４１〜Ｓ４５はループ処理になっていて、ステップＳ４５からステップＳ４１に移行する場合もある。この場合、呼び出し関係情報生成手段８は、直近のステップＳ４４で特定したサーバから、通信記録情報を取得する。
【０２１７】
ステップＳ３１と同様に、呼び出し関係情報生成手段８は、サーバが備えている通信記録手段１３に対して通信記録情報を要求することによって、通信記録情報を取得すればよい。通信記録手段１３は、その要求に応じて、保持している通信記録情報を呼び出し関係情報生成手段８に送信すればよい。
【０２１８】
ステップＳ４１の次に、呼び出し関係情報生成手段８は、直近のステップＳ４１で取得した通信記録情報と、前々回のステップＳ４１で取得した通信記録情報に基づいて、プロセスの呼び出し関係を特定する（ステップＳ４２）。「前々回のステップＳ４１］とは、直近のステップＳ４１の１回前のステップＳ４１である。
【０２１９】
ただし、最初にステップＳ４２に移行した場合、直近のステップＳ４１が最初のステップＳ４１であり、呼び出し関係情報生成手段８は、それ以前に通信記録情報を取得していない。この場合、呼び出し関係情報生成手段８は、ステップＳ４２でプロセスの呼び出し関係を特定せずに、ステップＳ４３に移行してよい。ここでは、呼び出し関係情報生成手段８は、最初のステップＳ４１で通信記録情報７２を取得しているだけであるので、ステップＳ４３に移行する。
【０２２０】
ステップＳ４３では、呼び出し関係情報生成手段８は、直近のステップＳ４１で取得した通信情報を参照し、サーバ（ステップＳ４１で通信記録情報を提供したサーバ）のポートのうち、リッスンしているポートを特定する（ステップＳ４３）。ステップＳ４３は、前述のステップＳ３３と同様の処理である。ここでは、通信記録情報７２に基づいて、呼び出し関係情報生成手段８は、サーバ２において、リッスンしているポートはポート“８０８０”であると特定する。
【０２２１】
次に、呼び出し関係情報生成手段８は、直近のステップＳ４１で取得した通信記録情報を参照し、リッスンしているポートで通信した通信相手のサーバを特定する（ステップＳ４４）。ここでは、呼び出し関係情報生成手段８は、通信記録情報７２に基づいて、リッスンしているポートのポート番号“８０８０”に対応するサーバ１を特定する（図２２参照）。
【０２２２】
なお、リッスンしているポートのポート番号“８０８０”に対応する宛先および宛先ポート情報が記述されていない場合（例えば、図２２に例示する通信記録情報７２の最後の行が存在しない場合）、呼び出し関係情報生成手段８は、ステップＳ４４でサーバを特定できない。
【０２２３】
また、リッスンしているポートのポート番号に対応するサーバが、運用されているシステムに属さないサーバ（例えば、ＤＮＳサーバ等）である場合、呼び出し関係情報生成手段８は、サーバを特定できなかったと判定する。呼び出し関係情報生成手段８は、例えば、運用されているシステムに属する各サーバのサーバ名を予め記憶しておき、通信記録情報から得られたサーバ名と比較することによって、得られたサーバ名を有するサーバがシステムに属するか否かを判定すればよい。
【０２２４】
ステップＳ４４でサーバを特定できた場合（ステップＳ４５のＹｅｓ）、呼び出し関係情報生成手段８は、ステップＳ４１に移行する。
【０２２５】
次のステップＳ４１において、呼び出し関係情報生成手段８は、直近のステップＳ４４で特定したサーバ１から通信記録情報を取得する。ここでは、呼び出し関係情報生成手段８が、図２２に例示する通信記録情報７１をサーバ１から取得したものとする。
【０２２６】
続いて、呼び出し関係情報生成手段８は、直近のステップＳ４１で取得した通信記録情報と、前々回のステップＳ４１で取得した通信記録情報とに基づいて、プロセスの呼び出し関係を特定する（ステップＳ４２）。
【０２２７】
ここでは、直近のステップＳ４１で取得した通信記録情報は、通信記録情報７１であり、前々回のステップＳ４１で取得した通信記録情報は、通信記録情報７２である。また、ステップＳ４２の説明において、前々回のステップＳ４１で取得した通信記録情報を第１通信記録情報と記し、直近のステップＳ４１で取得した通信記録情報を第２通信記録情報と記す。
【０２２８】
呼び出し関係情報生成手段８は、第１通信記録情報（通信記録情報７２）に基づいて、リッスンしているポートのポート番号を特定し、さらに、そのポート番号に対応するプロセスＩＤおよび宛先ポート番号を特定する。ステップＳ４２の説明において、このプロセスＩＤを有するプロセスを第１プロセスと記す。また、呼び出し関係情報生成手段８は、第１プロセスが動作するサーバとして、第１通信記録情報を提供したサーバを特定する。本例では、呼び出し関係情報生成手段８は、通信記録情報７２に基づいて、リッスンしているポートのポート番号“８０８０”を特定し、そのポート番号に対応するプロセスＩＤ“２０１”を特定する。また、呼び出し関係情報生成手段８は、第１プロセスが動作するサーバとして、「サーバ２」を特定する。また、本例では、呼び出し関係情報生成手段８は、“８０８０”に対応する宛先ポート番号“３３８９４”を特定する。
【０２２９】
さらに、呼び出し関係情報生成手段８は、第２通信記録情報（通信記録情報７１）に基づいて、第１通信記録情報から特定した宛先ポート番号と同一の自ポート番号に対応するプロセスＩＤを特定する。ステップＳ４２の説明において、このプロセスＩＤを有するプロセスを第２プロセスと記す。また、呼び出し関係情報生成手段８は、第２プロセスが動作するサーバとして、第２通信記録情報を提供したサーバを特定する。本例では、呼び出し関係情報生成手段８は、通信記録情報７１を参照して、第１通信記録情報から特定した宛先ポート番号“３３８９４” と同一の自ポート番号に対応するプロセスＩＤ“１０１”を特定する（図２２参照）。また、呼び出し関係情報生成手段８は、第２プロセスが動作するサーバとして、「サーバ１」を特定する。
【０２３０】
呼び出し関係情報生成手段８は、第２プロセスが第１プロセスを呼び出しているという関係と、第１プロセスが動作しているサーバと、２プロセスとを示す呼び出し関係情報を生成する。図２６は、ステップＳ４２で生成した呼び出し関係情報の例を示す模式図である。なお、呼び出し関係情報生成手段８は、前回のステップＳ４２までに生成した呼び出し関係情報が存在していれば、新たに生成した呼び出し関係情報を、その呼び出し関係情報に追加する。
【０２３１】
ステップＳ４２の後、呼び出し関係情報生成手段８は、直近のステップＳ４１で取得した通信記録情報を参照し、サーバ（ステップＳ４１で通信記録情報を提供したサーバ）のポートのうち、リッスンしているポートを特定する（ステップＳ４３）。ここでは、呼び出し関係情報生成手段８は、通信記録情報７１に基づいて、リッスンしているポートは、ポート“８０”であると特定する。
【０２３２】
次に、呼び出し関係情報生成手段８は、直近のステップＳ４１で取得した通信記録情報を参照し、リッスンしているポートで通信した通信相手のサーバを特定する（ステップＳ４４）。本例では、通信記録情報７１において、リッスンしているポートのポート番号“８０”に対応する宛先および宛先ポート情報が記述されていない。従って、呼び出し関係情報生成手段８は、ステップＳ４４でサーバを特定できない。
【０２３３】
この場合（ステップＳ４５のＮｏ）、起点サーバから見て呼び出し元側のプロセス間の呼び出し関係を特定する処理を終了する。この結果、図２６に模式的に示す呼び出し関係情報が得られたことになる。
【０２３４】
なお、上記のステップＳ４４でサーバを特定できた場合には、サーバ１のプロセスが他のサーバのプロセスによって呼び出されていることになる。この場合（ステップＳ４５のＹｅｓ）、呼び出し関係情報生成手段８は、さらにステップＳ４１以降の処理を行えばよい。
【０２３５】
起点サーバから見て呼び出し元側のプロセス間の呼び出し関係を特定する処理（図２３参照）、および、起点サーバから見て呼び出し元側のプロセス間の呼び出し関係を特定する処理（図２５参照）が終了した後、呼び出し関係情報生成手段８は、その２つの処理で得られた呼び出し関係情報をまとめる。この結果、図２７に模式的に示す呼び出し関係情報が得られる。呼び出し関係情報生成手段８は、この結果得られた呼び出し関係情報を記憶する。
【０２３６】
この後、ファイル情報収集システム１は、ステップＳ１以降の処理を実行すればよい。
【０２３７】
本実施形態によれば、ファイル情報収集システム１が呼び出し関係情報を生成するので、管理者は予め呼び出し関係情報を定めておく必要がない。よって、管理者の負担を軽減することができる。
【０２３８】
次に、本発明のファイル情報収集システムの概要を説明する。図２８は、本発明のファイル情報収集システムの概要を示すブロック図である。本発明のファイル情報収集システムは、情報取得手段８１と、リスト作成手段８２と、順序制御手段８３とを備える。
【０２３９】
情報取得手段８１（例えば、情報取得手段２）は、プロセスが特定された場合に、特定されたプロセスを包含したプロセスの親子関係を示すツリー構造によって表される各プロセスのプロセスＩＤと、各プロセスが開いている各ファイルのファイル名およびファイル属性とを、特定されたプロセスが動作しているサーバから取得する。
【０２４０】
リスト作成手段８２（例えば、ファイル特定手段３）は、ファイル属性がライト可能またはリード／ライト可能であって、ファイル名が所定の条件を満たしているファイルを選択し、選択したファイルを対象に、ファイルを出力したサーバの識別情報と、ファイル名と、ファイルを出力したサーバのサーバ属性とを含むレコードのリストを作成する。
【０２４１】
情報取得手段８１は、特定されたプロセスが呼び出しているプロセスを新たに特定し、特定されたプロセスが呼び出しているプロセスが存在しなくなった後は、最初に特定されたプロセスの呼び出し元となっているプロセスを新たに特定し、順次、特定されたプロセスの呼び出し元となっているプロセスを新たに特定する。
【０２４２】
リスト作成手段８２は、新たにプロセスが特定されたことによってリストを作成した場合、当該リストを作成済みのリストの最後に追加する。
【０２４３】
順序制御手段８３（順序制御手段５）は、リストの先頭からレコードを順番に１つずつ選択し、選択したレコードに対応するファイルの更新時刻の情報を、当該ファイルを出力したサーバから取得する。順序制御手段８３は、当該更新時刻がユーザによって指定された基準時刻より前の時刻である場合、選択したレコードのサーバ属性を所定の内容に変更し、当該レコードをリストの最後に移動する。
【０２４４】
サーバ属性は、最初に特定されたプロセスが動作しているサーバであるか、最初に特定されたプロセスが動作しているサーバから見て呼び出し先サーバであるか、最初に特定されたプロセスが動作しているサーバから見て呼び出し元サーバであるか、または、上記の所定の内容を示す属性である。
【０２４５】
そのような構成により、運用中のシステムに属するいずれかのサーバでアラートが生じた場合等において、障害解析のための適切なログファイルを判定し、そのファイル名のリストを生成することができる。
【０２４６】
上記の実施形態は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
【０２４７】
（付記１）
プロセスが特定された場合に、特定されたプロセスを包含したプロセスの親子関係を示すツリー構造によって表される各プロセスのプロセスＩＤと、前記各プロセスが開いている各ファイルのファイル名およびファイル属性とを、特定されたプロセスが動作しているサーバから取得する情報取得手段と、
ファイル属性がライト可能またはリード／ライト可能であって、ファイル名が所定の条件を満たしているファイルを選択し、選択したファイルを対象に、ファイルを出力したサーバの識別情報と、ファイル名と、ファイルを出力したサーバのサーバ属性とを含むレコードのリストを作成するリスト作成手段とを備え、
前記情報取得手段は、特定されたプロセスが呼び出しているプロセスを新たに特定し、特定されたプロセスが呼び出しているプロセスが存在しなくなった後は、最初に特定されたプロセスの呼び出し元となっているプロセスを新たに特定し、順次、特定されたプロセスの呼び出し元となっているプロセスを新たに特定し、
前記リスト作成手段は、新たにプロセスが特定されたことによってリストを作成した場合、当該リストを作成済みのリストの最後に追加し、
前記リストの先頭からレコードを順番に１つずつ選択し、選択したレコードに対応するファイルの更新時刻の情報を、当該ファイルを出力したサーバから取得し、当該更新時刻がユーザによって指定された基準時刻より前の時刻である場合、選択したレコードのサーバ属性を所定の内容に変更し、当該レコードを前記リストの最後に移動する順序制御手段とを備え、
前記サーバ属性は、最初に特定されたプロセスが動作しているサーバであるか、最初に特定されたプロセスが動作しているサーバから見て呼び出し先サーバであるか、最初に特定されたプロセスが動作しているサーバから見て呼び出し元サーバであるか、または、前記所定の内容を示す属性である
ことを特徴とするファイル情報収集システム。
【０２４８】
（付記２）
前記順序制御手段は、選択したファイルの更新時刻の情報およびサイズの情報を、当該ファイルを出力したサーバから取得し、当該更新時刻がユーザによって指定された基準時刻より前の時刻である場合、または、当該サイズが０である場合、当該ファイルのサーバ属性を所定の内容に変更し、当該ファイルのレコードをリストの最後に移動する
付記１に記載のファイル情報収集システム。
【０２４９】
（付記３）
リストに含まれているファイル名を、サーバ別に表示する表示手段を備え、
前記表示手段は、前記サーバ属性に応じて、ファイル名の表示態様を変える
付記１または付記２に記載のファイル情報収集システム。
【０２５０】
（付記４）
前記順序制御手段は、リストの先頭側から、サーバの識別情報が共通であって連続する未選択のレコードの集合を順次、選択し、選択したレコードの集合に対応する各ファイルを、当該各ファイルを出力したサーバから取得し、
前記順序制御手段が前記サーバから取得したファイル毎に、エラーが発生したことを示す情報を含んでいるか否かを判定し、前記情報を含んでいないファイルの種別を特定の種別に定め、
前記順序制御手段は、１つサーバから取得した各ファイルが全て、前記情報を含んでいない場合、直近に選択したレコードの集合の後に続くレコードの集合であって、サーバ属性が呼び出し先サーバであるレコードの集合を、リストの最後に移動するとともに、前記レコードの集合に対応する各ファイルの種別を前記特定の種別に定める
付記１または付記２に記載のファイル情報収集システム。
【０２５１】
（付記５）
前記順序制御手段は、選択したレコードの集合に対応する各ファイルが全て、エラーが発生したことを示す情報を含んでいない場合、レコードの集合の選択を中止する
付記４に記載のファイル情報収集システム。
【０２５２】
（付記６）
リストに含まれているファイル名を、サーバ別に表示する表示手段を備え、
前記表示手段は、前記サーバ属性およびファイルの種別に応じて、ファイル名の表示態様を変える
付記４または付記５に記載のファイル情報収集システム。
【０２５３】
（付記７）
各サーバから通信記録を示す通信記録情報を取得し、前記各サーバの通信記録情報に基づいて、前記各サーバで動作しているプロセス間の呼び出し関係を特定する呼び出し関係特定手段を備える
付記１から付記６のうちのいずれか１項に記載のファイル情報収集システム。
【０２５４】
（付記８）
プロセスが特定された場合に、特定されたプロセスを包含したプロセスの親子関係を示すツリー構造によって表される各プロセスのプロセスＩＤと、前記各プロセスが開いている各ファイルのファイル名およびファイル属性とを、特定されたプロセスが動作しているサーバから取得し、
ファイル属性がライト可能またはリード／ライト可能であって、ファイル名が所定の条件を満たしているファイルを選択し、選択したファイルを対象に、ファイルを出力したサーバの識別情報と、ファイル名と、ファイルを出力したサーバのサーバ属性とを含むレコードのリストを作成し、
特定されたプロセスが呼び出しているプロセスを新たに特定し、特定されたプロセスが呼び出しているプロセスが存在しなくなった後は、最初に特定されたプロセスの呼び出し元となっているプロセスを新たに特定し、順次、特定されたプロセスの呼び出し元となっているプロセスを新たに特定し、
新たにプロセスが特定されたことによってリストを作成した場合、当該リストを作成済みのリストの最後に追加し、
前記リストの先頭からレコードを順番に１つずつ選択し、選択したレコードに対応するファイルの更新時刻の情報を、当該ファイルを出力したサーバから取得し、当該更新時刻がユーザによって指定された基準時刻より前の時刻である場合、選択したレコードのサーバ属性を所定の内容に変更し、当該レコードを前記リストの最後に移動し、
前記サーバ属性は、最初に特定されたプロセスが動作しているサーバであるか、最初に特定されたプロセスが動作しているサーバから見て呼び出し先サーバであるか、最初に特定されたプロセスが動作しているサーバから見て呼び出し元サーバであるか、または、前記所定の内容を示す属性である
ことを特徴とするファイル情報収集方法。
【０２５５】
（付記９）
コンピュータに、
プロセスが特定された場合に、特定されたプロセスを包含したプロセスの親子関係を示すツリー構造によって表される各プロセスのプロセスＩＤと、前記各プロセスが開いている各ファイルのファイル名およびファイル属性とを、特定されたプロセスが動作しているサーバから取得する情報取得処理、および、
ファイル属性がライト可能またはリード／ライト可能であって、ファイル名が所定の条件を満たしているファイルを選択し、選択したファイルを対象に、ファイルを出力したサーバの識別情報と、ファイル名と、ファイルを出力したサーバのサーバ属性とを含むレコードのリストを作成するリスト作成処理を実行させ、
前記情報取得処理で、特定されたプロセスが呼び出しているプロセスを新たに特定させ、特定されたプロセスが呼び出しているプロセスが存在しなくなった後は、最初に特定されたプロセスの呼び出し元となっているプロセスを新たに特定させ、順次、特定されたプロセスの呼び出し元となっているプロセスを新たに特定させ、
前記リスト作成処理で、新たにプロセスが特定されたことによってリストを作成した場合、当該リストを作成済みのリストの最後に追加させ、
前記リストの先頭からレコードを順番に１つずつ選択し、選択したレコードに対応するファイルの更新時刻の情報を、当該ファイルを出力したサーバから取得し、当該更新時刻がユーザによって指定された基準時刻より前の時刻である場合、選択したレコードのサーバ属性を所定の内容に変更し、当該レコードを前記リストの最後に移動する順序制御処理を実行させ、
前記サーバ属性は、最初に特定されたプロセスが動作しているサーバであるか、最初に特定されたプロセスが動作しているサーバから見て呼び出し先サーバであるか、最初に特定されたプロセスが動作しているサーバから見て呼び出し元サーバであるか、または、前記所定の内容を示す属性である
ことを特徴とするファイル情報収集プログラム。
【０２５６】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０２５７】
この出願は２０１５年１２月４日に出願された日本出願特願２０１５−２３７６７５を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０２５８】
本発明は、サーバからファイルの情報を収集してログファイルのリストを生成するシステムに好適に適用される。
【符号の説明】
【０２５９】
１  ファイル情報収集システム
２  情報取得手段
３  ファイル特定手段
４  呼び出し関係情報記憶手段
５  順序制御手段
６  表示手段
【図１】
2017094845.tif 000003
【図２】
2017094845.tif 000004
【図３】
2017094845.tif 000005
【図４】
2017094845.tif 000006
【図５】
2017094845.tif 000007
【図６】
2017094845.tif 000008
【図７】
2017094845.tif 000009
【図８】
2017094845.tif 000010
【図９】
2017094845.tif 000011
【図１０】
2017094845.tif 000012
【図１１】
2017094845.tif 000013
【図１２】
2017094845.tif 000014
【図１３】
2017094845.tif 000015
【図１４】
2017094845.tif 000016
【図１５】
2017094845.tif 000017
【図１６】
2017094845.tif 000018
【図１７】
2017094845.tif 000019
【図１８】
2017094845.tif 000020
【図１９】
2017094845.tif 000021
【図２０】
2017094845.tif 000022
【図２１】
2017094845.tif 000023
【図２２】
2017094845.tif 000024
【図２３】
2017094845.tif 000025
【図２４】
2017094845.tif 000026
【図２５】
2017094845.tif 000027
【図２６】
2017094845.tif 000028
【図２７】
2017094845.tif 000029
【図２８】
2017094845.tif 000030
【手続補正書】
【提出日】平成30年5月21日(2018.5.21)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
あるプロセスが特定された場合に、前記特定されたプロセスが呼び出しているプロセスと、前記特定されたプロセスの呼び出し元となっているプロセスとを包含する、前記特定されたプロセスと親子関係にある複数のプロセスにおいて、各プロセスのプロセスＩＤと、前記各プロセスが使用する各ファイルのファイル名およびファイル属性とを、前記特定されたプロセスが動作しているサーバから取得し、
前記ファイル属性がライト可能またはリード／ライト可能であって、前記ファイル名が所定の条件を満たしているファイルを選択し、当該選択されたファイルを対象に、当該ファイルを出力したサーバの識別情報と、当該ファイル名と、当該ファイルを出力したサーバのサーバ属性とを含むレコードのリストを作成し、新たなプロセスを特定することによってリストを作成した場合、当該リストを作成済みのリストの最後に追加し、
前記リストの先頭から前記レコードを１つずつ順番に選択し、当該選択したレコードに対応するファイルの更新時刻の情報を、当該ファイルを出力したサーバから取得し、当該更新時刻がユーザによって指定された基準時刻より前である場合、前記選択したレコードのサーバ属性を所定の情報に変更し、当該レコードを前記リストの最後に移動させる
機能をコンピュータに実現させるためのファイル情報収集プログラム。
【国際調査報告】
2017094845.tif 000031
2017094845.tif 000032