Apache Tomcat의 로그파일인 catalina.out 파일의 경우는 순환되는 설정이 없이 기동 후 삭제되지 않고

계속 기록만 되어지므로 용량이 계속 늘어나게 되고 검색이 어렵거나 늦어지는 경우도 발생하게 됩니다.


대표적인 오류 사항으로는 Tomcat 프로세스가 돌고 있는 상황에서 catalina.out 파일을 rm 삭제시

'df' 명령을 이용하여 파일시스템 사용량에서는 줄어들지 않는 사항이 발생한다.


해당 사항은 톰캣의 PID 를 'lsof' 로 확인시 (Deleted) 라는 항목으로 서비스 종료시 처리가 된다는 사항을

확인 할 수 있으며, 위와 같은 경우 '/dev/null' 을 이용한 Null Copy 를 진행하는 것을 권장합니다.



이러한 현상을 개선하기 위한 방법으로 편리하게 설정할 수 있는 방법을 2가지로 정리해보겠습니다.



1. Tomcat 설정파일(catalina.sh)을 수정하여 설정 - 'root' 권한 이용 불가능


 -> %CATALINA_HOME%bin/catalina.sh 수정 (두 항목 모두 수정할 것)

    => touch "$CATALINA_BASE"/logs/catalina.out 를 삭제 또는 주석 처리

    => "$CATALINA_BASE"/logs/catalina.out2>&1 & 를 다음과 같이 수정

        | /usr/sbin/rotatelogs "$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d 86400 540 &

           =================================================

             * 86400     : 일단위로 로테이션(초단위 설정)

             * 540        : 영국 표준시와 한국시간과의 시간차

           =================================================




2. /etc/logrotate.d 디렉터리내 Tomcat 로그 주기 설정 - 'root 권한 이용 가능


 -> # cd /etc/logrotate.d

 -> # vi ./tomcat

================================================================

/var/local/tomcat/logs/catalina.out {    =>톰캣의 로그가 기록될 경로로 지정

 copytruncate # 백업본을 생성하면 원본의 내용을 지우는 형태

 daily # '일'단위 파일 생성

 rotate 30 # 보관주기는 30일 단위

 compress # 'rotate' 내 로그파일은 압축보관(gzip)

 missingok # 로그파일이 생성되지 않는 경우 오류처리 하지 않음

 notifempty # 로그로 기록할 내용이 없을때 신규로그파일 생성 않함

#size 100M # 로그파일의 용량제한

}

================================================================



추가적으로 파일 자체를 생성하지 않도록 강제적인 설정이 있으나 권장하지는 않는 방법이지만

디스크 용량이 너무 적은 경우이거나 개인 테스트 용도로 작업하실 사항이 있으시다면

아래와 같이 '/etc/profile' 내용에 첨가하여 설정도 가능합니다.


 -> # vi /etc/profile

================================================================

export CATALINA_OUT="/dev/null"

================================================================