Настройка Discourse для отображения IP-адреса сервера Prometheus

Спасибо!

Включил cloudflare.template.yml. :slight_smile: Но, если я правильно понимаю, это было сделано только для отключения ограничения частоты запросов для трафика, поступающего с IP-адресов Cloudflare.

На данный момент моя конфигурация Prometheus выглядит так:

scrape_configs:
        - job_name: forum
          scrape_interval: 5s
          scheme: https
          static_configs:
                  - targets:
                          - forum-behind-cloudflare-dns-proxy.com

Теперь проблема, с которой я столкнулся, заключается в том, что Discourse не видит реальный IP-адрес запроса. Поэтому для работы подхода со списком разрешённых адресов я попробовал следующее:

  1. Добавил IPv6-адрес моего сервера Prometheus в переменную окружения DISCOURSE_PROMETHEUS_TRUSTED_IP_WHITELIST_REGEX в файле app.yml.

  2. Прописал реальный IPv6-адрес форума в файле /etc/hosts на сервере Prometheus. Теперь форум видит IP-адрес моего сервера Prometheus и разрешает ему доступ. :slight_smile:

Однако у меня всё ещё есть другие проблемы. Например, я запускаю Prometheus в контейнере. Файл /etc/hosts хоста не доступен внутри контейнера. Поэтому он продолжает разрешать адрес форума до IP-адреса Cloudflare, и аутентификация не удаётся.

Я мог бы подключить файл /etc/hosts хоста к Docker-контейнеру, указав -v /etc/hosts:/etc/hosts при запуске Prometheus, но это приводит к ошибке:

Get "https://forum-behind-cloudflare-dns-proxy.com:443/metrics": dial tcp [<ipv6-address>]:443: connect: cannot assign requested address

Теперь мне нужно решить эту проблему.

Редактирование #1: Разобрался и с этим. IPv6 был отключён внутри Docker-контейнера. Я могу исправить это, включив IPv6 в контейнере Docker или просто используя --net=host.