LoginSignup
36

More than 5 years have passed since last update.

Tomcatログローテートメモ書き

Last updated at Posted at 2018-03-26

Tomcatログ

以下、6種類有
① catalina.YYYY-MM-DD.log
② localhost.YYYY-MM-DD.log
③ manager.YYYY-MM-DD.log
④ host-manager.YYYY-MM-DD.log
⑤ localhost_access_log.txt
⑥ catalina.out

①~⑤ まではTomcatの機能でログローテートが可能である。※
⑥ はTomcatの機能でログローテートする機能がないように見える。そのためOSの標準機能で実施する。
※ ⑤に関してはログローテート自体を止めることができるため、OSのlogrotateを使用する方式で行う。
  ①~④に関してはログローテートを止める方法が勉強不足で見つからなかったためTomcatの機能を使用する。

ログローテーション(OS標準に任せる)

localhost_access_log

最初にログ出力の形式などを設定している箇所を確認
ログローテートに関しては未記載で実施する設定になっている。

$ sudo cat /opt/tomcat/apache-tomcat-8.5.29/conf/server.xml
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"   
               prefix="localhost_access_log" suffix=".txt"  
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

極力OSの標準機能のlogrotateで管理するようにしたいため、ログローテートを止める必要がある。
また、出力形式もなじみ深いapacheと同一のものに変更。
そのような変更を加えたものが以下である。


$ sudo vim /opt/tomcat/apache-tomcat-8.5.29/conf/server.xml
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"   
               prefix="localhost_access" suffix=".txt"  
               rotatable="false"    
               pattern="combined" />    

これでlocalhost_access_logは準備OK

logrotate

Tomcatがログをつかんでいるので、copytruncateが必須
compressは用途に応じて


$ sudo vim /etc/logrotate.d/tomcat8
/opt/tomcat/apache-tomcat-8.5.29/logs/catalina.out
/opt/tomcat/apache-tomcat-8.5.29/logs/localhost_access.txt
{
    copytruncate
    daily
    rotate 7
    compress
    missingok
    create 0644 tomcat tomcat
}

ログローテーション(Tomcatの機能)

Tomcatの機能でローテートするlogの場合は、ログローテート自体は毎日実行してくれるが、削除する機能がない。
そのため削除するシェルスクリプトが必要となる。

$ sudo vim shell/TomcatLogDel.sh
#!/bin/bash
LOG_DIR=/opt/tomcat/apache-tomcat-8.5.29/logs/
delfiles=`find ${LOG_DIR}*.log -mtime +7`
for a in $delfiles
do
    echo -e "delete file: ${a}" > /dev/null 2>&1
    rm -f ${a}
done

これで7日以上経過したログは削除され、Tomcatのログでリソースがひっ迫することはない。
シェルスクリプトは暫定で後日編集予定。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36