JeongJin's Blog

Docker 로그 제대로 사용하는 방법 본문

1일1공부/인프라

Docker 로그 제대로 사용하는 방법

정진킴 2023. 9. 27. 15:46
  • Docker로 애플리케이션 배포해 서비스 운영 중인 리눅스 서버에 디스크 용량 부족 메세지 뜨는 상황
    • 실제 애플리케이션으로 생성, 저장 되는 데이터와 로그 용량은 많지 않아도 시스템 전체 스토리지 용량이 Full 될 수 있음
    • Docker 사용할 때 스토리지 용량 부족한 원인 중 하나는 Docker 컨테이너 로그
  • Docker 로깅 드라이버와 로그 위치
    • 로깅 드라이버 : Docker에는 실행 중인 컨테이너와 서비스에서 정보 얻는 데 도움이 되는 로깅 메커니즘 포함
    • docker logs 명령 : 실행 중인 컨테이너가 기록한 정보 보여줌
    • docker service logs 명령 :  서비스에 참여하는 모든 컨테이너가 기록한 정보 보여줌
    • Docker는 모든 컨테이너 로그의 표준 출력 (stdout) 또는 표준 에러 (stderr) 캡처해 JSON 형식으로 파일에 기록하는 json-flile 로깅 드라이버 사용
    • docker run 또는 docker-compose up 명령어로 Docker 컨테이너 실행하면 /var/lib/docker/containers/[Container-ID]/[Container-ID]-json.log 파일 생성, 로그 기록
    • json-file 로깅 드라이버는 로그 스테이션 수행하지 않음
      • 해당 로깅 드라이버로 저장된 로그 파일은 많은 양의 출력을 생성하는 컨터이너면 상당한 양의 디스크 공간을 사용, 이로 인해 디스크 공간이 고갈될 수 있음 (주의!!!!!!!)
  • Docker 컨테이너 로그 크기 줄이기
    • docker rm 또는 docker-compose down 명령어 실행하면 Docker 컨테이너 삭제, /var/lib/docker/containers 하위에 [Container-ID] 에 해당하는 디렉토리도 삭제
      • 많은 디스크 공간 차지한 [Container-ID]-json.log 파일도 같이 삭제되어 전체 디스크 공간 확보
    • truncate -s 0 <json-log-file> 명령 실행하면 로그 파일 크기 0으로 만들 수 있음
  • 로그 스테이션 설정
    • 로그 파일 최대 크기 (max-size)와 최대 파일 개수(max-file) 지정해 로그 스테이션 활성화할 수 있음
    • 파일 크기가 설정한 최댓값에 도달하면 새 파일로 교체, 기존 파일은 ...-json.log.1, ...-json.log.2 으로 최대 개수까지 로그 파일 생성
    • 초과하면 가장 오래된 파일이 제거돼 Docker 컨테이너의 로그 파일 크기가 무한정 커지는 것 방지

'1일1공부 > 인프라' 카테고리의 다른 글

[AWS] ssh 접속 시 pem, ppk 파일 권한 수정  (0) 2024.07.03