На моем Windows 10 Pro у меня есть полная среда Docker Swarm. В состав стека Docker Swarm входят Prometheus и cAdvisor. Шаг за шагом я создам инструменты мониторинга, а затем разверну мониторинг в облачном решении.
В стеке Docker Swarm я могу запустить Prometheus и Cadvisor, но Prometheus не может подключиться к cAdvisor. Я получаю сообщение:
Get http://cadvisor:8090/metrics: dial tcp 10.0.0.50:8090: connect: соединение отклонено
Как получить Prometheus access cadvisor?
В своем браузере я могу выполнить «localhost: 8090 / metrics» и получить все метрики. Итак, cAdvisor работает точно.
У меня есть один файл стека, который создает сеть (devhome_default). Во втором моем стеке я имею в виду эту сеть.
ОБНОВЛЕНИЕ : один из способов решить эту проблему - использовать IP-адрес: $ ipconfig. Использование этого адреса в моем файле prometheus.config работает нормально. Но это делает цель жесткой и не ремонтопригодной.
Файл стека / dockercompose:
version: '3'
services:
cadvisor:
image: google/cadvisor
networks:
- geosolutionsnet
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /:/rootfs
- /var/run:/var/run
- /sys:/sys
- /var/lib/docker/:/var/lib/docker
ports:
- 8090:8080
deploy:
mode: global
resources:
limits:
cpus: '0.10'
memory: 128M
reservations:
cpus: '0.10'
memory: 64M
prometheus:
image: prom/prometheus:v2.8.0
ports:
- "9090:9090"
networks:
- geosolutionsnet
volumes:
- //k/data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
deploy:
mode: replicated
replicas: 1
networks:
geosolutionsnet:
external:
name: devhome_default
Файл конфигурации Prometheus:
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
#- "alert.rules_nodes"
#- "alert.rules_tasks"
#- "alert.rules_service-groups"
scrape_configs:
- job_name: 'prometheus'
dns_sd_configs:
- names:
- 'tasks.prometheus'
type: 'A'
port: 9090
- job_name: 'cadvisor'
static_configs:
- targets: ['cadvisor:8090']
labels:
alias: "cadvisor"
В качестве альтернативы, я попытался также для cAdvisor:
- job_name: 'cadvisor'
dns_sd_configs:
- names:
- 'tasks.cadvisor'
type: 'A'
port: 8090
А также:
- job_name: 'cadvisor'
static_configs:
- targets: ['localhost:8090']