簡體   English   中英

出現錯誤“Get http://localhost:9443/metrics: dial tcp 127.0.0.1:9443: connect: connection refused”

[英]Getting error "Get http://localhost:9443/metrics: dial tcp 127.0.0.1:9443: connect: connection refused"

我正在嘗試使用我的 Hyperledger fabric v1.4.network 配置 Prometheus 和 Grafana 以分析對等點和鏈碼 mertics。 在遵循此文檔后,我已將對等容器的端口9443映射到主機的端口9443 我還在 peer 的core.ymlmetrics部分下將provider條目更改為prometheus 我已經通過以下方式在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"

當我curl 0.0.0.0:9443/metrics在我的遠程 centos 機器上時,我得到了所有指標列表。 但是,當我使用上述配置運行 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']

甚至,當我在瀏覽器中使用 go 訪問端點http://localhost:9443/metrics時,我得到了所有指標。 我在這里做錯了什么。 為什么 Prometheus 指標顯示在其界面上而不是同行的?

由於目標不在 prometheus 容器內運行,因此無法通過 localhost 訪問它們。 您需要通過主機私有 IP 或將localhost替換為docker.for.mac.localhosthost.docker.internal來訪問它們。

您的 prometheus 容器未在主機網絡上運行。 它在自己的橋(由 docker-compose 創建的橋)上運行。 因此,peer 的抓取配置應該指向 peer 容器的 IP。

推薦的解決方法:

  • 在與結構網絡相同的網絡中運行 prometheus 和 grafana。 在您 docker-compose for prometheus stack 中,您可以像這樣引用它:
networks:
  default:
    external:
      name: <your-hyperledger-network>

(使用docker network ls查找網絡名稱)

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

問題:在 Prometheus 上,您添加了用於抓取的服務,但在http://localhost:9090/targets ,端點狀態為Down並出現錯誤:

獲取 http://localhost:9091/metrics: dial tcp 127.0.0.1:9091: connect: connection denied

在此處輸入圖片說明

解決方案:在prometheus.yml您需要驗證

  1. 抓取指向正確端點的詳細信息。
  2. yml 縮進是正確的。
  3. 使用curl -v http://<serviceip>:<port>/metrics應該會在終端中以明文形式提示指標。

注意:如果您指向另一個 docker 容器中的某個服務,則您的 localhost 可能不會表示為 localhost,而是表示為servicename (在docker.host.internal docker ps中顯示的服務名稱)或docker.host.internal (運行docker.host.internal容器的內部 IP)。

對於此示例:我將使用 2 個 dockers 容器 prometheus 和“myService”。

sudo docker ps

CONTAINER ID        IMAGE                     CREATED                        PORTS                    NAMES
abc123        prom/prometheus:latest        2 hours ago               0.0.0.0:9090->9090/tcp         prometheus
def456        myService/myService:latest         2 hours ago               0.0.0.0:9091->9091/tcp         myService

然后編輯文件prometheus.yml (並重新運行 prometheus)

- job_name: myService
  scrape_interval: 15s
  scrape_timeout: 10s
  metrics_path: /metrics
  static_configs:
    - targets: // Presenting you 3 options
      - localhost:9091 // simple localhost 
      - docker.host.internal:9091 // the localhost of agent that runs the docker container
      - myService:9091 // docker container name (worked in my case)
      
        

好吧,我記得我通過下載適用於 Windows 的 Prometheus 節點導出器解決了這個問題。

查看此鏈接https://medium.com/@facundofarias/setting-up-a-prometheus-exporter-on-windows-b3e45f1235a5

我們在使用覆蓋網絡時遇到相同的錯誤,這是解決方案(靜態而非動態)

此配置不起作用:

global:
  scrape_interval:     15s
  evaluation_interval: 15s

  external_labels:
    monitor: 'promswarm'

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

  - job_name: 'node'
    static_configs:
      - targets: [ 'localhost:9100' ]

即使http://docker.for.mac.localhost:9100/可用,但prometheus找不到node-exporter ,這也沒有。 所以下面的一個也不起作用:

global:
  scrape_interval:     15s
  evaluation_interval: 15s

  external_labels:
    monitor: 'promswarm'

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


  - job_name: 'node'
    static_configs:
      - targets: [ 'docker.for.mac.localhost:9100'  ]

但是只需使用其容器 ID,我們就可以通過其端口號訪問該服務。

docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS          PORTS                                       NAMES
a58264faa1a4   prom/prometheus          "/bin/prometheus --c…"   5 minutes ago    Up 5 minutes    0.0.0.0:9090->9090/tcp, :::9090->9090/tcp   unruffled_solomon
62310f56f64a   grafana/grafana:latest   "/run.sh"                42 minutes ago   Up 42 minutes   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   wonderful_goldberg
7f1da9796af3   prom/node-exporter       "/bin/node_exporter …"   48 minutes ago   Up 48 minutes   0.0.0.0:9100->9100/tcp, :::9100->9100/tcp   intelligent_panini

所以我們有7f1da9796af3 prom/node-exporter ID,我們可以將yml文件更新為:

global:
  scrape_interval:     15s
  evaluation_interval: 15s

  external_labels:
    monitor: 'promswarm'

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


  - job_name: 'node'
    static_configs:
      - targets: [ '7f1da9796af3:9100'  ]

不工作

在此處輸入圖片說明

在職的

在此處輸入圖片說明

如果您指向另一個 docker 容器中的某些服務,則您的本地主機可能不會表示為本地主機,而是表示為服務名稱(服務名稱顯示在 docker ps 中)或運行 docker 容器的內部 ip

普羅米修斯.yml

  • job_name:“節點出口商”

    靜態配置:

    • targets: ["nodeexporter:9100"] // docker 容器名稱

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM