본문 바로가기
공부/프로그래밍

[docker] 로그 logrotate 로 관리하기(주기적으로 삭제하기)

by demonic_ 2019. 12. 18.
반응형

docker 를 사용하면 로그가 착실히(?) 쌓이는데 이것을 주기적으로 삭제하지 않으면 서버에서 계속 용량을 잡아먹는다

 

특정주기를 기준으로 삭제하고 싶다면 logrotate 를 이용하면 간단하다.

 

우선 로그가 쌓여있는 폴더를 확인한다

cd /var/lib/docker/containers/

du -hs * 
28K	63d8661c74496d425c37
12G	747843b4945f06735ebb

 

 

crontab.daily 를 보면 logrotate 가 등록되어 있다. 그러니 logrotate 만 설정하면 된다.

# 확인하기
ls /etc/cron.daily/
logrotate  man-db.cron  mlocate

 

 

# logrotate 설정하기

vi /etc/logrotate.d/docker
/var/lib/docker/containers/*/*.log {
  rotate 3
  daily
  compress
  missingok
  copytruncate
}

 

 

시간이 지나면 작동으로 실행한다.

 

위의 명령어를 해석하면 다음과 같다

- rotate: 회전주기 설정

- daily: 일단위 실행 의미

- missingok: 설정로그가 없는 경우 에러메세지 출력하지 않음

- compress: 압축(원하지 않으면 nocompress 로 설정)

- copytruncate: 대상이 되는 파일을 찾은 다음 설정에 맞게 날짜나 숫자를 붙여 rename

 

수동으로 실행해보고 싶으면 아래 명령어를 사용하면 된다.

logrotate -fv /etc/logrotate.d/docker 

반응형

댓글