(57)【要約】【課題】要求に応じてシステム内で実行される一連の処理に関連するログを収集する際に、収集されるログの量を抑制すること。【解決手段】サーバ１０１−１は、クライアント装置１０２からリクエスト１１０を受信し、リクエスト１１０に応じた処理を実行する。また、サーバ１０１−１は、実行した処理から派生した処理についてのサーバ１０１−２への処理要求１２０と、実行した処理に関するログを含む第１のログ情報１３０と、を生成してサーバ１０１−２に送信する。サーバ１０１−２は、サーバ１０１−１から処理要求１２０と第１のログ情報１３０とを受信し、処理要求１２０に応じた処理を実行する。また、サーバ１０１−２は、実行した処理に関するログを含む第２のログ情報１４０を生成する。そして、サーバ１０１−２は、特定の記憶領域１５０への第１のログ情報１３０と第２のログ情報１４０との書き込みを制御する。【選択図】図１
2013045256.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置からのリクエストに応じて一連の処理を実行可能な複数のサーバ装置を含むシステム内のサーバ装置であって、
前記一連の処理のうちの第１の処理の実行に応じて出力される第１のログ情報を含む、前記一連の処理のうちの第２の処理の処理要求を、前記システム内の他のサーバ装置から受信した場合に、前記第２の処理を実行するとともに、前記第２の処理の実行内容に関する第２のログ情報を出力する実行部と、
前記第１のログ情報および前記第２のログ情報の、前記クライアント装置に対応する特定の記憶領域への書き込みを制御する書込制御部と、
を備えることを特徴とするサーバ装置。
【請求項２】
前記書込制御部は、
前記クライアント装置に前記第１および第２のログ情報を送信することにより、前記クライアント装置内の前記特定の記憶領域に前記第１および第２のログ情報を書き込むよう前記クライアント装置に指示することを特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記複数のサーバ装置の中から、前記特定の記憶領域を有するサーバ装置を特定する特定部を備え、
前記書込制御部は、
前記特定部によって特定された前記サーバ装置に前記第１および第２のログ情報を送信することにより、前記特定の記憶領域に前記第１および第２のログ情報を書き込むよう前記サーバ装置に指示することを特徴とする請求項１または２に記載のサーバ装置。
【請求項４】
前記書込制御部は、
前記特定部によって自サーバ装置が特定された場合、前記特定の記憶領域に前記第１および第２のログ情報を書き込むことを特徴とする請求項３に記載のサーバ装置。
【請求項５】
前記第２の処理の処理要求が受信された場合、前記一連の処理のうちの前記第２の処理が最後に実行される処理であるか否かを判定する判定部を備え、
前記書込制御部は、
前記判定部によって前記第２の処理が最後に実行される処理であると判定された場合、前記第１および第２のログ情報の前記特定の記憶領域への書き込みを制御することを特徴とする請求項１〜４のいずれか一つに記載のサーバ装置。
【請求項６】
前記判定部によって前記第２の処理が最後に実行される処理ではないと判定された場合、前記第１および第２のログ情報を含む、前記一連の処理のうちの第３の処理の処理要求を、前記システム内の他のサーバ装置に送信する送信部を備えることを特徴とする請求項５に記載のサーバ装置。
【請求項７】
前記実行部は、
前記リクエストを前記クライアント装置から受信した場合、前記第１の処理を実行するとともに、前記第１の処理の実行内容に関する第１のログ情報を出力し、
前記送信部は、
前記第１のログ情報を含む、前記一連の処理のうちの第２の処理の処理要求を、前記システム内の他のサーバ装置に送信することを特徴とする請求項６に記載のサーバ装置。
【請求項８】
前記第２の処理の処理要求を受信した場合に、前記実行部によって出力されるログ情報の中から、前記リクエストから特定される所定の種別の前記第２のログ情報を抽出する抽出部を備え、
前記書込制御部は、
前記第１のログ情報および前記抽出部によって抽出された前記第２のログ情報の、前記特定の記憶領域への書き込みを制御することを特徴とする請求項１〜７のいずれか一つに記載のサーバ装置。
【請求項９】
クライアント装置からのリクエストに応じて一連の処理を実行可能な第１のサーバ装置および第２のサーバ装置を含むシステムであって、
前記第１のサーバ装置は、
前記一連の処理のうちの第１の処理を実行するとともに、前記第１の処理の実行内容に関する第１のログ情報を出力し、前記第１のログ情報を含む、前記一連の処理のうちの第２の処理の処理要求を、前記第２のサーバ装置に送信し、
前記第２のサーバ装置は、
前記第２の処理の処理要求を受信した場合に、前記第２の処理を実行するとともに、前記第２の処理の実行内容に関する第２のログ情報を出力し、前記第２の処理の処理要求に含まれる前記第１のログ情報および前記第２のログ情報の、前記クライアント装置に対応する特定の記憶領域への書き込みを制御することを特徴とするシステム。
【請求項１０】
クライアント装置からのリクエストに応じて一連の処理を実行可能な複数のサーバ装置を含むシステム内のサーバ装置が、
前記一連の処理のうちの第１の処理の実行に応じて出力される第１のログ情報を含む、前記一連の処理のうちの第２の処理の処理要求を、前記システム内の他のサーバ装置から受信した場合に、前記第２の処理を実行するとともに、前記第２の処理の実行内容に関する第２のログ情報を出力する実行工程と、
前記第１のログ情報および前記第２のログ情報の、前記クライアント装置に対応する特定の記憶領域への書き込みを制御する書込制御工程と、
を実行することを特徴とするログ収集支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログの収集を支援するサーバ装置、システム、およびログ収集支援方法に関する。
【背景技術】
【０００２】
従来、クライアント装置からの要求に応じた一連の処理を複数のサーバで実行するシステムにおいて、各サーバで行われた処理のログは各サーバで蓄積される。また、ログの解析を行う場合には、例えば、ログを解析するコンピュータが、各サーバで蓄積されたログを収集し、収集したログに対して解析を行う。
【０００３】
関連する先行技術としては、例えば、クライアントがサーバに対してトランザクション処理を要求する際に、要求日時と処理を行う装置名を含むトランザクション識別子を発行してトランザクションに付加するものがある。トランザクション終了後は、トランザクションに付加されたトランザクション識別子に基づいてログの収集が行われる。
【０００４】
また、クライアント計算機が通信相手の計算機との間で確立したいセッションの識別子が、通信経路上の複数の中継計算機に、各々、コネクションの確立後に順次送信されて、ログに付加された形式で記録される技術がある。また、サーバが、電文要求の受信時に、トレース採取有無を指定した情報と該電文要求の識別子を該電文要求に付加し、該情報と該識別子が付加された電文要求の受信時に、該情報に基づきアプリケーション実行時に該識別子を含めたトレース情報を記録する技術がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２４４８８７号公報
【特許文献２】特開平１０−１９８６１６号公報
【特許文献３】特開２０１０−１１８０７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、要求に応じてシステム内で実行される一連の処理を実行するサーバが、システム内の複数のサーバのうちの一部のサーバであっても、ログの解析を行う場合、システム内の複数のサーバそれぞれからログが収集されることになる。そのため、収集されるログのデータ量が大量なものになってしまう場合があるという問題がある。
【０００７】
１つの側面では、本発明は、要求に応じてシステム内で実行される一連の処理に関連するログを収集する際に、収集されるログの量を抑制することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、クライアント装置からのリクエストに応じて一連の処理を実行可能な複数のサーバ装置を含むシステム内で、一連の処理のうちの第１の処理の実行に応じて出力される第１のログ情報を含む、一連の処理のうちの第２の処理の処理要求を、システム内の他のサーバ装置から受信した場合に、第２の処理を実行するとともに、第２の処理の実行内容に関する第２のログ情報を出力し、第１のログ情報および第２のログ情報の、クライアント装置に対応する特定の記憶領域への書き込みを制御するサーバ装置、システム、およびログ収集支援方法が提案される。
【０００９】
また、本発明の一側面によれば、クライアント装置からのリクエストに応じて一連の処理を実行可能な第１のサーバ装置および第２のサーバ装置を含むシステムであって、第１のサーバ装置は、一連の処理のうちの第１の処理を実行するとともに、第１の処理の実行内容に関する第１のログ情報を出力し、第１のログ情報を含む、一連の処理のうちの第２の処理の処理要求を、第２のサーバ装置に送信し、第２のサーバ装置は、第２の処理の処理要求を受信した場合に、第２の処理を実行するとともに、第２の処理の実行内容に関する第２のログ情報を出力し、第２の処理の処理要求に含まれる第１のログ情報および第２のログ情報の、クライアント装置に対応する特定の記憶領域への書き込みを制御するシステムが提案される。
【発明の効果】
【００１０】
本発明の一態様によれば、要求に応じてシステム内で実行される一連の処理に関連するログを収集する際に、収集されるログの量を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態にかかるログ収集支援方法の一実施例を示す説明図である。
【図２】図２は、実施の形態にかかるログ収集システムのシステム構成例を示す説明図である。
【図３】図３は、実施の形態にかかるコンピュータのハードウェア構成例を示すブロック図である。
【図４】図４は、クライアント装置１０２−ｊの機能的構成を示すブロック図である。
【図５】図５は、定義ファイルの具体例を示す説明図である。
【図６】図６は、リクエストデータのデータ構造の一例を示す説明図である。
【図７】図７は、ログデータ通知要求６０２の具体例を示す説明図（その１）である。
【図８】図８は、ログデータ通知要求６０２の具体例を示す説明図（その２）である。
【図９】図９は、実施の形態にかかるサーバ１０１−ｉの機能的構成例を示すブロック図である。
【図１０】図１０は、同期型の一連の処理の一例を示す説明図である。
【図１１】図１１は、非同期型の一連の処理の一例を示す説明図である。
【図１２】図１２は、リクエストデータのデータ構造の一例を示す説明図（その１）である。
【図１３】図１３は、リクエストデータのデータ構造の一例を示す説明図（その２）である。
【図１４】図１４は、レスポンスデータのデータ構造の一例を示す説明図である。
【図１５】図１５は、ログデータの具体例を示す説明図（その１）である。
【図１６】図１６は、ログデータの具体例を示す説明図（その２）である。
【図１７】図１７は、書込先テーブルの記憶内容の一例を示す説明図である。
【図１８】図１８は、実施の形態にかかるクライアント装置１０２−ｊのリクエスト処理手順の一例を示すフローチャートである。
【図１９】図１９は、実施の形態にかかるサーバ１０１−ｉのレスポンス処理手順の一例を示すフローチャートである。
【図２０】図２０は、同期型呼出処理の具体的処理手順の一例を示すフローチャートである。
【図２１】図２１は、非同期型呼出処理の具体的処理手順の一例を示すフローチャートである。
【図２２】図２２は、ログ抽出処理の具体的処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、この発明にかかるサーバ装置、システム、およびログ収集支援方法の実施の形態を詳細に説明する。
【００１３】
（実施の形態にかかるログ収集支援方法の一実施例）
図１は、実施の形態にかかるログ収集支援方法の一実施例を示す説明図である。図１において、サーバ１０１（図１では、サーバ１０１−１，１０１−２）は、クライアント装置１０２から、処理の実行を要求するリクエスト１１０を受信するコンピュータである。また、サーバ１０１は、受信したリクエスト１１０に応じた処理を実行する。また、サーバ１０１は、実行した処理に応じたログを出力する。また、サーバ１０１は、実行した処理から派生した処理の実行を要求する処理要求１２０を他のサーバ１０１に送信する。
【００１４】
クライアント装置１０２は、処理の実行を要求するリクエスト１１０をサーバ１０１に送信するコンピュータである。また、クライアント装置１０２は、送信したリクエスト１１０に応じた処理の処理結果であるレスポンスをサーバ１０１から受信する。
【００１５】
複数のサーバ１０１で実行される一連の処理に関するログを収集する場合、例えば、一連の処理についてのシステム内での処理経路を特定する。クラウドシステムのように複数のサーバ１０１を含むシステムでは、一連の処理の各々の処理を実行するサーバ１０１は、各サーバ１０１の処理能力や負荷状況に応じて、処理の振り分け先が柔軟に変更されるため、処理経路の特定が困難になる。
【００１６】
そこで、本実施の形態では、クライアント装置１０２からのリクエスト１１０から派生した一連の処理を実行する各々のサーバ１０１で出力されるログを、一連の処理の実行に伴ってサーバ間で受け継いでいく。これにより、最終的にクライアント装置１０２に対応する特定の記憶領域にログを蓄積することができ、クライアント装置１０２ごとのログの収集を効率化できる。
【００１７】
以下、クライアント装置１０２からサーバ１０１−１にリクエスト１１０が送信された場合を例に挙げて、実施の形態にかかるログ収集支援方法の一実施例について説明する。
【００１８】
（１）サーバ１０１−１は、クライアント装置１０２からリクエスト１１０を受信する。リクエスト１１０は、例えば、複数のサーバ１０１で実行される一連の処理の実行の開始を要求する実行要求である。
【００１９】
（２）サーバ１０１−１は、受信したリクエスト１１０に応じた処理を実行する。また、サーバ１０１−１は、実行した処理から派生した処理についてのサーバ１０１−２への処理要求１２０と、実行した処理に関するログを含む第１のログ情報１３０と、を生成する。
【００２０】
（３）サーバ１０１−１は、生成した処理要求１２０と第１のログ情報１３０とをサーバ１０１−２に送信する。
【００２１】
（４）サーバ１０１−２は、サーバ１０１−１から処理要求１２０と第１のログ情報１３０とを受信する。また、サーバ１０１−２は、受信した処理要求１２０に応じた処理を実行する。また、サーバ１０１−２は、実行した処理に関するログを含む第２のログ情報１４０を生成する。
【００２２】
（５）サーバ１０１−２は、特定の記憶領域１５０への第１のログ情報１３０と第２のログ情報１４０との書き込みを制御する。ここで、特定の記憶領域１５０とは、クライアント装置１０２に対応する記憶領域であり、各サーバ１０１（例えば、サーバ１０１−１，１０１−２）から出力されるログのうちのクライアント装置１０２に関連するログをまとめて記憶する記憶領域である。
【００２３】
特定の記憶領域１５０としては、例えば、各サーバ１０１が有するいずれかの記憶領域や、クライアント装置１０２が有するいずれかの記憶領域を採用することができる。また、特定の記憶領域１５０として、各サーバ１０１がアクセス可能なストレージ装置１６０が有するいずれかの記憶領域を採用することにしてもよい。
【００２４】
具体的には、例えば、サーバ１０１−２とは異なる他のコンピュータが特定の記憶領域１５０を有する場合、サーバ１０１−２は、該他のコンピュータに、第１のログ情報１３０および第２のログ情報１４０の書込指示を送信する。他のコンピュータとは、例えば、クライアント装置１０２、サーバ１０１−１である。
【００２５】
また、サーバ１０１−２が特定の記憶領域１５０を有する場合、サーバ１０１−２は、自サーバが有する特定の記憶領域１５０に、第１のログ情報１３０と第２のログ情報１４０とを書き込む。また、ストレージ装置１６０が特定の記憶領域１５０を有する場合、サーバ１０１−２は、ストレージ装置１６０の特定の記憶領域１５０に、第１のログ情報１３０と第２のログ情報１４０とを書き込む。
【００２６】
このように、実施の形態にかかるログ収集支援方法によれば、クライアント装置１０２からのリクエスト１１０から派生する各々の処理の実行に応じて各サーバ１０１から出力されるログを集約して特定の記憶領域１５０に蓄積することができる。
【００２７】
これにより、特定の記憶領域１５０に、特定のクライアント装置１０２に関連するログをまとめて蓄積することができる。結果として、特定のクライアント装置１０２に関連するログを、特定のクライアント装置１０２に対応する特定の記憶領域１５０から、一括して収集することができる。このため、ログの収集作業にかかる作業負荷を軽減することができるとともに、ログ収集時に、特定のクライアント装置１０２に関連するログのみを収集でき、収集されるログの量を抑制することができる。
【００２８】
また、特定の記憶領域１５０に、特定のクライアント装置１０２に関連するログを、リクエスト１１０から派生した一連の処理ごとにまとめて蓄積することもできる。結果として、特定のクライアント装置１０２から送信された特定のリクエスト１１０から派生した一連の処理に関連するログを、特定のクライアント装置１０２に対応する特定の記憶領域１５０から、一括して収集することができる。このため、ログの収集作業にかかる作業負荷を軽減することができるとともに、ログ収集時に、特定のクライアント装置１０２からのリクエスト１１０から派生した一連の処理に関連するログのみを収集でき、収集されるログの量を抑制することができる。
【００２９】
（実施の形態にかかるログ収集システムのシステム構成例）
図２は、実施の形態にかかるログ収集システムのシステム構成例を示す説明図である。図２において、ログ収集システム２００は、サーバ１０１−１〜１０１−ｎと、クライアント装置１０２−１〜１０２―ｍと、情報収集装置２０１と、を含む。ログ収集システム２００において、サーバ１０１−１〜１０１−ｎ、クライアント装置１０２−１〜１０２―ｍおよび情報収集装置２０１は、有線または無線のネットワーク２１０を介して接続されている。ネットワーク２１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。
【００３０】
以下の説明では、サーバ１０１−１〜１０１−ｎのうち任意のサーバを「サーバ１０１−ｉ」と表記する（ｉ＝１，２，…，ｎ）。また、クライアント装置１０２−１〜１０２−ｍのうち任意のクライアント装置を「クライアント装置１０２−ｊ」と表記する（ｊ＝１，２，…，ｍ）。
【００３１】
ここで、サーバ１０１−ｉは、クライアント装置１０２−ｊまたは他のサーバ１０１−ｋ（ただし、ｋ≠ｉ、ｋ＝１，２，…，ｎ）から、処理の実行を要求するリクエストを受信するコンピュータである。また、サーバ１０１−ｉは、受信したリクエストに応じた処理を実行する。また、サーバ１０１−ｉは、実行した処理に応じたログを出力する。また、サーバ１０１−ｉは、実行した処理から派生した処理の実行を要求するリクエストを、他のサーバ１０１−ｋに送信する。サーバ１０１−１〜１０１−ｎは、例えば、クラウドコンピューティング内のサーバ群である。
【００３２】
クライアント装置１０２−ｊは、処理の実行を要求するリクエストをサーバ１０１−ｉに送信するコンピュータである。リクエストの種別としては、例えば、ＳＯＡＰ、ＪＭＳ（Ｊａｖａ  Ｍｅｓｓａｇｅ  Ｓｅｒｖｉｃｅ）、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）、ＣＯＲＢＡ（Ｃｏｍｍｏｎ  Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ）などがある。また、クライアント装置１０２−ｊは、送信したリクエストに応じたレスポンスをサーバ１０１−ｉから受信する。クライアント装置１０２−ｊは、例えば、クラウドコンピューティングの利用者が使用するＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）やノートＰＣなどである。なお、Ｊａｖａは登録商標である。
【００３３】
情報収集装置２０１は、各サーバ１０１−ｉから出力されたログを収集するコンピュータである。収集対象となるログは、例えば、クライアント装置１０２からのリクエストから派生した一連の処理の実行に応じて各サーバ１０１−ｉから出力されたログ群である。具体的には、例えば、情報収集装置２０１は、収集の対象になるクライアント装置１０２−ｊに対応する特定の記憶領域１５０（図１参照）から、クライアント装置１０２−ｊに関連するログ群を収集する。情報収集装置２０１は、例えば、ログ収集システム２００の管理者が使用するＰＣやノートＰＣなどである。
【００３４】
（実施の形態にかかるコンピュータのハードウェア構成例）
次に、図３を用いて、図２に示した実施の形態にかかるコンピュータ（サーバ１０１−１〜１０１−ｎ、クライアント装置１０２−１〜１０２―ｍ、情報収集装置２０１）のハードウェア構成例について説明する。
【００３５】
図３は、実施の形態にかかるコンピュータのハードウェア構成例を示すブロック図である。図３において、コンピュータは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、磁気ディスクドライブ３０４と、磁気ディスク３０５と、光ディスクドライブ３０６と、光ディスク３０７と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０８と、キーボード３０９と、マウス３１０と、ディスプレイ３１１と、を備えている。また、各構成部はバス３００によってそれぞれ接続されている。
【００３６】
ここで、ＣＰＵ３０１は、コンピュータの全体の制御を司る。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。
【００３７】
磁気ディスクドライブ３０４は、ＣＰＵ３０１の制御にしたがって磁気ディスク３０５に対するデータのリード／ライトを制御する。磁気ディスク３０５は、磁気ディスクドライブ３０４の制御で書き込まれたデータを記憶する。
【００３８】
光ディスクドライブ３０６は、ＣＰＵ３０１の制御にしたがって光ディスク３０７に対するデータのリード／ライトを制御する。光ディスク３０７は、光ディスクドライブ３０６の制御で書き込まれたデータを記憶したり、光ディスク３０７に記憶されたデータをコンピュータに読み取らせたりする。
【００３９】
Ｉ／Ｆ３０８は、通信回線を通じてネットワーク２１０に接続され、このネットワーク２１０を介して他の装置に接続される。そして、Ｉ／Ｆ３０８は、ネットワーク２１０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３０８には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４０】
キーボード３０９は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス３１０は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００４１】
ディスプレイ３１１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ３１１は、例えば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４２】
なお、図３に示したコンピュータのハードウェア構成は一例であり、例えば、サーバ１０１−ｉとして採用されるコンピュータには、光ディスクドライブ３０６、光ディスク３０７、キーボード３０９、マウス３１０、ディスプレイ３１１が備えられていなくてもよい。また、クライアント装置１０２または情報収集装置２０１として採用されるコンピュータには、例えば、スキャナやプリンタが備えられていてもよい。
【００４３】
（クライアント装置１０２−ｊの機能的構成例）
図４は、クライアント装置１０２−ｊの機能的構成を示すブロック図である。クライアント装置１０２−ｊは、設定部４０１と、生成部４０２と、送信部４０３と、受信部４０４と、記録部４０５と、を含む構成である。この制御部となる機能（設定部４０１〜記録部４０５）は、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０８により、その機能を実現する。各機能部の処理結果は、例えば、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶される。
【００４４】
設定部４０１は、収集するログの種別を設定する機能を有する。ここで、収集するログの種別とは、サーバ１０１−ｉに出力させるログの種別である。例えば、サーバ１０１−ｉに出力させるログの種別として、エラーログ、警告ログ、詳細ログ、デバッグログ、またはそれらの組み合わせが採用される。具体的には、例えば、設定部４０１は、クライアント装置１０２−ｊの利用者または情報収集装置２０１の管理者から収集するログの種別の入力を受けて、定義ファイル（例えば、後述の図５に示す定義ファイル５００）に設定しておく。
【００４５】
ここで、収集するログの種別の入力は、例えば、クライアント装置１０２−ｊの利用者によるキーボード３０９またはマウス３１０の操作によって行われる。また、収集するログの種別の入力は、情報収集装置２０１の管理者によって情報収集装置２０１で入力されたログの種別を、情報収集装置２０１から受信することによって行われてもよい。これにより、設定部４０１は、サーバ１０１−ｉに収集させるログの種別を設定しておくことができ、サーバ１０１−ｉにログの収集を要求する際にサーバ１０１−ｉで収集すべきログの種別を通知することができる。
【００４６】
ここで、図５を用いて、設定部４０１によって収集するログの種別が設定される定義ファイルの具体例について説明する。図５では、クライアント装置１０２−ｊによって、当該クライアント装置１０２−ｊが生成するすべてのリクエストに共通して適用される定義ファイルが作成されている場合を示す。
【００４７】
図５は、定義ファイルの具体例を示す説明図である。定義ファイル５００は、採取ログ、採取可否、および出力ログのフィールドを有し、各フィールドに情報を設定することで、サーバに収集させるログの種別を、レコードとして記憶している。定義ファイルは、クライアント装置１０２−ｊの利用者または情報収集装置２０１の管理者によって設定される。
【００４８】
採取ログのフィールドには、サーバ１０１−ｉに採取させるログが記憶されている。例えば、採取ログのフィールドには、サーバ１０１−ｉに採取させるログとして、トレースログやシーケンスログが記憶されている。採取可否のフィールドには、サーバ１０１−ｉにログの採取を実行させるか否かが記憶されている。出力ログのフィールドには、採取ログのフィールドに記憶されたログの中から収集するログの種別が記憶されている。例えば、出力ログのフィールドには、ログの種別として、エラーログ、警告ログ、詳細ログ、デバッグログ、またはそれらの組み合わせが記憶されている。
【００４９】
例えば、レコード５０１は、サーバ１０１にログの採取を「実行させる」状態であり、サーバ１０１に採取させるログが「トレースログ」であり、サーバ１０１に採取したトレースログの中から収集させるログの種別が「エラーログ」であることを示している。
【００５０】
ここでは、クライアント装置１０２−ｊによってすべてのリクエストに共通の定義ファイル５００が一つ作成されている場合について示したが、定義ファイル５００は複数作成されていてもよい。例えば、クライアント装置１０２−ｊによって、リクエストの種別ごとに異なる定義ファイル５００が作成されていてもよい。また、クライアント装置１０２−ｊによって、定義ファイル５００にリクエスト種別のフィールドを追加したテーブルが作成され、リクエストの種別に対応付けたレコードが作成されていてもよい。これにより、リクエストの種別ごとに異なる種別のログを収集することができる。また、特定の種別のリクエストについてログを収集したり、特定の種別のリクエストについてログを収集しないようにしたりすることもできる。
【００５１】
図４の説明に戻り、生成部４０２は、リクエストデータを生成する機能を有する。ここで、リクエストデータとは、処理の実行を要求するリクエスト本体と、サーバ１０１−ｉに収集させるログの種別が記載され収集したログの通知を要求するログデータ通知要求と、を含むデータである。具体的には、例えば、生成部４０２は、定義ファイル５００を参照して、サーバ１０１−ｉに収集させるログの種別を含むログデータ通知要求を生成する。
【００５２】
そして、生成部４０２は、生成したログデータ通知要求を含むリクエストデータを生成する。これにより、生成部４０２は、サーバ１０１−ｉに送信するリクエストデータを生成することができる。ここで、図６を用いて、生成部４０２によって生成されるリクエストデータのデータ構造の一例について説明する。
【００５３】
図６は、リクエストデータのデータ構造の一例を示す説明図である。図６に示すように、リクエストデータ６００は、リクエスト本体６０１と、ログデータ通知要求６０２と、を含む。リクエスト本体６０１は、処理の実行を要求するデータである。ログデータ通知要求６０２は、サーバ１０１−ｉに収集させるログの種別を含み、収集したログのクライアント装置１０２−ｊへの通知をサーバ１０１−ｉに要求するデータである。次に、図７および図８を用いて、図６に示したログデータ通知要求６０２の具体例について説明する。
【００５４】
図７および図８は、ログデータ通知要求６０２の具体例を示す説明図である。図７に示すログデータ通知要求６０２において、符号７１０で示す箇所には、クライアント装置１０２−ｊのＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスが記載されている。ここでは、符号７１０の箇所にはＩＰアドレスとして「１９２．１６８．１０．１」が記載されている。
【００５５】
符号７２１で示す箇所には、サーバ１０１−ｉが採取すべきログが記載されている。ここでは、符号７２１の箇所には「ｔｒａｃｅｌｏｇ」が記載されており、サーバ１０１−ｉが採取すべきログはトレースログであることが示されている。なお、符号７２１で示す箇所は、定義ファイル５００の採取ログのフィールドを参照して、生成部４０２によって生成される。
【００５６】
符号７２２で示す箇所には、サーバ１０１−ｉがログの採取を実行すべきか否かを示す情報が記載されている。ここでは、符号７２２の箇所には「ｙｅｓ」が記載されており、サーバ１０１−ｉがログの採取を実行すべきであることが示されている。なお、符号７２２で示す箇所は、定義ファイル５００の採取可否のフィールドを参照して、生成部４０２によって生成される。
【００５７】
符号７２３で示す箇所には、サーバ１０１−ｉが採取したログの中から収集すべきログの種別が記載されている。ここでは、符号７２３の箇所には「ｄｅｂｕｇｌｏｇ」が記載されており、サーバ１０１−ｉが採取したトレースログの中から収集すべきログの種別は、デバッグログであることが示されている。なお、符号７２３で示す箇所は、定義ファイル５００の出力ログのフィールドを参照して、生成部４０２によって生成される。
【００５８】
なお、符号７２３の箇所にデバッグログが記載されている場合、収集すべきログの種別は、デバッグログのみではなく、エラーログ、警告ログ、詳細ログ、およびデバッグログであると規定してもよい。また、符号７２３の箇所に詳細ログが記載されている場合、収集すべきログの種別はエラーログ、警告ログおよび詳細ログであると規定してもよい。また、符号７２３の箇所にエラーログが記載されている場合、収集すべきログの種別はエラーログであると規定してもよいし、符号７２３の箇所に警告ログが記載されている場合、収集すべきログの種別はエラーログおよび警告ログであると規定してもよい。
【００５９】
符号７３１で示す箇所には、符号７２１で示す箇所と同様の内容が記載されている。符号７３２で示す箇所には、符号７２２で示す箇所と同様の内容が記載されている。符号７３３で示す箇所には、符号７２３で示す箇所と同様の内容が記載されている。具体的には、符号７３１〜符号７３３で示す箇所には、サーバ１０１−ｉが採取すべきログはシーケンスログであり、採取したシーケンスログの中から収集すべきログの種別はデバッグログであることが示されている。
【００６０】
図８に示すログデータ通知要求６０２において、符号８１０で示す箇所には、符号７１０で示す箇所と同様にクライアント装置１０２−ｊのＩＰアドレスが記載されている。ここでは、符号８１０の箇所にはＩＰアドレスとして「１９２．１６８．１０．２」が記載されている。
【００６１】
符号８２１および符号８３１で示す箇所には、符号７２１で示す箇所と同様の内容が記載されている。符号８２２および符号８３２で示す箇所には、符号７２２で示す箇所と同様の内容が記載されている。符号８２３および符号８３３で示す箇所には、符号７２３で示す箇所と同様の内容が記載されている。
【００６２】
具体的には、符号８２１〜符号８２３で示す箇所には、サーバ１０１−ｉが採取すべきログはトレースログであり、採取したシーケンスログの中から収集すべきログの種別はエラーログであることが示されている。また、符号８３１〜符号８３３で示す箇所には、サーバ１０１−ｉが採取すべきログはシーケンスログであり、採取したシーケンスログの中から収集すべきログの種別はエラーログであることが示されている。
【００６３】
図４の説明に戻り、送信部４０３は、リクエストデータ６００をサーバ１０１−ｉに送信する機能を有する。具体的には、例えば、送信部４０３は、図７または図８に示したログデータ通知要求６０２を含むリクエストデータ６００を、サーバ１０１−ｉに送信する。これにより、送信部４０３は、サーバ１０１−ｉにリクエストデータ６００を送信し、リクエストデータ６００に含まれるリクエスト本体６０１に応じた一連の処理を各サーバ１０１−ｉに実行させることができる。
【００６４】
受信部４０４は、レスポンスデータをサーバ１０１−ｉから受信する機能を有する。ここで、レスポンスデータとは、リクエストデータ６００に含まれるリクエスト本体６０１によって要求された一連の処理の処理結果となるレスポンス本体を含むデータである。また、レスポンスデータとは、リクエストデータ６００に含まれるリクエスト本体６０１によって要求された一連の処理を実行した各サーバ１０１−ｉから出力されたログを集約したログデータを含むデータである。
【００６５】
具体的には、例えば、受信部４０４は、リクエストデータ６００を送信した結果として、サーバ１０１−ｉから送信されたレスポンスデータを受信する。これにより、受信部４０４は、サーバ１０１−ｉに要求した一連の処理の処理結果と、一連の処理についてのログデータと、をサーバ１０１−ｉから受信することができる。なお、レスポンスデータの具体例については図１４を用いて後述する。また、レスポンスデータに含まれるログデータの具体例については、図１５および図１６を用いて後述する。
【００６６】
記録部４０５は、ログデータを記録する機能を有する。具体的には、例えば、記録部４０５は、受信部４０４によって受信されたレスポンスデータにログデータが含まれている場合、レスポンスデータからログデータを抽出して、抽出したログデータを特定の記憶領域１５０に記録する。これにより、記録部４０５は、自クライアント装置１０２−ｊについてのログデータを、自クライアント装置１０２−ｊ内の記憶領域に記録しておくことができる。
【００６７】
（実施の形態にかかるサーバ１０１−ｉの機能的構成例）
図９は、実施の形態にかかるサーバ１０１−ｉの機能的構成例を示すブロック図である。サーバ１０１−ｉは、受信部９０１と、特定部９０２と、実行部９０３と、抽出部９０４と、生成部９０５と、書込制御部９０６と、送信部９０７と、を含む構成である。この制御部となる機能（受信部９０１〜送信部９０７）は、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０８により、その機能を実現する。各機能部の処理結果は、例えば、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶される。
【００６８】
受信部９０１は、リクエストをクライアント装置１０２−ｊから受信する機能を有する。ここで、リクエストとは、上述したリクエストデータ６００に含まれるリクエスト本体６０１である。具体的には、例えば、受信部９０１は、図７または図８に示したリクエスト本体６０１とログデータ通知要求６０２とを含むリクエストデータ６００を、クライアント装置１０２−ｊから受信する。これにより、受信部９０１は、クライアント装置１０２−ｊからのリクエスト本体６０１に応じた一連の処理の実行を開始するトリガになるリクエストを受信することができる。
【００６９】
また、受信部９０１は、一連の処理のうちの第１の処理の実行に応じて出力される第１のログ情報を含む、一連の処理のうちの第２の処理の処理要求を、システム内の他のサーバ装置から受信する機能を有する。ここで、サーバ装置とは、上述したサーバ１０１−ｉである。他のサーバ装置とは、上述したサーバ１０１−ｋである。一連の処理とは、クライアント装置１０２−ｊからのリクエストに応じて実行される処理である。第１の処理とは、リクエスト本体６０１に応じて実行される一連の処理のうちの他のサーバ１０１−ｋで実行された処理である。第１のログ情報とは、第１の処理を実行した他のサーバ１０１−ｋで出力されたログである。第２の処理とは、一連の処理のうちの第１の処理の次に実行すべき処理である。第２の処理の処理要求とは、第１の処理を実行した他のサーバ１０１−ｋで生成されたリクエスト本体であり、例えば、図１２で後述するリクエスト本体である。
【００７０】
具体的には、例えば、受信部９０１は、後述の図１２または図１３に示すログデータを含むリクエストデータを、他のサーバ１０１−ｋから受信する。これにより、受信部９０１は、他のサーバ１０１−ｋからの一連の処理のうちいずれかの処理の実行を開始するトリガになるリクエストを受信することができる。
【００７１】
特定部９０２は、クライアント装置１０２−ｊからのリクエストに応じて実行される一連の処理の各々の処理を実行する対象サーバ１０１−ｉを特定する機能を有する。ここで、一連の処理の各々の処理を実行する対象サーバ１０１−ｉとは、例えば、一連の処理の各々の処理の実行に使用するアプリケーションを有するサーバ１０１−ｉである。
【００７２】
具体的には、例えば、特定部９０２は、受信部９０１によってクライアント装置１０２−ｊからリクエストデータ６００が受信された場合、リクエストデータ６００に含まれるリクエスト本体６０１により要求されている処理を実行可能なサーバ１０１−ｉを特定する。このとき、特定部９０２は、実行可能なサーバ１０１−ｉが複数ある場合、各サーバ１０１−ｉの処理能力または作業負荷を参照して、複数のサーバ１０１−ｉの中から、処理を実行するサーバ１０１−ｉを特定してもよい。
【００７３】
より具体的には、特定部９０２は、リクエストデータ６００によって要求されている処理が同期型であるか非同期型であるかを特定し、一連の処理の各々の処理を実行するサーバ１０１−ｉを特定する。なお、特定部９０２は、リクエストデータ６００に処理が同期型であるか非同期型であるかを示す情報が含まれている場合、リクエストデータ６００を参照して処理が同期型であるか非同期型であるかを特定してもよい。また、特定部９０２は、リクエストデータ６００に識別子が含まれている場合、識別子と対応付けて同期型であるか非同期型であるかを記憶したテーブルを参照して、処理が同期型であるか非同期型であるかを特定してもよい。これにより、特定部９０２は、一連の処理の各々の処理を実行すべきサーバ１０１−ｉを特定することができる。
【００７４】
ここで、同期型の処理とは、親子関係のあるサーバ１０１−ｉ間で実行される処理である。同期型の処理では、親サーバによって子サーバに処理の実行が要求され、子サーバの処理結果を親サーバが受信する。同期型の処理では、親サーバが、一連の処理の処理結果を集約して、集約した処理結果をクライアント装置１０２−ｊに送信する。
【００７５】
また、非同期型の処理とは、独立したサーバ１０１−ｉ間で実行される処理である。非同期型の処理では、サーバ１０１−ｉは、自サーバ１０１−ｉでの処理が終了すると、次の処理を実行すべき他のサーバ１０１−ｋに、処理の実行を要求し、また、処理結果を送信する。非同期型の処理では、一連の処理のうち最後の処理を実行したサーバ１０１−ｉが、クライアント装置１０２−ｊに一連の処理の処理結果を送信する。
【００７６】
ここで、図１０および図１１を用いて、同期型および非同期型のそれぞれの場合について、クライアント装置１０２−ｊからのリクエストデータ６００に含まれるリクエスト本体６０１に応じて実行される一連の処理の一例について説明する。
【００７７】
＜同期型の一連の処理の一例＞
まず、図１０を用いて、同期型の一連の処理の一例について説明する。
【００７８】
図１０は、同期型の一連の処理の一例を示す説明図である。図１０に示すように、サーバ１０１−１は、クライアント装置１０２−ｊからリクエストデータ６００を受信すると、自サーバ１０１−１を親サーバであると判定して、リクエストデータ６００によって要求された処理を実行する。ここで、サーバ１０１−１は、実行が終了した処理の次に実行すべき処理を実行する子サーバを特定し、特定した子サーバに次に実行すべき処理の実行を要求するリクエストデータを送信する。
【００７９】
このとき、サーバ１０１−１は、子サーバを特定すると、子サーバを示す情報をリクエストデータに記載しておく。そして、サーバ１０１−１は、子サーバでの処理結果であるレスポンスデータを受信する。サーバ１０１−１は、一連の処理のすべての実行が終了すると、子サーバから受信したレスポンスデータをまとめて、クライアント装置１０２−ｊに送信する。
【００８０】
例えば、サーバ１０１−１は、自サーバ１０１−１で実行した処理の次の処理を実行する子サーバとしてサーバ１０１−２を特定し、特定したサーバ１０１−２に処理の実行を要求するリクエストデータを送信する。サーバ１０１−２は、受信したリクエストデータに含まれる子サーバを示す情報に基づいて、自サーバ１０１−２が子サーバであると判定する。そして、サーバ１０１−２は、処理を実行して処理結果となるレスポンスデータをサーバ１０１−１に送信する。
【００８１】
サーバ１０１−１は、サーバ１０１−２から処理結果となるレスポンスデータを受信する。サーバ１０１−１は、サーバ１０１−２で実行した処理の次の処理を実行する子サーバとしてサーバ１０１−３を特定し、特定したサーバ１０１−３に処理の実行を要求する。サーバ１０１−３は、受信したリクエストデータに含まれる子サーバを示す情報に基づいて、自サーバ１０１−３が子サーバであると判定する。そして、サーバ１０１−３は、処理を実行して処理結果となるレスポンスデータをサーバ１０１−１に送信する。
【００８２】
サーバ１０１−１は、サーバ１０１−３から処理結果となるレスポンスデータを受信する。そして、サーバ１０１−１は、一連の処理が終了した場合、自サーバ１０１−１の処理結果と、サーバ１０１−２およびサーバ１０１−３から受信した処理結果と、をまとめてクライアント装置１０２−ｊに送信する。
【００８３】
なお、親サーバは、同時に複数の子サーバに処理を要求するリクエストデータを送信してもよい。また、同一の子サーバに、処理を要求するリクエストデータを、複数回送信してもよい。
【００８４】
＜非同期型の一連の処理の一例＞
次に、図１１を用いて、非同期型の一連の処理の一例について説明する。
【００８５】
図１１は、非同期型の一連の処理の一例を示す説明図である。図１１に示すように、サーバ１０１−１は、クライアント装置１０２−ｊからリクエストデータ６００を受信すると、リクエストデータ６００によって要求された処理を実行する。ここで、サーバ１０１−１は、実行した処理から派生した一連の処理のうちの次に実行すべき処理を実行する他のサーバ１０１−２を特定する。そして、サーバ１０１−１は、特定したサーバ１０１−２に、処理の実行を要求するリクエストデータと、自サーバ１０１−１の処理結果と、を送信する。このとき、サーバ１０１−１は、特定したサーバ１０１−２を示す情報をリクエストデータに記載しておく。
【００８６】
サーバ１０１−２は、サーバ１０１−１からリクエストデータを受信すると、要求された処理を実行する。ここで、サーバ１０１−２は、実行した処理から派生した一連の処理のうちの次に実行すべき処理を実行する他のサーバ１０１−３を特定する。そして、サーバ１０１−２は、特定したサーバ１０１−３に、処理の実行を要求するリクエストデータと、サーバ１０１−１の処理結果と、自サーバ１０１−２の処理結果と、を送信する。このとき、サーバ１０１−２は、特定したサーバ１０１−３を示す情報をリクエストデータに記載しておく。
【００８７】
サーバ１０１−３は、サーバ１０１−２からリクエストデータを受信すると、要求された処理を実行する。ここで、サーバ１０１−３は、自サーバ１０１−３が一連の処理の最後の処理を実行したサーバ１０１−ｉであると判定する。そして、サーバ１０１−３は、サーバ１０１−１の処理結果と、サーバ１０１−２の処理結果と、自サーバ１０１−３の処理結果と、をまとめてクライアント装置１０２−ｊに送信する。なお、自サーバ１０１−ｉが最後の処理を実行したサーバ１０１−ｉであるか否かは、リクエストデータ６００に含まれる非同期型の処理を実行するサーバ１０１−ｉを示す情報に基づいて判定することができる。
【００８８】
図９の説明に戻り、実行部９０３は、受信部９０１によってリクエストが受信された場合、第１の処理を実行するとともに、第１の処理の処理内容に関する第１のログ情報を出力する機能を有する。具体的には、例えば、実行部９０３は、受信部９０１によってクライアント装置１０２−ｊから受信されたリクエストデータ６００に含まれるリクエスト本体６０１に応じた処理を実行する。ここで、実行部９０３によって処理が実行されると、実行された処理に関するログを含むログデータが生成される。そして、実行部９０３によってログデータが出力される。これにより、実行部９０３は、一連の処理を実行することができ、実行した処理に関するログを含むログデータを生成して、出力することができる。
【００８９】
実行部９０３は、受信部９０１によって第２の処理の処理要求が受信された場合に、第２の処理を実行するとともに、第２の処理の実行内容に関する第２のログ情報を出力する機能を有する。具体的には、例えば、実行部９０３は、リクエスト本体６０１に応じた一連の処理のうちの受信部９０１によって他のサーバ１０１−ｋから受信されたリクエストデータに含まれるリクエスト本体に応じた処理を実行する。ここで、実行部９０３によって処理が実行されると、実行された処理に関するログを含むログデータが生成される。そして、実行部９０３によってログデータが出力される。これにより、実行部９０３は、一連の処理を実行することができ、実行した処理に関するログを含むログデータを生成して、出力することができる。
【００９０】
抽出部９０４は、受信部９０１によって第２の処理の処理要求が受信された場合、実行部９０３による第２の処理の実行に応じて出力されるログ情報の中から、リクエストから特定される所定の種別の第２のログ情報を抽出する機能を有する。具体的には、例えば、抽出部９０４は、実行部９０３による処理の実行に伴って出力されたログの中から、リクエストデータ６００に含まれるログデータ通知要求６０２を参照して特定した種別のログを抽出する。
【００９１】
より具体的には、例えば、抽出部９０４は、図７に示したログデータ通知要求６０２を参照すると、実行部９０３による処理の実行に伴って出力されたトレースログおよびシーケンスログの中から、デバッグログを抽出する。また、例えば、抽出部９０４は、図８に示したログデータ通知要求６０２を参照すると、実行部９０３による処理の実行に伴って出力されたトレースログおよびシーケンスログの中から、エラーログを抽出する。これにより、抽出部９０４は、クライアント装置１０２−ｊの利用者または情報収集装置２０１の管理者から収集を要求された種別のログを抽出して、抽出したログを含むログデータを生成することができる。
【００９２】
なお、図７に示したログデータ通知要求６０２のように、収集すべきログとしてデバッグログが記載されている場合に、デバッグログのみではなく、エラーログ、警告ログ、詳細ログ、およびデバッグログを収集すると規定してもよい。このとき、抽出部９０４は、トレースログおよびシーケンスログの中から、デバッグログのみではなく、エラーログ、警告ログ、詳細ログ、およびデバッグログを抽出する。
【００９３】
生成部９０５は、他のサーバ１０１−ｋに対するリクエストデータを生成する機能を有する。具体的には、例えば、生成部９０５は、リクエスト本体６０１に応じて派生した一連の処理のうちの自サーバ１０１−ｉに割り当てられている処理が一連の処理の最後に実行される処理であるか否かを判定する。そして、生成部９０５は、自サーバ１０１−ｉに割り当てられている処理が最後に実行される処理ではない場合、他のサーバ１０１−ｋに対するリクエストデータを生成する。
【００９４】
これにより、生成部９０５は、一連の処理のうちの自サーバ１０１−ｉが実行した処理の次に実行すべき処理の実行を要求するリクエストデータを生成することができる。ここで、図１２および図１３を用いて、図１１に示した非同期型を例に挙げて、生成部９０５によって生成されるリクエストデータのデータ構造の一例について説明する。
【００９５】
図１２および図１３は、リクエストデータのデータ構造の一例を示す説明図である。図１２に示すように、サーバ１０１−１では、クライアント装置１０２−ｊから受信したリクエストデータ６００に、リクエスト本体１２０１と、レスポンス本体１２０２と、ログデータＡ１２０３と、をマージしたリクエストデータ１２００が生成される。なお、マージとは、複数のデータを併合して一つのデータを生成することをいう。リクエスト本体１２０１は、サーバ１０１−２に処理の実行を要求するデータである。レスポンス本体は、自サーバ１０１−１の処理結果である。ログデータＡ１２０３は、サーバ１０１−１において収集されたログデータである。サーバ１０１−１は、生成されたリクエストデータ１２００をサーバ１０１−２に送信する。
【００９６】
図１３に示すように、サーバ１０１−１からリクエストデータ１２００を受信したサーバ１０１−２では、受信したリクエストデータ１２００に、リクエスト本体１３０１と、レスポンス本体１３０２と、ログデータＢ１３０３と、をマージする。そして、サーバ１０１−２では、マージによりリクエストデータ１３００が生成される。具体的には、サーバ１０１−２では、受信したリクエストデータ１２００に含まれるレスポンス本体１２０２と、リクエストデータ６００と、ログデータＡ１２０３とを抽出する。そして、サーバ１０１−２では、抽出したデータと、自サーバ１０１−２で生成したリクエスト本体１３０１と、レスポンス本体１３０２と、ログデータＢ１３０３とをマージする。
【００９７】
リクエスト本体１３０１は、サーバ１０１−３に処理の実行を要求するデータである。レスポンス本体１３０２は、自サーバ１０１−２の処理結果である。ログデータＢ１３０３は、サーバ１０１−２において収集されたログである。サーバ１０１−２は、生成されたリクエストデータ１３００をサーバ１０１−３に送信する。図１２および図１３に示すように、サーバ１０１−ｉにより、既に処理を実行したサーバ１０１−ｉから出力されたログデータと、自サーバ１０１−ｉで出力したログデータと、が集約されていく。
【００９８】
図９の説明に戻り、また、生成部９０５は、クライアント装置１０２−ｊに対するレスポンスデータを生成する機能を有する。具体的には、例えば、生成部９０５は、自サーバ１０１−ｉに割り当てられている処理が最後に実行される処理である場合、クライアント装置１０２−ｊに対するレスポンスデータを生成する。上述したように、レスポンスデータとは、リクエスト本体６０１によって要求された一連の処理を実行した各サーバ１０１−ｉから出力された処理結果となるレスポンス本体を含むデータである。また、レスポンスデータとは、リクエスト本体６０１によって要求された一連の処理を実行した各サーバ１０１−ｉから出力されたログデータを含むデータである。
【００９９】
これにより、生成部９０５は、一連の処理のうちの自サーバ１０１−ｉが実行した処理が最後の処理である場合、クライアント装置１０２−ｊに送信するレスポンスデータを生成することができる。ここで、図１４を用いて、図１１に示した非同期型を例に挙げて、生成部９０５によって生成されるレスポンスデータのデータ構造の一例について説明する。
【０１００】
図１４は、レスポンスデータのデータ構造の一例を示す説明図である。図１４に示すように、サーバ１０１−２からリクエストデータ１３００を受信したサーバ１０１−３では、受信したリクエストデータ１３００に、レスポンス本体１４０１と、ログデータＣ１４０２と、をマージしたレスポンスデータ１４００が生成される。
【０１０１】
具体的には、サーバ１０１−３では、受信したリクエストデータ１３００に含まれるレスポンス本体１２０２，１３０２と、リクエストデータ６００と、ログデータＡ１２０３と、ログデータＢ１３０３とを抽出する。そして、サーバ１０１−３では、抽出したデータに、自サーバ１０１−３で生成したレスポンス本体１４０１と、ログデータＣ１４０２とをマージする。レスポンス本体１４０１は、自サーバ１０１−３の処理結果である。ログデータＣ１４０２は、サーバ１０１−３において収集されたログである。サーバ１０１−３は、生成されたレスポンスデータ１４００をクライアント装置１０２−ｊに送信する。
【０１０２】
図１４に示すように、サーバ１０１−ｉにより、既に処理を実行したサーバ１０１−ｉから出力されたログデータと、自サーバ１０１−ｉで出力したログデータと、が集約される。そのため、特定の記憶領域１５０では、レスポンスデータ１４００ごとにログデータを記憶しておくことで、一連の処理ごとにログデータを記憶しておくことができるようになる。また、図１４に示すように、ログデータＡ１２０３、ログデータＢ１３０３、およびログデータＣ１４０２を生成順に並べてマージすることで、一連の処理が実行されたサーバ１０１−ｉの順序を把握することができる。そのため、特定の記憶領域１５０では、一連の処理が実行された順序を特定できるようにログデータを記憶しておくことができるようになる。
【０１０３】
これにより、情報収集装置２０１の管理者は、一連の処理に関連するログデータのみを参照したり、一連の処理が実行された順序を把握したりすることができるようになりログの解析が容易になる。また、ログデータには、例えば、リクエストの種別を特定する情報が付与されていてもよい。リクエストの種別を特定する情報とは、例えば、リクエスト名やリクエストから派生して実行される一連の処理を特定する処理ＩＤなどがある。これにより、情報収集装置２０１は、特定のクライアント装置１０２についてのログデータのうちの特定の種別のリクエストに関するログのみを収集できるようになる。なお、リクエストの種別を特定する情報は、例えば、クライアント装置１０２−ｊからサーバ１０１−ｉに送信されるリクエストデータ６００に含まれている。
【０１０４】
次に、図１５および図１６を用いて、図１４のレスポンスデータ１４００に含まれるログデータの具体例について説明する。
【０１０５】
図１５および図１６は、ログデータの具体例を示す説明図である。図１５に示すログデータにおいて、符号１５１０で示す箇所には、レスポンスデータ１４００を送信したサーバ１０１−ｉのＩＰアドレスが記載されている。ここでは、符号１５１０の箇所にはＩＰアドレスとして「１９２．１６８．５８．４」が記載されている。
【０１０６】
符号１５２１で示す箇所には、サーバ１０１−ｉが採取したログが記載されている。ここでは、符号１５２１の箇所には「ｔｒａｃｅｌｏｇ」が記載されており、サーバ１０１−ｉが採取したログはトレースログであることが示されている。
【０１０７】
符号１５２２で示す箇所には、サーバ１０１−ｉが採取したログの中から収集した特定の種別のログが記載されている。ここでは、符号１５２２の箇所にはサーバ１０１−ｉがトレースログの中から収集したデバッグログが記載されている。具体的には、符号１５２２の箇所にはログが生成された日時「２０１１／０６／２８  １１：４２：３５」と、ログが生成されたプロセス名「ｅｓｉｓｔａｒｔ」と、ログの種別「ＤＥＢＵＧ」が記載されている。また、符号１５２２の箇所にはログのＩＤ「ＤＥＢＵＧ９９９９９」と、ログの内容「ｘｘｘｘｘ」と、が記載されている。
【０１０８】
なお、符号１５３１で示す箇所には、符号１５２１で示す箇所と同様の内容が記載されている。符号１５３２で示す箇所には、符号１５２２で示す箇所と同様の内容が記載されている。具体的には、符号１５３１および符号１５３２で示す箇所には、サーバ１０１−ｉが採取したシーケンスログの中から収集したデバッグログが記載されている。
【０１０９】
図１６に示すログデータ通知要求６０２において、符号１６１０で示す箇所には、符号１５１０で示す箇所と同様にサーバ１０１−ｉのＩＰアドレスが記載されている。ここでは、符号１６１０の箇所にはＩＰアドレスとして「１９２．１６８．５８．４」が記載されている。
【０１１０】
符号１６２１および符号１６３１で示す箇所には、符号１５２１で示す箇所と同様の内容が記載されている。符号１６２２および符号１６３２で示す箇所には、符号１５２２で示す箇所と同様の内容が記載されている。
【０１１１】
具体的には、符号１６２１および符号１６２２で示す箇所には、サーバ１０１−ｉが採取したトレースログの中から収集したエラーログが記載されている。また、符号１６３１および符号１６３２で示す箇所には、サーバ１０１−ｉが採取したシーケンスログの中から収集したエラーログが記載されている。
【０１１２】
図９の説明に戻り、書込制御部９０６は、第１のログ情報および第２のログ情報の、クライアント装置１０２−ｊに対応する特定の記憶領域１５０への書き込みを制御する機能を有する。第２のログ情報は、第２の処理の実行に応じて出力されたログ、または、第２の処理の実行に応じて出力されたログの中から抽出部９０４によって抽出されたログである。
【０１１３】
具体的には、例えば、書込制御部９０６は、第２の処理の処理要求が受信された場合、一連の処理のうちの第２の処理が最後に実行される処理であるか否かを判定する。そして、書込制御部９０６は、最後に実行される処理であると判定された場合、クライアント装置１０２−ｊに第１および第２のログ情報を送信する。これにより、書込制御部９０６は、クライアント装置１０２−ｊ内の特定の記憶領域１５０に第１および第２のログ情報を書き込むようクライアント装置１０２−ｊに指示する。
【０１１４】
より具体的には、例えば、書込制御部９０６は、自サーバ１０１−ｉが実行した処理がクライアント装置１０２−ｊからのリクエスト本体６０１から派生した一連の処理の最後の処理であるか否かを判定する。そして、書込制御部９０６は、自サーバ１０１−ｉが実行した処理が最後の処理である場合、ログデータを含むレスポンスデータ１４００を生成して、送信部９０７にレスポンスデータ１４００をクライアント装置１０２−ｊへ送信させる。
【０１１５】
これにより、書込制御部９０６は、レスポンスデータ１４００に含まれるログデータをクライアント装置１０２−ｊ内の特定の記憶領域１５０へ書き込むように、クライアント装置１０２−ｊに指示する。レスポンスデータ１４００とは、例えば、図１４に示したデータである。これにより、書込制御部９０６は、ログデータをクライアント装置１０２−ｊに記録させることができる。
【０１１６】
書込制御部９０６は、第１および第２のログ情報を含む、一連の処理のうちの第３の処理の処理要求を、送信部９０７にシステム内の他のサーバ１０１−ｋへ送信させる機能を有する。ここで、第３の処理とは、リクエスト本体６０１から派生した一連の処理のうちの第２の処理の次に実行すべき処理である。ここで、第３の処理の処理要求とは、第２の処理を実行したサーバ１０１−ｉで生成されたリクエスト本体であり、例えば、図１３に示したリクエスト本体１３０１である。具体的には、例えば、書込制御部９０６は、第２の処理の処理要求が受信された場合、一連の処理のうちの第２の処理が最後に実行される処理であるか否かを判定する。そして、書込制御部９０６は、最後に実行される処理ではないと判定された場合、第１および第２のログ情報を含む、一連の処理のうちの第３の処理の処理要求を、送信部９０７にシステム内の他のサーバ１０１−ｋへ送信させる。
【０１１７】
より具体的には、例えば、書込制御部９０６は、自サーバ１０１−ｉが実行した処理がクライアント装置１０２−ｊからのリクエスト本体６０１から派生した一連の処理の最後の処理であるか否かを判定する。そして、書込制御部９０６は、自サーバ１０１−ｉが実行した処理が最後の処理ではない場合、ログデータを含むリクエストデータ１３００を生成して、送信部９０７にリクエストデータ１３００を、次の処理を実行する他のサーバ１０１−ｋへ送信させる。リクエストデータ１３００とは、例えば、図１３に示したデータである。これにより、書込制御部９０６は、自サーバ１０１−ｉで生成したログデータと、既に処理を実行したサーバ１０１−ｉで生成されたログデータと、を次の処理を実行する他のサーバ１０１−ｋに送信することで、次の処理を実行する他のサーバ１０１−ｋにログデータを集約させることができる。
【０１１８】
書込制御部９０６は、実行部９０３による第１の処理の実行に応じて出力される第１のログ情報を含む、一連の処理のうちの第２の処理の処理要求を、送信部９０７にシステム内の他のサーバ１０１−ｋへ送信させる機能を有する。具体的には、例えば、書込制御部９０６は、ログデータを含むリクエストデータが生成されている場合、送信部９０７に、リクエストデータを次の処理を実行する他のサーバ１０１−ｋへ送信させる。リクエストデータとは、例えば、図１２に示したリクエストデータ１２００である。
【０１１９】
なお、書込制御部９０６は、一連の処理が同期型の処理であれば、次の処理を実行する子サーバに、リクエストデータ１２００を送信する。また、書込制御部９０６は、一連の処理が非同期型の処理であれば次に処理を実行するサーバ１０１−ｉに、リクエストデータ１２００を送信する。これにより、書込制御部９０６は、自サーバ１０１−ｉで生成したログデータと、既に処理を実行したサーバ１０１−ｉで生成されたログデータと、を次の処理を実行する他のサーバ１０１−ｋに送信することで、次の処理を実行する他のサーバ１０１−ｋにログデータを集約させることができる。
【０１２０】
以上では、特定の記憶領域１５０がクライアント装置１０２−ｊにある場合について説明したが、特定の記憶領域１５０は、サーバ１０１−ｉ、またはストレージ装置１６０にあってもよい。この場合、クライアント装置１０２−ｊから受信したリクエストデータ６００には、ログデータ通知要求６０２は含まれていない。以下では、特定の記憶領域１５０がサーバ１０１−ｉ、またはストレージ装置１６０にある場合を例に挙げて、書込制御部９０６の機能について説明する。
【０１２１】
書込制御部９０６は、受信したリクエストデータ６００にログデータ通知要求６０２が含まれていない場合、複数のサーバ１０１−ｉの中から、特定の記憶領域１５０を有するサーバ１０１−ｉを特定する機能を有する。そして、書込制御部９０６は、特定されたサーバ１０１−ｉに第１および第２のログ情報を送信することにより、特定の記憶領域１５０に第１および第２のログ情報を書き込むようサーバ１０１−ｉに指示する機能を有する。
【０１２２】
具体的には、例えば、書込制御部９０６は、図１７に後述する書込先テーブルを参照することにより、ログデータを書き込む特定の記憶領域１５０を有する他のサーバ１０１−ｋを特定し、特定された他のサーバ１０１−ｋに、ログデータの書き込みを指示する。ログデータの書き込みを指示された他のサーバ１０１−ｋは、当該ログデータに関するクライアント装置１０２−ｊに対応付けた特定の記憶領域１５０を確保し、確保した記憶領域１５０にログデータを書き込む。このとき、例えば、他のサーバ１０１−ｋは、クライアント装置１０２−ｊに対応付けて特定の記憶領域１５０を記憶した記憶先テーブルを作成しておく。ログデータの書き込みを指示された他のサーバ１０１−ｋは、当該ログデータに関するクライアント装置１０２−ｊに対応付けた特定の記憶領域１５０が確保されている状態であれば、当該記憶先テーブルに基づいて、当該特定の記憶領域１５０にログデータを書き込む。
【０１２３】
他のサーバ１０１−ｋは、情報収集装置２０１から特定のクライアント装置１０２−ｊについてのログを要求された場合、当該記憶先テーブルに基づいて、当該クライアント装置１０２−ｊに対応付けられた特定の記憶領域１５０を参照することで、情報収集装置２０１にログデータを送信する。これにより、書込制御部９０６は、クライアント装置１０２−ｊに対応付けたログデータを他のサーバ１０１−ｋに記録させることができる。結果として、情報収集装置２０１からクライアント装置１０２−ｊについてのログデータを要求されたとき、クライアント装置１０２−ｊについてのログデータのみを特定して、情報収集装置２０１に送信することができるようになる。
【０１２４】
また、書込制御部９０６は、自サーバ１０１−ｉが特定された場合、自サーバ１０１−ｉ内の特定の記憶領域１５０に、第１および第２のログ情報を書き込む。これにより、書込制御部９０６は、ログデータを自サーバ１０１−ｉ内で記録しておくことができる。
【０１２５】
（書込先テーブルの記憶内容の一例）
ここで、図１７を用いて、書込制御部９０６によって特定の記憶領域１５０を有するサーバ１０１−ｉまたはストレージ装置１６０を特定する際に参照される書込先テーブルの記憶内容の一例について説明する。
【０１２６】
図１７は、書込先テーブルの記憶内容の一例を示す説明図である。図１７に示すように、書込先テーブル１７００は、クライアント装置ＩＤおよび記憶領域識別情報のフィールドを有する。書込先テーブル１７００は、各フィールドに情報を設定することで、各々のクライアント装置ＩＤのクライアント装置１０２−ｊに関連するログデータを記憶する特定の記憶領域１５０を有するサーバ１０１−ｉまたはストレージ装置１６０を識別する情報を、レコードとして記憶している。各レコードは、例えば、情報収集装置２０１の管理者によって予め設定される。
【０１２７】
ここで、クライアント装置ＩＤは、クライアント装置１０２−ｊを識別するＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）である。例えば、クライアント装置ＩＤとしては、ＩＰアドレスが採用される。記憶領域識別情報は、ログデータを書き込む特定の記憶領域１５０を識別する情報である。例えば、記憶領域識別情報としては、ログデータを書き込むサーバ１０１−ｉのＩＰアドレスが採用される。なお、書込先テーブル１７００は、例えば、ログ収集システム２００内の各サーバ１０１−１〜１０１−ｎが記憶している。また、同期型の一連の処理を実行する場合であれば、親サーバになりうるサーバ１０１−ｉのみが、書込先テーブル１７００を記憶していてもよい。
【０１２８】
サーバ１０１−ｉでは、書込先テーブル１７００を参照することで、ログデータを書き込ませるサーバ１０１−ｉまたはストレージ装置１６０を特定できるようになる。例えば、サーバ１０１−ｉは、書込先テーブル１７００のレコード１７０１を参照することで、ＩＰアドレス「１９２．１６８．１０．１」のクライアント装置１０２−ｊについてのログデータを、書き込ませるサーバ１０１−ｉまたはストレージ装置１６０を特定できる。ここでは、サーバ１０１−ｉは、ログデータを書き込ませるコンピュータは、ＩＰアドレス「１９２．１６８．５８．１」で識別されるコンピュータであることを特定できる。
【０１２９】
また、書込先テーブル１７００は、情報収集装置２０１に記憶されていてもよい。情報収集装置２０１では、書込先テーブル１７００を参照することで、ログを収集する対象のクライアント装置１０２−ｊについてのログデータが書き込まれた特定の記憶領域１５０を特定できるようになる。例えば、情報収集装置２０１は、書込先テーブル１７００のレコード１７０１を参照することで、ＩＰアドレス「１９２．１６８．１０．１」のクライアント装置１０２−ｊについてのログデータが書き込まれた特定の記憶領域１５０を特定できる。ここでは、情報収集装置２０１は、ログデータが書き込まれた特定の記憶領域１５０は、ＩＰアドレス「１９２．１６８．５８．１」で特定されるコンピュータにあることを特定できる。
【０１３０】
なお、上述した説明では、ログデータ通知要求６０２に出力ログのフィールドが含まれている場合について説明したが、これに限らない。例えば、クライアント装置１０２−ｊのＩＰアドレスと収集するログの種別とを関連付けたテーブルを各サーバ１０１−ｉが記憶しておき、各サーバ１０１−ｉで各クライアント装置１０２−ｊに対応する収集するログの種別を特定してもよい。
【０１３１】
これにより、クライアント装置１０２−ｊに対応する特定の記憶領域１５０に、クライアント装置１０２−ｊについてのログデータが集約される。そのため、情報収集装置２０１の管理者は、収集の対象にするクライアント装置１０２−ｊに対応する特定の記憶領域１５０を参照することで、ログデータを収集することができるようになる。このとき、他のクライアント装置１０２−ｊについてのログデータは収集されない。そのため、情報収集装置２０１の管理者は、ログデータの収集にかかる時間を短縮することができる。また、ログデータの収集によって使用される通信帯域を削減することができる。そして、情報収集装置２０１の管理者は、収集の対象にするクライアント装置１０２−ｊ以外のクライアント装置１０２−ｊのログデータを収集しないため、セキュリティを向上できる。
【０１３２】
情報収集装置２０１の管理者は、ログデータがクライアント装置１０２−ｊに記憶されている場合、クライアント装置１０２−ｊからログデータを収集する。このとき、情報収集装置２０１の管理者は、クライアント装置１０２−ｊにログデータの送信を要求することでログデータを自動収集してもよい。また、情報収集装置２０１の管理者は、クライアント装置１０２−ｊを操作することでログデータを記録媒体にコピーして、情報収集装置２０１で記録媒体からログデータを読み出してもよい。
【０１３３】
また、情報収集装置２０１の管理者は、ログデータがサーバ１０１−ｉまたはストレージ装置１６０に記憶されている場合、図１７に示した書込先テーブル１７００を参照して、ログデータの書込先を特定して、特定した書込先から、ログデータを収集する。このとき、情報収集装置２０１の管理者は、特定した書込先であるサーバ１０１−ｉにログデータの送信を要求することでログデータを自動収集してもよい。また、情報収集装置２０１の管理者は、ストレージ装置１６０からログデータを読み出してもよい。なお、情報収集装置２０１の管理者は、特定の記憶領域１５０から、特定の期間内に生成されたログデータのみを収集するようにしてもよい。
【０１３４】
（実施の形態にかかるクライアント装置１０２−ｊのリクエスト処理手順の一例）
次に、図１８を用いて、実施の形態にかかるクライアント装置１０２−ｊのリクエスト処理手順の一例について説明する。
【０１３５】
図１８は、実施の形態にかかるクライアント装置１０２−ｊのリクエスト処理手順の一例を示すフローチャートである。まず、クライアント装置１０２−ｊは、ログデータを要求するか否かを判定する（ステップＳ１８０１）。ここで、ログデータを要求しない場合（ステップＳ１８０１：Ｎｏ）、クライアント装置１０２−ｊは、ステップＳ１８０４に移行する。
【０１３６】
一方、ログデータを要求する場合（ステップＳ１８０１：Ｙｅｓ）、クライアント装置１０２−ｊは、ログデータ通知要求６０２を生成する（ステップＳ１８０２）。次に、クライアント装置１０２−ｊは、リクエストデータ６００を生成する（ステップＳ１８０３）。そして、クライアント装置１０２−ｊは、生成したリクエストデータ６００を送信する（ステップＳ１８０４）。
【０１３７】
次に、クライアント装置１０２−ｊは、レスポンスデータ１４００を受信したか否かを判定する（ステップＳ１８０５）。ここで、レスポンスデータ１４００を受信していない場合（ステップＳ１８０５：Ｎｏ）、クライアント装置１０２−ｊは、ステップＳ１８０５に戻り、レスポンスデータ１４００の受信を待つ。
【０１３８】
一方、レスポンスデータ１４００を受信した場合（ステップＳ１８０５：Ｙｅｓ）、クライアント装置１０２−ｊは、受信したレスポンスデータ１４００にログデータが含まれているか否かを判定する（ステップＳ１８０６）。ここで、ログデータが含まれていない場合（ステップＳ１８０６：Ｎｏ）、クライアント装置１０２−ｊは、ステップＳ１８０９に移行する。
【０１３９】
一方、ログデータが含まれている場合（ステップＳ１８０６：Ｙｅｓ）、クライアント装置１０２−ｊは、レスポンスデータ１４００の中からログデータを抽出する（ステップＳ１８０７）。次に、クライアント装置１０２−ｊは、抽出したログデータをログファイルに記録する（ステップＳ１８０８）。
【０１４０】
そして、クライアント装置１０２−ｊは、レスポンス処理を実行して（ステップＳ１８０９）、リクエスト処理を終了する。これにより、クライアント装置１０２−ｊは、サーバ１０１−ｉに処理を要求することができ、サーバ１０１−ｉから処理結果を受信することができる。
【０１４１】
（実施の形態にかかるサーバ１０１−ｉのレスポンス処理手順の一例）
次に、図１９を用いて、実施の形態にかかるサーバ１０１−ｉのレスポンス処理手順の一例について説明する。なお、レスポンス処理は、クライアント装置１０２−ｊからリクエストデータ６００を受信したサーバ１０１−ｉにより実行される処理であり、例えば、図１０または図１１に示したサーバ１０１−１により実行される処理である。
【０１４２】
図１９は、実施の形態にかかるサーバ１０１−ｉのレスポンス処理手順の一例を示すフローチャートである。まず、サーバ１０１−ｉは、リクエストデータ６００を受信したか否かを判定する（ステップＳ１９０１）。ここで、リクエストデータ６００を受信していない場合（ステップＳ１９０１：Ｎｏ）、サーバ１０１−ｉは、ステップＳ１９０１に戻り、リクエストデータ６００の受信を待つ。
【０１４３】
一方、リクエストデータ６００を受信した場合（ステップＳ１９０１：Ｙｅｓ）、サーバ１０１−ｉは、出力ログを特定する（ステップＳ１９０２）。次に、サーバ１０１−ｉは、処理を実行する（ステップＳ１９０３）。そして、サーバ１０１−ｉは、ログ抽出処理を実行する（ステップＳ１９０４）。
【０１４４】
次に、サーバ１０１−ｉは、リクエストデータ６００に基づいて実行すべき処理が同期型か否かを判定する（ステップＳ１９０５）。ここで、同期型である場合（ステップＳ１９０５：Ｙｅｓ）、サーバ１０１−ｉは、同期型呼出処理を実行し（ステップＳ１９０６）、レスポンス処理を終了する。
【０１４５】
一方、同期型でない場合（ステップＳ１９０５：Ｎｏ）、サーバ１０１−ｉは、非同期型呼出処理を実行し（ステップＳ１９０７）、レスポンス処理を終了する。これにより、サーバ１０１−ｉは、リクエストデータ６００に含まれるリクエスト本体６０１に応じた処理を実行することができる。
【０１４６】
（同期型呼出処理の具体的処理手順の一例）
次に、図２０を用いて、同期型呼出処理の具体的処理手順の一例について説明する。同期型呼出処理は、ステップＳ１９０６でサーバ１０１−ｉにより実行される処理である。また、同期型呼出処理は、図１０に示したサーバ１０１−１〜サーバ１０１−３により実行される処理である。
【０１４７】
図２０は、同期型呼出処理の具体的処理手順の一例を示すフローチャートである。まず、サーバ１０１−ｉは、自サーバ１０１−ｉが親サーバであるか否かを判定する（ステップＳ２００１）。ここで、親サーバでない場合（ステップＳ２００１：Ｎｏ）、サーバ１０１−ｉは、レスポンス本体とログデータとを含むレスポンスデータを生成する（ステップＳ２００２）。次に、サーバ１０１−ｉは、生成したレスポンスデータを親サーバに送信する（ステップＳ２００３）。そして、サーバ１０１−ｉは、同期型呼出処理を終了する。
【０１４８】
一方、親サーバである場合（ステップＳ２００１：Ｙｅｓ）、サーバ１０１−ｉは、リクエストデータを生成する（ステップＳ２００４）。次に、サーバ１０１−ｉは、生成したリクエストデータを子サーバに送信する（ステップＳ２００５）。そして、サーバ１０１−ｉは、送信したリクエストデータに応じたレスポンスデータを受信したか否かを判定する（ステップＳ２００６）。ここで、レスポンスデータを受信していない場合（ステップＳ２００６：Ｎｏ）、サーバ１０１−ｉは、ステップＳ２００６に戻り、レスポンスデータの受信を待つ。
【０１４９】
一方、レスポンスデータを受信した場合（ステップＳ２００６：Ｙｅｓ）、サーバ１０１−ｉは、すべての子サーバを呼び出したか否かを判定する（ステップＳ２００７）。ここで、すべての子サーバを呼び出していない場合（ステップＳ２００７：Ｎｏ）、サーバ１０１−ｉは、ステップＳ２００４に戻る。
【０１５０】
一方、すべての子サーバを呼び出した場合（ステップＳ２００７：Ｙｅｓ）、サーバ１０１−ｉは、子サーバからのレスポンス本体をマージする（ステップＳ２００８）。次に、サーバ１０１−ｉは、子サーバからのログデータをマージする（ステップＳ２００９）。そして、サーバ１０１−ｉは、レスポンスデータを生成する（ステップＳ２０１０）。
【０１５１】
次に、サーバ１０１−ｉは、生成したレスポンスデータをクライアント装置１０２−ｊに送信する（ステップＳ２０１１）。そして、サーバ１０１−ｉは、同期型呼出処理を終了する。これにより、サーバ１０１−ｉは、同期型である一連の処理を実行することができる。
【０１５２】
（非同期型呼出処理の具体的処理手順の一例）
次に、図２１を用いて、非同期型呼出処理の具体的処理手順の一例について説明する。非同期型呼出処理は、ステップＳ１９０７でサーバ１０１−ｉにより実行される処理である。また、非同期型呼出処理は、図１１に示したサーバ１０１−１〜サーバ１０１−３により実行される処理である。
【０１５３】
図２１は、非同期型呼出処理の具体的処理手順の一例を示すフローチャートである。まず、サーバ１０１−ｉは、自サーバ１０１−ｉが最後の非同期サーバ１０１−ｉか否かを判定する（ステップＳ２１０１）。ここで、自サーバ１０１−ｉが最後の非同期サーバ１０１−ｉである場合（ステップＳ２１０１：Ｙｅｓ）、サーバ１０１−ｉは、受信したリクエストデータ（リクエストデータ１３００）に、レスポンス本体（レスポンス本体１４０１）をマージする（ステップＳ２１０２）。次に、サーバ１０１−ｉは、ログデータ（ログデータＣ１４０２）をマージする（ステップＳ２１０３）。そして、サーバ１０１−ｉは、レスポンスデータ１４００を生成する（ステップＳ２１０４）。
【０１５４】
次に、サーバ１０１−ｉは、生成したレスポンスデータ１４００をクライアント装置１０２−ｊに送信する（ステップＳ２１０５）。そして、サーバ１０１−ｉは、非同期型呼出処理を終了する。
【０１５５】
一方、自サーバ１０１−ｉが最後の非同期サーバ１０１−ｉでない場合（ステップＳ２１０１：Ｎｏ）、サーバ１０１−ｉは、受信したリクエストデータに、レスポンス本体（レスポンス本体１２０２、またはレスポンス本体１３０２）をマージする（ステップＳ２１０６）。次に、サーバ１０１−ｉは、ログデータ（ログデータＡ１２０３、またはログデータＢ１３０３）をマージする（ステップＳ２１０７）。そして、サーバ１０１−ｉは、リクエストデータ（リクエストデータ１２００、またはリクエストデータ１３００）を生成する（ステップＳ２１０８）。
【０１５６】
次に、サーバ１０１−ｉは、生成したリクエストデータ（リクエストデータ１２００、またはリクエストデータ１３００）を他のサーバ１０１−ｋに送信する（ステップＳ２１０９）。そして、サーバ１０１−ｉは、非同期型呼出処理を終了する。これにより、サーバ１０１−ｉは、非同期型である一連の処理を実行することができる。
【０１５７】
（ログ抽出処理の具体的処理手順の一例）
次に、図２２を用いて、ログ抽出処理の具体的処理手順の一例について説明する。ログ抽出処理は、ステップＳ１９０４でサーバ１０１−ｉにより実行された処理である。なお、サーバ１０１−ｉにより採取されるログが複数あれば、ログ抽出処理は、それぞれのログを対象にして実行される。例えば、サーバ１０１−ｉによりトレースログおよびシーケンスログが採取された場合、ログ抽出処理は、トレースログおよびシーケンスログのそれぞれを対象にして実行される。
【０１５８】
図２２は、ログ抽出処理の具体的処理手順の一例を示すフローチャートである。まず、サーバ１０１−ｉは、ログデータ通知要求６０２に記載された収集すべきログの種別がエラーログか否かを判定する（ステップＳ２２０１）。ここで、収集すべきログの種別がエラーログである場合（ステップＳ２２０１：Ｙｅｓ）、サーバ１０１−ｉは、エラーログを抽出して（ステップＳ２２０２）、ログ抽出処理を終了する。
【０１５９】
一方、収集すべきログの種別がエラーログでない場合（ステップＳ２２０１：Ｎｏ）、サーバ１０１−ｉは、ログデータ通知要求６０２に記載された収集すべきログの種別が警告ログか否かを判定する（ステップＳ２２０３）。ここで、収集すべきログの種別が警告ログである場合（ステップＳ２２０３：Ｙｅｓ）、サーバ１０１−ｉは、エラーログおよび警告ログを抽出して（ステップＳ２２０４）、ログ抽出処理を終了する。
【０１６０】
一方、収集すべきログの種別が警告ログでない場合（ステップＳ２２０３：Ｎｏ）、サーバ１０１−ｉは、ログデータ通知要求６０２に記載された収集すべきログの種別が詳細ログか否かを判定する（ステップＳ２２０５）。ここで、収集すべきログの種別が詳細ログである場合（ステップＳ２２０５：Ｙｅｓ）、サーバ１０１−ｉは、エラーログ、警告ログおよび詳細ログを抽出して（ステップＳ２２０６）、ログ抽出処理を終了する。
【０１６１】
一方、収集すべきログの種別が詳細ログでない場合（ステップＳ２２０５：Ｎｏ）、サーバ１０１−ｉは、エラーログ、警告ログ、詳細ログおよびデバッグログを抽出して（ステップＳ２２０７）、ログ抽出処理を終了する。これにより、サーバ１０１−ｉは、クライアント装置１０２−ｊから要求された種別のログを抽出することができる。
【０１６２】
以上説明したように、実施の形態にかかるサーバ装置、システム、およびログ収集支援方法によれば、クライアント装置１０２−ｊに対応する特定の記憶領域１５０に、クライアント装置１０２−ｊについてのログデータが集約される。そのため、情報収集装置２０１の管理者は、収集の対象にするクライアント装置１０２−ｊに対応する特定の記憶領域１５０を参照することで、収集の対象にするクライアント装置１０２−ｊについてのログデータを収集することができるようになる。
【０１６３】
また、情報収集装置２０１の管理者は、一連の処理を実行したサーバ１０１−ｉを特定して特定したサーバ１０１−ｉからログデータを収集する場合とは異なり、サーバ１０１−ｉを特定する作業を削減できる。また、情報収集装置２０１の管理者は、各サーバ１０１−ｉで生成されたログデータをそれぞれのサーバ１０１−ｉから収集する場合に比して収集されるログデータの量が少なくなるため、ログデータの収集にかかる時間を短縮することができる。また、各サーバ１０１−ｉで生成されたログデータをそれぞれのサーバ１０１−ｉから収集する場合に比して収集されるログデータの量が少なくなるため、ログデータの収集による通信量が削減され、ネットワーク２１０の負荷が軽減される。
【０１６４】
また、情報収集装置２０１の管理者またはクライアント装置１０２−ｊの利用者は、サーバ１０１−ｉに収集させるログの種別を設定することで、収集するログデータの量を少なくすることができる。また、サーバ１０１−ｉは、サーバ１０１−ｉで収集するログの種別が設定されているため、収集しなくてよいログを収集せずにすみ、作業負担を軽減できる。
【０１６５】
また、情報収集装置２０１の管理者は、収集の対象にするクライアント装置１０２−ｊ以外のクライアント装置１０２−ｊのログデータを収集しないようにできるため、セキュリティを向上できる。具体的には、例えば、情報収集装置２０１において、クライアント装置１０２−ｊごとにログデータの収集についての認証を行うようにしておき、ログデータの収集について認証された場合にのみログデータを収集できるようにして、セキュリティを向上できる。
【０１６６】
また、サーバ１０１−ｉは、集約したログデータをクライアント装置１０２−ｊで記憶させておく。そして、情報収集装置２０１の管理者は、クライアント装置１０２−ｊからログデータを収集することができる。そのため、情報収集装置２０１の管理者は、各サーバ１０１−ｉで生成されたログデータをそれぞれのサーバ１０１−ｉから収集する場合とは異なり、例えば、プロビジョニングによりクラウド環境に含まれるサーバ１０１−ｉが回収された場合でも、ログデータを収集できる。また、情報収集装置２０１の管理者は、プロビジョニングによりクラウド環境に追加されたサーバ１０１−ｉがあることを知らなくても、ログデータを収集できる。
【０１６７】
また、サーバ１０１−ｉは、集約したログデータを、いずれかのサーバ１０１−ｉでクライアント装置１０２−ｊごとに分類して記憶させておく。そして、情報収集装置２０１の管理者は、サーバ１０１−ｉからログデータを収集することができる。そのため、それぞれのサーバ１０１−ｉで生成したログデータを記憶しておく場合に比して、ログデータの管理が容易になる。例えば、プロビジョニングによって、クラウド環境に含まれるサーバ１０１−ｉが回収される際に、回収されるサーバ１０１−ｉから他のサーバ１０１−ｋにログデータを退避することも容易にできるようになる。このとき、特定のクライアント装置１０２−ｊについてのログデータを退避させることも可能になる。
【０１６８】
また、サーバ１０１−ｉは、クライアント装置１０２−ｊからのリクエストから派生して実行される一連の処理の実行に応じて、各々のサーバ１０１−ｉから出力されるログデータを集約してから、特定の記憶領域１５０への書き込みを指示する。そのため、各々のサーバ１０１−ｉから出力されるログデータの書き込みを、それぞれのサーバ１０１−ｉで個別に指示する場合に比べて、サーバ１０１−ｉと、記憶領域との間の通信回数（および特定の記憶領域１５０に対する書込処理の回数）を削減することができる。
【０１６９】
また、クライアント装置１０２−ｊにログデータを記憶させておく場合、クライアント装置１０２−ｊでログデータに処理を加えることができる。そのため、クライアント装置１０２−ｊが、自装置の正常動作をチェックし、正常動作が確認された場合にログデータを消去するといったことができ、特定の記憶領域１５０の使用量を削減できる。
【０１７０】
また、情報収集装置２０１の管理者は、ログデータが一連の処理ごとに集約されて特定の記憶領域１５０に書き込まれているため、情報収集装置２０１の管理者は、一連の処理についてのログのみを容易に抽出できる。ログデータが生成順に集約されて特定の記憶領域１５０に書き込まれているため、クライアント装置１０２−ｊからのリクエスト本体６０１から派生した一連の処理についての各サーバ１０１−ｉでの処理の順序を容易に把握できる。
【０１７１】
なお、本実施の形態で説明したログ収集支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ログ収集支援プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本ログ収集支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１７２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１７３】
（付記１）クライアント装置からのリクエストに応じて一連の処理を実行可能な複数のサーバ装置を含むシステム内のサーバ装置であって、
前記一連の処理のうちの第１の処理の実行に応じて出力される第１のログ情報を含む、前記一連の処理のうちの第２の処理の処理要求を、前記システム内の他のサーバ装置から受信した場合に、前記第２の処理を実行するとともに、前記第２の処理の実行内容に関する第２のログ情報を出力する実行部と、
前記第１のログ情報および前記第２のログ情報の、前記クライアント装置に対応する特定の記憶領域への書き込みを制御する書込制御部と、
を備えることを特徴とするサーバ装置。
【０１７４】
（付記２）前記書込制御部は、
前記クライアント装置に前記第１および第２のログ情報を送信することにより、前記クライアント装置内の前記特定の記憶領域に前記第１および第２のログ情報を書き込むよう前記クライアント装置に指示することを特徴とする付記１に記載のサーバ装置。
【０１７５】
（付記３）前記複数のサーバ装置の中から、前記特定の記憶領域を有するサーバ装置を特定する特定部を備え、
前記書込制御部は、
前記特定部によって特定された前記サーバ装置に前記第１および第２のログ情報を送信することにより、前記特定の記憶領域に前記第１および第２のログ情報を書き込むよう前記サーバ装置に指示することを特徴とする付記１または２に記載のサーバ装置。
【０１７６】
（付記４）前記書込制御部は、
前記特定部によって自サーバ装置が特定された場合、前記特定の記憶領域に前記第１および第２のログ情報を書き込むことを特徴とする付記３に記載のサーバ装置。
【０１７７】
（付記５）前記第２の処理の処理要求が受信された場合、前記一連の処理のうちの前記第２の処理が最後に実行される処理であるか否かを判定する判定部を備え、
前記書込制御部は、
前記判定部によって前記第２の処理が最後に実行される処理であると判定された場合、前記第１および第２のログ情報の前記特定の記憶領域への書き込みを制御することを特徴とする付記１〜４のいずれか一つに記載のサーバ装置。
【０１７８】
（付記６）前記判定部によって前記第２の処理が最後に実行される処理ではないと判定された場合、前記第１および第２のログ情報を含む、前記一連の処理のうちの第３の処理の処理要求を、前記システム内の他のサーバ装置に送信する送信部を備えることを特徴とする付記５に記載のサーバ装置。
【０１７９】
（付記７）前記実行部は、
前記リクエストを前記クライアント装置から受信した場合、前記第１の処理を実行するとともに、前記第１の処理の実行内容に関する第１のログ情報を出力し、
前記送信部は、
前記第１のログ情報を含む、前記一連の処理のうちの第２の処理の処理要求を、前記システム内の他のサーバ装置に送信することを特徴とする付記６に記載のサーバ装置。
【０１８０】
（付記８）前記第２の処理の処理要求を受信した場合に、前記実行部によって出力されるログ情報の中から、前記リクエストから特定される所定の種別の前記第２のログ情報を抽出する抽出部を備え、
前記書込制御部は、
前記第１のログ情報および前記抽出部によって抽出された前記第２のログ情報の、前記特定の記憶領域への書き込みを制御することを特徴とする付記１〜７のいずれか一つに記載のサーバ装置。
【０１８１】
（付記９）クライアント装置からのリクエストに応じて一連の処理を実行可能な第１のサーバ装置および第２のサーバ装置を含むシステムであって、
前記第１のサーバ装置は、
前記一連の処理のうちの第１の処理を実行するとともに、前記第１の処理の実行内容に関する第１のログ情報を出力し、前記第１のログ情報を含む、前記一連の処理のうちの第２の処理の処理要求を、前記第２のサーバ装置に送信し、
前記第２のサーバ装置は、
前記第２の処理の処理要求を受信した場合に、前記第２の処理を実行するとともに、前記第２の処理の実行内容に関する第２のログ情報を出力し、前記第２の処理の処理要求に含まれる前記第１のログ情報および前記第２のログ情報の、前記クライアント装置に対応する特定の記憶領域への書き込みを制御することを特徴とするシステム。
【０１８２】
（付記１０）クライアント装置からのリクエストに応じて一連の処理を実行可能な複数のサーバ装置を含むシステム内のサーバ装置が、
前記一連の処理のうちの第１の処理の実行に応じて出力される第１のログ情報を含む、前記一連の処理のうちの第２の処理の処理要求を、前記システム内の他のサーバ装置から受信した場合に、前記第２の処理を実行するとともに、前記第２の処理の実行内容に関する第２のログ情報を出力する実行工程と、
前記第１のログ情報および前記第２のログ情報の、前記クライアント装置に対応する特定の記憶領域への書き込みを制御する書込制御工程と、
を実行することを特徴とするログ収集支援方法。
【０１８３】
（付記１１）クライアント装置からのリクエストに応じて一連の処理を実行可能な複数のサーバ装置を含むシステム内のサーバ装置に、
前記一連の処理のうちの第１の処理の実行に応じて出力される第１のログ情報を含む、前記一連の処理のうちの第２の処理の処理要求を、前記システム内の他のサーバ装置から受信した場合に、前記第２の処理を実行するとともに、前記第２の処理の実行内容に関する第２のログ情報を出力する実行工程と、
前記第１のログ情報および前記第２のログ情報の、前記クライアント装置に対応する特定の記憶領域への書き込みを制御する書込制御工程と、
を実行させることを特徴とするログ収集支援プログラム。
【符号の説明】
【０１８４】
１０１−１〜１０１−ｎ  サーバ
１０２−１〜１０２−ｍ  クライアント装置
１５０  特定の記憶領域
２０１  情報収集装置
４０１  設定部
４０２  生成部
４０３  送信部
４０４  受信部
４０５  記録部
９０１  受信部
９０２  特定部
９０３  実行部
９０４  抽出部
９０５  生成部
９０６  書込制御部
９０７  送信部
【図１】
2013045256.tif 000003
【図２】
2013045256.tif 000004
【図３】
2013045256.tif 000005
【図４】
2013045256.tif 000006
【図５】
2013045256.tif 000007
【図６】
2013045256.tif 000008
【図７】
2013045256.tif 000009
【図８】
2013045256.tif 000010
【図９】
2013045256.tif 000011
【図１０】
2013045256.tif 000012
【図１１】
2013045256.tif 000013
【図１２】
2013045256.tif 000014
【図１３】
2013045256.tif 000015
【図１４】
2013045256.tif 000016
【図１５】
2013045256.tif 000017
【図１６】
2013045256.tif 000018
【図１７】
2013045256.tif 000019
【図１８】
2013045256.tif 000020
【図１９】
2013045256.tif 000021
【図２０】
2013045256.tif 000022
【図２１】
2013045256.tif 000023
【図２２】
2013045256.tif 000024