WAS 小ワザ集

第29回:WASアプリケーション・サーバーのHTTPアクセス・ログの記録項目のカスタマイズ

Comments

コンテンツシリーズ

このコンテンツは全#シリーズのパート#です: WAS 小ワザ集

このシリーズの続きに乞うご期待。

このコンテンツはシリーズの一部分です:WAS 小ワザ集

このシリーズの続きに乞うご期待。

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)を適用することで、アプリケーション・サーバー・レベルのアクセス・ログのカスタマイズが可能になります。
今回は、アプリケーション・サーバー・レベルのアクセス・ログ取得の設定と記録項目のカスタマイズの設定方法を紹介します。

アプリケーション・サーバー・レベルのアクセス・ログの取得は、デフォルトの設定では取得されません。まず、アプリケーション・サーバー・レベルでアクセス・ログのロギング・サービスを有効にし、その後、個々のトランスポート・レベルでロギングの設定(ログの出力先ファイル名や、ログの記録項目などの設定)を行います。

以下にステップ・バイ・ステップの手順を説明します。

  1. 管理コンソールを起動します。ブラウザーから、http://<ホスト名>:9060/ibm/console にアクセスしログインします。
  2. 管理コンソールで、「サーバー」→「サーバー・タイプ」→「WebSphere Application Server」を選択し、アプリケーション・サーバーの一覧画面へ移動します。アクセス・ログの記録を行う「サーバー名」を選択します。
  3. 「トラブルシューティング」の「NCSA アクセス・ロギングおよび HTTP エラー・ロギング」を選択します。
     
  4. アプリケーション・サーバー・レベルの「NCSA アクセス・ロギングおよび HTTP エラー・ロギング」の設定画面が表示されます。「サーバー始動時にロギング・サービスを使用可能にする」のチェックボックスをONにします。NCSAアクセス・ロギングのその他の設定項目については、設定を変更する必要はありません。アクセス・ログの記録項目をカスタマイズする場合には、HTTPトランスポート・レベルで、設定を変更します。
     

    「適用」または「OK」ボタンをクリックし、構成を保存します。
  5. つづいて、トランスポート・レベルの設定を行います。管理コンソールで、「サーバー」→「サーバー・タイプ」→「WebSphere Application Server」を選択し、アプリケーション・サーバーの一覧画面へ移動します。「サーバー名」を選択します。
  6. 「コンテナー設定」の「Web コンテナー設定」→「Web コンテナー・トランスポート・チェーン」を選択します。
     
  7. 「Web コンテナー・トランスポート・チェーン」の一覧が表示されます。アクセス・ログを取得するトランスポート・チェーンのハイパーリンクを選択します。
     
  8. 「トランスポート・チェーン」の設定画面が表示されます。「HTTP インバウンド・チャネル」のハイパーリンクを選択します。
     
  9. 「HTTPインバウンド・チャネル」の詳細設定画面が表示されます。設定画面の最下部に「ロギング」の設定項目がありますので、「ロギング可能化」のチェックボックスをONにします。さらに、アクセス・ログの記録項目をカスタマイズする場合には、必ず「チェーン固有のロギングを使用」のラジオ・ボタンを選択します。「アクセス・ログのファイル・パス」と「アクセス・ログの最大サイズ」、「ヒストリー・ファイルの最大数」を指定します。設定後、「適用」ボタンをクリックし、構成を保存します。この、ロギング設定の設定項目では、「NCSA アクセス・ログ・フォーマット」の設定項目として、「共通」と「統合」のどちらかしか選択することができません。記録項目をカスタマイズするには、つづいて説明するカスタム・プロパティーで設定します。
     
  10. 同じ「HTTPインバウンド・チャネル」の詳細設定画面の右上部の「追加プロパティー」の「カスタム・プロパティー」を選択します。
     
  11. 「カスタム・プロパティー」の新規作成/削除画面が表示されます。「新規作成」ボタンをクリックします。
     
  12. 「カスタム・プロパティー」の新規作成画面で、「名前」に「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 形式)
%uWebSphere 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
  1. アクセス・ログの取得設定、ロギング項目のカスタマイズの設定を有効にするには、対象のアプリケーション・サーバーを再起動します。
  2. WebアプリケーションにHTTPでアクセスして、指定したアクセス・ログが記録されていることをご確認ください。

以上で、アプリケーション・サーバー・レベルのアクセス・ログ取得の設定と記録項目のカスタマイズの設定は完了です。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=WebSphere
ArticleID=852924
ArticleTitle=WAS 小ワザ集: 第29回:WASアプリケーション・サーバーのHTTPアクセス・ログの記録項目のカスタマイズ
publish-date=12212012