STDOUT / STDERR
도커 컨테이너에서는 어플리케이션 단에서 stdout/stderr로 로그를 내보내는 것을 표준으로 해야합니다. 이렇게하게 되면 로깅 드라이버가 stdout/stderr로 내보내지는 로그를 쌓아가지고 처리할 수 있게 합니다. 도커같은 경우는 로깅 드라이버를 다양한 종류를 지원해주고 있습니다. 사용의 목적에 따라 로깅 드라이버를 선택하면 됩니다. 가장 기본적인 로깅 드라이버는 json-driver입니다.
로그 확인하기
바로 위 명령어를 기반으로 간단한 실습을 해보도록 하겠습니다.
logs명령어로 nginx컨테이너를 하나 띄웠습니다. 그리고 docker logs명령어로 해당 컨테이너의 로그를 보실 수 있습니다. 또한 --tail 10을 지정해주어 마지막 10개의 로그만 확인할 수도 있습니다.
또한 -f옵션을 주게되면 실시간 로그를 확인할 수 있습니다.
또한 -t옵션을 주게되면 타임스탬프도 확인할 수 있습니다.
호스트 운영체제의 로그 저장 경로
이는 로그 드라이버를 json_file로 했을때만 유효합니다. 그럼 로그들이 인라인 json로그 형태로 파일로 저장됨을 의미합니다. 그리고 저장경로는 위와 같습니다.
실제 위 경로로 들어가서 로그 파일을 보게되면 json형태로 로그가 쌓여있는 것을 보실 수 있습니다. log의 message와 stream이 stdout/stderr인지, 그리고 time에 타임스탬프가 찍히게 됩니다.
로그 용량 제한하기
컨테이너 단위로 로그 용량 제한을 할 수 있습니다. 도커 엔진에서 기본 설정을 진행할 수도 있습니다. 이는 운영환경에서 필수 설정이므로 무조건 알아두는 것이 좋습니다.
도커 로그 드라이버
우리는 지금까지 로그 드라이버로는 json-file만을 살펴보았습니다. 이는 Log Snipper의 로그 에이전트를 둠으로서 중앙화된 로그 관리 시스템으로 컨테이너의 로그 데이터를 전달함 으로서 컨테이너의 로그 정보를 철저하게 관리할 수 있습니다.
당연히 json-file외에도 다양한 로그 드라이버를 활용하여 유즈케이스에 맞게 로그 데이터를 쌓을 수 있습니다.
'DevOps > AWS Architecture' 카테고리의 다른 글
[ Docker && Kubernetes ] - 도커 컨테이너 다루기: Dockerfile (0) | 2022.09.03 |
---|---|
[ Docker && Kubernetes ] - 도커 컨테이너 다루기: 이미지 빌드 (0) | 2022.09.03 |
[ Docker && Kubernetes ] - 도커 컨테이너 다루기: 볼륨 (0) | 2022.09.02 |
[ Docker && Kubernetes ] - 도커 컨테이너 다루기: 네트워크 (0) | 2022.09.02 |
[ Docker && Kubernetes ] - 도커 컨테이너 다루기: 명령어 실행 (0) | 2022.08.27 |