goo blog サービス終了のお知らせ 

とげぞうのひとりごと

とげぞうのひとりごと

tomcat6のログ出力環境整備

2009-11-13 08:54:55 | インポート
 tomcat6のデフォルト設定のログ出力は、あまり使い易い感じではないので、好みの環境に設定。

1.不要なログの出力抑止
 デフォルト設定で「catalina.out」以外のログ出力がされるが、これを抑止する。$CATALINA_HOME下の「conf」ディレクトリの中にある「logging.properties」を「logging.properties.save」とでもリネームして、tomcatを再起動する(reloadではダメ)。


2.ログ出力ディレクトリのvar配下への移動
 デフォルトでは、$CATALINA_HOME下の「logs」ディレクトリになっているが、ログは「var/log」の下に持っていきたい。しかし、「catalina.out」の出力先指定は、スクリプト埋め込みになっているほか、アクセスログの出力先指定も$CATALINA_HOME下であることが前提となっている。このため、リンクで解決する。具体的には、「var/log」の下に、tomcat用のログ保管ディレクトリ「tomcat」を作成し、$CATALINA_HOMEの下に、このディレクトリへのリンクを「logs」の名前で作成する。オーナー・グループをtomcatユーザにするなど、適切なアクセス権設定を忘れずに。


3.アクセスログの取得
 セキュリティや障害解析の観点から、tomcatへのアクセス証跡をログ取得する。$CATALINA_HOME下の「conf」ディレクトリの中にある「server.xml」を編集。デフォルトのファイルで、コメントアウトされている「<Valve className="org.apache.catalina.valves.AccessLogValve"~」があるので、これをコメント解除して、必要な修正を行う。ファイル名を好みの形式に修正するほか、ログローテーションはlogorotateに任せたいので、tomcatではログローテーションを行わないように指定。こんな感じ。

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="access" suffix=".log" pattern="common" resolveHosts="false" rotatable="false"/>


4.ログのローテーション設定
 ログのローテーションは、logrotateに一元化。「/etc/logrotate.d」の下に、「tomcat」というファイル名でローテーションを設定。こんな感じ。

/var/log/tomcat/* {
copytruncate
missingok
notifempty
postrotate
/bin/kill -HUP `cat /var/run/tomcat.pid 2>/dev/null` 2> /dev/null || true
endscript
}
 ローテーションの間隔(「weekly」など)、保管期間の指定(「rotate 4」など)、圧縮の指定(「compress」など)などは、共通の設定(「/etc/logrotate.conf」)に指定しているので、個別に指定する必要はなし。


<参考ページ>
http://www.atmarkit.co.jp/fjava/rensai4/safetomcat_02/safetomcat_02_3.html
http://www.javaroad.jp/opensource/js_tomcat6.htm


コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。