首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker群- Prometheus无法访问Cadvisor:拨号tcp 10.0.50:8090:连接:连接被拒绝

Docker群- Prometheus无法访问Cadvisor:拨号tcp 10.0.50:8090:连接:连接被拒绝
EN

Stack Overflow用户
提问于 2019-10-05 15:41:31
回答 1查看 927关注 0票数 1

在我的Windows 10专业版,我有一个完整的码头群环境。码头群的一部分是普罗米修斯和cAdvisor。我将逐步构建监控工具,然后将监控部署到云解决方案中。

在Docker群堆栈中,我可以运行Prometheus和Cadvisor,但是Prometheus不能连接到cAdvisor。我收到这样的信息:

Get http://cadvisor:8090/metrics:拨号TCP10.0.0.50:8090:连接:连接被拒绝

我怎样才能让Prometheus访问顾问?

在我的浏览器中,我可以执行一个‘localhost:8090/度量值’,并获得所有指标。因此,cAdvisor可以肯定地运行。

我有一个创建网络(devhome_default)的堆栈文件。在我的第二个堆栈中,我提到了这个网络。

UPDATE:解决这一问题的一种方法是使用IP地址:$ ipconfig,在我的prometheus.config中使用该地址工作得很好。但是,这使得目标硬连接和不可维护。

堆栈/ dockercompose是:

代码语言:javascript
复制
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配置文件是:

代码语言:javascript
复制
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:

代码语言:javascript
复制
- job_name: 'cadvisor'
  dns_sd_configs:
  - names:
    - 'tasks.cadvisor'
    type: 'A'
    port: 8090

还包括:

代码语言:javascript
复制
- job_name: 'cadvisor'
  static_configs:
    - targets: ['localhost:8090']
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-30 17:22:38

在不同的云环境中,下面的“dns”解决方案就像魅力一样工作。因为“真正的”云环境是我们的Docker容器的目标环境,标准的“事实”解决方案就足够了。

因此,这在云环境中运行得很好:

代码语言:javascript
复制
- job_name: 'cadvisor'
  dns_sd_configs:
  - names:
    - 'tasks.cadvisor'
    type: 'A'
    port: 8090
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58249855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档