이중 로깅
이중 로깅 (Dual logging)
Docker의 dual-logging 기능을 설명하는 문서예요. 컨테이너 로그를 지정한 로깅 드라이버로 보내면서도 docker logs를 계속 사용할 수 있게 해줘요.
출처: Dual logging
본문
기본적으로 docker logs는 json-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은 원격 로깅의 집계 장점과 로컬에서의 편리한 로그 조회를 모두 얻을 수 있게 해줘요.