(57)【要約】【課題】システムとして統一されたレベルでログ情報が出力され、統一されたレベルでログ情報を解析できるログ情報管理システムを提供する。【解決手段】ログ管理計算機は、演算処理をするプロセッサと、前記プロセッサに接続される記憶領域と、前記プロセッサに接続されるネットワークインタフェースを備え、前記プロセッサは、前記ログ情報を一時的に格納し、同一の識別子によって認識される一連の処理の最終段階で、前記一時的に格納されたログ情報を選択し、前記選択されたログ情報を出力する。【選択図】図５
2008015733.tif 000002
【特許請求の範囲】
【請求項１】
演算処理をするプロセッサと、前記プロセッサに接続される記憶領域と、前記プロセッサに接続されるネットワークインタフェースを備え、ログ情報を管理するログ管理計算機において、
前記プロセッサは、
前記ログ情報を一時的に格納し、
同一の識別子によって認識される一連の処理の最終段階で、前記一時的に格納されたログ情報を選択し、
前記選択されたログ情報を出力することを特徴とするログ管理計算機。
【請求項２】
前記一連の処理の最終段階は、
前記プロセッサが、ネットワークに接続された他の計算機から、受信したリクエストに対するレスポンスを送信した後であることを特徴とする請求項１に記載のログ管理計算機。
【請求項３】
前記一連の処理の最終段階は、
前記プロセッサが、ネットワークに接続された他の計算機から、受信したリクエストに対するレスポンスを作成した後、前記作成されたレスポンスを送信する前であることを特徴とする請求項１に記載のログ管理計算機。
【請求項４】
前記記憶領域には、前記一時的に格納されたログ情報が出力される項目及び前記一時的に格納されたログ情報が出力される方法のうち少なくとも一方が、レベル毎に設定されたテンプレート情報が格納され、
前記プロセッサは、
前記一連の処理に対するレベルを決定し、
前記テンプレート情報を参照し、前記決定されたレベルの前記出力される項目及び前記出力される方法の少なくとも一方に基づいて、出力するログ情報を選択することを特徴とする請求項１に記載のログ管理計算機。
【請求項５】
前記プロセッサは、
前記一連の処理中にエラーが発生したか否かを判定し、
前記エラーが発生したと判定すると、現在のレベルよりも高いレベルに変更することを特徴とする請求項４に記載のログ管理計算機。
【請求項６】
演算処理をする第一プロセッサと、前記第一プロセッサに接続される第一記憶領域と、前記第一プロセッサに接続される第一ネットワークインタフェースを備え、アプリケーションを提供するアプリケーション計算機と、
演算処理をする第二プロセッサと、前記第二プロセッサに接続される第二記憶領域と、前記第二プロセッサに接続される第二ネットワークインタフェースを備え、ログ情報を管理するログ管理計算機と、を備え、
前記アプリケーション計算機と前記ログ管理計算機とは、ネットワークによって接続されるログ管理システムにおいて、
前記第二記憶領域には、一時的に格納されたログ情報が出力される項目及び前記一時的に格納されたログ情報が出力される方法の少なくとも一方が、同一の識別子によって認識され、前記アプリケーション計算機で実行される一連の処理のレベル毎に設定されたテンプレート情報が格納され、
前記第一プロセッサは、
前記ログ情報を収集し、
前記収集されたログ情報を前記ログ管理計算機に送信し、
前記第一プロセッサによって実行される一連の処理が終了した場合には、前記収集されたログ情報及び前記一連の処理が終了したことを示す終端情報を前記ログ管理計算機に送信し、
前記第二プロセッサは、
前記第一プロセッサから前記ログ情報を受信すると、前記受信したログ情報を前記第二記憶領域に一時的に格納し、
前記終端情報を受信したか否かを判定し、
前記終端情報を受信した場合、前記テンプレート情報を参照し、前記第二記憶領域に一時的に格納された全てのログ情報のレベルを同じレベルに決定し、
前記決定されたレベルの前記出力される項目及び前記出力される方法の少なくとも一方に基づいて、出力するログ情報を選択することを特徴とするログ管理システム。
【請求項７】
前記第二プロセッサは、
前記終端情報を受信したと判定した場合、前記テンプレート情報を参照し、
前記第二記憶領域に一時的に格納された全てのログ情報のレベルを前記第二記憶領域に一時的に格納された複数のログ情報のレベルのうち最も高いレベルに変更して、前記変更されたレベルの前記ログ情報が出力される項目及び前記出力される方法の少なくとも一方に基づいて、出力するログ情報を選択することを特徴とする請求項６に記載のログ管理システム。
【請求項８】
前記第一プロセッサは、
前記収集されたログ情報を前記ログ管理計算機に送信するとともに、前記一連の処理を認識するためのセッション識別子を前記ログ管理計算機に送信し、
前記第二プロセッサは、
前記終端情報を受信したと判定した場合、前記終端情報とともに受信したログ情報のセッション識別子と一致する前記セッション識別子を含む前記第二記憶領域に一時的に格納された全てのログ情報を同じレベルに決定し、
前記決定されたレベルの前記ログ情報が出力される項目及び前記出力される方法の少なくとも一方に基づいて、出力するログ情報を選択することを特徴とする請求項６に記載のログ管理システム。
【請求項９】
前記ログ管理システムは、複数の前記アプリケーション計算機を備え、
前記各アプリケーション計算機に備わる前記第一プロセッサは、前記同一のセッション識別子によって認識される一連の処理を連携して実行し、
前記第二プロセッサは、
前記受信したセッション識別子が一致する前記第二記憶領域に一時的に格納された全てのログ情報のレベルを統一したレベルに決定し、
前記決定されたレベルに基づいて、前記第二記憶領域に一時的に格納されたログ情報を出力することを特徴とする請求項８に記載のログ管理システム。
【請求項１０】
ログ情報を管理する第一ログ管理装置及び第二ログ管理装置を備える計算機システムにおけるログ管理方法において、
前記第一ログ管理装置及び前記第二ログ管理装置は、同一の識別子によって認識される一連の処理を連携して実行し、
前記第一ログ管理装置は、
前記ログ情報を一時的に格納し、
前記第一ログ管理装置で実行される一連の処理のレベルを判定し、
前記判定された処理のレベルを前記第二ログ管理装置に送信し、
前記第二ログ管理装置は、
前記ログ情報を一時的に格納し、
前記第二ログ管理装置で実行される一連の処理のレベルを判定し、
前記第一ログ管理装置から受信したレベルと、前記第二ログ管理装置によって判定されたレベルを比較し、
高いレベルに設定された出力される項目及び出力される方法の少なくとも一方に基づいて、前記一時的に格納されたログ情報を出力することを特徴とするログ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログ情報を管理するログ管理計算機に関する。
【背景技術】
【０００２】
計算機システムにおいて，計算機システムに備わるコンピュータ及びソフトウェアは、各々の動作の記録及び各々の処理の記録をログ情報として出力する。
【０００３】
ログ情報は、通常時には、コンピュータシステムの状態を監視するために利用される。また、ログ情報は、異常時には、異常の原因を判別するため、及び不正アクセスを追跡するために利用される。また、ログ情報は、監査等の際に、証拠資料としても利用される。
【０００４】
ログ情報として出力される項目が多ければ多いほど、異常時に、異常の原因を判別する場合等に有効である。しかし、ログ情報として出力される項目が多ければ、大量のディスク容量が必要となる。また、ログ情報として出力される項目が多ければ、ログ情報が出力される処理によって、計算機に高い負荷をかけてしまう。一方、ログ情報として出力される項目を少なくしすぎると、異常時に、異常の原因を判別できない等の問題が生じる。
【０００５】
また、ログ情報は、テキストファイル形式及びＲＤＢ（Relational Data Base）形式等で出力される。なお、ログ情報の保護方法としては、書き込まれた情報を改変できない機能を有するストレージ装置にログ情報が出力される方法、ログ情報が出力されたログデータ又はログファイルにデジタル署名を施す方法、及びログ情報が出力されたログデータ又はログファイルを暗号化する方法等がある。
【０００６】
通常、ログ情報として出力される項目、ログ情報の出力方法、及び出力されたログ情報の保存期間等は、計算機システムの起動時に、システム管理者によって設定される。そして、計算機システムの起動後は、ログ情報は、設定された内容で出力される。
【０００７】
従来、ログ情報の重要性、及びログ情報の出力頻度、ログ情報が出力される記憶領域の容量、及びログ情報を出力する計算機の処理負荷等の種々の条件をシステム管理者が考慮し、ログ情報の出力に関する設定をしていた。
【０００８】
例えば、所定の条件に一致した場合（例えば、重要なデータが格納されるデータベースの特定のテーブルにアクセスされる場合等）に，詳細なログ情報が出力されるようにする技術が知られている（特許文献１参照）。出力されるログ情報の情報量は、条件に応じて動的に変化できる。これによって、より詳細なログ情報が出力でき、ログ情報が出力される記憶領域の容量の削減でき、ログ情報を出力する計算機の負荷を低減できる。
【特許文献１】国際公開第０１／８２１１８号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００９】
通常、ユーザは、ネットワーク及びサーバを介して、データベース及びサーバにアクセスする。ここで、ネットワーク等に障害が発生した場合、及びデータベース等に不正アクセスが検出された場合には、１箇所のログ情報を解析するのではなく、ネットワーク機器及びサーバ機器のログ情報を比較して、解析する。
【００１０】
しかし、特許文献１に記載された技術では、所定の条件に応じて出力されるログ情報の情報量が動的に変更されるが、変更されるのはデータベースのログ情報のみである。従って、ネットワーク機器及びサーバで出力されたログ情報とデータベースのログ情報との間で出力されるログ情報の情報量に差が生じてしまい、システム全体において、障害等の原因を解析するための十分な情報が得られない場合がある。
【００１１】
そこで、本発明は、条件に応じて出力されるログ情報の情報量を変化させても、システムとして統一されたレベルでログ情報が出力され、統一されたレベルでログ情報を解析できるログ管理計算機を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の代表的な一形態によると、ログ管理計算機は、演算処理をするプロセッサと、前記プロセッサに接続される記憶領域と、前記プロセッサに接続されるネットワークインタフェースを備え、前記プロセッサは、前記ログ情報を一時的に格納し、同一の識別子によって認識される一連の処理の最終段階で、前記一時的に格納されたログ情報を選択し、前記選択されたログ情報を出力することを特徴とする。
【発明の効果】
【００１３】
本発明の一形態によると、システム全体として統一されたレベルでログ情報を効率的に出力および管理することができる。
【発明を実施するための最良の形態】
【００１４】
以下、実施形態を、図面を参照して説明する。
【００１５】
（第一実施形態）
第一実施形態を図１〜図５を用いて説明する。
【００１６】
図１は、第一実施形態のログ管理システムの構成図である。
【００１７】
ログ管理システムは、ウェブサーバ１Ａ、データベースサーバ１Ｂ、及びユーザ端末２を備える。ウェブサーバ１Ａ、データベース１Ｂ、及びユーザ端末２は、各々ネットワーク３を介して接続される。なお、ウェブサーバ１Ａ、データベースサーバ１Ｂ、及びユーザ端末２の各々は、各々単数であっても複数であってもよい。
【００１８】
ウェブサーバ１Ａは、ＣＰＵ１１、メモリ１２、記憶装置１３、及び入出力インタフェース１４を備える計算機である。ＣＰＵ１１、メモリ１２、及び入出力インタフェース１４は、バス１５によって接続される。入出力インタフェース１４には、ウェブサーバ１Ａとネットワーク３との間でデータを転送するネットワーク制御装置が接続される。なお、入出力インタフェース１４には、表示装置及び入力装置（キーボード等）の入出力装置が接続されてもよい。また、入出力インタフェース１４には、可搬型記憶媒体が装着されるドライブが接続されていてもよい。
【００１９】
ＣＰＵ１１は、記憶装置１３に格納される各種プログラムをメモリ１２にロードし、ロードされた各種プログラムを実行することによって、各種機能をウェブサーバ１Ａで実現する。
【００２０】
記憶装置１３は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、アプリケーション提供プログラム１０１、通信制御プログラム１０２、ログ管理プログラム１０３、テンプレートテーブル１０４、ログテーブル１０５、及びログファイル１０６を格納する。
【００２１】
アプリケーション提供プログラム１０１は、データ検索等のサービスを、ネットワーク３を介してユーザに提供する。アプリケーション提供プログラム１０１によって提供されるサービスは、全てのユーザに提供されても、限られたユーザに提供されてもよい。ここで、アプリケーション提供プログラム１０１は、限られたユーザにのみサービスを提供する場合、ウェブサーバ１Ａにアクセスしたユーザを認証した結果に基づいて、ユーザのアクセスを制御することによって、ウェブサーバ１Ａにアクセスできるユーザを限定する。また、アプリケーション提供プログラム１０１は、ログ管理システムに備わる他のウェブサーバのアプリケーション提供プログラムと連携してサービスをユーザに提供してもよい。
【００２２】
通信制御プログラム１０２は、ウェブサーバ１がネットワーク３を介して送受信するデータを制御する。通信制御プログラム１０２は、データベースサーバ１Ｂ等の他のサーバ１又はユーザ端末２によって送信されたデータを受信し、アプリケーション提供プログラム１０１に受信したデータを通知する。また、通信制御プログラム１０２は、アプリケーション提供プログラム１０１からデータを取得し、データベースサーバ１Ｂ等の他のサーバ１又はユーザ端末２に取得したデータを送信する。
【００２３】
ログ管理プログラム１０３は、ログ情報を管理する。具体的には、ログ管理プログラム１０３は、ウェブサーバ１Ａがユーザ端末２にサービスを提供する際に、ログ情報を取得し、取得したログ情報を出力する。
【００２４】
テンプレートテーブル１０４は、ログ情報が出力される項目及びログ情報が出力される出力方法をレベル毎に管理する。なお、テンプレートテーブル１０４は、各サーバに対応するテーブルが格納される。従って、記憶装置１０３には、ウェブサーバ１Ａに対応するテンプレートテーブル１０４Ａが格納される。なお、ウェブサーバ１Ａに対応するテンプレートテーブル１０４Ａについては、図２で詳細を説明する。
【００２５】
ログテーブル１０５には、ログ管理プログラム１０３によって出力されたログ情報が格納される。具体的には、テンプレートテーブル１０４によって定義される出力方法がＲＤＢ（Relational Data Base）である場合、ログ管理プログラム１０３が、テンプレートテーブル１０４によって定義されるログ情報の出力項目をログテーブル１０５に格納する。なお、ログテーブル１０５については、図４で詳細を説明する。
【００２６】
ログファイル１０６は、ログ管理テーブル１０３によってログ情報が出力されたログ情報が格納される。具体的には、テンプレートテーブル１０４によって定義される出力方法がテキストファイルである場合、ログ管理プログラム１０３が、テンプレートテーブル１０４によって定義されるログ情報の出力項目をログファイル１０６に格納する。
【００２７】
なお、アプリケーション提供プログラム１０１、通信制御プログラム１０２、及びログ管理プログラム１０３によって提供される各機能は、ハードウェアによる論理回路によって提供されてもよい。この場合、テンプレートテーブル１０４、ログテーブル１０５及びログファイル１０６は、ログ管理プログラム１０３に格納される。
【００２８】
また、アプリケーション提供プログラム１０１、通信制御プログラム１０２、及びログ管理プログラム１０３によって提供される機能は、単一の装置によって実現せずに、複数の装置に各プログラムを分散させて実現されてもよい。また、各プログラムによって提供される機能は、各々、複数の企業（例えば、アプリケーションサービスプロバイダ）によって提供されてもよい。
【００２９】
データベースサーバ１Ｂは、図示しないＣＰＵ、メモリ、記憶装置、及び入出力インタフェースを備える計算機である。ユーザ端末２がウェブサーバ１Ａにアクセスし、ユーザを認証する必要がある場合、データベースサーバ１Ｂは、ウェブサーバ１Ａと連携して、ユーザを認証する。
【００３０】
データベースサーバ１Ｂに備わるＣＰＵ、メモリ、記憶装置、及び入出力インタフェースは、ウェブサーバ１Ａと同じ構成なので説明を省略する。
【００３１】
なお、記憶装置には、会員情報テーブル、データベース管理プログラム、通信制御プログラム、ログ管理プログラム、テンプレートテーブル１０４Ｂ、ログテーブル、及びログファイルが格納される。
【００３２】
会員情報テーブルは、会員ＩＤ、パスワード、及び会員の属性に関する情報等を含む。データベース管理プログラムは、会員情報テーブルを管理する。
【００３３】
テンプレートテーブル１０４Ｂは、データベースサーバ１Ｂに対応するテンプレートテーブルである。テンプレートテーブル１０４Ｂについては、図３で詳細を説明する。
【００３４】
なお、データベースサーバ１Ｂに格納される通信制御プログラム、ログ管理プログラム、ログテーブル、及びログファイルは、ウェブサーバ１Ａに格納される通信制御プログラム１０２、ログ管理プログラム１０３、ログテーブル１０５、及びログファイル１０６と同じ構成であるので説明を省略する。
【００３５】
ユーザ端末２は、図示しないＣＰＵ、メモリ、記憶装置、及び入出力インタフェースを備える計算機である。ユーザ端末２は、ネットワーク３を介してウェブサーバ１Ａにアクセスし、ウェブサーバ１Ａからコンテンツを取得することによって、ウェブサーバ１Ａによって提供されるサービスをユーザに提供する。コンテンツとは、例えば、画像及びソフトウェア等の電子ファイル並びにテキストデータである。
【００３６】
ユーザ端末２に備わるＣＰＵ、メモリ、記憶装置、及び入出力インタフェースは、ウェブサーバ１Ａの対応する構成と同じなので説明を省略する。
【００３７】
なお、記憶装置には、ウェブサーバ１Ａからコンテンツを取得するプログラムが格納される。例えば、記憶装置には、ウェブブラウザ等のウェブクライアントが格納される。
【００３８】
本実施形態では、各計算機に備わるＣＰＵが、各計算機に備わる記憶装置に格納されるプログラムを実行することによって、各計算機が提供する機能を各計算機に実現するものとしたが、各計算機が提供する機能をハードウェアによって、各計算機に実現してもよい。
【００３９】
また、各計算機のＣＰＵが実行するプログラムは、予めメモリ又は記憶装置に格納されてもよい。各計算機のＣＰＵが実行するプログラムは、可搬型記憶媒体に格納され、入出力インタフェースに接続されるドライブを介してメモリ又は記憶装置に格納されてもよい。更に、各計算機に備わるＣＰＵが実行するプログラムは、入出力インタフェースに接続される通信回線、又は通信回線を伝搬する搬送波若しくはデジタル信号等を介して、他の装置からメモリ又は記憶装置に格納されてもよい。
【００４０】
図２は、第一実施形態のウェブサーバ１Ａに対応するテンプレートテーブル１０４Ａを示す図である。
【００４１】
テンプレートテーブル１０４Ａは、テンプレートＩＤ２１、ログレベル２２、出力項目２３、及び出力方法２４を含む。
【００４２】
テンプレートＩＤ２１は、ログレベル２２に設定された出力項目及び出力方法の一意な識別子である。ログレベル２２は、ログ情報が出力されるレベルを示す。出力項目２３は、出力されるログ情報の項目を示す。出力方法２４は、ログ情報が出力される方法を示す。
【００４３】
本実施形態では、テンプレートテーブル１０４Ａに含まれるログレベル２２には、「Ｈｉｇｈ」及び「Ｄｅｆａｕｌｔ」の２つのレベルが登録される。ログレベル２２が「Ｈｉｇｈ」の出力項目２３には、ログレベル２３が「Ｄｅｆａｕｌｔ」の出力項目２３に登録される項目より多い項目が登録される。
【００４４】
また、ログレベル２２が「Ｈｉｇｈ」の出力方法２４には「ＲＤＢ」が登録され、ログレベル２２が「Ｄｅｆａｕｌｔ」の出力方法２４には「テキストファイル」が登録される。出力方法２４が「ＲＤＢ」の場合、ログ情報が出力されたＲＤＢにアクセスするユーザに対してアクセス制限を設定することができ、ログ情報のセキュリティを確保できる。また、ＲＤＢで出力されたログ情報に対してソート等を実行できるので、ログ情報を解析しやすくなる。一方、出力方法２４が「テキストファイル」の場合、テキストファイルのデータ容量は、ＲＤＢのデータ容量よりも小さいので、記憶装置のデータ容量を有効に利用することができる。
【００４５】
図３は、第一実施形態のデータベースサーバ１Ｂに対応するテンプレートテーブル１０４Ｂを示す図である。
【００４６】
テンプレートテーブル１０４Ｂは、テンプレートテーブル１０４Ａと同じく、テンプレートＩＤ２１、ログレベル２２、出力項目２３、及び出力方法２４を含む。テンプレートテーブル１０４Ｂは、テンプレートテーブル１０４Ａと同じ構成であるので、異なる箇所を説明する。
【００４７】
テンプレートテーブル１０４Ｂに含まれるログレベル２２には、「Ｈｉｇｈ」及び「Ｄｅｆａｕｌｔ」の２つのレベルが登録される。ログレベル２２が「Ｄｅｆａｕｌｔ」の出力項目２３及び出力方法２４には、各々「なし」が登録される。従って、ログレベル２２が「Ｄｅｆａｕｌｔ」の場合、ログ情報は出力されない。
【００４８】
なお、本実施形態では、ログレベル２２が「Ｈｉｇｈ」及び「Ｄｅｆａｕｌｔ」の２種類の場合を説明したが、ウェブサーバ１Ａに対応するテンプレートテーブル１０４Ａに含まれるログレベル２２とデータベースサーバ１Ｂに対応するテンプレートテーブル１０４Ｂに含まれるログレベル２２とが共通であれば、何種類でもよい。例えば、「Ｈｉｇｈ」と「Ｄｅｆａｕｌｔ」との間に「Ｍｅｄｉｕｍ」を追加してもよい。
【００４９】
図４は、第一実施形態のログテーブル１０５Ａを示す図である。
【００５０】
図４に示すログテーブル１０５Ａは、ログレベルが「Ｈｉｇｈ」のログ情報が、ウェブサーバ１Ａのログ管理プログラム１０３によってＲＤＢに出力された結果である。
【００５１】
ログテーブル１０５は、ログＩＤ３１、セッションＩＤ３２、日時３３、送信元ＩＰアドレス３４、リクエストヘッダ３５、リクエストボディ３６、レスポンスステータス３７、レスポンスボディ３８、及び通信路保護状況３９を含む。
【００５２】
なお、ログテーブル１０５に含まれるこれらの項目は、テンプレートテーブル１０４Ａの出力方法２４が「ＲＤＢ」であるログレベル２３が「Ｈｉｇｈ」の出力項目２３に登録された項目に一致する。
【００５３】
ログＩＤ３１は、テンプレートテーブル１０５に出力されたログ情報の一意な識別子である。セッションＩＤ３２には、ウェブサーバ１Ａがユーザ端末２からのリクエストに対して発行するセッションＩＤが登録される。
【００５４】
日時３３には、ウェブサーバ１Ａがユーザ端末２からリクエストを受信した日時が登録される。送信元ＩＰアドレス３４には、リクエストを送信したユーザ端末２のＩＰアドレスが登録される。
【００５５】
リクエストヘッダ３５には、ウェブサーバ１Ａが受信したリクエストのヘッダ情報が登録される。リクエストボディ３６には、ウェブサーバ１Ａが受信したリクエストのヘッダ情報を除いたデータ本体であるボディが登録される。
【００５６】
レスポンスステータス３７には、ウェブサーバ１Ａが受信したリクエストの結果が登録される。例えば、「２００」は、ウェブサーバ１Ａがリクエストの処理が成功したことを示し、「４０３」は、ウェブサーバ１がアクセス制限によってアクセス先のサーバ等にアクセスできなかったことを示す。
【００５７】
レスポンスボディ３８には、ウェブサーバ１Ａが受信したリクエストに対するレスポンスのデータ本体が登録される。
【００５８】
通信路保護状況３９には、ログ情報が通信される通信路が暗号化されているか否かが登録される。ログ情報を通信する通信路が暗号化されている場合、通信路保護状況３９には、例えば、ＳＳＬ（Secure Socket Layer）が登録される。
【００５９】
なお、データベースサーバ１Ｂに備わる記憶装置に格納されるログテーブル１０５も、ログＩＤとテンプレートテーブル１０４Ｂに含まれる出力項目２３に登録される項目を含む。すなわち、データベースサーバ１Ｂに備わる記憶装置に格納されるログテーブル１０５は、ログＩＤ、セッションＩＤ，日時、ユーザＩＤ、クエリ情報、及びレスポンス情報を含む。
【００６０】
図５は、第一実施形態のログ管理システムのシーケンス図である。
【００６１】
図５に示すシーケンス図において、ウェブサーバ１Ａは、会員制のコンテンツを配信するサービスを提供する。会員制のコンテンツを配信するサービスにおいて、ウェブサーバ１Ａは、データベースサーバ１Ｂによって、ユーザを認証し、アクセスが許可されたユーザにのみサービスを提供する。
【００６２】
ウェブサーバ１Ａに備わる記憶装置１３には、ＨＴＭＬ（HyperText Markup Language）及び画像等のコンテンツが格納される。また、データベースサーバ１Ｂに備わる記憶装置には、会員情報テーブルが格納される。テンプレートテーブル１０４に含まれるログレベル２２、出力項目２３、及び出力方法２４は、予め設定される。
【００６３】
ユーザＡは、ウェブサーバ１Ａが提供する会員制のコンテンツ配信サービスの会員でない。従って、ユーザＡは、ウェブサーバ１Ａにアクセスする権限を有さない。また、ユーザＡは、ユーザ端末２を用いて、ウェブサーバ１Ａにアクセスする。
【００６４】
更に、ウェブサーバ１Ａは、データベースサーバ１Ｂと連携するための情報を記憶装置１３に格納する。ウェブサーバ１Ａの各種プログラムは、データベースサーバ１Ｂに格納される会員情報テーブルを検索する権限がある。
【００６５】
ネットワーク３は、悪意のある第三者によって、成りすまし、並びにネットワーク３を介して通信されるデータの盗聴及び改竄等のセキュリティ面での危険を避けるため、ＳＳＬ等の暗号化通信技術によって、暗号化されていることが望ましい。これらのセキュリティの確保は、必要に応じて行われる。
【００６６】
以下に、ユーザがウェブサーバ１Ａにアクセスし、ウェブサーバ１Ａがデータベースサーバ１Ｂと連携して、ユーザを認証し、コンテンツをユーザに提供する際のログ管理システムのシーケンスを図５を用いて説明する。
【００６７】
ユーザＡは、ユーザ端末２を用いて、ウェブサーバ１Ａにコンテンツを取得するリクエストを送信する（ステップ５０１）。なお、ユーザ端末２が送信するリクエストには、攻撃用のデータが含まれる。例えば、ユーザ端末２は、会員を認証するためのデータ（ユーザＩＤ及びパスワード）を送信する代わりに、データベースサーバ１Ｂに格納される会員情報テーブルのレコードを全て削除するＳＱＬインジェクション攻撃用のデータが含まれているものとする。
【００６８】
具体的には、ユーザ端末２が送信する会員を認証するためのデータには、ユーザＩＤが「ｄｕｍｍｙ」及びパスワードが「’；ＤＥＬＥＴＥ  ＦＲＯＭ  ＵＳＥＲ  ＷＨＥＲＥ  ’Ａ’＝’Ａ」が含まれる。
【００６９】
ウェブサーバ１Ａは、ユーザ端末２からリクエストを受信し、受信したリクエストを解析する。そして、ウェブサーバ１Ａは、受信したリクエストに対して、ウェブサーバ１Ａ及びデータベースサーバ１Ｂで実行される処理の一意な識別であるセッションＩＤを発行する。セッションＩＤ３２は、一定期間（例えば１日）の間にウェブサーバ１Ａが受信したリクエストを一意に識別できるように、十分な母数を持つランダム文字列、又は受信したリクエスト毎に「１」ずつ値を増やす数値等の形式によって発行される。
【００７０】
次にウェブサーバ１Ａは、受信したリクエストのログ情報をメモリ１２に一時的に格納する（ステップ５０３）。具体的には、ウェブサーバ１Ａは、テンプレートテーブル１０４Ａを参照し、テンプレートテーブル１０４Ａに含まれる出力項目に登録された全ての項目（最大項目）のログ情報をメモリ１２に一次的に格納する。
【００７１】
これによって、ウェブサーバ１Ａは、最終的にログレベルがどのレベルになっても、出力できるとともに、ログ情報が出力される記憶領域を削減できる。また、ウェブサーバ１Ａがログ情報を出力する際の負荷を軽減できる。
【００７２】
なお、ウェブサーバ１Ａは、セッションＩＤ及びログレベルもメモリ１２に一次的に格納する。ウェブサーバ１Ａが受信したリクエストのログレベルは、ユーザによって特に設定されていなければ、「Ｄｅｆａｕｌｔ」である。
【００７３】
次に、ウェブサーバ１Ａは、ログレベルを変更するか否かを判定する（ステップ５０４）。具体的には、ウェブサーバ１Ａは、受信したリクエストに問題が発見された否かを判定する。受信したリクエストに問題が発見されない場合には、ウェブサーバ１Ａは、ログレベルを変更しないでステップ５０６の処理に進む。一方、受信したリクエストに問題が発見された場合には、ウェブサーバ１Ａは、受信したリクエストのログレベルを変更する（ステップ５０５）。具体的には、ウェブサーバ１Ａは、受信したリクエストのログレベルを「Ｄｅｆａｕｌｔ」から「Ｈｉｇｈ」に変更する。
【００７４】
なお、本実施形態では、ステップ５０４の処理で、ログレベルを変更しないと判定されるものとする。すなわち、ステップ５０２の処理で、ウェブサーバ１Ａは、受信したリクエストを解析しても、リクエストに含まれる攻撃用のデータを発見しないので、受信したリクエストに問題が発見されない。
【００７５】
次に、ウェブサーバ１Ａは、受信したリクエストに含まれる認証データ（ユーザＩＤ及びパスワード）に基づいて、ＳＱＬ文を用いて、データベースサーバへのリクエストを作成する。
【００７６】
本実施形態では、ウェブサーバ１Ａは、受信したリクエストに含まれる認証データ（ユーザＩＤが「ｄｕｍｍｙ」、及びパスワードが「’；ＤＥＬＥＴＥ  ＦＲＯＭ  ＵＳＥＲ  ＷＨＥＲＥ  ’Ａ’＝’Ａ」）に基づいて、ＳＱＬ文を作成する。
【００７７】
ウェブサーバ１Ａによって作成されるＳＱＬ文は、「ＳＥＬＥＣＴ  ＊  ＦＲＯＭ  ＵＳＥＲ ＷＨＥＲＥ  ｕｓｅｒｉｄ＝’ｄｕｍｍｙ’ＡＮＤ  ｐａｓｓｗｏｒｄ＝’’；ＤＥＬＥＴＥ  ＦＲＯＭ  ＵＳＥＲ  ＷＨＥＲＥ  ’Ａ’＝’Ａ’」である。
【００７８】
もし、データベースサーバ１Ｂがウェブサーバ１Ａによって作成されたＳＱＬ文を実行した場合、ユーザＩＤ及びパスワードが一致するユーザのレコードを検索するだけでなく、会員情報テーブルに登録された全ユーザのレコードを削除する。
【００７９】
次に、ウェブサーバ１Ａは、作成されたＳＱＬ文をリクエストに含めてデータベースサーバ１Ｂに送信する（ステップ５０６）。なお、ウェブサーバ１Ａは、ステップ５０２の処理で発行されたセッションＩＤ及び現在のログレベルをリクエストに含めて送信する。なお、本実施形態では、データベースサーバ１Ｂに送信されるログレベルは、Ｄｅｆａｕｌｔである。
【００８０】
データベースサーバ１Ｂは、ウェブサーバ１Ａからリクエストを受信すると（ステップ５０７）、受信したリクエストのログ情報をメモリに一次的に格納する（ステップ５０８）。具体的には、データベースサーバ１Ｂは、テンプレートテーブル１０４Ｂを参照し、テンプレートテーブル１０４Ｂに含まれる出力項目に登録された全ての項目（最大項目）のログ情報を一次的に格納する。また、セッションＩＤ及びログレベルもメモリに一次的に格納する。
【００８１】
次に、データベースサーバ１Ｂは、受信したリクエストに含まれるＳＱＬ文を処理する（ステップ５０９）。本実施形態では、データベースサーバ１Ｂは、会員情報テーブルに登録された全ユーザのレコードを削除しようとするが、ウェブサーバ１Ａは、会員情報テーブルを検索する権限しかないため、データベースサーバ１Ｂは、受信したリクエストに含まれるＳＱＬ文の処理を実行せずに、エラーを返す。
【００８２】
次に、データベースサーバ１Ｂは、受信したリクエストのログレベルを変更するか否かを判定する（ステップ５１０）。ステップ５０９の処理で、データベースサーバ１Ｂは、受信したリクエストに対して実行される処理にエラーが発生していれば、受信したリクエストに対して実行される処理のログレベルを、ステップ５０７の処理で受信したログレベルより高くする。データベースサーバ１Ｂは、ステップ５０７の処理でデータベースサーバ１Ｂが受信したログレベルと、受信したリクエストに対して実行される処理のログレベルとを比較する。
【００８３】
比較した結果、ステップ５０７の処理でデータベースサーバ１Ｂが受信したログレベルと、受信したリクエストに対して実行される処理のログレベルとが同じであれば、データベースサーバ１Ｂは、ログレベルを変更しないと判定し、ステップ５１２の処理に進む。
【００８４】
一方、ステップ５０７の処理でデータベースサーバ１Ｂが受信したログレベルと、受信したリクエストに対して実行される処理のログレベルとが相違する場合、高いログレベルに変更する（ステップ５１１）。具体的には、データベースサーバ１Ｂは、受信したリクエストに含まれるセッションＩＤに基づいて、メモリに一次的に格納されたログ情報を検索し、高いログレベルに変更する。
【００８５】
本実施形態では、ステップ５０９の処理で、データベースサーバ１Ｂは、エラーを返すので、データベースサーバ１Ｂは、ログレベルを「Ｄｅｆａｕｌｔ」から「Ｈｉｇｈ」に変更する。
【００８６】
データベースサーバ１Ｂは、ステップ５０９の処理を実行した結果（レスポンス）に、セッションＩＤ及びログレベルを含めて、ウェブサーバ１Ａに送信する（ステップ５１２）。
【００８７】
そして、データベースサーバ１Ｂは、テンプレートテーブル１０４Ｂを参照し、受信したリクエストのログレベルの出力項目２３及び出力方法２４に基づいて、メモリに一次的に格納されたログ情報を出力する（ステップ５１３）。
【００８８】
なお、本実施形態では、作成されたレスポンスをユーザ端末２に送信した後に、メモリ１２に一時的に格納されたログ情報を出力したが、作成されたレスポンスをユーザ端末２に送信する前に、メモリ１２に一時的に格納されたログ情報を出力するようにしてもよい。
【００８９】
データベースサーバ１Ｂは、メモリに格納されたログ情報を出力した後に、メモリに一時的に格納されたログ情報を削除する。
【００９０】
一方、ウェブサーバ１Ａは、データベースサーバ１Ｂからレスポンスを受信すると（ステップ５１４）、ログレベルを変更するか否かを判定する（ステップ５１５）。具体的には、ウェブサーバ１Ａは、受信したレスポンスに含まれるセッションＩＤに基づいて、ステップ５０３の処理でメモリ１２に一次的に格納されるログ情報に含まれるログレベルとレスポンスデータに含まれるログレベルを比較し、レスポンスデータに含まれるログレベルが変更されていれば、ログレベルを変更する（ステップ５１６）。
【００９１】
本実施形態では、ステップ５１１の処理で、データベースサーバ１Ｂによって、ログレベルが「Ｄｅｆａｕｌｔ」から「Ｈｉｇｈ」に変更されているので、ウェブサーバ１Ａに備わるメモリ１２に一次的に格納されるログレベル２２を「Ｄｅｆａｕｌｔ」から「Ｈｉｇｈ」に変更する。
【００９２】
次に、ウェブサーバ１Ａは、データベースサーバ１Ｂからのレスポンスの処理を実行後、ユーザに対するレスポンスを作成し、作成されたレスポンスをユーザ端末２に送信する（ステップ５１７）。なお、本実施形態では、ウェブサーバ１Ａは、ユーザに対するレスポンスとしてエラーメッセージを作成し、作成されたエラーメッセージをユーザ端末２に送信する。
【００９３】
そして、ウェブサーバ１Ｂは、ステップ５１３の処理と同じく、テンプレートテーブル１０４Ａを参照し、ログレベルの出力項目２３及び出力方法２４に基づいて、メモリ１２に一時的に格納されるログ情報を出力する（ステップ５１８）。
【００９４】
なお、本実施形態では、作成されたレスポンスをユーザ端末２に送信した後に、メモリ１２に一時的に格納されたログ情報を出力したが、作成されたレスポンスをユーザ端末２に送信する前に、メモリ１２に一時的に格納されたログ情報を出力するようにしてもよい。
【００９５】
ウェブサーバ１Ａは、メモリ１２に格納されたログ情報を出力した後に、メモリ１２に一時的に格納されたログ情報を削除する。
【００９６】
本実施形態によれば、バックエンドのデータベースサーバ１Ｂで発生した障害等によって、ログ情報のレベルが変更された場合であっても、ウェブサーバ１Ａとデータベースサーバ１Ｂとの間でセッションＩＤによって、ログ情報を関連づけることができるとともに、ログレベルをウェブサーバ１Ａとデータベースサーバ１Ｂとの間で通知することによってフロントのウェブサーバ１Ａにおいても、データベースサーバ１Ｂによって変更されたログレベルに統一できる。
【００９７】
次に、第一実施形態の変形例について説明する。
【００９８】
第一実施形態のログ管理システムにおいては、データベースサーバ１Ｂが、ステップ５１２の処理で、ログレベル等をウェブサーバ１Ａに送信した後、ウェブサーバ１Ａにおいて、エラーが発生し、ログレベルを変更した場合には、データベースサーバ１Ｂにおいてログレベルを変更することはできない。
【００９９】
そこで、ウェブサーバ１Ａは、ステップ５１６の処理の後、セッションＩＤ及びログレベルをデータベースサーバ１Ｂに送信する。そして、データベースサーバ１Ｂは、ステップ５１２の処理の後、すぐにログ情報を出力せずに、ウェブサーバ１ＡからセッションＩＤ及びログレベルを受信した後に、受信したログレベルがデータベースサーバ１Ｂのログレベルより高ければ、受信したログレベルのログレベル２３で、ログ情報を出力する。
【０１００】
これによって、ウェブサーバ１Ａにおいて、ステップ５１４以降の処理で、エラーが発生し、ログレベルを変更した場合にも、ログ管理システムで統一されたログレベルでログ情報を出力できる。
【０１０１】
（第二実施形態）
第二実施形態は、第一実施形態の変形例と同じく、データベースサーバ１Ｂが、ステップ５１２の処理で、ログレベル等をウェブサーバ１Ａに送信した後、ウェブサーバ１Ａにおいて、エラーが発生し、ログレベルを変更した場合には、データベースサーバ１Ｂにおいてログレベルを変更することはできない点を考慮したものである。
【０１０２】
そこで、第二実施形態では、ウェブサーバ１Ａが最後のレスポンスをユーザ端末２に出力した後、ウェブサーバ１Ａがログレベルを決定し、ログ収集サーバ４が決定されたログレベルに基づいて、ログ情報を出力する。
【０１０３】
以下に、第二実施形態を図６から図８を用いて説明する。
【０１０４】
図６は、第二実施形態のログ管理システムの構成を示す図である。
【０１０５】
本実施形態のログ管理システムは、ウェブサーバ１Ａ、データベースサーバ１Ｂ、ユーザ端末２、及びログ収集サーバ４を備える。すなわち、本実施形態のログ管理システムは、本発明の第一実施形態のログ管理システムに、さらに、ログ収集サーバ４を備えた構成である。
【０１０６】
ウェブサーバ１Ａ及びデータベースサーバ１Ｂは、ログ情報を出力しないので、ログテーブル１０５及びログファイル１０６を記憶装置に格納しない。なお、ウェブサーバ１Ａ及びデータベースサーバ１Ｂは、その他の構成については、第一実施形態のウェブサーバ１Ａ及びデータベースサーバ１Ｂと同じなので、説明を省略する。なお、ユーザ端末２の構成は、前述した第一実施形態と同じなので、説明を省略する。
【０１０７】
ログ収集サーバ４は、図示しないＣＰＵ、メモリ、記憶装置、及び入出力インタフェースを備える。
【０１０８】
ログ収集サーバ４は、入出力インタフェースに接続されるネットワーク制御装置を介して、ネットワーク３に接続される。
【０１０９】
ＣＰＵは、記憶装置に格納される各種プログラムを実行することによって、各種機能を計算機で実現する。なお、本発明では、各プログラムが提供する機能は、ハードウェアによって実現されてもよい。
【０１１０】
ログ収集サーバ４に備わる記憶装置は、ＯＳ、通信制御プログラム１０２、ログ管理プログラム１０３、ウェブサーバ１Ａに対応するテンプレートテーブル１０４Ａ、データベースサーバ１Ｂに対応するテンプレートテーブル１０４Ｂ、ログテーブル１０５、及びログファイル１０６を格納する。
【０１１１】
ログ管理プログラム１０３は、ウェブサーバ１Ａ及びデータベースサーバ１Ｂから受信したログ情報を管理する。なお、通信制御プログラム１０２、テンプレートテーブル１０４Ａ及び１０４Ｂログテーブル１０５、及びログファイル１０６は、第一実施形態と同じ構成である。
【０１１２】
図７は、第二実施形態のログ管理システムのシーケンス図である。
【０１１３】
本実施形態は、第一実施形態と同じく、ウェブサーバ１Ａによって、会員制のコンテンツを配信するサービスを例に説明する。
【０１１４】
コンテンツ配信サイトは、ウェブサーバ１Ａ及びデータベースサーバ１Ｂを備える。ウェブサーバ１Ａに備わる記憶装置１３には、ＨＴＭＬ及び画像等のコンテンツ情報と、コンテンツ情報及びユーザ情報を管理する処理を実行する管理プログラムとが格納される。なお、管理プログラムは、管理者がコンテンツ及びユーザ情報を管理するための画面を表示装置に表示することによって、コンテンツ情報及びユーザ情報を管理する。
【０１１５】
ただし、管理プログラムにおいて、ユーザ情報を管理する処理は、特定の時間帯（例えば午前３時から午前６時まで）に制限されている。
【０１１６】
また、データベースサーバ１Ｂに備わる記憶装置には、会員情報テーブルが格納される。なお、会員情報テーブルは、第一実施形態の会員情報テーブルと同じである。
【０１１７】
また、ユーザＢは、第一実施形態と同じく、会員制のコンテンツ配信サービスの会員に登録していないユーザであって、ウェブサーバ１Ａにアクセスする権限を有さない。また、ユーザＢは、ユーザ端末２を用いて、ウェブサーバ１Ａにアクセスする。
【０１１８】
ウェブサーバ１Ａは、データベースサーバ１Ｂと連携するための情報を記憶装置に格納する。
【０１１９】
ネットワーク３は、第一実施形態と同じく、悪意のある第三者によって、盗聴、改竄、及び成りすまし等のセキュリティ上の危険を避けるため、ＳＳＬ等の暗号化通信技術を用いて暗号化されていることが望ましい。これらのセキュリティの確保は、必要に応じて行われる。
【０１２０】
図７は、ユーザ端末２がウェブサーバ１Ａにアクセスし、ウェブサーバ１Ａ及びデータベースサーバ１Ｂが連携してユーザを認証し、ウェブサーバ１Ａがコンテンツをユーザに提供する場合に、ログ情報を出力するシーケンス図である。
【０１２１】
ユーザＢは、ユーザ端末２を用いて、ウェブサーバ１Ａにユーザ認証を要求する認証リクエストを送信する（ステップ６０１）。なお、ユーザ端末２が送信する認証リクエストには、攻撃用のデータが含まれる。
【０１２２】
例えば、ユーザ端末２は、会員を認証するためのデータ（ユーザＩＤ及びパスワード）を送信する代わりに、管理者（ユーザＩＤがＡｄｍｉｎｉｓｔｒａｔｏｒ）に成りすますＳＱＬインジェクション攻撃用のデータが含まれているものとする。
【０１２３】
具体的には、ユーザ端末２が送信する認証リクエストには、ユーザＩＤ「Ａｄｍｉｎｉｓｔｒａｔｏｒ‐‐」及びパスワード「ｄｕｍｍｙ」が含まれる。
【０１２４】
ウェブサーバ１Ａは、認証リクエストを受信し、受信した認証リクエストを解析する。そして、ウェブサーバ１Ａは、認証リクエストに対して実行する処理を一意に識別するためのセッションＩＤを発行する（ステップ６０２）。セッションＩＤは、一定期間（例えば1日）の間にウェブサーバ１Ｂが認証リクエストを送信したユーザ端末を一意に識別できるように、例えば十分な母数を持つランダムな文字列等の形式で発行される。
【０１２５】
次に、ウェブサーバ１Ａは、受信した認証リクエストのログ情報をメモリ１２に一時的に格納する（ステップ６０３）。具体的には、ウェブサーバ１Ａは、テンプレート１０４Ａを参照し、テンプレートテーブル１０４Ａに含まれる出力項目２３に登録された全ての項目のログ情報をメモリ１２に一時的に格納する。
【０１２６】
なお、ウェブサーバ１Ａは、ステップ６０２の処理で発行されたセッションＩＤ及びログレベル２２もメモリ１２に一時的に格納する。ここで、ウェブサーバ１Ａが受信した認証リクエストのログレベルは、特に設定されていなければ、「Ｄｅｆａｕｌｔ」としてメモリ１２に一次的に格納される。
【０１２７】
次に、ウェブサーバ１Ａは、受信したリクエストに含まれる認証データ（ユーザＩＤ及びパスワード）に基づいて、データベースサーバ１ＢへのクエリをＳＱＬ文を用いて作成する。
【０１２８】
本実施形態では、ウェブサーバ１Ａは、受信した認証リクエストに含まれる認証データ（ユーザＩＤ「Ａｄｍｉｎｉｓｔｒａｔｏｒ‐‐」及びパスワード「ｄｕｍｍｙ」）に基づいてＳＱＬ文を作成する。ここで、作成されるＳＱＬ文は、「ＳＥＬＥＣＴ  ＊  ＦＲＯＭ  ＵＳＥＲ ＷＨＥＲＥ  ｕｓｅｒｉｄ＝’Ａｄｍｉｎｉｓｔｒａｔｏｒ‐‐’ＡＮＤ  ｐａｓｓｗｏｒｄ＝’ｄｕｍｍｙ’；」である。なお、ＳＱＬ文では、「‐‐」以降は、コメントであって、実行されない。従って、データベースサーバ１Ｂが作成されたＳＱＬ文を実行すると、「Ａｄｍｉｎｉｓｔｒａｔｏｒ」の会員情報テーブルを検索し、ユーザＢは、「Ａｄｍｉｎｉｓｔｒａｔｏｒ」として認証される。
【０１２９】
次に、データベースサーバ１Ａは、作成されたＳＱＬ文をリクエストに含めて、リクエストをデータベースサーバ１Ｂに送信する。なお、ウェブサーバ１Ａは、ステップ６０２の処理で発行されたセッションＩＤもリクエストに含めてデータベースサーバ１Ｂに送信する（ステップ６０４）。
【０１３０】
データベースサーバ１Ｂは、ウェブサーバ１Ａからリクエストを受信すると（ステップ６０５）、受信したリクエストのログ情報、セッションＩＤ、及びをメモリに一時的に格納する（ステップ６０６）。具体的には、データベースサーバ１Ｂは、テンプレートテーブル１０４Ｂを参照し、テンプレートテーブル１０４Ｂに含まれる出力項目２３に登録された全ての項目のログ情報をメモリに一時的に格納する。
【０１３１】
次に、データベースサーバ１Ｂは、受信したリクエストに含まれるＳＱＬ文を実行し、実行結果をレスポンスに含めて、レスポンスをウェブサーバ１Ａに送信する（ステップ６０７）。
【０１３２】
本実施形態では、データベースサーバ１Ｂは、受信したリクエストに含まれるＳＱＬ文を実行すると、ユーザＢを管理者（Ａｄｍｉｎｉｓｔｒａｔｏｒ）として認証する。
【０１３３】
ステップ６０７の処理の後、データベースサーバ１Ｂは、受信したリクエストのログレベルを変更するか否かを判定する（ステップ６０８）。具体的には、データベースサーバ１Ｂは、受信したリクエストに含まれるＳＱＬ文を実行中に、エラーが発生していれば、受信したリクエストに対して実行される処理のログレベルを、ステップ６０５の処理で受信したログレベルより高くする。データベースサーバ１Ｂは、ステップ６０５の処理でデータベースサーバ１Ｂが受信したログレベルと、受信したリクエストに対して実行される処理のログレベルとを比較する。
【０１３４】
比較した結果、ステップ６０５の処理でデータベースサーバ１Ｂが受信したログレベルと、受信したリクエストに対して実行される処理のログレベルとが同じであれば、データベースサーバ１Ｂは、ログレベルを変更しないと判定し、ステップ６１０の処理に進む。
【０１３５】
一方、ステップ６０５の処理でデータベースサーバ１Ｂが受信したログレベルと、受信したリクエストに対して実行される処理のログレベルとが相違する場合、高いログレベルに変更する（ステップ６０９）。具体的には、データベースサーバ１Ｂは、受信したリクエストに含まれるセッションＩＤに基づいて、メモリに一次的に格納されたログ情報を検索し、高いログレベルに変更する。
【０１３６】
本実施形態では、データベースサーバ１Ｂが受信したリクエストに含まれるＳＱＬ文の実行時にエラーが発生しないため、データサーバ１Ｂは、ログレベルを変更しない。
【０１３７】
次に、データベースサーバ１Ｂは、メモリに一次的に格納したログ情報、現在のログレベル、及びセッションＩＤをログ収集サーバ４に送信する（ステップ６１０）。そして、データベースサーバ１Ｂは、メモリ１２に一時的に格納したログ情報を削除する。
【０１３８】
一方、ウェブサーバ１Ａは、データベースサーバ１Ｂからレスポンスを受信すると、受信したレスポンスを処理する（ステップ６１１）。そして、ウェブサーバ１Ａは、ユーザ端末２に対するレスポンスデータを作成し、作成されたレスポンスデータをユーザ端末２に送信する（ステップ６１２）。本実施形態では、ユーザ２Ｂは、管理者として認証されるので、ウェブサーバ１Ａは、レスポンスデータとして管理者用の画面データを作成する。
【０１３９】
なお、ユーザ端末２に対するレスポンスは、セッションＩＤを含む。例えば、セッションＩＤは、ウェブサーバ１Ａからレスポンスを受信したユーザ端末２に格納されるブラウザにＣｏｏｋｉｅとして格納される形式で、ユーザ端末２に送信される。
【０１４０】
次に、ウェブサーバ１Ａは、ログレベルを変更するか否かを判定する（ステップ６１３）。具体的には、ウェブサーバ１Ａは、受信したレスポンスデータの処理の実行中に、エラーが発生していれば、受信したリクエストに対して実行される処理のログレベルを、データベースサーバ１Ｂから受信したログレベルより高くする。ウェブサーバ１Ａは、データベースサーバ１Ｂから受信したログレベルと、受信したリクエストに対して実行される処理のログレベルとを比較する。
【０１４１】
比較した結果、ウェブサーバ１Ａがデータベースサーバ１Ｂから受信したログレベルと、受信したリクエストに対して実行される処理のログレベルとが同じであれば、ウェブサーバ１Ａは、ログレベルを変更しないと判定し、ステップ６１５の処理に進む。
【０１４２】
一方、ウェブサーバ１Ａがデータベースサーバ１Ｂから受信したログレベルと、受信したリクエストに対して実行される処理のログレベルとが相違する場合、高いログレベルに変更する（ステップ６１４）。具体的には、ウェブサーバ１Ａは、受信したリクエストに含まれるセッションＩＤに基づいて、メモリに一次的に格納されたログ情報を検索し、高いログレベルに変更する。
【０１４３】
本実施形態では、ウェブサーバ１Ａが受信したレスポンスを処理中にエラーが発生しないので、ウェブサーバ１Ａは、ログレベルを変更しない。
【０１４４】
次に、ウェブサーバ１Ａは、メモリ１２に一次的に格納したログ情報、現在のログレベル、及びセッションＩＤをログ収集サーバ４に送信する（ステップ６１５）。そして、ウェブサーバ１Ａは、メモリ１２に一時的に格納したログ情報を削除する。ただし、ユーザＢは、データベースサーバ１Ｂによって管理者として認証され、管理者としてログイン中であるため、セッションＩＤ、ユーザＩＤ（Ａｄｍｉｎｉｓｔｒａｔｏｒ）、及びログインステータス（例えば、ログイン中等の情報）をログイン情報としてメモリ１２に格納する。
【０１４５】
ユーザ端末２は、ウェブサーバ１Ａからレスポンスを受信すると、ユーザＢによって、管理者用の操作リクエストが入力され、ユーザ端末２は、操作リクエストをウェブサーバＡに送信する（ステップ６１７）。本実施形態では、管理者用の操作リクエストとして、ウェブサーバ１Ａに会員情報テーブルを検索する要求が入力される。
【０１４６】
なお、ユーザ端末２がレスポンスを受信すると、セッションＩＤは、Ｃｏｏｋｉｅとしてユーザ端末２のブラウザに格納される。ユーザ端末２は、操作リクエストにＣｏｏｋｉｅとして格納されたセッションＩＤを付加して送信する。
【０１４７】
ウェブサーバ１Ａは、ユーザ端末２からリクエストを受信すると、受信したリクエストを解析し、セッションＩＤを抽出する(ステップ６１８)。
【０１４８】
そして、ウェブサーバ１Ａは、ステップ６０３の処理と同じく、受信したリクエストのログ情報をメモリ１２に一時的に格納する（ステップ６１９）。また、ウェブサーバ１Ａは、受信したセッションＩＤ及びログレベルもメモリ１２に一時的に格納する。
【０１４９】
次に、ウェブサーバ１Ａは、受信したリクエストを処理する（ステップ６２０）。本実施形態では、受信したリクエストは、ウェブサーバ１Ａが会員情報テーブルを検索する要求であり、ウェブサーバ１Ａは、特定の時間帯でしか会員情報テーブルを検索できないので、ウェブサーバ１Ａは、受信したリクエストにエラーを返す。
【０１５０】
ステップ６２０の処理の後、ウェブサーバ１Ａは、受信したリクエストの処理の結果を含むレスポンスをユーザ端末２に送信する。そして、ウェブサーバ１Ａは、メモリ１２に一時的に格納したログ情報を削除し、ユーザＢのログアウト処理を実行する（ステップ６２１）。本実施形態では、受信したリクエストを処理中にエラーが発生するため、ウェブサーバ１Ａは、ユーザ端末２にエラー画面を表示させるデータを作成し、作成されたデータを含むレスポンスをユーザ端末２に送信し、ログアウト処理を実行する。
【０１５１】
次に、ウェブサーバ１Ａは、ログレベルを変更するか否かを判定する（ステップ６２２）。具体的には、ウェブサーバ１Ａは、ステップ６１８の処理でユーザ端末２から受信したリクエストの処理の実行中に、エラーが発生していれば、受信したリクエストに対して実行される処理のログレベルを、現在設定されているログレベルより高くする。ウェブサーバ１Ａは、現在設定されているログレベルと、受信したリクエストに対して実行される処理のログレベルとを比較する。
【０１５２】
比較した結果、現在設定されているログレベルと、受信したリクエストに対して実行される処理のログレベルとが同じであれば、ウェブサーバ１Ａは、ログレベルを変更しないと判定し、ステップ６２４の処理に進む。
【０１５３】
一方、現在設定されているログレベルと、受信したリクエストに対して実行される処理のログレベルとが相違する場合、高いログレベルに変更する（ステップ６２３）。具体的には、ウェブサーバ１Ａは、受信したリクエストに含まれるセッションＩＤに基づいて、メモリに一次的に格納されたログ情報を検索し、高いログレベルに変更する。
【０１５４】
本実施形態では、ウェブサーバ１Ａが受信したリクエストを処理中にエラーが発生したため、ウェブサーバ１Ａは、ログレベルを「Ｄｅｆａｕｌｔ」から「Ｈｉｇｈ」に変更する（ステップ６２２）。
【０１５５】
次に、ウェブサーバ１Ａは、ユーザＢのログアウト処理を実行したため、メモリ１２に一時的に格納したログ情報、現在のログレベル、セッションＩＤ，及びセッションＩＤによって識別される一連の処理が終了したことを示す終端情報をログ収集サーバ１Ａに送信する（ステップ６２４）。そして、ウェブサーバ１Ａは、メモリ１２に一時的に格納したログ情報を削除する。
【０１５６】
ステップ６２１の処理で、ウェブサーバ１Ａが送信したレスポンスをユーザ端末２が受信すると、ユーザ端末２とコンテンツ配信サイトのセッションは終了する。
【０１５７】
図８は、第二実施形態のログ収集サーバ４のログ情報管理処理のフローチャートである。
【０１５８】
ログ収集サーバ４は、ウェブサーバ１Ａ又はデータベースサーバ１Ｂからログ情報、ログレベル、及びセッションＩＤを受信すると、受信したログ情報、ログレベル、及びセッションＩＤをメモリに一時的に格納する（ステップ７０１）。なお、ログ収集サーバ１Ａから終端情報を受信する情報には、ログ情報、ログレベル、及びセッションＩＤの他、終端情報が含まれる場合もある。なお、ログ収集サーバ４は、受信した終端情報をメモリに一時的に格納する。
【０１５９】
なお、ログ収集サーバ４が受信した情報は、メモリに一時的に格納されるのではなく、記憶装置又は可搬型記憶媒体等に一時的に格納されてもよい。
【０１６０】
次に、ログ収集サーバ４は、ウェブサーバ１Ａ又はデータベースサーバ１Ｂから受信した情報に終端情報が含まれているか否かを判定する（ステップ７０２）。終端情報が含まれない場合、ログ収集サーバ４は、ログ情報管理処理を終了し、待機状態に戻る。
【０１６１】
一方、ウェブサーバ１Ａ又はデータベースサーバ１Ｂから受信した情報に終端情報が含まれる場合、ログ収集サーバ４は、セッションＩＤに基づいて、メモリに一時的に格納された全てのログ情報及びログレベルを検索する（ステップ７０３）。
【０１６２】
次に、ログ収集サーバ４は、セッションＩＤが一致するログレベルの中で最大のログレベルに変更する。そして、ログ収集サーバ４は、テンプレートテーブル１０４Ａ及び１０４Ｂを参照し、変更後のログレベルの出力項目２３及び出力方法２４でログ情報を出力する（ステップ７０４）。
【０１６３】
ログ収集サーバ４は、出力したセッションＩＤと一致するログ情報をメモリから削除する。
【０１６４】
本実施形態によれば、最大項目のログ情報及びログレベルが一時的に格納され、特定のセッション（本実施形態では、ログインセッション）が終了した際の最大のログレベルに変更し、変更されたログレベルに基づいて、ログ情報が出力される。これによって、あるサーバにおいて、エラーが発生し、ログレベルが変更されても、全てのサーバでログレベルを統一して、ログ情報を出力できる。
【図面の簡単な説明】
【０１６５】
【図１】ログ管理システムの構成図
【図２】ウェブサーバに対応するテンプレートテーブルを示す図
【図３】データベースサーバに対応するテンプレートテーブルを示す図
【図４】ログテーブルを示す図
【図５】ログ管理システムにおけるログ管理処理のシーケンス図
【図６】ログ管理システムの構成図
【図７】ログ管理システムにおけるログ管理処理のシーケンス図
【図８】ログ収集サーバのログ情報管理処理のフローチャート
【符号の説明】
【０１６６】
１  サーバ
２  ユーザ端末
３  ネットワーク
４  ログ収集サーバ
１１  ＣＰＵ
１２  メモリ
１３  記憶装置
１４  入出力インタフェース
１５  バス
【図１】
2008015733.tif 000003
【図２】
2008015733.tif 000004
【図３】
2008015733.tif 000005
【図４】
2008015733.tif 000006
【図５】
2008015733.tif 000007
【図６】
2008015733.tif 000008
【図７】
2008015733.tif 000009
【図８】
2008015733.tif 000010