About Logrotate

mkhome·2021년 8월 31일
0

docker

목록 보기
4/4
  • 컨테이너 내부 로그 유지를 위해 패키지를 알아보던 중 logrotate를 활용한 방법을 확인. 자료들을 봤을 때 계속해서 로그를 유지하는 것보단 일자별로 로그를 분리 시키는 것으로 보임
  • 현재 사내 컨테이너 베이스 이미지는 alpine-linux 가벼움이 장점이라는 특징에 걸맞게 사용되는 cron, logrotate 패키지가 모두 설치되어 있지 않았다. 특이한점은 logrotate로 nginx 로그를 설정하는 logrotate.d/nginx는 들어있는 것...

  • 또한 내부에 init.d/nginx가 없었기에 관련 패키지인 openrc 역시 설치하여 진행

  • logrotate.d/nginx 명령어 && 설명

/etc/logrotate.d # cat nginx
/var/log/nginx/*.log {
	missingok
	sharedscripts
	postrotate
		/etc/init.d/nginx --quiet --ifstarted reopen
	endscript
}
rotate 30(숫자)  : log파일 30개 이상 되면 삭제
maxage 30(숫자) : 30일 이산된 로그 파일 삭제
size : 지정한 용량이 되면 로그로테이트를 실행한다. 10k, 10M 이런식으로 지정한다.
create : [권한 유저 그룹] 으로 rotation된 로그파일 생성
notifempty : log 내용이 없으면 rotation 하지 않는다.
ifempty : 로그파일이 비어있는 경우에도 로테이트한다.
monthly : 월 단위로 로테이트 한다.
daily : 월 단위로 로테이트 한다.
weekly : 월 단위로 로테이트 한다.
compress : rotate 된 로그 gzip 압축
nocompress : 압축을 원치 않는다.
mail admin@mail : 로테이트 설정에 의해 보관주기가 끝난 파일을 메일로 발송한다.
mailfirst admin@mail : 로테이트시 신규파일 이전의 로그를 메일로 발송한다.
nomail : 메일로 통보받지 않음.
errors admin@mail : 로테이트 실행시 에러가 발생하면 이메일로 통보한다.
prerotate-endscript : 사이의 명령어를 로그파일 처리전에 실행한다.
postrotate-endscript : 사이의 명령어를 로그파일 처리후에 실행한다.
extension : 로테이트 후 생성되는 파일의 확정자를 지정한다.
copytruncate : 이옵션을 넣지 않으면 현재 사용중인 로그를 다른이름으로 move하고 새로운 파일을 생성한다.
  • 우선은 가장 기본으로 설정이 되어 있기에 사용하려는 기능에 맞게 조정하고 이 부분 이후를 다시 commit, ECR로 push 해야함.

0개의 댓글