Grazie!
Abilitato cloudflare.template.yml.
Ma se ho capito correttamente, questo serve solo a disabilitare il rate limiting per il traffico proveniente dagli indirizzi IP di Cloudflare.
Per ora, questa è la configurazione del mio Prometheus:
scrape_configs:
- job_name: forum
scrape_interval: 5s
scheme: https
static_configs:
- targets:
- forum-behind-cloudflare-dns-proxy.com
Ora, il problema che sto affrontando è che Discourse non riesce a vedere l’indirizzo IP reale della richiesta. Quindi, per far funzionare l’approccio basato sulla whitelist, ho provato quanto segue:
-
Ho aggiunto l’indirizzo IPv6 del mio server Prometheus alla variabile d’ambiente
DISCOURSE_PROMETHEUS_TRUSTED_IP_WHITELIST_REGEXinapp.yml. -
Ho hardcodato l’indirizzo IPv6 reale del forum nel file
/etc/hostssul server Prometheus. Ora, il forum può vedere l’indirizzo IP del mio server Prometheus e consentirne l’accesso.
Rimangono però altri problemi. Ad esempio, sto eseguendo Prometheus in un contenitore. Il file /etc/hosts dell’host non viene condiviso all’interno del contenitore. Di conseguenza, continua a risolvere l’indirizzo del forum su un IP di Cloudflare e fallisce durante l’autenticazione.
Potrei condividere /etc/hosts dall’host nel contenitore Docker, ad esempio con -v /etc/hosts:/etc/hosts all’avvio di Prometheus, ma questo provoca un errore come:
Get "https://forum-behind-cloudflare-dns-proxy.com:443/metrics": dial tcp [<ipv6-address>]:443: connect: cannot assign requested address
Ora devo solo risolvere questo problema.
Modifica #1: Ho risolto anche questo. IPv6 era disabilitato all’interno del contenitore Docker. Posso correggere il problema abilitando IPv6 nel contenitore o semplicemente usando --net=host.