転載者注:以下の内容はWAS Fullプロファイル/WAS Traditionalランタイムについての情報です。
オリジナル文章公開日:2012年12月21日
WASでは、WebサーバーのIHS (IBM HTTP Server)ではなく、WASのアプリケーション・サーバーでHTTPのアクセス・ログを取得することが可能です。
以前のバージョンでは、アプリケーション・サーバー・レベルでのアクセス・ログの記録 項目は、事前定義された項目しか出力することができませんでしたが、WAS V8.5ではユーザーがカスタマイズすることが可能です。また、WAS V7.0とWAS V8.0についても、それぞれWAS V7.0.0.25、WAS V8.0.0.2以上の修正プログラム(FixPack)を適用することで、アプリケーション・サーバー・レベルのアクセス・ログのカスタマイズが可能になります。
今回は、アプリケーション・サーバー・レベルのアクセス・ログ取得の設定と記録項目の カスタマイズの設定方法を紹介します。
アプリケーション・サーバー・レベルのアクセス・ログの取得は、デフォルトの設定では取得されません。まず、アプリケーション・サーバー・レベルでアクセス・ログのロギング・サービスを有効にし、その後、個々のトランスポート・レベルでロギングの設定(ログの出力先ファイルや、ログの記録項目などの設定)を行います。
以下にステップ・バイ・ステップの手順を説明します。
Step 1
管理コンソールを起動します。ブラウザーから、http://<ホスト名>:9060/ibm/console にアクセスしログインします。
Step 2
管理コンソールで、「サーバー」→「サーバー・タイプ」→「WebSphere Application Server」を選択し、アプリケーション・サーバーの一覧画面へ移動します。アクセス・ログの記録を行う「サーバー名」を選択します。
Step 3
「トラブルシューティング」の「NCSA アクセス・ロギングおよび HTTP エラー・ロギング」を選択します。
Step 4
アプリケーション・サーバー・レベルの「NCSA アクセス・ロギングおよび HTTP エラー・ロギング」の設定画面が表示されます。「サーバー始動時にロギング・サービスを使用可能にする」のチェックボックスをONにします。NCSAアクセス・ロギングのその他の設定項目については、設定を変更する必要はありません。アクセス・ログの記録項目をカスタマイズする場合には、HTTPトランスポート・レベルで、設定を変更します。
「適用」または「OK」ボタンをクリックし、構成を保存します。
Step 5
つづいて、トランスポート・レベルの設定を行います。管理コンソールで、「サーバー」→「サーバー・タイプ」→「WebSphere Application Server」を選択し、アプリケーション・サーバーの一覧画面へ移動します。「サーバー名」を選択します。
Step 6
「コンテナー設定」の「Web コンテナー設定」→「Web コンテナー・トランスポート・チェーン」を選択します。
「Web コンテナー・トランスポート・チェーン」の一覧が表示されます。アクセス・ログを取得するトランスポート・チェーンのハイパーリンクを選択します。
「トランスポート・チェーン」の設定画面が表示されます。「HTTP インバウンド・チャネル」のハイパーリンクを選択します。
「HTTPインバウンド・チャネル」の詳細設定画面が表示されます。設定画面の最下部に「ロギング」の設定項目がありますので、「ロギング可能化」のチェックボックスをON にします。
さらに、アクセス・ログの記録項目をカスタマイズする場合には、必ず「チェーン固有のロギングを使用」のラジオ・ボタンを選択します。「アクセス・ログのファイル・パス」と「アクセス・ログの最大サイズ」、「ヒストリー・ファイルの最大数」を指定します。設定後、「適用」ボタンをクリックし、構成を保存します。
この、ロギング設定の設定項目では、「NCSA アクセス・ログ・フォーマット」の設定項目として、「共通」と「統合」のどちらかしか選択することができません。記録項目をカスタマイズするには、つづいて説明するカスタム・プロパティーで設定します。
同じ「HTTPインバウンド・チャネル」の詳細設定画面の右上部の「追加プロパティー」の「カスタム・プロパティー」を選択します。
「カスタム・プロパティー」の新規作成/削除画面が表示されます。「新規作成」ボタンを リックします。
「カスタム・プロパティー」の新規作成画面で、「名前」に「accessLogFormat」(固定値)、「値」に出力項目オプションを設定します。設定完了後、「OK」ボタンをクリックして構成を保存します。
「値」に設定できるアクセス・ログ記録のオプション項目は、下記の表のとおりです。
オプションの値 |
意味 |
%a |
リモート IP アドレス |
%A |
ローカル IP アドレス |
%b |
ヘッダーを除いた応答サイズ (バイト単位) |
%B |
ヘッダーを除いた応答サイズ (バイト単位) 値が見つからない場合は、- ではなく 0 が出力されます。 |
%{CookieName}C または %C |
ブラケットの中に指定した要求 Cookie。ブラケットを含めなかった場合は、すべての要求 Cookie が出力されます。 |
%D |
要求の経過時間 (ミリ秒の正確度、マイクロ秒の精度) |
%h |
リモート・ホスト |
%{HeaderName}i |
要求の HeaderName ヘッダー値 |
%m |
要求メソッド |
%{HeaderName}o |
応答の HeaderName ヘッダー値 |
%q |
パスワードをエスケープして、照会ストリングを出力します。 |
%r |
要求の最初の行 |
%s |
応答の状況コード |
%t |
要求の開始時刻 (NCSA 形式) |
%{t}W |
アクセス・ログへのメッセージがログに記録するためにキューに入れられた現在時刻 (NCSA 形式) |
%u |
WebSphere Application Server 固有の $WSRU ヘッダーによるリモート・ユーザー |
%U |
照会ストリングを除外した URL パス |
各オプションを設定する場合には、スペース区切りで指定します。各オプションは二重引用符(“)で囲むこともできます。なお、二重引用符を使用する場合も、「(バックスラッシュ)」でエスケープする必要はありません。
例えば、デフォルトの「共通」のログ・フォーマットは下記です。
%h %u %t "%r" %s %b
また、デフォルトの「統合」のログ・フォーマットは下記であり、「共通」のログ・フォーマットに追加で、参照元を表すRefererと、ブラウザーの種類を表すUser-AgentのHTTPヘッダーの値を記録します。
%h %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"
また、%Dオプションを使用することで、マイクロ秒単位(精度はミリ秒)の応答時間をアクセス・ログに記録することができます。
%h %u %t "%r" %s %b , %D , %{JSESSIONID}C
上記のように設定した場合、下記のログ出力結果のように、デフォルトの共通のログの後ろに「,」で区切られた応答時間(下記の例では、31ミリ秒)、その後に、JSESSIONIDのクッキーの値が記録されます。
127.0.0.1 - [04/Dec/2012:14:06:32 +0900] "GET /hitcount?selection=SS2 HTTP/1.1" 200 2221 , 31000 , JSESSIONID:00004DJtm3tbIO2P-e5GpZPUxfz:-1
Step 13
アクセス・ログの取得設定、ロギング項目のカスタマイズの設定を有効にするには、対象のアプリケーション・サーバーを再起動します。
Step 14
WebアプリケーションにHTTPでアクセスして、指定したアクセス・ログが記録されていることをご確認ください。
以上で、アプリケーション・サーバー・レベルのアクセス・ログ取得の設定と記録項目の カスタマイズの設定は完了です。
→ WAS 小ワザ集:目次ページにもどる