Fazendo o Discourse ver o IP do servidor Prometheus

Obrigado!

Ativei o cloudflare.template.yml. :slight_smile: Mas, se entendi corretamente, isso foi apenas para desativar a limitação de taxa no tráfego proveniente dos endereços IP da Cloudflare.

Por enquanto, é assim que minha configuração do Prometheus se parece:

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

Agora, o problema que estou enfrentando é que o Discourse não consegue ver o endereço IP real de uma solicitação. Portanto, para que a abordagem de lista de permissões funcione, tentei o seguinte:

  1. Adicionei o endereço IPv6 do meu servidor Prometheus à variável de ambiente DISCOURSE_PROMETHEUS_TRUSTED_IP_WHITELIST_REGEX no app.yml.

  2. Codifiquei manualmente o endereço IPv6 real do fórum no arquivo /etc/hosts do servidor Prometheus. Agora, o fórum consegue ver o endereço IP do meu servidor Prometheus e permitir o acesso a ele. :slight_smile:

Ainda tenho alguns outros problemas. Por exemplo, estou executando o Prometheus em um container. O /etc/hosts do host não é compartilhado dentro do container. Assim, ele continua resolvendo o endereço do fórum para um IP da Cloudflare e falha durante a autenticação.

Posso compartilhar o /etc/hosts do host no container Docker assim: -v /etc/hosts:/etc/hosts ao iniciar o Prometheus, mas isso resulta em um erro como:

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

Agora, só preciso resolver esse problema.

Edição #1: Descobri isso também. O IPv6 estava desativado dentro do container Docker. Posso corrigir isso ativando o IPv6 no container Docker ou simplesmente usando --net=host.