Sun Java System Web Proxy Server 4.0.4 管理ガイド

アクセスログの詳細設定

インストール中、サーバーに access という名前のアクセスログファイルが作成されます。アクセスをログに記録するかどうか、ログの記録に使用する形式、クライアントがリソースにアクセスした場合にサーバーでそのクライアントのドメイン名を検索する必要があるかどうかを指定することによって、リソースへのアクセスログをカスタマイズできます。

ログの詳細設定を指定するには、サーバーマネージャーの「Set Access Log Preferences」ページを使用するか、または obj.conf ファイルで指令を手動で設定します。obj.conf では、サーバーは関数 flex-init を呼び出してフレキシブルロギングシステムを初期化し、関数 flex-log を呼び出して要求された特定のデータをフレキシブルログ形式で記録します。共通ログファイル形式を使用して要求をログに記録するには、サーバーはinit-clf を呼び出してobj.conf で使用される共通ログのサブシステムを初期化し、common-log を呼び出して要求された特定のデータを、ほとんどの HTTP サーバーで使用される共通ログ形式で記録します。

リソースのアクセスログが作成されると、そのログをアーカイブする場合や、同じリソースに対して新しいアクセスログファイルを作成する場合を除いて、アクセスログの形式を変更することはできません。

表 9–2 管理サーバーのログファイル形式

ログファイル項目 

説明 

「Client Hostname」:

アクセスを要求するクライアントのホスト名 (DNS が無効の場合は IP アドレス)。 

「Authenticate User Name」:

認証が必要な場合、認証されたユーザー名をアクセスログに記録することができます。 

「システム日付」:

クライアント要求の日時。 

「Full Request」:

クライアントからの完全な要求。 

「状態」:

サーバーからクライアントに返された状態コード。 

「Content Length」:

クライアントに送信されるドキュメントのコンテンツ長 (バイト数)。 

「HTTP Header, “referer”」:

referer はクライアントが現在のページにアクセスを行ったページを特定します。たとえば、ユーザーがテキスト検索クエリーの結果を調べている場合、referer にはユーザーがテキスト検索エンジンにアクセスしたページが入ります。referer により、サーバーは逆走査したリンクのリストを作成できます。 

「HTTP Header, “user-agent”」:

クライアントが使用しているブラウザの種類とそのバージョン、およびブラウザが実行されているオペレーティングシステムが含まれるユーザーエージェント情報。この情報は、クライアントがサーバーに送信する HTTP ヘッダー情報のユーザーエージェントフィールドから取得されます。 

「Method」:

使用される HTTP 要求メソッド。GET 、PUT 、POST など。 

「URI」:

Universal Resource Identifier の略。サーバー上のリソースの場所。たとえば、http://www.a.com:8080/special/docs の場合、URI は special/docs になります。

「Query String Of The URI」

URI の疑問符に続く文字列。たとえば、http://www.a.com:8080/special/docs?find_this の場合、URI のクエリー文字列は find_this になります。

「プロトコル」:

使用される転送プロトコルとバージョン。 

既存のログファイルの形式を変更する場合は、最初に既存のログファイルを削除するか、名前を変更します。あるいは、別のファイル名を使用します。

Procedure管理サーバーのアクセスログ詳細設定を設定するには

  1. 管理サーバーにアクセスして、「Preferences」タブをクリックします。

  2. 「Set Access Log Preferences」リンクをクリックします。

    「Set Access Log Preferences」ページが表示されます。

  3. ドロップダウンリストからリソースを選択するか、「Regular Expression」ボタンをクリックして正規表現を入力し、「了解」をクリックします。

  4. クライアントアクセスを記録するかどうかを指定します。

    この指定では、ドメインネームサービス (DNS) を有効にする必要があります。

  5. アクセスログファイルの絶対パスを指定します。

    デフォルトで、ログファイルはサーバールートの logs ディレクトリに保存されます。部分パスを指定した場合、サーバーは、パスがサーバールートの logs ディレクトリを基準にしているものと見なします。

    サーバー全体を編集する場合、このフィールドのデフォルト値は、設定ファイルでサーバーのアクセスログファイルを表す変数、$accesslog です。

  6. サーバーにアクセスするシステムのドメイン名または IP アドレスをアクセスログに記録するかどうかを指定します。

  7. アクセスログで使用するログファイル形式の種類を選択します。

    有効なオプションは次のとおりです。

    • 「Use Common LogFile Format」: クライアントのホスト名、認証されたユーザー名、要求日時、HTTP ヘッダー、クライアントに返される状態コード、クライアントに送信されるドキュメントのコンテンツ長などが含まれています。

    • 「Only Log」: ログに記録する情報を選択できます。表 9–2に挙げられたフレキシブルログ形式の項目から選択できます。

    • カスタム形式を選択する場合、「Custom Format」フィールドに入力します。

  8. 「了解」をクリックします。

  9. 「Restart Required」をクリックします。

    「Apply Changes」ページが表示されます。

  10. 「Restart Proxy Server」ボタンをクリックして、変更を適用します。

