لماذا تستضيف Prometheus و Grafana ذاتيًا على خادم افتراضي VPS
على خلاف الأداة الشاملة، تفصل حزمة Prometheus + Grafana بوضوح بين الجمع (يجمع Prometheus المقاييس التي تعرضها المصدِّرات) والتخزين (قاعدة بيانات السلاسل الزمنية) والعرض البصري (Grafana). هذه الوحدوية هي بالضبط ما يجعلها معيارًا: تراقب الخادم VPS نفسه باستخدام Node Exporter، وحاوياتك باستخدام cAdvisor، وقاعدة بيانات PostgreSQL أو MySQL باستخدام المصدِّر المخصّص، وتزوّد تطبيقاتك الخاصة بأدوات القياس بتنسيق Prometheus. كل ذلك على خادم VPS تتحكّم فيه، ما يجنّبك إرسال مقاييس بنية تحتية حسّاسة إلى خدمة SaaS تُحاسِب بحسب الاستيعاب. تحتفظ بالسجل طالما سمح قرصك بذلك، وتبني لوحات معلومات خاصة بحزمتك، وتحدّد قواعد التنبيه الخاصة بك عبر Alertmanager. هذا هو النهج المفضّل عندما تتجاوز سؤال 'هل يستجيب الموقع؟' لتدخل في تحليل دقيق لاتجاهات الحِمل.
ما تقدّمه هذه الحزمة على خادمك VPS
- مقاييس نظام مفصّلة (CPU، RAM، إدخال/إخراج القرص، الشبكة) عبر Node Exporter، محفوظة كسجل على المدى الطويل.
- مراقبة حاويات Docker باستخدام cAdvisor: الاستهلاك لكل حاوية في الوقت الفعلي.
- لوحات معلومات Grafana مخصّصة، قابلة للاستيراد من مكتبة مجتمعية تضم آلاف القوالب.
- تنبيهات قوية عبر Alertmanager: عتبات، وتجميع، وكتم، وتوجيه متعدد القنوات.
- لغة الاستعلام PromQL لإنشاء مؤشرات مشتقّة ومعدّلات تغيّر.
- تزويد تطبيقاتك الخاصة بأدوات القياس بتنسيق Prometheus، دون تكلفة استيعاب خارجية.
المتطلبات اللازمة لاستضافتها
هذه الحزمة أكثر استهلاكًا للموارد من مراقب بسيط، لأن Prometheus يحتفظ بالسلاسل الزمنية في الذاكرة قبل كتابتها على القرص. احسب خادم VPS بمعالجَي vCPU وذاكرة RAM من 2 إلى 4 غيغابايت لمراقبة خادم واحد إلى عدة خوادم، وأكثر إذا ضاعفت عدد المصدِّرات وتواتر الجمع. التخزين هو النقطة الأساسية: خطّط لـ 20 إلى 40 غيغابايت من القرص حسب مدة الاحتفاظ (--storage.tsdb.retention.time). تحتاج إلى Docker و Docker Compose، واسم نطاق لإتاحة Grafana عبر HTTPS، ووكيل عكسي. أبقِ Prometheus غير متاح للعموم: يجب أن يكون Grafana وحده قابلًا للوصول من الخارج.
نشر حزمة Prometheus + Grafana باستخدام Docker Compose
كتابة ملف docker-compose.yml
عرّف ثلاث خدمات: prometheus و grafana و node-exporter. قم بتحميل ملف إعداد prometheus.yml ووحدات تخزين مُسمّاة للاحتفاظ بالبيانات (prometheus_data، grafana_data). ثم شغّل docker compose up -d.
إعداد الأهداف في prometheus.yml
في قسم scrape_configs، أضف مهمة node توجَّه إلى node-exporter:9100 لمقاييس النظام، ومهمة cadvisor إذا كنت تراقب Docker. أعد التحميل باستخدام docker compose restart prometheus.
ربط Grafana بـ Prometheus
افتح Grafana، وأضف مصدر بيانات من نوع Prometheus بالرابط http://prometheus:9090 (اسم خدمة Docker). اختبر الاتصال: يجب أن يعيد 'Data source is working'.
استيراد لوحات معلومات جاهزة للاستخدام
استورد لوحة Node Exporter Full (المعرّف 1860) ولوحة cAdvisor عبر معرّفها. تحصل فورًا على رسوم بيانية لـ CPU والذاكرة والقرص والشبكة دون بناء أي شيء يدويًا.
تأمين Grafana خلف وكيل عكسي بـ SSL
أتِح Grafana وحده عبر Nginx أو Caddy على grafana.mydomain.com بشهادة Let's Encrypt. احظر الوصول الخارجي إلى Prometheus (المنفذ 9090) على مستوى الجدار الناري: يجب أن يكون قابلًا للوصول من Grafana فقط.
إعداد التنبيهات
أضف Alertmanager إلى ملف Compose، وعرّف قواعد في Prometheus (على سبيل المثال CPU > 90% لمدة 5 دقائق) ووجّه التنبيهات إلى البريد الإلكتروني أو Slack أو Telegram. تحقّق من الإطلاق عبر قاعدة اختبارية.
راقب مساحة القرص التي تستهلكها قاعدة بيانات السلاسل الزمنية لـ Prometheus، والتي تكبر مع عدد المقاييس وتواتر الجمع. اضبط --storage.tsdb.retention.time (على سبيل المثال 30 يومًا)، وإذا كنت بحاجة إلى سجل طويل دون إشباع الخادم VPS، فاربط تخزينًا بعيدًا مثل Thanos أو VictoriaMetrics. على خادم VPS، تقليل فاصل الجمع من 15 ثانية إلى 30 ثانية للمقاييس غير الحرجة يقلّل أيضًا حجم البيانات المكتوبة على القرص إلى النصف.
الوثائق الرسمية
للإعداد المتقدّم والخيارات الخاصة بالأداة، ارجع إلى الوثائق الرسمية لـ Grafana. يغطّي هذا الدليل النشر على خادم VPS؛ وتبقى وثائق الناشر المرجع للضبط الدقيق والتحديثات الكبرى وحالات الاستخدام الخاصة.