"複数のサービス提供サーバと、前記サービス提供サーバからログを収集するログ収集サーバと、を有してなる分散処理システムであって、前記ログ収集サーバは、プログラム毎に、プログラム間の依存関係に応じて予め決められた、そのプログラムに障害が発生した時にログを収集する順序を表す第1のリストと、前記サービス提供サーバ上のプログラムに障害が発生した場合、障害が発生したプログラムについて前記第1のリストに表される順序に従って前記サービス提供サーバからログを収集するログ収集部と、を有する分散処理システム。前記ログ収集サーバは、グループ毎に、そのグループに属するサービス提供サーバを表す第2のリストを有し、前記ログ収集部は、前記サービス提供サーバ上のプログラムに障害が発生した場合、障害が発生したサービス提供サーバと同じグループに属する全てのサービス提供サーバからログを収集する、請求項1に記載の分散処理システム。前記ログ収集部は、前記サービス提供サーバ上のプログラムに障害が発生した場合、最初に、障害が発生したサービス提供サーバからログを収集し、その後に、障害が発生したサービス提供サーバと同じグループに属する他のサービス提供サーバからログを収集する、請求項2に記載の分散処理システム。前記サービス提供サーバは、自己のサービス提供サーバ上のプログラムに障害が発生したことを表すアラームを送信するアラーム送信部を有し、前記分散処理システムは、前記サービス提供サーバから前記アラームを受信し表示するアラーム監視サーバを有し、前記ログ収集部は、障害が発生したサービス提供サーバ上のプログラムに関連するログを収集する指示が入力されたことをトリガーとして、前記サービス提供サーバからログを収集する、請求項1から3のいずれか1項に記載の分散処理システム。前記サービス提供サーバは、自己のサービス提供サーバ上のプログラムに障害が発生したことを表すアラームを送信するアラーム送信部を有し、前記ログ収集サーバは、前記サービス提供サーバから前記アラームを受信するアラーム受信部を有し、前記ログ収集部は、前記アラームを受信したことをトリガーとして、前記サービス提供サーバからログを収集する、請求項1から3のいずれか1項に記載の分散処理システム。サービス提供サーバからログを収集するログ収集サーバであって、プログラム毎に、プログラム間の依存関係に応じて予め決められた、そのプログラムに障害が発生した時にログを収集する順序を表す第1のリストと、前記サービス提供サーバ上のプログラムに障害が発生した場合、障害が発生したプログラムについて前記第1のリストに表される順序に従って前記サービス提供サーバからログを収集するログ収集部と、を有するログ収集サーバ。サービス提供サーバからログを収集するログ収集サーバが行うログ収集方法であって、プログラム毎に、プログラム間の依存関係に応じて予め決められた、そのプログラムに障害が発生した時にログを収集する順序を表す第1のリストを登録し、前記サービス提供サーバ上のプログラムに障害が発生した場合、障害が発生したプログラムについて前記第1のリストに表される順序に従って前記サービス提供サーバからログを収集する、ログ収集方法。請求項7に記載のログ収集方法を前記ログ収集サーバに実行させるためのプログラム。しかし、非特許文献1,2に記載の技術においては、ログを一括して収集した後に解析を開始するため、全てのログを回収するまで解析に着手できなかった。分散処理システムを構成する複数のサーバから大容量のログを収集するには長い時間を要する場合によっては数日を要するため、障害発生時に全ログの到着を待って解析に着手していては、障害原因の特定が遅れてしまう。そこで、本発明の目的は、プログラムに障害が発生した場合に、解析者がログの到着を待つ時間を短縮することができる分散処理システム、ログ収集サーバ、ログ収集方法、プログラムを提供することにある。本発明の分散処理システムは、複数のサービス提供サーバと、前記サービス提供サーバからログを収集するログ収集サーバと、を有してなる分散処理システムであって、前記ログ収集サーバは、プログラム毎に、プログラム間の依存関係に応じて予め決められた、そのプログラムに障害が発生した時にログを収集する順序を表す第1のリストと、前記サービス提供サーバ上のプログラムに障害が発生した場合、障害が発生したプログラムについて前記第1のリストに表される順序に従って前記サービス提供サーバからログを収集するログ収集部と、を有する。本発明のログ収集サーバは、サービス提供サーバからログを収集するログ収集サーバであって、プログラム毎に、プログラム間の依存関係に応じて予め決められた、そのプログラムに障害が発生した時にログを収集する順序を表す第1のリストと、前記サービス提供サーバ上のプログラムに障害が発生した場合、障害が発生したプログラムについて前記第1のリストに表される順序に従って前記サービス提供サーバからログを収集するログ収集部と、を有する。本発明のログ収集方法は、サービス提供サーバからログを収集するログ収集サーバが行うログ収集方法であって、プログラム毎に、プログラム間の依存関係に応じて予め決められた、そのプログラムに障害が発生した時にログを収集する順序を表す第1のリストを登録し、前記サービス提供サーバ上のプログラムに障害が発生した場合、障害が発生したプログラムについて前記第1のリストに表される順序に従って前記サービス提供サーバからログを収集する。本発明のプログラムは、前記ログ収集方法を前記ログ収集サーバに実行させるためのものである。本発明によれば、プログラム毎に、プログラム間の依存関係に応じて、そのプログラムに障害が発生した時のログ収集する順序を予め決めておき、障害発生時には、その順序でログを収集する。これにより、障害発生時には、解析者が必要とする順序でログを自動的に収集することができ、解析者がログの収集を待つ時間を短縮できるという効果が得られる。1本発明の概要最初に、本発明の概要について説明する。ここでは、1台のサーバにおいて、P1、P2、P3の3個のプログラムが動作するケースを考える。本ケースでは、P1、P2、P3の依存関係は、図1に示すように、P1がP2を使用し、P2がP3を使用するという関係になっている。また、図2に示すように、障害アラームが発生したプログラムがP1、障害の真の原因となる不具合があるプログラムがP3だとする。この場合、解析者は、P1の障害の原因を特定するため、まず、P1のログを解析する。P1のログを解析した結果、障害の原因がP1ではない場合、次に、解析者は、P1が使用するP2のログを解析する。P2のログを解析した結果、障害の原因がP2ではない場合、次に、解析者は、P2が使用するP3のログを解析する。そして、P3のログを解析した結果、障害の真の原因がP3の不具合であることを特定する。上記のケースでは、解析者がログを必要とする順序は、P1→P2→P3の順序である。そのため、P1→P2→P3の順序でログを収集すれば、解析者がログの到着を待つ時間を短縮できる。そこで、本発明では、図3に示すように、プログラム毎に、プログラム間の依存関係に応じて、そのプログラムに障害が発生した時のログ収集する順序を予め決めておき、障害発生時には、その順序でログを収集する。これにより、障害発生時には、解析者が必要とするP1→P2→P3の順序でログを自動的に収集することができ、解析者がログの収集を待つ時間を短縮できる。一方、プログラム間の依存関係を考慮せずにログを収集した場合、例えば、最初にP1のログ、次にP3のログ、最後にP2のログを収集した場合を考える。この場合には、解析者は、P1のログを解析後、P2のログを解析しようとするが、この時点ではP3のログしか収集できていない可能性がある。その場合には、解析者は、P2のログが到着するのを待つ必要があり、解析作業の進捗を阻害してしまう。なお、上記のケースは、サーバが1台の例であるが、分散処理システムでは、図4に示すように、各プログラムは複数のサーバ上で稼動し、かつ、それらの複数のサーバが協調して動作する。各プログラムのログは、大容量であり、かつ、複数のサーバに分散して蓄積されるため、障害発生時に全てのログを収集するには非常に長い時間を要する。障害発生時には、一刻も早く原因を特定する必要があり、ログ収集にかける時間は短ければ短いほど好ましい。ただ、解析者は、大容量のログの全てを一度に解析できるわけではないため、解析者が解析する順序でログを提供できれば、解析者がログの到着を待つ時間を短縮でき、解析作業の進捗を阻害することはない。そのため、本発明では、図3のログ収集順序に従って、まず、サーバ1~NのP1のログ、次に、サーバ1~NのP2のログ、最後に、サーバ1~NのP3のログの順序で収集して解析者に提供する。これにより、解析者がログの到着を待つ時間を短縮することができる。2本発明の実施形態続いて、本発明の実施形態について説明する。2-1第1の実施形態図5に、本実施形態の分散処理システムの構成例を示す。図5に示すように、本実施形態の分散処理システムは、複数台より具体的には数百台以上のサービス提供サーバ以下、サーバと表記した場合にはサービス提供サーバを意味する10と、アラーム監視サーバ20と、ログ収集サーバ30と、を有している。サーバ10は、同一サービスを提供するグループ毎に分類される。サーバ10は、障害発生時に備えて解析に必要なログを蓄積している。なお、図5において、Pziは、グループzの各サーバ10にインストールされたi個目のプログラムz=A,B,、i=1,2,であり、また、Lziは、プログラムPziのログz=A,B,、i=1,2,である以下の図面において同じ。サーバ10は、自己のサービス提供サーバ上のプログラムに障害が発生した場合、アラームを送信するアラーム送信部11を有している。なお、アラームは、自己のサーバ10を識別する情報と障害が発生したプログラムを識別する情報を含むものとする。アラーム監視サーバ20は、障害が発生したサーバ10からアラームを受信するアラーム受信部21と、アラーム受信部21が受信したアラームを表示するアラーム表示部22と、を有している。ログ収集サーバ30は、障害発生時にサーバ10からログを収集するログ収集部31と、サーバ10から収集したログを格納するログ格納部32と、ログ収集順序リスト33と、サーバリスト34と、を有している。図6に、ログ収集順序リスト33の例を示す。図6に示すように、ログ収集順序リスト33は、プログラム毎に、プログラム間の依存関係に応じて予め決められた、そのプログラムに障害が発生した時にログを収集する順序を表す第1のリストである。図7に、サーバリスト34の例を示す。図7に示すように、サーバリスト34は、グループ毎に、そのグループに属するサーバ10の情報サーバ名、IPアドレス等を表す第2のリストである。分散処理システムでは、基本的には、グループ単位でサービスを提供し、同一グループに属するサーバ10間で協調動作を行う。そのため、ログ収集部31は、サーバ10で障害が発生した場合、そのサーバ10と同じグループに属する全てのサーバ10からログを収集する。以下に、本実施形態の分散処理システムの動作について説明する。図8に、本実施形態の分散処理システムにおいて、サーバ10-A1上で動作するプログラムPA1に障害が発生した時の動作例を説明するシーケンスチャートを示す。図8に示すように、各プログラムPziは、ログLziをサーバ10に常時出力しているステップA1。ここで、サーバ10-A1上のプログラムPA1に障害が発生したとするステップA2。すると、サーバ10-A1のアラーム送信部11は、アラーム監視サーバ20にアラームを送信するステップA3。アラーム監視サーバ20内では、アラーム受信部21は、アラームを受信すると、そのアラームをアラーム表示部22に表示するステップA4。運用者20Aは、アラーム監視サーバ20のアラーム表示部22を監視することにより、サーバ10-A1上のプログラムPA1にて障害が発生したことを確認するステップA5。次に、運用者20Aは、ログ収集サーバ30のログ収集部31に対し、サーバ10-A1のプログラムPA1に関連するログの収集を指示するステップA6。すると、ログ収集部31は、後述する図9に示すフローに従って、サーバ10-A1と同じグループに属する全てのサーバ10からログを収集し、収集したログをログ格納部32に格納するステップA7。解析者30Aは、ログLA1が収集され次第、解析を開始するステップA8。ここでは、ログ収集部31により、ログはLA1→LA2→LA3→LAXの順序で収集される。そのため、障害の真の原因がPA1でなかった場合、解析者30Aは、LA2→LA3の順序でログを解析する。図9に、ログ収集部31のログ収集動作の動作例を説明するフローチャートを示す。図9に示すように、まず、ログ収集部31は、NとXを初期化してそれぞれ1にするステップB1。次に、ログ収集部31は、ログ収集順序リスト33から、プログラムPA1の障害発生時にX番目に収集すべき対象ログを特定するステップB2。次に、ログ収集部31は、サーバリスト34から、障害が発生したサーバ10-A1が属するグループAのN番目に収集すべき対象サーバを特定するステップB3。なお、N番目のサーバは、例えば、サーバリスト34に記載されたサーバ名の数字部分の順序や、サーバリスト34の記載の順序等で判断する。次に、ログ収集部31は、対象サーバから対象ログを収集するステップB4。次に、ログ収集部31は、NをインクリメントしステップB5、グループAの中に対象ログを未収集の未収集サーバがあるか否かを判断しステップB6、未収集のサーバがあればステップB6のYES、ステップB3に戻る。一方、グループAの中に未収集サーバがなければステップB6のNO、ログ収集部31は、Xをインクリメントすると共にNを初期化して1にしステップB7、プログラムPA1の障害発生時に収集すべきログの中に、未収集ログがあるか否かを判断しステップB8、未収集ログがあればステップB8のYES、ステップB2に戻り、未収集ログがなければステップB8のNO、処理を終了する。上述したように本実施形態によれば、プログラム毎に、プログラム間の依存関係に応じて、そのプログラムに障害が発生した時のログ収集する順序を予め決めておき、障害発生時には、その順序でログを収集する。これにより、障害発生時には、解析者が必要とする順序でログを自動的に収集することができ、解析者がログの収集を待つ時間を短縮できる。2-2第2の実施形態本実施形態の分散処理システムは、第1の実施形態と構成自体は同様であるが、動作が第1の実施形態とは異なる。すなわち、第1の実施形態においては、障害が発生したサーバ10と同じグループに属するサーバ10からログを収集する際に、サーバ名の数字部分の順序やサーバリスト34に記載された順序でログを収集していた。これに対して、本実施形態においては、最初に、障害が発生したサーバ10からログを収集し、その後に、障害が発生したサーバ10と同じグループに属する他のサーバ10からログを収集する。以下、本実施形態の分散処理システムの動作について説明する。なお、本実施形態は、第1の実施形態と比較して、ログ収集部31のログ収集動作が異なり、その他の動作は同様である。そのため、以下では、本実施形態のログ収集動作の動作例についてのみ、図10を参照して説明する。図10に示すように、まず、ログ収集部31は、障害が発生したサーバ10-A1を、最初にログを収集すべきサーバと決定するステップC1。次に、ログ収集部31は、Xを初期化して1にするステップC2。次に、ログ収集部31は、ログ収集順序リスト33から、プログラムPA1の障害発生時にX番目に収集すべき対象ログを特定するステップC3。次に、ログ収集部31は、サーバ10-A1から対象ログを収集するステップC4。次に、ログ収集部31は、XをインクリメントしステップC5、プログラムPA1の障害発生時に収集すべきログの中に、未収集ログがあるか否かを判断しステップC6、未収集ログがあればステップC6のYES、ステップC3に戻り、未収集ログがなければステップC6のNO、ステップC7に進む。以降、図9に示したステップB1~B8と同様のステップC7~C14の処理を行う。上述したように本実施形態によれば、障害が発生したサーバ10から最初にログを収集するため、障害が発生したサーバ10のログを優先して解析することができる。その他の効果は第1の実施形態と同様である。2-3第3の実施形態図11に、本実施形態の分散処理システムの構成例を示す。図11に示すように、本実施形態の分散処理システムは、図5に示した第1の実施形態と比較して、アラーム監視サーバ20を削除した点と、ログ収集サーバ30にアラーム受信部35を追加した点と、が異なる。第1の実施形態においては、運用者20Aがアラーム監視サーバ20を監視し、アラームを確認した場合にログ収集サーバ30にログ収集を手動で指示し、ログ収集サーバ30は、運用者20Aの指示をトリガーとしてログを収集していた。これに対して、本実施形態においては、各サーバ10からログ収集サーバ30に直接アラームを送信し、ログ収集サーバ30は、アラームの受信をトリガーとして、そのアラームに関連するログを自動で収集する。以下に、本実施形態の分散処理システムの動作について説明する。図12に、本実施形態の分散処理システムにおいて、サーバ10-A1上で動作するプログラムPA1に障害が発生した時の動作例を説明するシーケンスチャートを示す。図12に示すように、各プログラムPziは、ログLziをサーバ10に常時出力しているステップD1。ここで、サーバ10-A1上のプログラムPA1に障害が発生したとするステップD2。すると、サーバ10-A1のアラーム送信部11は、ログ収集サーバ30にアラームを送信するステップD3。ログ収集サーバ30内では、アラーム受信部35は、アラームを受信すると、そのアラームに関連するログの収集をログ収集部31に指示するステップD4。すると、ログ収集部31は、上述した図9または図10に示すフローに従って、サーバ10-A1と同じグループに属する全てのサーバ10からログを収集し、収集したログをログ格納部32に格納するステップD5。解析者30Aは、ログLA1が収集され次第、解析を開始するステップD6。ここでは、ログ収集部31により、ログはLA1→LA2→LA3→LAXの順序で収集される。そのため、障害の真の原因がPA1でなかった場合、解析者30Aは、LA2→LA3の順序でログを解析する。上述したように本実施形態によれば、各サーバ10からログ収集サーバ30に直接アラームを送信するため、運用者が手動で指示をすることなく、アラームに関連するログを自動で収集することができる。その他の効果は第1または第2の実施形態と同様である。"