サーバーインスタンスのアクセスログの詳細設定の設定

サーバーインスタンスのアクセスログの詳細設定の設定に使用できるフレキシブルログ形式を次の表に示します。

表 9–3 サーバーインスタンスのログファイル形式

ログファイル項目 

説明 

「Client Hostname」:

アクセスを要求するクライアントのホスト名 (DNS が無効の場合は IP アドレス)。 

「Authenticate User Name」:

認証が必要だった場合、認証されたユーザー名をアクセスログに記録することができます。 

「System Date」:

クライアント要求の日時。 

「Full Request」:

クライアントからの完全な要求。 

「状態」

サーバーからクライアントに返された状態コード。 

「Content Length」:

クライアントに送信されるドキュメントのコンテンツ長 (バイト数)。 

「HTTP Header, “referer”」:

referer はクライアントが現在のページにアクセスを行ったページを特定します。たとえば、ユーザーがテキスト検索クエリーの結果を調べている場合、referer にはユーザーがテキスト検索エンジンにアクセスしたページが入ります。referer により、サーバーは逆走査したリンクのリストを作成できます。 

「HTTP Header, “user-agent”」:

クライアントが使用しているブラウザの種類とそのバージョン、およびブラウザが実行されているオペレーティングシステムが含まれるユーザーエージェント情報。この情報は、クライアントがサーバーに送信する HTTP ヘッダー情報のユーザーエージェントフィールドから取得されます。 

「Method」:

使用される HTTP 要求メソッド。GET 、PUT 、POST など。 

「URI」:

Universal Resource Identifier の略。サーバー上のリソースの場所。たとえば、http://www.a.com:8080/special/docs の場合、URI は special/docs になります。

「Query String Of The URI」:

URI の疑問符に続く文字列。たとえば、http://www.a.com:8080/special/docs?find_this の場合、URI のクエリー文字列は find_this になります。

「プロトコル」:

使用される転送プロトコルとバージョン。 

「Cache Finish Status」

このフィールドは、「キャッシュが書き込まれた」、「キャッシュが更新された」、「最新状態チェックを行なった結果キャッシュの内容が返された」のうち、どの状態であるかを示します。 

「Remote Server Finish Status」

このフィールドは、リモートサーバーへの要求が正常に完了したか、クライアントがブラウザで「停止」ボタンをクリックしたことにより中断されたか、またはエラー条件により中止されたかどうかを示します。 

「Status Code From Server」:

サーバーから返された状態コード。 

「Route To Proxy (PROXY, SOCKS, DIRECT)」:

リソースの取得に使用される経路。ドキュメントは直接、プロキシ経由、または SOCKS サーバー経由で取得できます。 

「Transfer Time」:

転送時間の長さ (秒またはミリ秒)。 

「Header-length From Server Response」:

サーバー応答のヘッダーの長さ。 

「Request Header Size From Proxy To Server」

プロキシからサーバーへの要求ヘッダーのサイズ。 

「Response Header Size Sent To Client」:

クライアントに送信される応答ヘッダーのサイズ。 

「Request Header Size Received From Client」:

クライアントから受信する要求ヘッダーのサイズ。 

「Content-length From Proxy To Server Request」:

プロキシからサーバーに送信されるドキュメントの長さ (バイト)。 

「Content-length Received From Client」:

クライアントからのドキュメントの長さ (バイト)。 

「Content-length From Server Response」:

サーバーからのドキュメントの長さ (バイト)。 

「Unverified User From Client」

認証時にリモートサーバーに渡されるユーザー名。 

