300x250
반응형
300x250
기본 사항
- 포스팅 설명을 위해 Tomcat설치 경로는 아래에 명시된 경로로 가정하고 이하 TOMCAT_HOME으로 명시
/engn001/tomcat/9.0/servers/ist_8180
catalina.sh
- Catalina.out 파일 생성 설정은 catalina.sh에 있고 경로는 다음과 같음
TOMCATHOME/bin/catalina.sh
관리방법1: Catalina.out 제거
- 첫번째 관리 방법으로 catalina.sh 파일에서 Catalina.out 생성 부분을 수정하여 Catalina.out 파일 생성을 중지함.
- 수정 전
- TOMCAT_HOME/logs에 Catalina.out 생성
if [ -z "$CATALINA_OUT" ] ; then CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out fi
- TOMCAT_HOME/logs에 Catalina.out 생성
- 수정 후
- catalina.out 생성 경로에 /dev/null 설정하여 생성을 차단
if [ -z "$CATALINA_OUT" ] ; then CATALINA_OUT=/dev/null fi
- catalina.out 생성 경로에 /dev/null 설정하여 생성을 차단
관리방법2: Rolling Catalina.out
- 두번째 방법은 OS의 기능을 활용하여 Catalina.out 파일을 Rolling 할 수 있음.
- 설정 프로세스는 아래와 같음
- tomcat 파일 생성
- 디렉토리 이동 및 파일 생성
[root@ ]# cd /etc/logrotate.d/ [root@ logrotate.d]# vi tomcat
- tomcat 파일 내부 스크립트 내용
-
/logs001/tomcat/9.0/ist_8180/server.log { // Catalina.out 로그파일 경로 copytruncate // 기존 파일 백업 및 삭제 daily // 로그파일을 날짜별로 Rolling rotate 30 // 최대 30일까지만 생성 compress // 로그파일 gzip 압축 missingok // 로그파일 부재시 무시함 notifempty // 로그파일 부재시 신규 생성 하지 않음 dateext // 순환된 로그파일 날짜 확장자 }
- 디렉토리 이동 및 파일 생성
- crontab에 tomcat 파일 등록
- 파일 열기
[root@ logrotate.d]# vi /etc/crontab
- crontab 작성
-
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 0 0 * * * root run-parts/etc/cron.daily
- 처리 프로세스
- Rolling 수행 프로세스는 먼저 /etc/crontab 스케쥴 동작 이 설정된 시간에 맞춰 일어나고 다음으로 /etc/logrotate.conf 실행 > /etc/logrotate.d 참조 및 최종적으로 tomcat 스크립트가 실행 됨
- 검증 방법
- 아래 스크립트를 수동 실행하여 설정이 잘 동작 하는지 확인
/usr/sbin/logrotate -f/etc/logrotate.conf
- 생성 결과 확인
- 기존 Catalina.out은 압축되고 신규로 Catalina.out 파일 생성 확인
etc-user etc-user 0 Feb 3 07:34 Catalina.out etc-user etc-user 101491 Feb 3 07:03 Catalina.out-20200203.gz
- 더불어 vi /var/log/cron 로그를 확인 하면 아래와 같이 설정된 스케쥴 시점에 cron.daily 실행 로그를 확인 할 수 있음
-
Feb 4 00:40:01 CROND[5713]: (root) CMD (run-parts /etc/cron.daily) Feb 4 00:40:01 run-parts(/etc/cron.daily)[5713]: starting logrotate Feb 4 00:40:01 run-parts(/etc/cron.daily)[5723]: finished logrotate Feb 4 00:40:01 run-parts(/etc/cron.daily)[5713]: starting man-db.cron Feb 4 00:40:02 run-parts(/etc/cron.daily)[5736]: finished man-db.cron Feb 4 00:40:02 run-parts(/etc/cron.daily)[5713]: starting mlocate Feb 4 00:40:02 run-parts(/etc/cron.daily)[5747]: finished mlocate
- tomcat 파일 생성
Appendix: catalina.YYYY.MM-DD.log 제거
- Tomcat은 Catalina.out 파일과 더불어 catalina.YYYY.MM-DD.log 형태의 로그가 생성 됨.
- 해당 로그는 1일 단위로 Rolling되지만 Tomcat에서 생성하는 로그 외에 응용로그(log4j2, logback)은 기록하지 못하므로 활용성이 낮음
- 아래 경로에 존재하는 logging.properties 파일을 삭제하여 생성을 막음.
- 경로1: 별도의 인스턴스 구분 없는 경우
-
TOMCAT_HOME/conf/logging.properties
- 경로2: 별도의 인스턴스를 사용하는 경우(인스턴스 경로가 TOMCAT_HOME/servers/ist_8180/ 인 경우)
-
TOMCAT_HOME/servers/ist_8180/conf/logging.properties
참고 자료
logrotate.d 설정 및 cron 로그 확인: https://055055.tistory.com/6
logrotate를 이용한 tomcat catalina.out 로그 관리
프로젝트를 진행하며 tomcat log인 catalina.out의 용량이 점점 커져 가는 것을 보고, 미리 로그를 백업하고 나눌 필요를 느꼈습니다. 지금 당장은 문제가 없을지 모르지만, 용량이 커지기 때문에 정보
055055.tistory.com
출처 : https://sftth.github.io/tomcat/tomcat-logging001/
Tomcat 로그설정 - Catalina.out 관리 방법
Tomcat은 Catalina.out에 로그를 남긴다. 이 파일은 단일 파일로 생성되고 별도의 관리를 하지 않으면 크기 제한 없이 한 없이 커진다. 따라서 Catalina.out 파일은 시스템 안정성 을 위한 관리가 필요하
sftth.github.io
300x250
반응형
'Dev Tools, WEB & WAS > Apache' 카테고리의 다른 글
[Tomcat] Putty로 원격 서버에 접속해서 Tomcat 로그 확인하기 (0) | 2023.06.23 |
---|---|
[Apache] Window 환경에서 Tomcat 8.5와 Apache24 연동해보자 + JAVA/PHP (0) | 2023.02.06 |