Контейнер докера Alertmanager отказывается от подключений

#docker #docker-compose #prometheus #prometheus-alertmanager

Вопрос:

У меня есть файл для настройки с одним приложением django, контейнером Prometheus monitoring и контейнером Alertmanager.

Все сборки в порядке, приложение запущено, Prometheus ведет мониторинг, но когда нужно запустить предупреждение, предупреждение не доходит до контейнера Alertmanager со следующим сообщением об ошибке:

 prometheus_1    | level=error ts=2021-08-02T08:58:16.018Z caller=notifier.go:527 component=notifier alertmanager=http://0.0.0.0:9093/api/v2/alerts count=1 msg="Error sending alert" err="Post "http://0.0.0.0:9093/api/v2/alerts": dial tc
p 0.0.0.0:9093: connect: connection refused"
 

Alertmanager также отказывается от тестового подключения к telnet, например так

 klex@DESKTOP-PVC5EP:~$ telnet 0.0.0.0 9093
Trying 0.0.0.0...
Connected to 0.0.0.0.
Escape character is '^]'.
Connection closed by foreign host.
 

файл docker-compose является:

 version: "3"

services:
  web:
    container_name: smsgate
    build: .
    command: sh -c "python manage.py migrate amp;amp;
      python manage.py collectstatic --no-input amp;amp; 
      python manage.py runserver 0.0.0.0:15001"
    volumes:
      - .:/smsgate:rw
      - static_volume:/home/app/smsgate/static
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - "15001:15001"
    env_file:
      - .env.prod
    image: smsgate
    restart: "always"
    networks:
      - promnet

  prometheus:
    image: prom/prometheus
    volumes:
    - ./prometheus/:/etc/prometheus/
    depends_on:
      - alertmanager
    ports:
      - "9090:9090"
    networks:
      - promnet

  alertmanager:
    image: prom/alertmanager
    ports:
      - "9093:9093"
    volumes:
      - ./alertmanager/:/etc/alertmanager/
    restart: "always"
    command:
      - '--config.file=/etc/alertmanager/alertmanager.yml'
    networks:
      - promnet

volumes:
  static_volume:
  alertmanager_volume:
  prometheus_volume:

networks:
  promnet:
    driver: bridge
 

И прометей.файл конфигурации yml является

 global:
  scrape_interval: 15s
  evaluation_interval: 15s

alerting:
  alertmanagers:
    - static_configs:
        - targets:
            - "0.0.0.0:9093"
rule_files:
  - alert.rules.yml

scrape_configs:
  - job_name: monitoring
    metrics_path: /metrics
    static_configs:
      - targets:
          - smsgate:15001
 

Очень вероятно, что существует сеть? проблема конфигурации либо в том, что служба, похоже, не принимает никаких подключений.

Графические интерфейсы Prometheus и Alertmanager доступны через браузер http://127.0.0.1:9090/ и http://127.0.0.1:9093/ соответственно

Любая помощь была бы очень признательна.

Ответ №1:

Попробуйте использовать имя службы вместо имени 0.0.0.0 . Измените последнюю строку в конфигурации блока оповещения следующим образом:

 alerting:
  alertmanagers:
    - static_configs:
        - targets:
            - "alertmanager:9093"
 

учитывая, что они находятся в одной сети, это должно работать просто отлично

Обновить

В первую очередь я неправильно понял проблему. Извинения. Пожалуйста, проверьте обновленный блок выше ☝ 🏽

Комментарии:

1. Пытался, но безуспешно. Этот блок посвящен приложению>Связь с Прометеем, которая отлично работает.

2. Извини, Дэвид, я упустил из виду главное. Я отредактировал свой ответ, надеюсь, теперь он лучше 😀