Procedureサーバーインスタンスのアクセスログ詳細設定を設定するには

  1. サーバーマネージャーにアクセスし、「Server Status」タブをクリックします。

  2. 「Set Access Log Preferences」リンクをクリックします。

    「Set Access Log Preferences」ページが表示されます。

  3. ドロップダウンリストからリソースを選択するか、「Regular Expression」ボタンをクリックして正規表現を入力し、「了解」をクリックします。

  4. クライアントアクセスを記録するかどうかを指定します。

    この指定では、ドメインネームサービス (DNS) を有効にする必要があります。

  5. アクセスログファイルの絶対パスを指定します。

    デフォルトで、ログファイルはサーバールートの logs ディレクトリに保存されます。部分パスを指定した場合、サーバーは、パスがサーバールートの logs ディレクトリを基準にしているものと見なします。

    サーバー全体を編集する場合、このフィールドのデフォルト値は、設定ファイルでサーバーのアクセスログファイルを表す変数、$accesslog です。

  6. サーバーにアクセスするシステムのドメイン名または IP アドレスをアクセスログに記録するかどうかを指定します。

  7. ログファイルの形式を、共通、拡張、拡張 2、指定した情報のみ (「Only log」ラジオボタン)、またはカスタムから選択します。

    「Only log」をクリックした場合、次のフレキシブルログ形式の項目から選択できます。

  8. アクセスログで使用するログファイル形式の種類を選択します。

    サーバーアクセスログは、共通ログファイル形式、拡張ログファイル形式、拡張 2 ログファイル形式、フレキシブルログ形式、または独自のカスタマイズ可能な形式にすることができます。共通ログファイル形式は一般的にサポートされている形式で、サーバーに関する一定量の情報が提供されます。フレキシブルログ形式では、(Proxy Server から) ログに記録するコンテンツを選択できます。カスタマイズ可能な形式では、パラメータブロックを指定してログのコンテンツを制御します。

    • 「Use Common LogFile Format」: クライアントのホスト名、認証されたユーザー名、要求日時、HTTP ヘッダー、クライアントに返される状態コード、クライアントに送信されるドキュメントのコンテンツ長などが含まれています。

    • 「Use Extended LogFile Format」: 共通ログファイル形式のすべてのフィールドだけでなく、リモート状態、プロキシからクライアントまでのコンテンツ長、リモートからプロキシまでのコンテンツ長、プロキシからリモートまでのコンテンツ長、クライアントからプロキシまでのヘッダー長、プロキシからクライアントまでのヘッダー長、プロキシからリモートまでのヘッダー長、リモートからプロキシまでのヘッダー長、転送時間などのいくつかの追加フィールドが含まれています。

    • 「Use Extended2 LogFile Format」: 拡張ログファイル形式のすべてのフィールドだけでなく、クライアント状態、サーバー状態、リモート状態、キャッシュ完了状態、実際の経路などのいくつかの追加フィールドが含まれています。

    • 「Only Log」: ログに記録する情報を選択できます。表 9–3に示されたフレキシブルログ形式の項目から選択できます。

    • カスタム形式を選択する場合、「Custom Format」フィールドに入力します。

  9. 特定のホスト名または IP アドレスからのクライアントアクセスを記録しない場合は、ホスト名と IP アドレスのフィールドにそれぞれ入力します。

    アクセス記録を残さないサーバーのホストのワイルドカードパターンを入力します。たとえば、*.example.com と入力した場合、ドメイン example.com のユーザーからのアクセスはログに記録されません。ワイルドカードパターンは、ホスト名、IP アドレス、または両方について入力できます。

  10. ログファイルに書式文字列を含めるかどうかを選択します。

    Proxy Server のログアナライザを使用する場合、書式文字列を含める必要があります。サードパーティー製のアナライザを使用する場合、ログファイルに書式文字列を含める必要はありません。

  11. 「了解」をクリックします。

  12. 「Restart Required」をクリックします。

    「Apply Changes」ページが表示されます。

  13. 「Restart Proxy Server」ボタンをクリックして、変更を適用します。

Cookie を使用した簡易ロギング

Proxy Server には、flexlog 機能を使用して簡単に特定の cookie のログを記録する方法があります。obj.conf 設定ファイル内の flex-log サブシステムを初期化する行に Req-headers.cookie.cookie_name を追加します。この命令によって、要求のヘッダーに cookie 変数がある場合は cookie 変数 cookie_name の値がログに記録され、cookie 変数がない場合は - が記録されます。