2017-05-16 9 views
6

Prometheus을 사용하여 내 도커 컨테이너를 모니터링하고 싶습니다. 나는 실행할 수있다 PrometheusGrafana 그러나 다른 도커 컨테이너를 모니터하는 방법을 알지 못한다. 가능한 경우 몇 가지 예를보고 싶습니다. 예를 들어 우분투 컨테이너가 내 호스트에서 실행 중이고 Gentoo 컨테이너가 있습니다. Prometheus에 모니터링을 요청하거나 내부에서 실행되는 일부 응용 프로그램을 모니터링하는 방법은 무엇입니까? 시간과 인내심을 미리 감사드립니다.Prometheus - 다른 도커 컨테이너를 모니터링하는 방법

답변

6

컨테이너 사용자가 실행중인 컨테이너의 리소스 사용 및 성능 특성을 이해할 수 있도록 cadvisor을 사용할 수 있습니다.

이 아키텍처를 사용 도커을 모니터링하는 프로 메테우스설정에 관한 very good article :

cAdvisor with prometheus

잠시, 아이디어는 cAdvisor를 사용하여 컨테이너에 대한 정보를 수집하고 에 넣어하는 것입니다 Prometheus 데이터베이스. GrafanaPrometheus 데이터베이스를 쿼리하고 모니터링 차트/값을 렌더링합니다. 당신은 프로 메테우스에 일부 데이터가있는 경우

scrape_configs: 
    - job_name: 'cadvisor' 
    scrape_interval: 5s 
    static_configs: 
     - targets: ['cadvisor:8080'] 

, 당신이 가지고있는이 를 사용하려면 다음 configuration file (prometheus.yml)

는 프로 메테우스cAdvisor에서 데이터를 수집하려면 편집해야합니다 Grafana을 (를) 볼 수 있습니다. 당신이 Grafana로 가져올 수 json 쿼리를 모니터링 A (짧은) 예는 다음과 같다 :

사용자 CPU의 % 취득 : RAM의

"targets": [ 
    { 
     "expr": "sum(rate(container_cpu_user_seconds_total{image!=\"\"}[1m]))/count(node_cpu{mode=\"system\"}) * 100", 
     "interval": "10s", 
     "intervalFactor": 1, 
     "legendFormat": "", 
     "refId": "A", 
     "step": 10 
    } 
    ] 

가져 오기 % 사용 :

"targets": [ 
    { 
     "expr": "(sum(node_memory_MemTotal) - sum(node_memory_MemFree+node_memory_Buffers+node_memory_Cached))/sum(node_memory_MemTotal) * 100", 
     "interval": "10s", 
     "intervalFactor": 2, 
     "legendFormat": "", 
     "refId": "A", 
     "step": 20 
    } 
    ] 

을 완전한 json 데이터 (여기에 올리기에는 너무 깁니다)의 경우이 저장소를 복제 할 수 있습니다.

git clone https://github.com/stefanprodan/dockprom 

그리고 Grafana json을 가져 오십시오.

현재이 아키텍처를 사용하여 프로덕션 환경에서 docker swarm mode 클러스터를 모니터링하고 있고 github 저장소에서 찾을 수있는 모니터링 결과를 확인할 수 있습니다.

prometheus with grafana

+0

감사합니다 !!! 나는 그것을 확인하고, 시도하고, 알려줄 것이다. 나는 단순하면서도 강력한 것을 찾고 Prometheus가 좋은 선택이라고 믿는다. – ivo

+0

전 세계 3 곳의 프로덕션 사이트에서이 스택 (+ 노드 내보내기/경고 관리자)을 사용하고 있습니다. 호스트에'collectors' 컨테이너 (cAdvisor/node exporter)를 배포하는 단순함에 진심으로 감사 드리며 그래프가 마술처럼 떠오른다! –

+0

이 답변을 공유해 주셔서 감사합니다. 내 유스 케이스에서도 도움이되었습니다. –