【发布时间】:2019-10-05 15:41:31
【问题描述】:
在我的 Windows 10 Pro 上,我有一个完整的 Docker Swarm 环境。 Docker Swarm 堆栈的一部分是 Prometheus 和 cAdvisor。我将逐步构建监控工具,然后将监控部署到云解决方案。
在 Docker Swarm 堆栈中,我可以运行 Prometheus 和 Cadvisor,但 Prometheus 无法连接到 cAdvisor。 我收到消息:
获取http://cadvisor:8090/metrics:拨打tcp 10.0.0.50:8090:连接: 连接被拒绝
如何获得 Prometheus 访问 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']
【问题讨论】:
标签: docker-swarm prometheus cadvisor