-
[Docker] Docker LoggingDocker 2022. 2. 28. 23:47반응형
이 내용은 시작하세요! 도커/쿠버네티스 책 을 공부하면서 정리한 내용을 바탕으로 합니다.
2.2.8 컨테이너 로깅
2.2.8.1 json-file 로그 사용하기
docker logs 명령을 통해 컨테이너 내부에 출력을 보여준다.
docker ps 명령을 통해 컨테이너 목록의 상태를 확인
docker run -it \\ --log-opt max-size=10k --log-opt max-file=3 \\ # 로그 파일 셋팅 --name log-test ubuntu:18.04
위의 도커 컨테이너 로그를 JSON파일로 설정
각종 로깅 드라이버를 사용하게 설정해 컨테이너 로그를 수집할 수 있다. 사용가능한 드라이버의 대표적인 예로 syslog, journal, fluentd, awslogs 등이 있으며 에플리케이션의 특징에 적합한 로깅 드라이버를 선택
—log-driver 옵션을 써서 기본적으로 사용할 로깅 드라이버를 변경할 수 있슴. 위에서 설명한 max-szie와 같은 —log-opt 옵션 또한 도커 데몬에 적용함으로써 모든 컨테이너 일괄적으로 사용할 수 있음.
2.2.8.2 syslog
컨테이너의 로그는 json뿐 아니라 syslog 보내도록 설정할 수 있음 syslog는 유닉스 계열 운영체제에서 로그를 수집하는 오래된 표준 중 하나로서, 커널, 보안 등 시스템과 곤련된 로그 애플리케이션의 로그등 다양한 종류의 로그를 수집함
운영체제마다 저장되는 sysmog에 위치가 다름 remote rsylog를 사용해 원격서버 로깅을 할 수 있음 .
2.2.8.3 fluentd 로깅
fluentd는 각종 로그를 수집하고 저장할 수 있는 기능을 제공하는 오픈소스 도구이며 도커 엔진 및 컨테이너 로그를 fluentd를 통해 저장할 수 있음.
해당 데이터를 AWS S3, HDFS, MongoDB 등 다양한 저장소에 저장할 수 있다는 장점이 있음
실습
docker run --name mongoDB -d -p 27017:27017 mongo docker run -d --name fluentd -p 24224:24224 -v ./fluent.conf:/fluentd/etc/fluent.conf -e FLUENTD_CONF=fluent.conf alicek106/fluentd:mongo
도커 허브의 fluentd 이미지에는 몽고db 연결하는 플러그인이 내장돼 있지 않다.
<source> @type forward </source> <match docker.**> @type mongo database [database] collection [컬렉션 명] host [mnongdb host ip] port [mongodb port] flush_interval 10s user [mongodb user] password [mongodb password] </match>
해당 fluetd 파일에 값을 지정
그 후 fluentd 서버 설정
docker run -p 80:80 -d \\ --log-driver=fluentd \\ --log-opt fluentd-address=ip:port \\ --log-opt tag docker.nginx.webserver \\ nginx
설정 완료.
TODO 실습환경 환경 PATH 문제로 인해 추 후 진행 ..
2.2.8.3 아마존 클라우드워치 로그
실습 건너 뜀
AWS EC2 사용시 S3 스토리지에 설치 할 수 있음 UI 상 진행 가능
IAM 권한을 이용해 인스턴스 로그 전송
반응형'Docker' 카테고리의 다른 글
[Docker] Docker Image Offline Running (0) 2022.05.26 [ERROR] Docker restart > error creating Overlay Mount erroer (0) 2022.03.07 [Docker] Docker Network (0) 2022.02.28 [Docker] 도커 이미지와 도커 컨테이너 다루기 (0) 2022.02.27 [Docker] 도커란? (0) 2022.02.27