STOUT(표준출력) / STDERR(표준오류)
어플리케이션에서 로그를 다룰 때, 어플리케이션 해당 언어 프레임워크에서 제공해주는 로그 프레임워크를 사용하여 표준 출력으로 로그를 내보내거나, 혹은 syslog로 내보내거나, 혹은 엘라스틱서치와 같은 외부 저장소로 보내는 등 다양한 방식으로 어플리케이션 단에서 구현이 되었다.
도커 컨테이너에서 로그를 다루기 위해서는 어플리케이션에서 로그를 표준 출력(STOUT)과 표준오류(STDERR)로 로그를 내보내는것을 표준으로 삼아야 한다.
어플리케이션 컨테이너 단에서 표준 출력(STOUT)과 표준오류(STDERR)로 로그를 내보내게 되면 도커가 해당 표준 출력 오류로 내보내지는 오류를 쌓아서 로깅 드라이버(logging driver)가 처리할 수 있도록 한다.
도커의 경우 로깅 드라이버를 다양한 종류를 제공해주고 있기 때문에 사용자의 사용 목적에 맞게 선택하여 로깅 드라이버를 사용하면 된다.
가장 기본적으로 사용되는 로깅 드라이버는 json-file
로그 확인하기
// 전체 로그 확인
# docker logs [container]
// 마지막 로그 10줄 확인
# docker logs --tail 10 [container]
// 실시간 로그 스트림 확인
# docer logs -f [container]
// 로그마다 타임스탬프 표시
# docker logs -f -t [container]
호스트 운영체제의 로그 저장 경로 (이 경우는 log driver를 json file로 했을때만 유효)
# cat /var/lib/docker/containers/${CONTAINER_ID}/${CONTAINER_ID}-json.log
로그 용량 제한하기
기본적으로 도커 엔진을 운영체제에 설치하면, 로그 용량에 대한 제한이 설정되어 있지 않음.
컨테이너 단위로 로그 용량을 제한을 할 수 있지만, 도커 엔진에서 기본 설정을 진행할 수도 있다. (운영환경에서 필수 설정)
ex) 한 로그 파일 당 최대 크기를 3Mb로 제한하고, 최대 로그 파일 3개로 로테이팅.
# docker run \
-d \
--log-driver=json-file \
--log-opt max-size=3m \
--log-opt max-file=5 \
nginx
도커 로그 드라이버
'Docker' 카테고리의 다른 글
[Docker] 도커 이미지 다루기 : Dockerfile 문법 (0) | 2023.09.22 |
---|---|
[Docker] 도커 이미지 다루기 : 이미지 빌드 (0) | 2023.09.22 |
[Docker] 도커 컨테이너 다루기 : 볼륨 (0) | 2023.09.20 |
[Docker] 도커 컨테이너 다루기 : 네트워크 (0) | 2023.09.20 |
[Docker] 도커 컨테이너 다루기 : 환경변수 및 exec 명령어 사용법 (0) | 2023.09.19 |