ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Docker] Docker Logging
    Docker 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 권한을 이용해 인스턴스 로그 전송

    반응형

    댓글

Designed by Tistory.