ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker 컨테이너 모니터링
    Container 2016. 4. 15. 09:00
    반응형
    cAdvisor
     
    일반적인 서버 운영 환경에서는 서비스 운영을 하면서 필요한 시스템 메트릭(CPU/메모리 사용률, 네트워크 트래픽, …) 모니터링하면서 특이사항이 있을때 대응해 나간다. 도커 컨테이너를 이용해서 서비스를 진행할때도 이는 필요한 기능이다. 허나 컨테이너라는 환경하에서는 기존 모니터링 도구로는 컨테이너에 대한 모니터링을 진행하는 것이 쉽지 않다. 이런 문제점을 해결하고 컨테이너를 모니터링하기 위한 도구로 많이 사용되는 것이 구글에서 만든 cAdvisor(Container Advisor).
    cAdvisor 호스트에서 실행중인 컨테이너들의 자원 사용량과 성능에 관한 정보를 수집해서 보여준다. cAdvisor 자신이 컨테이너를 모니터링 하는 도구이면서 컨테이너를 이용해서 실행할 있다.
    아래 처럼 간단한 도커 명령이면 cAdvisor 실행할 있다.
    sudo docker run \
      --volume=/:/rootfs:ro \
      --volume=/var/run:/var/run:rw \
      --volume=/sys:/sys:ro \
      --volume=/var/lib/docker/:/var/lib/docker:ro \
      --publish=8080:8080 \
      --detach=true \
      --name=cadvisor \
      google/cadvisor:latest
     
    실행하고나선 웹브라우저에서 8080 포트로 접속해서 cAdvisor 화면을  확인할 있다.

     
     
    Subcontainers 화면에서 /docker 선택해서 들어가면 현재 실행중인 도커 컨테이너들을 확인할 있다.

     
    목록중에서 상태를 확인하고 싶은 컨테이너를 선택하면 해당 컨테이너의 상세한 모니터링 화면을 확인할 있다. CPU/메모리 사용량, 컨테이너에 있는 프로세스, 네트워크 트래픽 사용량, 파일시스템 사용량등의 정보를 확인할 있다.
    cAdvisor UI뿐만 아니라 REST API역시 가지고 있다. 다음처럼 간단한 curl 명령으로 컨테이너의 상태를 확인할 있다.
    이렇게 하면 앞서 웹브라우저에서 봤던 정보들에 관한 상세 데이터를 JSON 형식으로 확인할 있다. curl 명령에서 [컨테이너 이름] 부분을 생략하면 실행중인 전체 컨테이너에 대한 데이터를 확인할 있다.
     
    cAdvisor에서 수집한 데이터는 인플럭스DB(InfluxDB, https://influxdb.com/)같은 시계열 데이터베이스나, 프로메테우스(Prometheus, http://prometheus.io/), 힙스터(Heapster, https://github.com/kubernetes/heapster)같은 모니터링 시스템에 보내서 이용할 있다.
     
     
     
     
    반응형

    댓글

Designed by Tistory.