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

 View Only
Sun February 20, 2022 08:31 AM

転載者注:以下の内容は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 コンテナー・トランスポート・チェーン」を選択します。

Step 7

「Web コンテナー・トランスポート・チェーン」の一覧が表示されます。アクセス・ログを取得するトランスポート・チェーンのハイパーリンクを選択します。

Step 8

「トランスポート・チェーン」の設定画面が表示されます。「HTTP インバウンド・チャネル」のハイパーリンクを選択します。

Step 9

「HTTPインバウンド・チャネル」の詳細設定画面が表示されます。設定画面の最下部に「ロギング」の設定項目がありますので、「ロギング可能化」のチェックボックスをON にします。

さらに、アクセス・ログの記録項目をカスタマイズする場合には、必ず「チェーン固有のロギングを使用」のラジオ・ボタンを選択します。「アクセス・ログのファイル・パス」と「アクセス・ログの最大サイズ」、「ヒストリー・ファイルの最大数」を指定します。設定後、「適用」ボタンをクリックし、構成を保存します。

この、ロギング設定の設定項目では、「NCSA アクセス・ログ・フォーマット」の設定項目として、「共通」と「統合」のどちらかしか選択することができません。記録項目をカスタマイズするには、つづいて説明するカスタム・プロパティーで設定します。

Step 10

同じ「HTTPインバウンド・チャネル」の詳細設定画面の右上部の「追加プロパティー」の「カスタム・プロパティー」を選択します。

Step 11

「カスタム・プロパティー」の新規作成/削除画面が表示されます。「新規作成」ボタンを リックします。

Step 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 形式)
%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 小ワザ集:目次ページにもどる

Statistics
0 Favorited
15 Views
0 Files
0 Shares
0 Downloads