Grafana-Prometheus
deploy grafana, prometheus, node exporter
docker-compose.yml
version: "3.9"
services:
grafana:
container_name: grafana
image: grafana/grafana:latest
user: "0"
ports:
- "3000:3000"
volumes:
- grafana-data:/var/lib/grafana
prometheus:
container_name: prometheus
image: prom/prometheus:latest
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
ports:
- 9090:9090
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
restart: unless-stopped
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.rootfs=/rootfs'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
ports:
- "9100:9100"
volumes:
grafana-data:
prometheus-data:prometheus.yml
global - глобальные настройки: Comment
scrape_interval - раз в какое время выполняется HTTP-запрос к цели. В ответ получаются метрики в своём формате, которые сохраняются в базу(Prometheus) evaluation_interval - раз в какое время должны отрабатывать правила, на основании которых отправляются, например, алерты или записываются данные в базу.
scrape_configs - настройки поиска целей для мониторинга:
job_name - имя нашего сервиса. В данном случае это 'node_exporter'. Название можно поставить любое
scrape_interval - как часто собирать данные. Данную директиву можно опустить, так как она совпадает с тем, что прописано в global. Однако оставим тут для наглядности, что это можно настраивать отдельно для каждого сервиса.
static_configs - указание на то где находятся наши "цели". В нашем конфиге указано node-exporter:9100. То есть мы ссылаемся на наш "абстрактный сервер". В реальной жизни это был бы IP-адрес или хостнейм сервера
Last updated