이중 로깅

이중 로깅 (Dual logging)

Docker의 dual-logging 기능을 설명하는 문서예요. 컨테이너 로그를 지정한 로깅 드라이버로 보내면서도 docker logs를 계속 사용할 수 있게 해줘요.

출처: Dual logging

본문

기본적으로 docker logsjson-file/local 같은 로컬 드라이버에서만 동작해요. 원격 드라이버(splunk, syslog, gelf 등)를 쓰면 docker logs가 불가능해지는데, dual logging 을 활성화하면 이 문제를 해결해요.

동작 원리

dual logging이 켜져 있으면 Docker는:

  • 로컬 임시 파일에 로그를 계속 기록(그래서 docker logs 사용 가능)하면서,
  • 동시에 지정한 원격 로깅 드라이버로도 로그를 전송해요.

사용 예시

$ docker run --log-driver=splunk --log-opt ... --log-opt cache-disabled=false nginx

cache-disabled 옵션이 dual logging의 로컬 캐시를 제어해요.

장점

  • 원격 로그 수집을 하면서도 편리한 docker logs를 유지할 수 있어요.
  • 일시적으로 원격 로그가 실패해도 로컬 캐시에서 복구될 수 있어요.

dual logging은 원격 로깅의 집계 장점과 로컬에서의 편리한 로그 조회를 모두 얻을 수 있게 해줘요.

더 알아보기