5.1.1 アクセスログを有効化する
リクエストの処理結果の確認や処理性能の分析では,リクエストごとに出力されるアクセスログが重要です。サポートサービスにお問い合わせいただく際,スナップショットログの中にアクセスログが含まれていると,スムーズに状況を解析できます。
server.xml(Tomcatのサーバ設定ファイル)でAccess Log Valveを定義し,定義したValve要素に属性値を指定することを強く推奨します。指定を推奨する属性値を次の表に示します。
Access Log Valveの属性名 |
指定を推奨する属性値 |
---|---|
locale |
en_US |
maxDays |
デフォルト値の「-1」は無制限を意味します。そのため,ログファイルが単調増加してしまいます。運用要件に合わせて有限の日数を指定してください。 |
suffix |
デフォルト値は空文字となっており,ログファイルに拡張子が付きません。例えば「.log」など,ログファイルだと分かりやすい拡張子を指定してください。 |
pattern※ |
%h %{X-Forwarded-For}i %u %{[dd/MMM/yyyy:HH:mm:ss.SSS Z]}t "%r" %s %b %D %{ucar.rootap}r "%{Referer}i" "%{User-Agent}i" |
実際にserver.xml(Tomcatのサーバ設定ファイル)に定義する際,属性値のダブルクォート記号は「"」にエスケープしてください。
- 注※
-
pattern属性に指定するアクセスログの推奨フォーマットを次に示します。
%h %{X-Forwarded-For}i %u %{[dd/MMM/yyyy:HH:mm:ss.SSS Z]}t "%r" %s %b %D %{ucar.rootap}r "%{Referer}i" "%{User-Agent}i"
下線部分は,デフォルトのフォーマットから追加または変更をしている項目です。追加,変更を推奨する理由を項目ごとに次の表に示します。
表5‒2 追加・変更を推奨するpattern属性の項目とその理由 追加・変更を推奨するpattern属性の項目
追加・変更を推奨する理由
%{X-Forwarded-For}i
ロードバランサやリバースプロキシを介している場合,%hでは次しか記録されません。
-
直近のロードバランサのホスト名またはIPアドレス
-
直近のリバースプロキシのホスト名またはIPアドレス
それらの接続元となっているWebクライアントを特定するために,X-Forwarded-Forヘッダの出力を推奨します。
%{dd/MMM/yyyy:HH:mm:ss.SSS Z}t
デフォルトのタイムスタンプは「秒単位」であるため,より精度の高い「ミリ秒単位」への変更を推奨します。
%D
デフォルトで使用される%Tは「秒単位」であるため,より精度の高い単位への変更を推奨します。
%Dは,Tomcat 9.xの場合は「ミリ秒単位」,Tomcat 10.1.xの場合は「マイクロ秒単位」となります。
%{ucar.rootap}r
トレースログとアクセスログを対応づけるために,リクエストごとにトレース機能から付与されるルートアプリケーション情報の出力を推奨します(トレース機能によってServletRequestの属性「ucar.rootap」にルートアプリケーション情報の文字列が格納されています)。
%{Referer}i
ページ遷移元を特定するために,Refererヘッダの出力を推奨します。
%{User-Agent}i
Webクライアントの種別(OSやブラウザなど)を判別するのに有効となる可能性があるため,User-Agentヘッダの出力を推奨します。
-
「表5-1 Access Log Valveの属性名と指定を推奨する属性値」に示したもの以外の属性は任意に設定できます。
そのうち「directory」,「prefix」,「suffix」,および「fileDateFormat」をデフォルト値のまま使用した場合は,次のパスにアクセスログが出力されます。
${CATALINA_BASE}/logs/access_log.<yyyy-MM-dd>.log
各属性値や設定方法の詳細は,Tomcatのドキュメントを参照してください。
出力されたアクセスログは,スナップショットログ収集機能によって自動的にスナップショットログに収集されます。詳細は,「17. スナップショットログ収集機能」を参照してください。