我正在尝试使用Hyperledger Fabric v1.4网络配置Prometheus和Grafana,以分析对等和链码mertics。遵循此documentation之后,我已将对等容器的端口9443映射到主机的端口9443。我还将对等体的providerprometheus部分下的metrics条目更改为core.yml。我已经按照以下方式在docker-compose.yml中配置了prometheus和grafana。

  prometheus:
    image: prom/prometheus:v2.6.1
    container_name: prometheus
    volumes:
    - ./prometheus/:/etc/prometheus/
    - prometheus_data:/prometheus
    command:
    - '--config.file=/etc/prometheus/prometheus.yml'
    - '--storage.tsdb.path=/prometheus'
    - '--web.console.libraries=/etc/prometheus/console_libraries'
    - '--web.console.templates=/etc/prometheus/consoles'
    - '--storage.tsdb.retention=200h'
    - '--web.enable-lifecycle'
    restart: unless-stopped
    ports:
    - 9090:9090
    networks:
    - basic
    labels:
    org.label-schema.group: "monitoring"

  grafana:
    image: grafana/grafana:5.4.3
    container_name: grafana
    volumes:
    - grafana_data:/var/lib/grafana
    - ./grafana/datasources:/etc/grafana/datasources
    - ./grafana/dashboards:/etc/grafana/dashboards
    - ./grafana/setup.sh:/setup.sh
    entrypoint: /setup.sh
    environment:
    - GF_SECURITY_ADMIN_USER={ADMIN_USER}
    - GF_SECURITY_ADMIN_PASSWORD={ADMIN_PASS}
    - GF_USERS_ALLOW_SIGN_UP=false
    restart: unless-stopped
    ports:
    - 3000:3000
    networks:
    - basic
    labels:
    org.label-schema.group: "monitoring"

当我在远程centos机器上curl 0.0.0.0:9443/metrics时,我得到了所有指标列表。但是,当我使用上述配置运行Prometheus时,它将引发错误Get http://localhost:9443/metrics: dial tcp 127.0.0.1:9443: connect: connection refused。这就是我的prometheus.yml的样子。
global:
  scrape_interval:     15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 10s
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'peer_metrics'
    scrape_interval: 10s
    static_configs:
      - targets: ['localhost:9443']

甚至,当我在浏览器中转到端点http://localhost:9443/metrics时,我都会获得所有指标。我在这里做错什么了。普罗米修斯指标如何在其界面上而不是对等方的界面上显示?

最佳答案

您的prometheus容器未在主机网络上运行。它在自己的网桥(由docker-compose创建的网桥)上运行。因此,对等端的scrape配置应指向对等容器的IP。

推荐的解决方法:

  • 在与光纤网络相同的网络中运行prometheus和grafana。
    在docker-compose for prometheus堆栈中,您可以像这样引用它:
  • networks:
      default:
        external:
          name: <your-hyperledger-network>
    

    (使用docker network ls查找网络名称)

    然后,您可以在抓取配置中使用http://<peer_container_name>:9443

    关于docker - 出现错误 "Get http://localhost:9443/metrics: dial tcp 127.0.0.1:9443: connect: connection refused",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54397463/

    10-11 17:42