네트워크 캠퍼스/NHN클라우드-Jenkins
로그로테이트하기
gayeon_
2024. 7. 23. 17:11
로그로테이트하기
로그 파일이 너무 커지면 디스크를 가득 채울 수도 있고 오래되어 불필요한 로그가 남을 수도 있다.
로그로테이트의 장점
- 최대 크기 지정으로 파일 비대화 방지
- 보존 기간 설정으로 오랜 로그 삭제
- 주기적 백업을 통한 유실 방지
- 오래된 로그 파일 압축을 통한 저장 효율화
먼저 해당 경로로 로그파일로 사용할 log.txt를 생성하고
권한도 부여한다.
셸 스크립트 작성 후 실행 권한을 부여한다.
그리고 로그로테이트 설정 파일을 작성해야 한다.
설정 파일은 /etc/logrotate.d/ 디렉토리에 있어야 한다.
- /var/log/myapp/log.txt: 관리할 로그 파일 경로이다.
- size 1M: 로그 파일이 1MB에 도달하면 회전한다.
- copytruncate: 원본 파일을 비운 후 내용을 복사하여 새로운 파일을 생성한다.
- rotate 7: 최대 7개의 로그 파일을 유지한다.
- compress: 로그 파일을 압축한다.
- missingok: 로그 파일이 없으면 오류를 무시한다.
- notifempty: 로그 파일이 비어 있으면 회전하지 않는다.
- daily: 로그 파일을 매일 회전한다.
- create 0644 root root: 새로운 로그 파일을 생성할 때의 권한과 소유자를 설정한다.
- olddir /var/log/myapp/old: 이전 로그 파일을 이동할 디렉토리다.
compress 옵션을 사용하면 로그 파일이 압축되어 저장된다.
로그로테이트 설정 테스트 명령어
테스트 모드로 설정을 검사하며 실제로 로그를 회전하지 않는다.
테스트모드에서 문제가 발견되지 않았다면 위 명령어로
로그로테이트를 수동으로 실행한다.
위 명령어로 스크립트가 정상적으로 설정되었는지 확인할 수 있다.
이제 셸 스크립트를 실행한다.
실행하면 초당 100번씩 로깅되며 1MB를 초과하는 로그 파일을 자동으로 회전하고, 압축하고, 일주일 이상된 로그 파일을 삭제한다.
cat /var/log/myapp/log.txt
파일 용량을 확인하는 명령어
1M가 넘어가면
old 디렉토리에 압축파일로 로그로테이트된 로그파일이 저장된다.
그리고 다시 log.txt의 용량을 확인하면 다시 낮아진 것을 확인할 수 있다.
압축 옵션을 지우면 어떻게 저장되는지 확인해봤다.
수동으로 실행
압축 없이 바로 저장된 것을 확인했다.