Prometheus을 사용하여 내 도커 컨테이너를 모니터링하고 싶습니다. 나는 실행할 수있다 PrometheusGrafana 그러나 다른 도커 컨테이너를 모니터하는 방법을 알지 못한다. 가능한 경우 몇 가지 예를보고 싶습니다. 예를 들어 우분투 컨테이너가 내 호스트에서 실행 중이고 Gentoo 컨테이너가 있습니다. Prometheus에 모니터링을 요청하거나 내부에서 실행되는 일부 응용 프로그램을 모니터링하는 방법은 무엇입니까? 시간과 인내심을 미리 감사드립니다.Prometheus - 다른 도커 컨테이너를 모니터링하는 방법
6
A
답변
6
컨테이너 사용자가 실행중인 컨테이너의 리소스 사용 및 성능 특성을 이해할 수 있도록 cadvisor을 사용할 수 있습니다.
이 아키텍처를 사용 도커을 모니터링하는 프로 메테우스을 설정에 관한 very good article :
잠시, 아이디어는 cAdvisor를 사용하여 컨테이너에 대한 정보를 수집하고 에 넣어하는 것입니다 Prometheus 데이터베이스. Grafana은 Prometheus 데이터베이스를 쿼리하고 모니터링 차트/값을 렌더링합니다. 당신은 프로 메테우스에 일부 데이터가있는 경우
scrape_configs:
- job_name: 'cadvisor'
scrape_interval: 5s
static_configs:
- targets: ['cadvisor:8080']
, 당신이 가지고있는이 를 사용하려면 다음 configuration file (prometheus.yml
)
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가 좋은 선택이라고 믿는다. – ivo
전 세계 3 곳의 프로덕션 사이트에서이 스택 (+ 노드 내보내기/경고 관리자)을 사용하고 있습니다. 호스트에'collectors' 컨테이너 (cAdvisor/node exporter)를 배포하는 단순함에 진심으로 감사 드리며 그래프가 마술처럼 떠오른다! –
이 답변을 공유해 주셔서 감사합니다. 내 유스 케이스에서도 도움이되었습니다. –