도커 호스트 서버의 모니터링은 기존 상용 모니터링 툴에서 제공하는 모니터링으로도 충분히 모니터링이 가능 했다. 하지만 호스트 서버의 각 컨테이너들이 사용하는 리소스를 모니터링 할 수 있는 방법이 없을까 고민하던 끝에 CAdvisor + Prometheus + Grafana를 이용한 모니터링을 구성해 보기로 했다.
참고한 alice 님의 블로그 주소는 아래와 같다.
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 메뉴를 선택 하여 업로드 하자
대쉬보드가 적용이 되면 아래와 같은 모니터링 화면을 볼 수 있다. ^^