複数の方法で、サーバーのアクティビティーを監視することができます。この章では、ログファイルを記録して参照することによって、サーバーを監視する方法について説明します。組み込みのパフォーマンス監視サービス、すなわち SNMP の使用については、第 10 章「サーバーの監視」を参照してください。
この章の内容は次のとおりです。
サーバーのログファイルには、サーバーのアクティビティーが記録されます。このようなログを使用してサーバーを監視すると、障害追跡時に役立ちます。サーバールートディレクトリの proxy-server_name/logs/errors にあるエラーログファイルには、サーバーで検出されたすべてのエラーが一覧表示されます。サーバーのルートディレクトリの proxy-server_name/logs/access にあるアクセスログには、サーバーに対する要求とサーバーの応答に関する情報が記録されます。Proxy Server の access ログファイルに記録される情報を設定することができます。サーバーの統計情報を生成するには、ログアナライザを使用します。サーバーのエラーログファイルとアクセスログファイルをアーカイブすることによって、バックアップすることができます。
オペレーティングシステムの制限により、Linux 上で稼動している Proxy Server では 2G バイトを超えるログファイルを処理できません。最大サイズに達すると、ロギングが終了します。
この節では、ログファイルがどのように作成されるのかについて説明します。さらに、この節では、次の項目についても説明します。
Windows オペレーティング環境で使用されるイベントログメカニズムの詳細を参照するには、Windows のヘルプシステムの索引から「イベントログ」を参照してください。
UNIX と Windows のどちらのプラットフォームでも、管理サーバーからのログは、proxy-admserv/logs/ 管理ディレクトリに収集されます。サーバーインスタンスからのログは、proxy-server_name/logs/ ディレクトリに収集されます。
サーバー全体のデフォルトのログレベルを設定することができます。 stdout と stderr をサーバーのイベントログにリダイレクトし、ログをオペレーティングシステムのシステムログに出力するようにできます。さらに、stdout と stderr の内容をサーバーのイベントログに出力することもできます。デフォルトでは、ログメッセージは stderr と、指定のサーバーログファイルに送信されます。
一元的なログ記録が必要となる安定した運用環境では、syslog が適しています。診断とデバッグのためにログ出力が頻繁に必要となる環境では、サーバーインスタンス別のログのほうが管理が容易です。
サーバーインスタンスおよび管理サーバーのすべてのログデータが 1 つのファイルに記録される場合、内容を解釈したり、デバッグに利用することが難しくなります。syslog マスターログファイルは、円滑に稼動している配備済みアプリケーションだけで使用してください。
ログに記録されるメッセージには、Solaris デーモンアプリケーションからのその他のログも含まれています。
syslog ログファイルを syslogd およびシステムログデーモンと組み合わせて使用することで、syslog.conf ファイルを設定して次の処理を行うことができます。
適切なシステムログにメッセージを記録する
システムコンソールにメッセージを出力する
ログに記録されたメッセージをユーザーリストに転送する、または、ログに記録されたメッセージをネットワーク経由で別のホストの syslogd に転送する
syslog へのログ記録では、Proxy Server およびその他のデーモンアプリケーションからのログが同じファイルに収集されるため、Proxy Server に固有のメッセージと、特定のサーバーインスタンスのメッセージを区別するために、ログメッセージに次の情報が追加されます。
一意のメッセージ ID
タイムスタンプ
インスタンス名
プログラム名 (proxyd または proxyd-wdog)
プロセス ID (proxyd プロセスの PID)
スレッド ID (オプション)
サーバー ID
server.xml ファイルでは、管理サーバーとサーバーインスタンスの両方に対してLOG 要素を設定することができます。
UNIX オペレーティング環境で使用される syslog のロギングメカニズムの詳細を参照するには、端末のプロンプトで次の man コマンドを使用します。
man syslog man syslogd man syslog.conf
次の表は、Proxy Server のログレベルとメッセージを重要度の低い順から示しています。
表 9–1 ログレベル
ログレベル |
説明 |
---|---|
finest finer fine |
メッセージはデバッグメッセージの詳細度を示します。finest が最も詳細な情報を示します。 |
info |
通常は、サーバーの設定やサーバーの状態に関する情報を示します。これらのメッセージは、すぐに対応が必要なエラーを示すものではありません。 |
warning |
警告を示します。このメッセージには、例外も含まれます。 |
failure |
アプリケーションの通常の実行の妨げとなる、深刻な障害を示します。 |
config |
特定の設定に関連する問題のデバッグに役立つ設定の各種統計情報に関連しています。 |
security |
セキュリティーに関する問題を示します。 |
catastrophe |
致命的なエラーを示します。 |
アクセスログファイルとエラーログファイルが自動的にアーカイブされるように設定することができます。指定の時刻、または指定の間隔で、ログがローテーションされます。Proxy Server は、古いログファイルを保存し、そのファイルに保存日時を含む名前を付けます。
たとえば、アクセスログファイルを毎時間ローテーションするように設定することができます。Proxy Server は「access.200505160000」という名前を付けてファイルを保存します。ここで、ログファイル名、年、月、日、24 時間形式の時刻は 1 つの文字列で表わされます。ログアーカイブファイルの形式は、設定したログローテーションのタイプによって異なります。
Proxy Server では、次の 2 つのタイプのアーカイブファイルのログローテーションを使用できます。内部デーモンログローテーションと Cron ベースのログローテーション。
内部デーモンログローテーションは HTTP デーモン内で行われ、起動時にだけ設定を変更できます。サーバーの再起動を必要とせず、サーバーで内部的にログをローテーションできます。この方法でローテーションされるログは、次の形式で保存されます。
access.<YYYY><MM><DD><HHMM>
errors.<YYYY><MM><DD><HHMM>
ログファイルをローテーションし、新しいログファイルでの記録を開始する間隔として使用する時間を指定できます。たとえば、ローテーションの開始時刻が午前 0 時であれば、ローテーション間隔は 1440 分 (1 日) となり、変更を保存して適用すると、現在の時刻に関係なく新しいログファイルが直ちに作成されます。ログファイルは毎日午前 0 時にローテーションされ、アクセスログのタイムスタンプは午前 0 時になり、access.200505172400 という名前で保存されます。同様に、間隔を 240 分 (4 時間) に設定した場合、午前 0 時から 4 時間おきにログがローテーションされます。アクセスログファイルには、午前 0 時から午前 4 時まで、午前 4 時から午前 8 時まで、などというように収集された情報が保存されます。
ログローテーションが有効になっている場合、サーバーの起動時にログファイルのローテーションが開始されます。ローテーションされる最初のログファイルでは、現在時刻から次のローテーション時刻までの間の情報が収集されます。前の例を使用して、開始時刻を午前 0 時に設定し、ローテーションの間隔を 240 分に設定した場合、現在時刻が午前 6 時とすると、ローテーションされる最初のログファイルには午前 6 時から午前 8 時の間に収集された情報、次のログファイルには午前 8 時から午後 12 時 (正午) までの間に収集された情報、などというように保存されます。
スケジューラベースのログローテーションは、server-root/proxy- server_name/config/ ディレクトリの server.xml ファイルに記録される時刻と日付を基準にします。この方法では、すぐにログファイルをアーカイブすることも、サーバーで特定の日の特定の時間にログファイルをアーカイブするように設定することもできます。サーバーのスケジューラ設定オプションは、server-root/proxy- server_name/config/ ディレクトリの server.xml ファイルに保存されます。スケジューラベースの方法でローテーションされるログは、次の形式で保存されます。
<original_filename>.<YYYY><MM><DD><HHMM>
たとえば、午後 4 時 30 分にローテーションされる access は access.200505171630 という名前になります。
ログローテーションは、サーバーの起動時に初期化されます。ローテーションを有効にすると、Proxy Server はタイムスタンプの付いたアクセスログファイルを作成し、ローテーションがサーバーの起動時に開始されます。
ローテーションが開始されると、アクセスログファイルまたはエラーログファイルに記録する必要のある要求やエラーが、事前にスケジュールされている「次のローテーション時」の後に発生した場合、Proxy Server で新しいタイムスタンプの付いたログファイルが作成されます。
ログアナライザを実行する前に、サーバーログをアーカイブしてください。
ログファイルをアーカイブし、内部デーモンの方法とスケジュールベースの方法のどちらを使用するかを指定するには、サーバーマネージャーで「Archive Log」ページを使用します。
インストール中、サーバーに 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 になります。 |
「プロトコル」: |
使用される転送プロトコルとバージョン。 |
既存のログファイルの形式を変更する場合は、最初に既存のログファイルを削除するか、名前を変更します。あるいは、別のファイル名を使用します。
管理サーバーにアクセスして、「Preferences」タブをクリックします。
「Set Access Log Preferences」リンクをクリックします。
「Set Access Log Preferences」ページが表示されます。
ドロップダウンリストからリソースを選択するか、「Regular Expression」ボタンをクリックして正規表現を入力し、「了解」をクリックします。
クライアントアクセスを記録するかどうかを指定します。
この指定では、ドメインネームサービス (DNS) を有効にする必要があります。
アクセスログファイルの絶対パスを指定します。
デフォルトで、ログファイルはサーバールートの logs ディレクトリに保存されます。部分パスを指定した場合、サーバーは、パスがサーバールートの logs ディレクトリを基準にしているものと見なします。
サーバー全体を編集する場合、このフィールドのデフォルト値は、設定ファイルでサーバーのアクセスログファイルを表す変数、$accesslog です。
サーバーにアクセスするシステムのドメイン名または IP アドレスをアクセスログに記録するかどうかを指定します。
アクセスログで使用するログファイル形式の種類を選択します。
有効なオプションは次のとおりです。
「Use Common LogFile Format」: クライアントのホスト名、認証されたユーザー名、要求日時、HTTP ヘッダー、クライアントに返される状態コード、クライアントに送信されるドキュメントのコンテンツ長などが含まれています。
「Only Log」: ログに記録する情報を選択できます。表 9–2に挙げられたフレキシブルログ形式の項目から選択できます。
カスタム形式を選択する場合、「Custom Format」フィールドに入力します。
「了解」をクリックします。
「Restart Required」をクリックします。
「Apply Changes」ページが表示されます。
「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」 |
認証時にリモートサーバーに渡されるユーザー名。 |
サーバーマネージャーにアクセスし、「Server Status」タブをクリックします。
「Set Access Log Preferences」リンクをクリックします。
「Set Access Log Preferences」ページが表示されます。
ドロップダウンリストからリソースを選択するか、「Regular Expression」ボタンをクリックして正規表現を入力し、「了解」をクリックします。
クライアントアクセスを記録するかどうかを指定します。
この指定では、ドメインネームサービス (DNS) を有効にする必要があります。
アクセスログファイルの絶対パスを指定します。
デフォルトで、ログファイルはサーバールートの logs ディレクトリに保存されます。部分パスを指定した場合、サーバーは、パスがサーバールートの logs ディレクトリを基準にしているものと見なします。
サーバー全体を編集する場合、このフィールドのデフォルト値は、設定ファイルでサーバーのアクセスログファイルを表す変数、$accesslog です。
サーバーにアクセスするシステムのドメイン名または IP アドレスをアクセスログに記録するかどうかを指定します。
ログファイルの形式を、共通、拡張、拡張 2、指定した情報のみ (「Only log」ラジオボタン)、またはカスタムから選択します。
「Only log」をクリックした場合、次のフレキシブルログ形式の項目から選択できます。
アクセスログで使用するログファイル形式の種類を選択します。
サーバーアクセスログは、共通ログファイル形式、拡張ログファイル形式、拡張 2 ログファイル形式、フレキシブルログ形式、または独自のカスタマイズ可能な形式にすることができます。共通ログファイル形式は一般的にサポートされている形式で、サーバーに関する一定量の情報が提供されます。フレキシブルログ形式では、(Proxy Server から) ログに記録するコンテンツを選択できます。カスタマイズ可能な形式では、パラメータブロックを指定してログのコンテンツを制御します。
「Use Common LogFile Format」: クライアントのホスト名、認証されたユーザー名、要求日時、HTTP ヘッダー、クライアントに返される状態コード、クライアントに送信されるドキュメントのコンテンツ長などが含まれています。
「Use Extended LogFile Format」: 共通ログファイル形式のすべてのフィールドだけでなく、リモート状態、プロキシからクライアントまでのコンテンツ長、リモートからプロキシまでのコンテンツ長、プロキシからリモートまでのコンテンツ長、クライアントからプロキシまでのヘッダー長、プロキシからクライアントまでのヘッダー長、プロキシからリモートまでのヘッダー長、リモートからプロキシまでのヘッダー長、転送時間などのいくつかの追加フィールドが含まれています。
「Use Extended2 LogFile Format」: 拡張ログファイル形式のすべてのフィールドだけでなく、クライアント状態、サーバー状態、リモート状態、キャッシュ完了状態、実際の経路などのいくつかの追加フィールドが含まれています。
「Only Log」: ログに記録する情報を選択できます。表 9–3に示されたフレキシブルログ形式の項目から選択できます。
カスタム形式を選択する場合、「Custom Format」フィールドに入力します。
特定のホスト名または IP アドレスからのクライアントアクセスを記録しない場合は、ホスト名と IP アドレスのフィールドにそれぞれ入力します。
アクセス記録を残さないサーバーのホストのワイルドカードパターンを入力します。たとえば、*.example.com と入力した場合、ドメイン example.com のユーザーからのアクセスはログに記録されません。ワイルドカードパターンは、ホスト名、IP アドレス、または両方について入力できます。
ログファイルに書式文字列を含めるかどうかを選択します。
Proxy Server のログアナライザを使用する場合、書式文字列を含める必要があります。サードパーティー製のアナライザを使用する場合、ログファイルに書式文字列を含める必要はありません。
「了解」をクリックします。
「Restart Required」をクリックします。
「Apply Changes」ページが表示されます。
「Restart Proxy Server」ボタンをクリックして、変更を適用します。
Proxy Server には、flexlog 機能を使用して簡単に特定の cookie のログを記録する方法があります。obj.conf 設定ファイル内の flex-log サブシステムを初期化する行に Req-headers.cookie.cookie_name を追加します。この命令によって、要求のヘッダーに cookie 変数がある場合は cookie 変数 cookie_name の値がログに記録され、cookie 変数がない場合は - が記録されます。
サーバーのエラーログに記録される情報を設定することができます。
エラーロギングオプションを管理サーバーから設定するには、「Preferences」タブを選択し、「Set Error Log Preferences」リンクをクリックします。
サーバーインスタンスのエラーロギングオプションをサーバーマネージャーから設定するには、「Server Status」タブを選択し、「Set Error Log Preferences」リンクをクリックします。
「Error Log File Name」フィールドに、サーバーからのメッセージを保存するファイルを指定します。
「Log Level」ドロップダウンリストから、エラーログに記録する必要のある情報量を指定します。有効なオプションは次のとおりです。
stdout の出力がエラーログにリダイレクトされるようにする場合は、「Log Stdout」チェックボックスを選択します。
stderr の出力がエラーログにリダイレクトされるようにする場合は、「Log Stderr」チェックボックスを選択します。
コンソールにログメッセージをリダイレクトする場合は、「Log To Console」チェックボックスを選択します。
UNIX の syslog サービスまたは Windows のイベントログを使用してログを生成および管理する場合は、「Use System Logging」チェックボックスを選択します。
「了解」をクリックします。
「Restart Required」をクリックします。
「Apply Changes」ページが表示されます。
「Restart Proxy Server」ボタンをクリックして、変更を適用します。
次の表はserver.xml ファイル内で設定できる LOG 要素の属性を示しています。
表 9–4 LOG 属性
属性 |
デフォルト |
説明 |
---|---|---|
file |
errors |
サーバーからのメッセージを格納するファイルを指定します。 |
loglevel |
info |
他の要素によってエラーログに記録されるメッセージのデフォルトの種類を制御します。使用できる値は、最高から最低まで次のようになります: finest 、fine、fine、info、 warning、failure、config、security、および catastrophe。 |
logstdout |
true |
(オプション) true に設定した場合、stdout の出力がエラーログにリダイレクトされます。有効な値は、on、off、 yes、no、1、0、 true、false です。 |
logstderr |
true |
(オプション) true に設定した場合、stderr の出力がエラーログにリダイレクトされます。有効な値は、on、off、 yes、no、1、0、 true、false です。 |
logtoconsole |
true |
(オプション、UNIX のみ) true に設定した場合、ログメッセージがコンソールにリダイレクトされます。 |
createconsole |
false |
(オプション、Windows のみ) true に設定した場合、stderr 出力用の Windows コンソールが作成されます。有効な値は、on、 off、yes、no、1、 0、true、false です。 |
usesyslog |
false |
(オプション) true に設定した場合、ログの生成と管理に UNIX の syslog サービス、または Windows のイベントログが使用されます。有効な値は、on 、off、yes、no、 1、0、true、false です。 |
サーバーで使用中のアクセスログファイル、およびアーカイブされたアクセスログファイルを参照できます。
管理サーバーのアクセスログを管理サーバーから表示するには、「Preferences」タブを選択し、「View Access Log」リンクをクリックします。
サーバーインスタンスのアクセスログをサーバーマネージャーから表示するには、「Server Status」タブを選択し、「View Access」ページを選択します。
198.18.17.222 - - [20/May/2005:14:15:49 +0530] "GET http://www.example.com/ HTTP/1.1" 504 622 198.18.17.222 - abc [20/May/2005:14:16:09 +0530] "GET http://www.test.com/report.zip HTTP/1.1" 504 630 |
次の表に、アクセスログの最後の行について説明します。
アクセスログフィールド |
例 |
---|---|
クライアントのホスト名または IP アドレス |
198.18.17.222。この例では、Proxy Server の DNS 検索の設定が無効になっているため、クライアントの IP アドレスが表示されています。DNS 検索が有効に設定されている場合、クライアントのホスト名が表示されます。 |
RFC 931 情報 |
- (RFC 931 の識別情報は表示されない) |
ユーザー名 |
abc (認証のためにクライアントによって入力されたユーザー名) |
要求の日時 |
20/May/2005:14:16:09 +0530 |
要求 |
GET |
プロトコル |
HTTP/1.1 |
状態コード |
504 |
転送されたバイト |
630 |
エラーログファイルには、ログファイルが作成されてからサーバーで検出されたエラーが記録されます。また、このログファイルにはサーバーの起動時などのサーバーに関する情報メッセージも記録されます。エラーログには、失敗したユーザー認証も記録されます。エラーログを使用して、誤った URL パスや不足しているファイルを見つけることもできます。
管理サーバーのエラーログを管理サーバーから表示するには、「Preferences」タブを選択し、「View Error Log」リンクをクリックします。
サーバーインスタンスのエラーログファイルを管理サーバーから表示するには、「Server Status」タブを選択し、「View Error Log」リンクをクリックします。
次に、エラーログの 3 つのエントリ例を示します。
20/May/2005:14:08:37] info ( 6141): CORE1116: Sun Java System Web Proxy Server 4.0 B05/10/2005 01:26 20/May/2005:14:08:37] info ( 6142): CORE3274: successful server startup 20/May/2005:14:08:37] security (23246): for host 198.18.148.89 trying to GET /, deny-service reports: denying service of / |
server-root/extras/log_anly ディレクトリには、サーバーマネージャーのユーザーインタフェースから実行するログ分析ツールがあります。このログアナライザは、共通ログ形式のファイルだけを分析します。log_anly ディレクトリにある HTML ドキュメントに、このツールのパラメータが説明されています。server-install/extras/ flexanlg ディレクトリには、フレキシブルログファイル形式用のコマンド行ログアナライザがあります。ただし、サーバーマネージャーのデフォルト設定では、選択したログファイル形式に関係なく、フレキシブルログファイルレポートツールを使用するように設定されています。
ログアナライザを使用して、アクティビティーの要約、もっとも頻繁にアクセスされる URL、サーバーがもっとも頻繁にアクセスされる時間など、デフォルトサーバーの統計情報を生成します。ログアナライザは、Proxy Server から実行することも、コマンド行から実行することもできます。
flexanlg コマンド行ユーティリティーを実行する前に、ライブラリパスを設定する必要があります。各種プラットフォームでの設定は、次のとおりです。
Solaris および Linux:
LD_LIBRARY_PATH=server-root/bin/proxy/lib:$LD_LIBRARY_PATH
AIX:
LIBPATH=server-root/bin/proxy/lib:$LIBPATH
HP-UX:
SHLIB_PATH=server-root/bin/proxy/lib:$SHLIB_PATH
Windows:
path=server-root\\bin\\proxy\\bin;%path%
ログアナライザを実行する前に、 サーバーログをアーカイブする必要があります。サーバーログのアーカイブについては、「ログファイルのアーカイブ」を参照してください。
ライブラリパスを設定する代わりに、server-root/proxy-serverid ディレクトリに変更を行った後、コマンドプロンプトで ./start -shell と入力することもできます。
拡張または拡張 2 ロギング形式を使用する場合、ログアナライザは報告用に指定した情報のほかに、出力ファイルに複数のレポートを生成します。次の節では、これらのレポートについて説明します。
転送時間分散レポートには、Proxy Server が要求の転送に要する時間が示されます。このレポートには、情報がサービス時間別、および完了率別に分類されて表示されます。次の例は転送時間分散レポートの例です。
サービス時間カテゴリ別:
< 1 sec [644%] ........................................
< 2 sec [33.3%] ....................
< 3 sec [ 2.7%] .
< 4 sec [ 1.7%] .
< 5 sec [ 0.6%]
< 6 sec [ 0.4%]
< 7 sec [ 0.2%]
< 8 sec [ 0.0%]
< 9 sec [ 0.0%]
完了率別:
< 1 sec [64.4%] ........................................
< 2 sec [97.7%] ....................................
< 3 sec [100.4%]..............................................
データフローレポートには、クライアントからプロキシ、プロキシからクライアント、プロキシからリモートサーバー、およびリモートサーバーからプロキシへのデータフロー (転送バイト数) が示されます。これらの各シナリオについて、レポートには転送されたデータの量がヘッダーおよびコンテンツの形式で示されます。データフローレポートには、キャッシュからクライアントへのデータフローも示されます。次はデータフローレポートの例です。
状態コードレポートには、Proxy Server がリモートサーバーから受信した状態コード、およびクライアントに送信した状態コードの内容と数が示されます。この状態コードレポートには、これらのすべての状態コードの説明も表示されます。次の例は状態コードレポートの例です。
要求と接続レポートには、Proxy Server がクライアントから受信した要求数、プロキシからリモートサーバーに設定した接続数 (初期取得、最新状態チェック、更新)、Proxy Server がキャッシュされたドキュメントを使用することにより回避したリモート接続数が示されます。次の例は要求と接続レポートの例です。
- Total requests............. 478 - Remote connections......... 439 - Avoided remote connects.... 39 [ 8.2%]
キャッシュパフォーマンスレポートには、クライアントのキャッシュ、Proxy Server のキャッシュ、直接の接続のパフォーマンスが示されます。
クライアントのキャッシュのヒットは、クライアントがドキュメントで最新状態チェックを実行し、リモートサーバーが 304 メッセージ、すなわちクライアントにドキュメントが変更されなかったことを伝えるメッセージが返された場合に起こります。クライアントにより開始される最新状態チェックから、クライアントがドキュメントの独自のコピーがキャッシュにあることが示されます。
クライアントのキャッシュについては、レポートに次の内容が示されます。
クライアントおよびプロキシのキャッシュのヒット: このクライアントのキャッシュのヒットでは、Proxy Server とクライアントのいずれにも要求されたドキュメントのコピーがあり、リモートサーバーにプロキシのコピーについての最新状態チェックが照会され、そのあと、プロキシのコピーについてクライアントの要求が評価されます。キャッシュパフォーマンスレポートには、プロキシにより処理されたこのタイプの要求数と、これらの要求の処理にプロキシが要した平均時間が示されます。
プロキシのショートカットチェックなし:このクライアントのキャッシュのヒットでは、Proxy Server とクライアントのいずれにも要求されたドキュメントのコピーがあり、Proxy Server はクライアントのキャッシュのドキュメントが最新であることをクライアントに伝えます (リモートサーバーでのチェックは行われない)。キャッシュパフォーマンスレポートには、プロキシにより処理されたこのタイプの要求数と、これらの要求の処理にプロキシが要した平均時間が示されます。
クライアントのキャッシュのヒットのみ: このクライアントのキャッシュのヒットでは、クライアントのキャッシュのみに要求されたドキュメントのコピーがあります。このタイプの要求では、Proxy Server がクライアントの If-modified-since GET ヘッダーに直接トンネリングします。キャッシュパフォーマンスレポートには、プロキシにより処理されたこのタイプの要求数と、これらの要求の処理にプロキシが要した平均時間が示されます。
クライアントのキャッシュの合計ヒット数:クライアントのキャッシュの合計ヒット数と、これらの要求の処理にクライアントが要した平均時間。
プロキシのキャッシュのヒットは、クライアントが Proxy Server からドキュメントを要求し、Proxy Server のキャッシュにすでにドキュメントがある場合に起こります。Proxy Server のキャッシュのヒットの場合、レポートに次の内容が示されます。
チェックによるプロキシのキャッシュのヒット: このプロキシのキャッシュのヒットでは、Proxy Server がドキュメントの最新状態チェックをリモートサーバーに照会します。キャッシュパフォーマンスレポートには、プロキシにより処理されたこのタイプの要求数と、これらの要求の処理にプロキシが要した平均時間が示されます。
チェックなしのプロキシのキャッシュのヒット:このプロキシのキャッシュのヒットでは、Proxy Server がドキュメントの最新状態チェックをリモートサーバーに照会しません。キャッシュパフォーマンスレポートには、プロキシにより処理されたこのタイプの要求数と、これらの要求の処理にプロキシが要した平均時間が示されます。
純粋なプロキシのキャッシュのヒット: このプロキシのキャッシュのヒットでは、クライアントに要求されたドキュメントのコピーがキャッシュにありません。キャッシュパフォーマンスレポートには、プロキシにより処理されたこのタイプの要求数と、これらの要求の処理にプロキシが要した平均時間が示されます。
組み合わせたプロキシのキャッシュのヒットの場合、レポートに Proxy Server のキャッシュに対するヒットの合計数と、これらの要求の処理に Proxy Server が要した平均時間が示されます。
直接のトランザクションとは、キャッシュにヒットせずに、直接リモートサーバーから Proxy Server、そしてクライアントに送られるトランザクションです。直接のトランザクションの場合、レポートに次の内容が示されます。
取得したドキュメント数:リモートサーバーから直接取得したドキュメントの数。キャッシュパフォーマンスレポートには、プロキシが処理したこのタイプの要求数と、これらの要求の処理にプロキシが要した平均時間、および合計トランザクションに対する割合が示されます。
その他のトランザクション:200 または 304 以外の状態コードが返されるトランザクション。キャッシュパフォーマンスレポートには、プロキシが処理したこのタイプの要求数と、これらの要求の処理にプロキシが要した平均時間が示されます。
直接のトラフィックの合計数: クライアントからリモートサーバーに直接送られた要求数 (失敗した要求や正常に取得されたドキュメントを含む)。キャッシュパフォーマンスレポートには、プロキシが処理したこのタイプの要求数と、これらの要求の処理にプロキシが要した平均時間、および合計トランザクションに対する割合が示されます。
次の例はキャッシュパフォーマンスレポートの例です。
CLIENT CACHE: - Client & proxy cache hits... 86 reqs [18.0%] 0.21 sec/req- Proxy shortcut no-check........ 13 reqs [ 2.7%] 0.00 sec/req- Client cache hits only..... - TOTAL client cache hits.......... 99 reqs [20.7%] 0.18 sec/req PROXY CACHE: - Proxy cache hits w/check........ 4 reqs [ 0.8%] 0.50 sec/req- Proxy cache hits w/o check.. 10 reqs [ 2.1%] 0.00 sec/req- Pure proxy cache hits...... 14 reqs [ 2.9%] 0.14 sec/req PROXY CACHE HITS COMBINED: - TOTAL proxy cache hits....... 113 reqs [23.6%] 0.18 sec/req DIRECT TRANSACTIONS: - Retrieved documents..313 reqs [65.5%] 0.90 sec/req 2 MB- Other transactions.. 52 reqs [10.9%] 7.79 sec/req- TOTAL direct traffic.. 365 reqs [76.4%] 1.88 sec/req 2 MB |
転送時間レポートには、Proxy Server がトランザクションの処理に要した時間に関する情報が示されます。このレポートには、次のカテゴリの値が示されます。
平均トランザクション時間:ログに記録されたすべての転送時間の平均。
キャッシュがない場合の転送時間の平均:キャッシュから返されないトランザクション (リモートサーバーからの 200 の応答) の転送時間の平均。
エラーがない場合のキャッシュの平均:エラーがないトランザクション (状態コードが 2xx と 3xx) の転送時間の平均。
平均転送時間の向上:平均トランザクション時間から、エラーがない場合のキャッシュの平均転送時間を引いた時間。
次の例は転送時間レポートの例です。
- Average transaction time... 1.48 sec/req- Ave xfer time w/o caching.. 0.90 sec/req- Ave w/caching, w/o errors.. 0.71 sec/req - Ave xfer time improvement.. 0.19 sec/req
分析された各時間について、毎時アクティビティーレポートに次の内容が示されます。
読み込み平均
リモートサーバーへの最新状態チェックを実行しない場合のキャッシュのヒット数
リモートサーバーに対して最新状態チェックを実行し、ドキュメントが最新であり、クライアントのキャッシュ内にドキュメントがあることが証明された Proxy Server のキャッシュのヒット数
リモートサーバーに対して最新状態チェックを実行し、ドキュメントが最新であり、クライアントのキャッシュ内にドキュメントがないことが証明された Proxy Server のキャッシュのヒット数
リモートサーバーに対して最新状態チェックを実行し、ドキュメントの一部が更新された Proxy Server のキャッシュのヒット数
リモートサーバーに対して最新状態チェックを実行し、要求されたドキュメントの新しいコピーを状態コード 200 で返した Proxy Server のキャッシュのヒット数
Proxy Server のキャッシュにヒットせず、リモートサーバーから直接ドキュメントを取得した要求数
「Generate Report」ページが表示されます。
サーバー名を入力します。この名前は生成されるレポートに表示されます。
レポートを HTML 形式または ASCII 形式で表示するかどうかを指定します。
分析するログファイルを選択します。
結果をファイルに保存する場合は、「Output File」フィールドに出力ファイル名を入力します。
このフィールドを空白のままにすると、レポート結果は画面に出力されます。大容量ログファイルの場合、画面への出力に時間がかかる場合があるため、結果をファイルに保存するようにしてください。
特定のサーバー統計用に合計を生成するかどうかを指定します。
次の合計を生成できます。
合計ヒット数: アクセスログが有効になってから、サーバーが受信した合計ヒット数。
304 (変更なし) 状態コード: サーバーによりページが返されるのではなく、要求したドキュメントのローカルコピーが使用された回数。
302 (リダイレクト) 状態コード: 元の URL が移動したため、サーバーが新しいURL にリダイレクトした回数。
404 (見つかりません) 状態コード: サーバーが要求されたドキュメントを見つけられなかった回数、またはクライアントが承認されたユーザーではなかったためサーバーがドキュメントを提供しなかった回数。
500 (サーバーエラー) 状態コード: サーバー関連のエラーが発生した回数。
固有の URL の合計数 : アクセスログが有効になってからアクセスされた固有の URL の数。
固有のホストの合計数: アクセスログが有効になってからサーバーにアクセスした固有のホスト数。
合計転送量 (K バイト): アクセスログが有効になってからサーバーが転送した K バイト数。
一般統計を生成するかどうかを選択します。統計の生成を選択する場合、次の項目から選択します。
「Find TopNumber Seconds Of Log」: 最新の統計対象期間 (秒) からの情報に基づいて、統計情報を生成します。
「Find TopNumber Minutes Of Log」:
最新の統計対象期間 (分) からの情報に基づいて、統計情報を生成します。
「Find TopNumber Hours Of Log」: 最新の統計対象期間 (時間) からの情報に基づいて、統計情報を生成します。
「Find NumberUsers (If Logged)」: ユーザーの数からの情報に基づいて情報を生成します。
「Find Top NumberReferers (If Logged)」: referrer の数からの情報に基づいて情報を生成します。
「Find Top NumberUser Agents (If Logged)」: ブラウザの種類、ブラウザのバージョン、オペレーティングシステムなど、ユーザーエージェントに関する情報に基づいて統計を生成します。
「Find Top NumberMiscellaneous Logged Items (If Logged)」: ユーザーの数からの情報に基づいて統計を生成します。
リストを生成するかどうかを選択します。
リストの生成を選択する場合、リストを生成する項目を指定します。
「URLs Accessed」: アクセスされた URL を表示します。
「NumberMost Commonly Accessed URL」: 最も頻繁にアクセスされた URL、またはアクセス回数が指定数を超えた URL を表示します。
「URLs That Were Accessed More Than NumberTimes」: 指定された回数よりも多くアクセスされた URL を表示します。
「Hosts Accessing Your Server」: Proxy Server にアクセスしたホストを表示します。
「NumberHosts Most Often Accessing Your Server」: 最も頻繁にサーバーにアクセスするホスト、または指定された回数を超えてサーバーにアクセスしたホストを表示します。
「Hosts That Accessed Your Server More Than NumberTimes」: 指定された回数よりも多くサーバーにアクセスしたホストを表示します。
結果を表示する順序を指定します。
レポートの各セクションで表示する次の項目の順序を 1 〜 3 番目まで指定します。項目をいずれも生成しない場合、そのセクションは自動的に省略されます。セクションには次のものがあります。
Find Totals
General Statistics
Make Lists
「了解」をクリックします。
新しいウィンドウにレポートが表示されます。
コマンド行からアクセスログファイルを分析するには、flexanlg ツールを実行します。このツールは server-install/extras/flexanlg ディレクトリにあります。
flexanlg を実行するには、コマンドプロンプトに以下のコマンドとオプションを入力します。
./flexanlg [-n name] [-x] [-r] [-p order] [-i file]* [ -m metafile ]* [-o file][-c opts] [-t opts] [-l opts]
* の付いているオプションは繰り返すことができます。
./flexanlg -h と入力すると、この情報をオンラインで入手できます。
-P: proxy log format Default: no -n servername: The name of the server -x : Output in HTML Default: no -r : Resolve IP addresses to hostnames Default: no -p [c,t,l]: Output order (counts, time stats, lists) Default: ctl -i filename: Input log file Default: none -o filename: Output log file Default: stdout -m filename: Meta file Default: none -c [h,n,r,f,e,u,o,k,c,z]: Count these item(s) - Default: hnreuokc h: total hits n: 304 Not Modified status codes (Use Local Copy) r: 302 Found status codes (Redirects) f: 404 Not Found status codes (Document Not Found) e: 500 Server Error status codes (Misconfiguration) u: total unique URL’s o: total unique hosts k: total kilobytes transferred c: total kilobytes saved by caches z: Do not count any items. -t [sx,mx,hx, xx,z]: Find time stats - Default:s5m5h10u10a10r10x10 s(number): Find top (number) seconds of log m(number): Find top (number) minutes of log h(number): Find top (number) hours of log u(number): Find top (number) users of log a(number): Find top (number) user agents of log r(number): Find top (number) referers of log x(number): Find top (number) for miscellaneous keywords z: Do not find any time stats. -l [cx,hx]: Make a list of - Default: c+3h5 c(x,+x): Most commonly accessed URL’s (x: Only list x entries) (+x: Only list if accessed more than x times) h(x,+x): Hosts (or IP addresses) most often accessing your server (x: Only list x entries) (+x: Only list if accessed more than x times) z: Do not make any lists. |
Proxy Server は、エラーをサーバーエラーログに記録しますが、深刻なシステムエラーはイベントビューアにもログ記録します。イベントビューアでは、システム上のイベントを監視できます。イベントビューアを使用して、基本的な設定の問題によって発生したエラーを参照します。この問題は、エラーログが開けるようになる前に発生する可能性があります。
「スタート」メニューから、「プログラム」、「管理ツール」を順に選択します。
「管理ツール」プログラムグループで「イベントビューア」を選択します。
「ログ」メニューの「アプリケーション」を選択します。
「イベントビューア」に「アプリケーションログ」が表示されます。Proxy Server のエラーには、proxy-serverid というソースラベルが付いています。
「表示」メニューの「検索」を選択すると、ログ内でこのようなラベルを検索できます。
「表示」メニューの「最新の情報に更新」を選択すると、更新されたログエントリを表示できます。
イベントビューアについては、使用しているシステムのマニュアルを参照してください。