CAdvisor + Prometheus + Grafana 를 이용한 컨테이너 모니터링

Posted by

도커 호스트 서버의 모니터링은 기존 상용 모니터링 툴에서 제공하는 모니터링으로도 충분히 모니터링이 가능 했다. 하지만 호스트 서버의 각 컨테이너들이 사용하는 리소스를 모니터링 할 수 있는 방법이 없을까 고민하던 끝에 CAdvisor + Prometheus + Grafana를 이용한 모니터링을 구성해 보기로 했다.

참고한 alice 님의 블로그 주소는 아래와 같다.

https://m.blog.naver.com/PostView.nhn?blogId=alice_k106&logNo=221090348538&proxyReferer=https%3A%2F%2Fwww.google.com%2F

1단계 : Cadvisor 컨테이너 생성

docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro --publish=8080:8080 --detach=true --name=cadvisor google/cadvisor:v0.27.4

컨테이너가 구동 되면 http://호스트ip:8080 으로 아래처럼 Cadvisor 웹 페이지를 확인 할 수 있다.

2단계 : node-exporter 구성

호스트 서버의 모니터링를 위해 node-exporter 를 생성한다.

docker run -d --name node-exporter --restart=unless-stopped prom/node-ex
porter:v0.14.0

3단계 : Prometheus 컨테이너 구성

먼저 설정파일을 호스트 서버에 생성 하자

#### prometheus-cadvisor.yml
scrape_configs:
 - job_name: cadvisor
   scrape_interval: 5s
   static_configs:
   - targets:
     - cadvisor:8080
     - node-exporter:9100                                                                                                               

그런다음 prometheus 컨테이너를 생성 하자

docker run -d --name prometheus-cadvisor -h prometheus-cadvisor --link cadvisor:cadvisor --link cadvisor:cadvisor --link node-exporter:node-exporter -v $(pwd)/prometheus-cadvisor.yml:/etc/prometheus/prometheus.yml prom/prometheus:v1.7.0 -config.file=/etc/prometheus/prometheus.yml

4단계 : Grafana 를 이용하여 그래프 연동 하기

Grafana 컨테이너를 구동 한다.

docker run -d --name grafana -h grafana -e GF_SECURITY_ADMIN_PASSWORD=pass -p 3000:3000 --link prometheus-cadvisor:prometheus-cadvisor grafana/grafana:4.4.3

http://ip:3000 접속 후 로그인 창에 admin / pass 입력

Datasoucre -> add datasource 클릭 후 아래와 같이 입력 한다.

그리고 https://grafana.com/dashboards/893 사이트 또는 하기 첨부파일의 json 파일을 다운 받아  Dashboard – Import 메뉴를 선택 하여 업로드 하자

대쉬보드가 적용이 되면 아래와 같은 모니터링 화면을 볼 수 있다. ^^

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다