글 작성자: 근삼이

Docker 컨테이너를 많이 사용하다보면, 단시간에 로그가 급격하게 많이 쌓이는 현상이 발생하기도 한다. /var/lib/docker/containers 경로 아래에는 서버에서 동작중인 컨테이너들의 정보들이 기록되는데, 각각의 컨테이너별로 폴더가 생성이 되고, 그 아래에  "~~".log라는 이름으로 로그들이 생성되게 된다.

나는 이미 EFK 스택을 이용해서 ElasticSearch가 모든 로그들을 수집하여 관리하고 있도록 설정해 두었기 때문에, 저 로그들이 많이 쌓여있어도 아무런 의미가 없다. 그리고 멍청하게 시스템에 용량이 부족해져도 계속 로그가 생성되고 쌓이기 때문에, 저 로그들에 대해서 용량 제한과 같은 설정을 주어야 했다.

다행히도, 역시나 갓갓툴인 Docker에서는 이러한 현상에 대한 대비가 다 되어있었다. 해줘야 하는 설정은 간단하다. /etc/docker/daemon.json 파일에 아래와 같은 형태로 로그 로테이션을 걸어줄 수 있었다.

log-driver 옵션은 elasticsearch에서 파싱하기 쉬운 형태로 로그를 전달하기 위해 넣어준 옵션이다.

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

위 내용을 적용해준 뒤에는 docker daemon을 restart 시켜줘야한다.

반응형