Получение ошибки «Get http://localhost:9443/metrics: dial tcp 127.0.0.1:9443: соединение: соединение отказано» - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь настроить Prometheus и Grafana с моей сетью Hyperledger Fabric v1.4 для анализа возможностей одноранговых и цепных кодов.Я сопоставил порт однорангового контейнера 9443 с портом моей хост-машины 9443 после следования этой документации .Я также изменил запись provider на prometheus в разделе metrics в core.yml пира.Я настроил Прометей и Графану в docker-compose.yml следующим образом.

  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']

Даже когда я захожу в конечную точку http://localhost:9443/metrics в своем браузере, я получаю все метрики.Что я тут не так делаю.Почему метрики Prometheus отображаются на его интерфейсе, а не на пире?

1 Ответ

0 голосов
/ 28 января 2019

Ваш контейнер Prometheus не работает в сети хоста.Он работает на своем собственном мосту (создан docker-compose).Поэтому конфигурация очистки для однорангового узла должна указывать на IP однорангового контейнера.

Рекомендуемый способ решения этой проблемы:

  • Запустите prometheus и grafana в той же сети, что и сеть Fabric.В вашем docker-compose для стека prometheus вы можете ссылаться на него следующим образом:
networks:
  default:
    external:
      name: <your-hyperledger-network>

(используйте docker network ls, чтобы найти имя сети)

Тогда вы можете использовать http://<peer_container_name>:9443 в конфиге скрапа

...