티스토리 뷰

문제 발생

Tomcat 로그를 확인하기 위해 Catalina.out 파일을 확인했는데 로그가 지속적으로 쌓여있어 로그를 확인하기 어렵고 파일의 크기가 비대해져 있었다.

 

해당 문제를 해결하기 위해 검색을 하다가 logrotate 라는 것을 알게되었다.

 

logrotate는 Linux에서 로그를 저장하며 관리할 때 특정 로그 파일이 한 파일로 계속해서 크기가 커지며 저장되는 파일을 분산시켜 줄 때 사용한다.

 

현재 겪고있는 문제 상황을 해결해줄 수 있을 것 같아 logrotate 설정을 진행해보려고 한다.

 

해결 방법

logrotate 실행 순서

crontab -> cron.daily -> Logrotate -> Logrotate.conf -> Logrotate.d

 

logrotate 구조

- /usr/sbin/logrotate: Logrotate 데몬 프로그램

- /etc/logrotate.conf: Logrotate 데몬 설정 파일

- /etc/logrotate.d : Logrotate 프로세스 설정 파일

- /etc/cron.daily/logrotate : Logrotate 작업내역 로그

 

/etc/logrotate.d 하위에 tomcat 로그 로테이션을 설정하기 위해 다음 파일을 생성한다.

vi /etc/logrotate.d/tomcat

${톰캣경로}/logs/catalina.out {
 copytruncate
 daily
 rotate 30
 compress
 missingok
 notifempty
 dateext
}

 

옵션 설명

  • copytruncate : 기존 파일을 백업해서 다른 파일로 이동하고 기존 파일은 지워버리는 옵션
  • daily : 로그파일을 날짜별로 변환
  • size 100M :   사이즈가 100M가 되면 로테이트 됨
  • rotate 30 : 로그 파일은 30개만큼 저장된 다음 제거
  • compress : 지나간 로그파일들을 gzip으로 압축
  • missingok : 로그파일이 없더라도 오류를 발생시키지 않음
  • notifempty : 파일 비어있으면 새로운 로그 파일을 생성 안함
  • dateext : 순환된 로그파일의 날짜확장자
  • postrotate-endscript : 로그파일 처리 후에 해당 명령어를 실행

 

테스트 실행 명령어

/usr/sbin/logrotate -f /etc/logrotate.d/tomcat # (실행만함)
/usr/sbin/logrotate -o /etc/logrotate.d/tomcat # (디버그 모드)
/usr/sbin/logrotate -v /etc/logrotate.d/tomcat # (실행과정 화면에 표시)
/usr/sbin/logrotate -vf /etc/logrotate.d/tomcat # (실행 + 실행과정 화면에 표시)

 

crontab 등록

crontab -e
00 00 * * * /usr/sbin/logrotate -f /etc/logrotate.conf

systemctl restart crond

 

logrotate status 확인

/var/lib/logrotate.status

 

참고자료

1. Logrotate - ArchWiki

2. logrotate를 활용하여 로그 관리하기

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함