جعل 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.}