(57)【要約】【課題】ログ出力を行う事象に対して、クライアント装置と通信を行うことで順序情報を一意に設定し、負荷の少ないログ出力装置にログ及び順序情報を送信することで、ログの時系列順序を確保する。【解決手段】各出力先選択装置（ディストリビュータ）２は、複数のクライアント１、ログ出力装置（ロガー）３と接続され、自己の負荷状況をモニタし、クライアント１からのログ出力指示に対して時系列の順序情報（シリアル番号など）を付与し、前記負荷状況及び順序情報をクライアント１に送信する。クライアント１は、受信した負荷状況に基づき負荷が最も少ないディストリビュータ２を選択すると共に、前記順序情報の最大値を選択し、選択したディストリビュータ２にログを送信し、全てのディストリビュータ２に前記順序情報の最大値を送信する。前記ログが送信されたディストリビュータ２は、負荷の最も少ないロガー３を選択して前記ログ及び順序情報を送信する。【選択図】図１
2006018701.tif 000002
【特許請求の範囲】
【請求項１】
発生した事象のログ出力を指示する複数のクライアント装置と、ログを記憶手段に出力する複数のログ出力装置と、前記クライアント装置から送信されたログの出力先を前記複数のログ出力装置から選択する複数の出力先選択装置とを有し、前記クライアント装置と出力先選択装置とログ出力装置とが接続されたログ出力システムであって、前記各出力先選択装置は、前記クライアント装置からのログ出力指示に対して時系列の順序情報を付与する手段と、該順序情報を前記クライアント装置に送信する手段とを備え、該クライアント装置は、前記各出力先選択装置から受信した順序情報の最大値を選択する手段と、前記複数の出力先選択装置のいずれかにログを送信すると共に、前記順序情報の最大値を全ての前記出力先選択装置に送信する手段とを備え、前記出力先選択装置間で前記ログの順序情報を共有できるようにしたことを特徴とするログ出力システム。
【請求項２】
発生した事象のログ出力を指示する複数のクライアント装置と、ログを記憶手段に出力する複数のログ出力装置と、前記クライアント装置から送信されたログの出力先を前記複数のログ出力装置から選択する複数の出力先選択装置とを有し、前記クライアント装置と出力先選択装置とログ出力装置とが接続されたログ出力システムであって、前記各出力先選択装置は、自己の負荷状況をモニタする手段と、前記クライアント装置からのログ出力指示に対して時系列の順序情報を付与する手段と、前記負荷状況及び順序情報を前記クライアント装置に送信する手段とを備え、該クライアント装置は、前記各出力先選択装置から受信した負荷状況に基づいて負荷が最も少ない出力先選択装置を選択する手段と、前記各出力先選択装置から受信した順序情報の最大値を選択する手段と、前記選択した出力先選択装置にログを送信すると共に、前記順序情報の最大値を全ての前記出力先選択装置に送信する手段とを備え、前記出力先選択装置間で前記ログの順序情報を共有できるようにしたことを特徴とするログ出力システム。
【請求項３】
請求項１又は２に記載のログ出力システムにおいて、前記各ログ出力装置は、自己の負荷状況をモニタする手段を備え、前記出力先選択装置は、前記各ログ出力装置の負荷状況に基づいて負荷が最も少ないログ出力装置を選択する手段と、該選択したログ出力装置に前記クライアント装置からのログ及び該ログの順序情報を送信する手段とを備えていることを特徴とするログ出力システム。
【請求項４】
発生した事象のログ出力を指示する複数のクライアント装置と、ログを記憶手段に出力する複数のログ出力装置と、前記クライアント装置から送信されたログの出力先を前記複数のログ出力装置から選択する複数の出力先選択装置とを有し、前記クライアント装置と出力先選択装置とログ出力装置とが接続されたシステムにおけるログ出力方法であって、前記各出力先選択装置が、前記クライアント装置からのログ出力指示に対して時系列の順序情報を付与するステップと、該順序情報を前記クライアント装置に送信するステップとを有し、該クライアント装置が、前記各出力先選択装置から受信した順序情報の最大値を選択するステップと、いずれかの前記出力先選択装置にログを送信すると共に、前記順序情報の最大値を全ての前記出力先選択装置に送信するステップとを有し、前記出力先選択装置間で前記ログの順序情報を共有できるようにしたことを特徴とするログ出力方法。
【請求項５】
発生した事象のログ出力を指示する複数のクライアント装置と、ログを記憶手段に出力する複数のログ出力装置と、前記クライアント装置から送信されたログの出力先を前記複数のログ出力装置から選択する複数の出力先選択装置とを有し、前記クライアント装置と出力先選択装置とログ出力装置とが接続されたシステムにおけるログ出力方法であって、前記各出力先選択装置が、自己の負荷状況をモニタするステップと、前記クライアント装置からのログ出力指示に対して時系列の順序情報を付与するステップと、前記負荷状況及び順序情報を前記クライアント装置に送信するステップとを有し、該クライアント装置が、前記各出力先選択装置から受信した負荷状況に基づいて負荷が最も少ない出力先選択装置を選択するステップと、前記各出力先選択装置から受信した順序情報の最大値を選択するステップと、前記選択した出力先選択装置にログを送信すると共に、前記順序情報の最大値を全ての前記出力先選択装置に送信するステップとを有し、前記出力先選択装置間で前記ログの順序情報を共有できるようにしたことを特徴とするログ出力方法。
【請求項６】
請求項４又は５に記載のログ出力方法において、前記出力先選択装置が、前記各ログ出力装置の負荷状況に基づいて負荷が最も少ないログ出力装置を選択するステップと、該選択したログ出力装置に前記クライアント装置からのログ及び該ログの順序情報を送信するステップとを有することを特徴とするログ出力方法。
【請求項７】
請求項４乃至６のいずれか１に記載のログ出力方法を実行するためのプログラム。
【請求項８】
請求項７に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログ出力システム、方法、プログラム、及び記録媒体、より詳細には、システム上でログの時系列順序を確保してログ出力するためのログ出力システム、方法、プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
ネットワークシステム等において、作業中に発生した事象のログとして出力・記憶することは、動作状況の確認や障害対応等のために一般に行われている。しかし、このログ出力が頻繁だったり、そのログの量が多かったりすると、ログ出力がシステムの負担になることがある。ログ出力を要求するクライアント装置と、ログを実際に出力するサーバ装置を別に用意して、クライアント・サーバ間の複数対複数の接続を認めれば、負荷分散が行える。しかしながら、後に参照するときに、時系列の順序が狂っていてはログとして役に立たない場合がある。
【０００３】
例えば、特許文献１には、ネットワーク内の各サーバ装置で収集している稼動ログデータや稼動データを１ヶ所にて時系列で継続蓄積するようにしたものが開示されている。これは、稼動データの転送時刻を示すタイムスタンプと、稼動データの転送元サーバ装置の識別子からなる識別情報を各サーバ装置から収集蓄積制御装置に転送し、該収集蓄積制御装置の蓄積ファイルに格納するもので、タイムスタンプを利用してログの時系列を確保している。
【特許文献１】特開２００１−２７９９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記特許文献１に記載の発明のように、タイムスタンプを使用すれば時系列の順序を確保できるが、サーバ装置間やクライアント装置間で時刻の同期が厳密に取れている必要がある。しかしながら、ログは時にミリ秒単位で出力されることがあり、装置間の時刻を同期させ続けることは困難である。
【０００５】
本発明は、上述のごとき実情に鑑みてなされたものであり、ログ出力を行う事象に対して、クライアント装置と通信を行うことで順序情報（シリアル番号など）を一意に設定すると共に、負荷の少ないログ出力装置（ロガー）を選択してログ及び順序情報を送信する出力先選択装置（ディストリビュータ）を備えることにより、タイムスタンプを使用することなく、ログの時系列順序を確保できるようにしたログ出力システム、方法、プログラム、及び記録媒体を提供すること、を目的としてなされたものである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１の発明は、発生した事象のログ出力を指示する複数のクライアント装置と、ログを記憶手段に出力する複数のログ出力装置と、前記クライアント装置から送信されたログの出力先を前記複数のログ出力装置から選択する複数の出力先選択装置とを有し、前記クライアント装置と出力先選択装置とログ出力装置とが接続されたログ出力システムであって、前記各出力先選択装置は、前記クライアント装置からのログ出力指示に対して時系列の順序情報を付与する手段と、該順序情報を前記クライアント装置に送信する手段とを備え、該クライアント装置は、前記各出力先選択装置から受信した順序情報の最大値を選択する手段と、前記複数の出力先選択装置のいずれかにログを送信すると共に、前記順序情報の最大値を全ての前記出力先選択装置に送信する手段とを備え、前記出力先選択装置間で前記ログの順序情報を共有できるようにしたことを特徴としたものである。
【０００７】
請求項２の発明は、発生した事象のログ出力を指示する複数のクライアント装置と、ログを記憶手段に出力する複数のログ出力装置と、前記クライアント装置から送信されたログの出力先を前記複数のログ出力装置から選択する複数の出力先選択装置とを有し、前記クライアント装置と出力先選択装置とログ出力装置とが接続されたログ出力システムであって、前記各出力先選択装置は、自己の負荷状況をモニタする手段と、前記クライアント装置からのログ出力指示に対して時系列の順序情報を付与する手段と、前記負荷状況及び順序情報を前記クライアント装置に送信する手段とを備え、該クライアント装置は、前記各出力先選択装置から受信した負荷状況に基づいて負荷が最も少ない出力先選択装置を選択する手段と、前記各出力先選択装置から受信した順序情報の最大値を選択する手段と、前記選択した出力先選択装置にログを送信すると共に、前記順序情報の最大値を全ての前記出力先選択装置に送信する手段とを備え、前記出力先選択装置間で前記ログの順序情報を共有できるようにしたことを特徴としたものである。
【０００８】
請求項３の発明は、請求項１又は２に記載の発明において、前記各ログ出力装置は、自己の負荷状況をモニタする手段を備え、前記出力先選択装置は、前記各ログ出力装置の負荷状況に基づいて負荷が最も少ないログ出力装置を選択する手段と、該選択したログ出力装置に前記クライアント装置からのログ及び該ログの順序情報を送信する手段とを備えていることを特徴としたものである。
【０００９】
請求項４の発明は、発生した事象のログ出力を指示する複数のクライアント装置と、ログを記憶手段に出力する複数のログ出力装置と、前記クライアント装置から送信されたログの出力先を前記複数のログ出力装置から選択する複数の出力先選択装置とを有し、前記クライアント装置と出力先選択装置とログ出力装置とが接続されたシステムにおけるログ出力方法であって、前記各出力先選択装置が、前記クライアント装置からのログ出力指示に対して時系列の順序情報を付与するステップと、該順序情報を前記クライアント装置に送信するステップとを有し、該クライアント装置が、前記各出力先選択装置から受信した順序情報の最大値を選択するステップと、いずれかの前記出力先選択装置にログを送信すると共に、前記順序情報の最大値を全ての前記出力先選択装置に送信するステップとを有し、前記出力先選択装置間で前記ログの順序情報を共有できるようにしたことを特徴としたものである。
【００１０】
請求項５の発明は、発生した事象のログ出力を指示する複数のクライアント装置と、ログを記憶手段に出力する複数のログ出力装置と、前記クライアント装置から送信されたログの出力先を前記複数のログ出力装置から選択する複数の出力先選択装置とを有し、前記クライアント装置と出力先選択装置とログ出力装置とが接続されたシステムにおけるログ出力方法であって、前記各出力先選択装置が、自己の負荷状況をモニタするステップと、前記クライアント装置からのログ出力指示に対して時系列の順序情報を付与するステップと、前記負荷状況及び順序情報を前記クライアント装置に送信するステップとを有し、該クライアント装置が、前記各出力先選択装置から受信した負荷状況に基づいて負荷が最も少ない出力先選択装置を選択するステップと、前記各出力先選択装置から受信した順序情報の最大値を選択するステップと、前記選択した出力先選択装置にログを送信すると共に、前記順序情報の最大値を全ての前記出力先選択装置に送信するステップとを有し、前記出力先選択装置間で前記ログの順序情報を共有できるようにしたことを特徴としたものである。
【００１１】
請求項６の発明は、請求項４又は５に記載の発明において、前記出力先選択装置が、前記各ログ出力装置の負荷状況に基づいて負荷が最も少ないログ出力装置を選択するステップと、該選択したログ出力装置に前記クライアント装置からのログ及び該ログの順序情報を送信するステップとを有することを特徴としたものである。
【００１２】
請求項７の発明は、請求項４乃至６のいずれか１に記載のログ出力方法を実行するためのプログラムである。
【００１３】
請求項８の発明は、請求項７に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００１４】
本発明によると、ログ出力を行う事象に対して、クライアント装置と通信を行うことで順序情報（シリアル番号など）を一意に設定すると共に、負荷の少ないログ出力装置（ロガー）を選択してログ及び順序情報を送信する出力先選択装置（ディストリビュータ）を備えることにより、タイムスタンプを使用することなく、ログの時系列順序を確保することができる。
さらに、クライアント装置とディストリビュータ装置間の単純な通信により、全てのディストリビュータ装置間でログに対する順序情報を一意に設定できるため、簡単かつ拡張性の高いログの分散出力システムを構築することができる。
【発明を実施するための最良の形態】
【００１５】
図１は、本発明の一実施形態に係るログ出力システムの一例を示す概念図で、図中、１はクライアント装置、２，３はそれぞれ機能が異なるサーバ装置を示す。サーバ装置２は、クライアント装置１からのログ出力指示に応じてサーバ装置３を選択するための出力先選択装置（以下、ディストリビュータ装置と呼ぶ）として機能し、サーバ装置３は、ログを記憶手段に出力するためのログ出力装置（以下、ロガー装置と呼ぶ）として機能する。図中、クライアント装置１とディストリビュータ装置２は、多（１以上）対多（１以上）の関係である。ディストリビュータ装置２とロガー装置３も多（１以上）対多（１以上）の関係である。クライアント装置１とロガー装置３の間には直接の関係はない。各クライアント装置１、ディストリビュータ装置２、及びロガー装置３は一意に識別可能なＩＤを持つ。
【００１６】
クライアント装置１、ディストリビュータ装置２，及びロガー装置３の一般的な構成例について以下に説明する。
各クライアント装置１、ディストリビュータ装置２，及びロガー装置３の情報処理装置は、ＣＰＵ，ＲＡＭ，ＲＯＭ，ＨＤＤ等の記憶装置，入力装置，表示装置，通信装置，出力装置，及びシステムバス等を備えた汎用コンピュータであって、これらの本発明に係わる情報処理装置を、本発明のログ出力システムとして機能させるためのプログラム及びデータは、ＲＯＭ又は記憶装置に格納され、実行時にＣＰＵがＲＡＭに読み出すことにより実行される。
【００１７】
また、処理の途中経過や処理結果は、ＣＲＴ，ＬＣＤ等の表示装置を通じて操作者等に提示され、各処理において、操作者は、キーボード，マウス（ポインティングデバイス）等の入力装置から必要なパラメータ等を入力指定する。また、通信装置は各種通信ネットワークに接続するためのネットワークインタフェイスであって、これにより、各情報処理装置同士をアクセス可能に接続することができる。出力装置はプリンタ等の外部機器と接続してデータを出力する。これらのＣＰＵ，ＲＡＭ，ＲＯＭ，記憶装置，入力装置，表示装置，通信装置，及び出力装置は、システムバスを介して相互に接続されている。
【００１８】
クライアント装置１、ディストリビュータ装置２，及びロガー装置３は、ネットワークを介して接続される。
図２は、クライアント装置１、ディストリビュータ装置２、及びロガー装置３をＬＡＮを介して接続したときのシステム構成例を示す図で、クライアント装置１、ディストリビュータ装置２、及びロガー装置３はＬＡＮ４を介して接続されている。図３は、クライアント装置１、ディストリビュータ装置２、及びロガー装置３をインターネットを介して接続したときのシステム構成例を示す図で、クライアント装置１、ディストリビュータ装置２、及びロガー装置３はインターネット５（及びＬＡＮ４）を介して接続されている。図４は、クライアント装置１、ディストリビュータ装置２、及びロガー装置３としての機能を１つの情報処理装置に統合した例を示す図である。
【００１９】
システム全体の構成としては、図２に示すように、ＬＡＮ４を介して接続する構成や、図３に示すように、インターネット５（及びＬＡＮ４）を介して接続する構成などがある。また、図２及び図３では、各情報処理装置が別々に示されているが、図４に示すように、１つの情報処理装置に機能が統合されていてもよい（所謂スタンドアロン構成）。このようなスタンドアロン構成の場合、１つの情報処理装置にクライアント装置１、ディストリビュータ装置２、及びロガー装置３としての機能が備わり、装置内部で各機能間の通信が行われることになる。但し、スタンドアロン構成では目的としている負荷分散とフォールトレランスの達成は困難であるので、本システムでは主にネットワークを介して複数の情報処理装置が接続されている状況を想定する。ちなみに、情報処理装置の数としては、クライアント装置１＞＞ディストリビュータ装置２＜ロガー装置３という状況を代表例として本システムでは想定しているが、本例に限定されるものではない。
【００２０】
ここで、負荷分散とフォールトトレランスの方法としてサーバ装置を複数立てることは一般的に行われているが、ログ出力の場合、時系列の順序に関して整合性を持った形で、出力されたログを参照出来なくてはならない。このため、単にロガー装置を複数用意して分散出力するだけでは目的を達成できない。
【００２１】
本発明では、ログ出力の負荷分散を行うと共に、分散出力された場合でもログの時系列順序に関する整合性を確保するために、ディストリビュータ装置２を備え、これにより、負荷分散及びログの時系列順序の整合性を確保できるようにしている。以下、クライアント装置１，ディストリビュータ装置２，及びロガー装置３の構成例について詳細に説明する。
【００２２】
図５は、本発明に係るディストリビュータ装置２の構成例を示すブロック図で、ディストリビュータ装置２は、クライアント装置１と通信するための通信部２１，順序情報（本例ではシリアル番号など）の保持とインクリメントを行うシリアル番号処理部２２，自己の負荷状況をモニタする負荷情報部２３，クライアント装置１から送られてきたログを蓄積するバッファ２４，ログの出力状況を記録するログ出力記録テーブル２５，使用可能なロガー装置３を登録しておくロガー登録テーブル２６，及びロガー装置３と通信するための通信部２７を備えている。
【００２３】
図６は、図５に示したログ出力記録テーブル２５に記録される属性の一例を示す図である。ログ出力記録テーブル２５の属性は、例えば、クライアントＩＤ，シリアル番号（順序情報），ロガーＩＤ，出力状態，及びタイムスタンプ等から構成される。ここで、順序情報としては、シリアル番号などの整数値か、それに準ずるものであって、一意に増加するものであればよい。従って、ログ出力記録テーブル２５に記録されるレコードで、シリアル番号が重複するレコードは存在しない。
【００２４】
これは、１つのディストリビュータ装置２に格納されているレコードだけでなく、全てのディストリビュータ装置２に格納されている全レコードについても同様に当てはまる。そのため、１つのディストリビュータ装置２に格納されているシリアル番号が順番になっておらず、飛び飛びになっていることがある。しかし、全てのディストリビュータ装置２に格納されているシリアル番号を通して見た場合、順番に並ぶように構成されている。
【００２５】
図６において、図６（Ａ）に示すディストリビュータ装置２におけるシリアル番号２のタイムスタンプ（12:01:55）よりも、図６（Ｂ）に示すディストリビュータ装置２におけるシリアル番号３のタイムスタンプ（12:01:52）のほうが前になっている。このようなケースは、ディストリビュータ装置２間で時刻が一致していない場合に発生するが、本ログ出力システムでは、シリアル番号に基づいてログの時系列順序を確保しているため、各装置間で時刻が一致していなくてもよい。
【００２６】
図７は、本発明に係るクライアント装置１の構成例を示すブロック図で、クライアント装置１は、ログを出力する事象の発生元となるアプリケーション部１１，ディストリビュータ装置２と通信を行う通信部１２，各ディストリビュータ装置２から得た負荷情報を判定し、最も負荷の少ないディストリビュータ装置２を選択する負荷情報判定部１３，各ディストリビュータ装置２から得たシリアル番号のうち最大のものを選ぶシリアル番号判定部１４，ログを蓄積するログバッファ１５，及び利用可能なディストリビュータ装置２のＩＤを登録しておくディストリビュータ登録テーブル１６を備えている。
【００２７】
各ディストリビュータ装置２において、シリアル番号処理部２２は、クライアント装置１からのログ出力指示に対して時系列の順序情報（シリアル番号など）を付加し、通信部２１は、負荷情報部２３からの負荷状況及びシリアル番号処理部２２からのシリアル番号をクライアント装置１に送信する。クライアント装置１において、負荷情報判定部１３は、各ディストリビュータ装置２から受信した負荷状況に基づいて、負荷が最も少ないディストリビュータ装置２を選択し、シリアル番号判定部１４は、各ディストリビュータ装置２から受信したシリアル番号の最大値を選択する。通信部１２は、上記選択したディストリビュータ装置２にログを送信すると共に、シリアル番号の最大値を全てのディストリビュータ装置２に送信する。これにより、ディストリビュータ装置２間でシリアル番号を共有することができる。
【００２８】
別の実施形態として、各ディストリビュータ装置２において、シリアル番号処理部２２は、クライアント装置１からのログ出力指示に対して時系列の順序情報（シリアル番号など）を付加し、通信部２１は、シリアル番号処理部２２からのシリアル番号のみをクライアント装置１に送信するようにしてもよい。この場合、クライアント装置１において、ディストリビュータ装置２の負荷状況に係らずに、任意のディストリビュータ装置２を選択し、シリアル番号判定部１４は、各ディストリビュータ装置２から受信したシリアル番号の最大値を選択する。通信部１２は、選択したディストリビュータ装置２にログを送信すると共に、シリアル番号の最大値を全てのディストリビュータ装置２に送信する。これにより、ディストリビュータ装置２間でシリアル番号を共有することができる。
【００２９】
また、上記ログが送信されたディストリビュータ装置２は、ロガー装置３が備える負荷情報部（後述する負荷情報部３２）からの負荷状況に基づいて、負荷が最も少ないロガー装置３を選択する手段（図示せず）を備え、通信部２７は、選択したロガー装置３にログ及び該ログのシリアル番号を送信する。
【００３０】
図８は、本発明に係るロガー装置３の構成例を示すブロック図で、ロガー装置３は、ディストリビュータ装置２と通信を行う通信部３１，自己の負荷状況をモニタする負荷情報部３２，未出力のログを蓄積するバッファ３３、ログを出力するログ出力部３４、出力されたログを記憶する記憶部３５を備えている。この記憶部３５は、ハードディスク，ＤＶＤ等の速度は遅いが書き込みを行えば電源を落としても内容が消えないデバイスを想定している。これに対して、ロガー装置３に限らず本ログ出力システムに含まれるクライアント装置１，ディストリビュータ装置２においてバッファと呼んでいるものは全て、メモリ等の高速であるが電源を落とすと内容が消える記憶媒体を想定している。このバッファおよび記憶部内では、クライアントＩＤ，シリアル番号，ログ内容が一組のレコードとして保存される。
【００３１】
図９はクライアント装置１におけるログ出力処理の流れの一例を説明するためのフロー図、図１０はディストリビュータ装置２におけるログ出力処理の流れの一例を説明するためのフロー図、図１１はロガー装置３におけるログ出力処理の流れの一例を説明するためのフロー図である。図９乃至図１１に基づいて、本発明のログ出力方法の一連の流れについて説明する。
まず、図９（Ａ）において、クライアント装置１は、ログ出力を行いたい事象が発生すると、ディストリビュータ登録テーブル１６を調べ、使用可能なディストリビュータ装置２を検索し（ステップＳ１）、検索されたディストリビュータ装置２の全てに対し、ログ出力を開始する旨のメッセージを送る（ステップＳ２）。このときは、ログの内容自体は送らない。
【００３２】
図１０（Ａ）において、クライアント装置１から開始メッセージを受け取った各ディストリビュータ装置２は、負荷情報部２３から負荷情報を取り出し（ステップＳ３）、シリアル番号処理部２２に記憶しているシリアル番号を１インクリメントして再記憶する（ステップＳ４）。次に、各ディストリビュータ装置２は、取り出した負荷情報と、増加させたシリアル番号とをクライアント装置１に返送する（ステップＳ５）。
【００３３】
図９（Ｂ）において、クライアント装置１は、各ディストリビュータ装置２から受け取った負荷情報を元に、使用するディストリビュータ装置２を選択する（ステップＳ６）。また、同じく、各ディストリビュータ装置２から受け取ったシリアル番号から、最も大きな値を選択し、選択した一番大きなシリアル番号を全てのディストリビュータ装置２に送付する（ステップＳ７）。これに加えて、クライアント装置１は、上記ステップＳ６において、負荷情報に基づいて選択されたディストリビュータ装置２にログの内容を送信する（ステップＳ８）。
【００３４】
図１０（Ｂ）において、クライアント装置１からシリアル番号を受け取ったディストリビュータ装置２は、この受け取ったシリアル番号と、シリアル番号処理部２２に格納されている自己の現在のシリアル番号とを比較し（ステップＳ９）、受け取ったシリアル番号の方が大きい場合（ＹＥＳの場合）、新たに受け取ったシリアル番号でシリアル番号処理部２２内の値を上書きする（ステップＳ１０）。また、上記ステップＳ９において、受け取ったシリアル番号の方が小さい場合（ＮＯの場合）、そのままステップＳ１１に移行する。
【００３５】
上記ステップＳ９、ステップＳ１０の処理、すなわち、シリアル番号に関するクライアント装置１とディストリビュータ装置２間の通信処理は、全てのディストリビュータ装置２間で同じシリアル番号を共有させるために行われる。このシリアル番号は、ロガー装置３にログを記録する時に使用される。このように、複数のロガー装置３上に散らばった同一クライアント装置１のログの前後関係を把握することが可能となる。さらには、異なるクライアント装置１間のログの前後関係も把握することが可能となる。
【００３６】
シリアル番号を共有させるには別に専用のサーバ装置を立てる方法もあるが、システム構成がそれだけ複雑になり、通信量も増えることになるので得策ではない。また、ログの前後関係を確定するのにシリアル番号ではなくタイムスタンプを使用する方法もあるが、その場合には各ディストリビュータ装置２間で厳密に時刻を合わせておかないと、ログの順序が逆転する可能性がある。ログは時にはミリ秒単位で吐き出されるので、これは非常に困難である。クライアント装置１側であらかじめタイムスタンプを設定しておけば単独のクライアント装置１での順序は確保されるが、複数のクライアント装置１間での整合を確保することは困難である。
【００３７】
これに対して、クライアント装置１を利用してシリアル番号を全ディストリビュータ装置２に配布する本発明の方法は、クライアント装置１とディストリビュータ装置２間の通信が発生するものの、実際にログの内容を送る通信以外の通信量は非常に小さい上、システムを単純に構成できる。また、タイムスタンプを使用しないので、ディストリビュータ装置２間や、クライアント装置１間で時刻が異なってもログの順序に狂いが発生することはない。
【００３８】
次に、図１０（Ｂ）において、各ディストリビュータ装置２は、クライアント装置１からログの内容が送られてきたかどうか判断し（ステップＳ１１）、ログの内容が送られてきた場合（ＹＥＳの場合）、そのディストリビュータ装置２（選択されたディストリビュータ装置２）は、ログの内容をバッファ２４に保存し、ログ出力記録テーブル２５に新規レコードを挿入する（ステップＳ１２）。この際、出力状態は出力中とする。次に、上記選択されたディストリビュータ装置２は、ロガー登録テーブル２６に登録されている使用可能なロガー装置３の中から、負荷の一番低いロガー装置３を選択し、選択したロガー装置３にログ内容とシリアル番号を送信する（ステップＳ１３）。一方、上記ステップＳ１１において、ログの内容が送られてこない場合（ＮＯの場合）、そのディストリビュータ装置２（選択されなかったディストリビュータ装置２）は、処理を終了する。
【００３９】
図１１において、ディストリビュータ装置２により選択されたロガー装置３は、送られてきたログの内容を記憶部３５に書き込み（ステップＳ１４）、記憶部３５への書き込みが終了したら、書き込み終了のメッセージをディストリビュータ装置２に送信する（ステップＳ１５）。
【００４０】
図１０（Ｂ）において、ディストリビュータ装置２は、ロガー装置３から書き込み終了のメッセージを受け取ったら、ステップＳ１２でログ出力記録テーブル２５に挿入したレコードの状態を、出力中から出力完了に変更する（ステップＳ１６）。尚、エラーが発生した場合は別の状態になるが、ここでは省略する。また、上記処理フローではすべて省略したが、クライアント装置１，ディストリビュータ装置２，及びロガー装置３の各装置では、ログを一度バッファに受けて、ロガー装置３の記憶部３５にログを記憶するまでの一連の処理が終了した後に、バッファから消すという処理が入る。
【００４１】
また、一度出力されたログを参照するには、クライアント装置１（ログ出力を依頼したクライアント装置１と同一でなくてもよい）から、ログを参照したいクライアント装置１の識別子、ログの範囲を各ディストリビュータ装置２に送る。ディストリビュータ装置２は指定（識別子及びログ範囲）に当てはまるログをロガー装置３から引き出す。クライアント装置１では、各ディストリビュータ装置２から受け取ったログをマージする。このとき、シリアル番号順に並べ替えれば時系列でログを並べることができる。単一のクライアント装置１だけでなく、複数のクライアント装置１でもログをマージして時系列に並べ替えることが可能である。
【００４２】
以上、本発明のログ出力システムにおける各機能を中心に各実施形態を説明してきたが、本発明は、ログ出力システムにおける各ステップを実行する方法としても説明したようにログ出力方法としての形態もとることができる。また、この各機能を有するログ出力システムと同様に、コンピュータにログ出力システムとして機能させるためのプログラムとしての形態も、また、そのプログラムを記録した記録媒体としての形態も可能である。
【００４３】
本発明によるログ出力の機能を実現するためのプログラムやデータを記憶した記録媒体の実施形態について説明する。記録媒体としては、具体的には、ＣＤ−ＲＯＭ（−Ｒ／−ＲＷ）、光磁気ディスク、ＤＶＤ−ＲＯＭ（−Ｒ／−ＲＷ／−ＲＡＭ）、ＦＤ、ＨＤ、フラッシュメモリ、メモリカードや、メモリスティック及びその他各種ＲＯＭやＲＡＭ等が想定でき、これら記録媒体に上述した本発明の各実施形態のシステムとしての機能をコンピュータに実行させ、ログ出力の機能を実現するためのプログラムを記録して流通させることにより、当該機能の実現を容易にする。そしてコンピュータ等の情報処理装置に上記のごとくの記録媒体を装着して情報処理装置によりプログラムを読み出すか、若しくは情報処理装置が備えている記憶媒体に当該プログラムを記憶させておき、必要に応じて読み出すことにより、本発明に関わるログ出力の機能を実行することができる。
【図面の簡単な説明】
【００４４】
【図１】本発明の一実施形態に係るログ出力システムの一例を示す概念図である。
【図２】クライアント装置、ディストリビュータ装置、及びロガー装置をＬＡＮを介して接続したときのシステム構成例を示す図である。
【図３】クライアント装置、ディストリビュータ装置、及びロガー装置をインターネットを介して接続したときのシステム構成例を示す図である。
【図４】クライアント装置、ディストリビュータ装置、及びロガー装置としての機能を１つの情報処理装置に統合した例を示す図である。
【図５】本発明に係るディストリビュータ装置の構成例を示すブロック図である。
【図６】図５に示したログ出力記録テーブルに記録される属性の一例を示す図である。
【図７】本発明に係るクライアント装置の構成例を示すブロック図である。
【図８】本発明に係るロガー装置の構成例を示すブロック図である。
【図９】クライアント装置におけるログ出力処理の流れの一例を説明するためのフロー図である。
【図１０】ディストリビュータ装置におけるログ出力処理の流れの一例を説明するためのフロー図である。
【図１１】ロガー装置におけるログ出力処理の流れの一例を説明するためのフロー図である。
【符号の説明】
【００４５】
１…クライアント装置、２…ディストリビュータ装置、３…ロガー装置、４…ＬＡＮ、５…インターネット、１１…アプリケーション部、１２，２１，２７，３１…通信部、１３…負荷情報判定部、１４…シリアル番号判定部、１５…ログバッファ、１６…ディストリビュータ登録テーブル、２２…シリアル番号処理部、２３，３２…負荷情報部、２４，３３…バッファ、２５…ログ出力記録テーブル、２６…ロガー登録テーブル、３４…ログ出力部、３５…記憶部。
【図４】
2006018701.tif 000003
【図５】
2006018701.tif 000004
【図６】
2006018701.tif 000005
【図７】
2006018701.tif 000006
【図１】
2006018701.tif 000007
【図２】
2006018701.tif 000008
【図３】
2006018701.tif 000009
【図８】
2006018701.tif 000010
【図９】
2006018701.tif 000011
【図１０】
2006018701.tif 000012
【図１１】
2006018701.tif 000013