Hacer que Discourse vea la IP del servidor Prometheus

¡Gracias!

Habilité cloudflare.template.yml. :slight_smile: Pero si entiendo correctamente, eso solo servía para desactivar la limitación de velocidad en el tráfico que proviene de las direcciones IP de Cloudflare.

Por ahora, esto es lo que parece mi configuración de Prometheus:

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

Ahora, el problema que estoy enfrentando es que Discourse no puede ver la dirección IP real de una solicitud. Por lo tanto, para que el enfoque de lista de permitidos funcione, he intentado lo siguiente:

  1. Agregué la dirección IPv6 de mi servidor de Prometheus a la variable de entorno DISCOURSE_PROMETHEUS_TRUSTED_IP_WHITELIST_REGEX en app.yml.

  2. Codifiqué manualmente la dirección IPv6 real del foro en /etc/hosts en el servidor de Prometheus. Ahora, el foro puede ver la dirección IP de mi servidor de Prometheus y permitirle el acceso. :slight_smile:

Aún tengo otros problemas. Por ejemplo, estoy ejecutando Prometheus en un contenedor. /etc/hosts del host no se comparte dentro del contenedor. Por lo tanto, sigue resolviendo la dirección del foro a una dirección IP de Cloudflare y falla durante la autenticación.

Puedo compartir /etc/hosts del host en el contenedor de Docker así: -v /etc/hosts:/etc/hosts al iniciar Prometheus, pero eso resulta en un error como:

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

Ahora, solo tengo que resolver este problema.

Edición #1: También lo resolví. IPv6 estaba deshabilitado dentro del contenedor de Docker. Puedo solucionarlo habilitando IPv6 en el contenedor de Docker o simplemente usando --net=host.