我使用docker-compose with prometheus configure来监视远程主机上的docker容器(这里是链接https://github.com/stefanprodan/dockprom)
接下来,我还有一个包含我的后端实例的docker-compose文件,该实例收集指标(请求分析:关于请求/响应的统计信息)。第一个docker容器(prometheus服务器所在的位置)具有名为monitor-net
的网络,第二个docker-compose(我的服务器实例所在的位置)将其用作外部:
# in docker-compose with prometheus server
networks:
monitor-net:
driver: bridge
..............................................
# in docker compose with my server instance
networks:
{monitoring_folder_name}_monitor-net:
external: true
docker-compose服务通信的方式是从这里Communication between multiple docker-compose projects
然后,我启动两个docker-composes。服务器正在运行Docker容器的监视系统正在运行。但是它无法连接到服务器。在{VPS_IP}:9090
(运行Prometheus服务器的地方)上,我的服务器端点上出现了错误
Get http://st_back_1:3011/metrics: dial tcp 192.168.16.11:3011: connect: connection refused
st_back_1
是服务器的容器名称
我真的不明白我在做什么错。可能有不同的方法来解决此问题(例如,向我的VPS_IP:3011
发送地址,但是关于安全的问题不是/不会更长)。我的目标是从服务器实例(-s)收集指标(可能会有多个指标)并将其放入单个Grafana仪表板
所以,我的问题是,如果prometheus.yml
中的docker容器位于不同的docker-compose中,但它们共享相同的网络(通过VPS_IP:PORT
,container_name:PORT
等),我该如何解决? ?
global:
scrape_interval: 15s
evaluation_interval: 15s
external_labels:
monitor: 'docker-host-alpha'
rule_files:
- "alert.rules"
scrape_configs:
- job_name: 'nodeexporter'
scrape_interval: 5s
static_configs:
- targets: ['nodeexporter:9100']
- job_name: 'cadvisor'
scrape_interval: 5s
static_configs:
- targets: ['cadvisor:8080']
- job_name: 'prometheus'
scrape_interval: 10s
static_configs:
- targets: ['localhost:9090']
- job_name: 'pushgateway'
scrape_interval: 10s
honor_labels: true
static_configs:
- targets: ['pushgateway:9091']
- job_name: 'be.production'
scrape_interval: 10s
static_configs:
- targets: ['st_back_1:3011']
alerting:
alertmanagers:
- scheme: http
static_configs:
- targets:
- 'alertmanager:9093'