شكرًا لك!
تم تمكين cloudflare.template.yml.
لكن إذا فهمت بشكل صحيح، كان ذلك فقط لتعطيل تحديد معدل الطلبات للحوافز القادمة من عناوين IP الخاصة بـ Cloudflare.
في الوقت الحالي، يبدو تكوين Prometheus الخاص بي كالتالي:
scrape_configs:
- job_name: forum
scrape_interval: 5s
scheme: https
static_configs:
- targets:
- forum-behind-cloudflare-dns-proxy.com
الآن، المشكلة التي أواجهها هي أن Discourse لا يرى عنوان IP الفعلي للطلب. لذا، ولجعل نهج قائمة السماح يعمل، جربت ما يلي:
-
أضفت عنوان IPv6 الخاص بخادم Prometheus الخاص بي إلى متغير البيئة
DISCOURSE_PROMETHEUS_TRUSTED_IP_WHITELIST_REGEXفي ملفapp.yml. -
قمت بتعيين عنوان IPv6 الفعلي للمنتدى يدويًا في
/etc/hostsعلى خادم Prometheus. الآن، يمكن للمنتدى رؤية عنوان IP الخاص بخادم Prometheus الخاص بي والسماح بالوصول إليه.
لا تزال هناك بعض المشاكل الأخرى لدي، مثل: أن 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.}