تثبيت Grafana وربطها بـ Prometheus لإنشاء لوحات تحكم بصرية مذهلة
تثبيت Grafana وربطها بـ Prometheus لإنشاء لوحات تحكم بصرية مذهلة
عندما تبدأ البنية التشغيلية بالنمو، تصبح مراقبة الخدمات والخوادم ضرورة تشغيلية لا رفاهية. في عالم ما هو DevOps؟ ولماذا تدفع الشركات ثروات لمهندسي الأتمتة السحابية؟ لا يكفي أن تعمل التطبيقات فقط، بل يجب أن تعرف بدقة كيف تستهلك الموارد، ومتى تتدهور الاستجابة، وأين تبدأ الاختناقات قبل أن تتحول إلى أعطال حقيقية. هنا يأتي دور Prometheus كمنصة جمع مقاييس، وGrafana كطبقة عرض وتحليل بصري متقدمة.
إذا كنت قد أنهيت مقال تثبيت Prometheus لجمع مقاييس السيرفر (استهلاك الذاكرة، المعالج، الشبكة) فهذه الخطوة هي الامتداد الطبيعي لتحويل الأرقام الخام إلى لوحات واضحة تساعد فرق التشغيل والتطوير على اتخاذ قرارات أسرع. الربط بين الأداتين يمنحك رؤية فورية لاستهلاك CPU وMemory وDisk I/O ومرور الشبكة عبر رسوم بيانية قابلة للتخصيص.
لماذا تحتاج Grafana فوق Prometheus؟
من الناحية المعمارية، يقوم Prometheus بجمع المقاييس وتخزينها في قاعدة بيانات زمنية Time Series Database. لكنه ليس أفضل أداة لبناء واجهات عرض تنفيذية أو لوحات تشغيلية مريحة للفرق غير التقنية.
هنا تبرز Grafana لأنها تضيف قدرات متقدمة مثل:
- إنشاء
Dashboardsمتعددة حسب كل خدمة أو بيئة. - عرض المقاييس عبر
Panelsورسوم زمنية ومؤشرات فورية. - كتابة استعلامات
PromQLبشكل سهل مع معاينة مباشرة. - مشاركة اللوحات بين فرق
SREوOperationsوفرق التطوير. - إضافة تنبيهات وربطها مع أنظمة الإشعارات لاحقاً.
وهذا يتقاطع مباشرة مع فكرة لماذا المراقبة حتمية في الـ DevOps؟ مقدمة في Prometheus و Grafana لأن المراقبة الفعالة لا تعني جمع البيانات فقط، بل تقديمها بطريقة تكشف الاتجاهات والمشكلات بأسرع وقت ممكن.
المتطلبات قبل التثبيت
قبل تثبيت Grafana تأكد من توفر ما يلي:
- خادم
LinuxمثلUbuntu 22.04. - تثبيت مسبق ومُفعّل لـ
Prometheus. - إمكانية الوصول إلى الخادم عبر
SSH. - فتح المنفذ
3000في الجدار الناري إذا كنت ستصل من خارج الخادم.
لا تترك واجهة
Grafanaمكشوفة للإنترنت بدون تغيير كلمة المرور الافتراضية، ويفضل وضعها خلفReverse ProxyمعHTTPSوتقييد الوصول حسبIPأو شبكة داخلية كلما أمكن.
تثبيت Grafana على Ubuntu
سنستخدم المستودع الرسمي للحصول على نسخة مستقرة ومحدّثة. هذه الطريقة مناسبة للخوادم الفردية أو البيئات التجريبية أو حتى بعض بيئات الإنتاج الصغيرة والمتوسطة.
sudo apt update
sudo apt install -y apt-transport-https software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/grafana.gpg
echo "deb [signed-by=/usr/share/keyrings/grafana.gpg] https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt update
sudo apt install -y grafana
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
sudo systemctl status grafana-server
بعد نجاح التثبيت ستعمل الخدمة عادة على المنفذ 3000. يمكنك زيارة الواجهة من خلال:
http://YOUR_SERVER_IP:3000
بيانات الدخول الافتراضية تكون غالباً:
- اسم المستخدم:
admin - كلمة المرور:
admin
سيُطلب منك فوراً تعيين كلمة مرور جديدة، وهي خطوة لا يجب تجاهلها.
السماح بالوصول عبر الجدار الناري
إذا كنت تستخدم UFW فيمكنك فتح المنفذ الخاص بالواجهة بهذه الأوامر:
sudo ufw allow 3000/tcp
sudo ufw reload
sudo ufw status
أما إذا كنت تطبق أتمتة أمنية مركزية، فيمكن لاحقاً إدخال هذه القاعدة ضمن أتمتة إعداد جدار الحماية (UFW) وتأمين عدة سيرفرات Linux بضغطة واحدة لضمان توحيد السياسات بين البيئات.
ربط Grafana مع Prometheus كمصدر بيانات
بعد تسجيل الدخول إلى Grafana انتقل إلى قسم Data Sources ثم اختر Prometheus. ستحتاج عادة إلى عنوان الخادم الذي يعمل عليه Prometheus مثل:
http://localhost:9090
إذا كان Grafana وPrometheus على نفس الخادم، فالقيمة السابقة كافية. أما إذا كانا منفصلين، فاستخدم اسم المضيف أو عنوان IP الصحيح وتحقق من قواعد الشبكة بينهما.
بعد الضغط على Save & Test يفترض أن تظهر رسالة نجاح تؤكد الاتصال.
إنشاء أول لوحة مراقبة عملية
الخطوة التالية هي بناء Dashboard تعرض مؤشرات الخادم الأساسية. إذا كنت تستخدم Node Exporter مع Prometheus فهذه بعض الاستعلامات المفيدة:
1) استهلاك المعالج
100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
2) استخدام الذاكرة
(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100
3) المساحة المستخدمة على القرص
100 - ((node_filesystem_avail_bytes{fstype!~"tmpfs|overlay"} * 100) / node_filesystem_size_bytes{fstype!~"tmpfs|overlay"})
4) حركة الشبكة
rate(node_network_receive_bytes_total[5m])
rate(node_network_transmit_bytes_total[5m])
هذه الاستعلامات تمنحك أساساً ممتازاً لبناء لوحة أولية. ويمكنك تخصيص كل Panel من حيث اللون، ووحدة القياس، وحدود التحذير، ونوع الرسم البياني.
استيراد لوحات جاهزة لتسريع العمل
بدلاً من بناء كل شيء يدوياً، تسمح Grafana باستيراد لوحات جاهزة من المجتمع. هذه الميزة مفيدة جداً عندما تريد إطلاق نظام مراقبة سريع لخوادم Linux أو حاويات Docker.
وهذا مهم خاصة إذا كنت تعمل ضمن بيئة حاويات وتحتاج فهم طبقة التشغيل، ويمكنك الرجوع إلى أوامر Docker الأساسية للتحكم: تشغيل، إيقاف، فحص، وحذف الحاويات أو إدارة الشبكات (Docker Networks): كيف تتحدث الحاويات مع بعضها بأمان؟ لفهم كيفية ربط خدمات المراقبة داخل الشبكة نفسها.
تشغيل Grafana وPrometheus باستخدام Docker Compose
في كثير من البيئات الحديثة، يفضّل المهندسون تشغيل أدوات المراقبة ضمن حاويات معزولة. إذا كنت تتابع سلسلة ما هو Docker Compose؟ ولماذا نحتاجه لتشغيل المشاريع المعقدة؟ فإليك مثالاً بسيطاً:
version: '3.8'
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana-oss:latest
container_name: grafana
ports:
- "3000:3000"
volumes:
- grafana_data:/var/lib/grafana
depends_on:
- prometheus
volumes:
grafana_data:
لاحظ أننا استخدمنا Volume لتخزين بيانات Grafana بشكل دائم، وهي فكرة مرتبطة مباشرة بمقال التخزين الدائم (Docker Volumes): كيف نمنع ضياع قواعد البيانات عند توقف الحاوية؟. بعد ذلك شغّل البيئة بالأمر التالي:
docker compose up -d
أفضل ممارسات تشغيلية وأمنية
لكي تنتقل من تركيب أداة إلى منصة مراقبة موثوقة، اتبع هذه الممارسات:
- أنشئ لوحات منفصلة لبيئات
ProductionوStaging. - استخدم أسماء واضحة للمصادر والخوادم لتسهيل التصفية.
- أضف حدوداً لونية للمقاييس الحرجة مثل استهلاك المعالج والذاكرة.
- احتفظ بنسخ احتياطية من إعدادات اللوحات إذا كانت البيئة حساسة.
- ادمج المراقبة مع مسارات
CI/CDمستقبلاً للتحقق من سلوك الإصدار بعد النشر، خصوصاً مع ما هو الـ CI/CD؟ ولماذا نؤتمت عمليات اختبار ونشر الأكواد؟.
في بيئات الإنتاج، لا تجعل نظام المراقبة يعتمد على خادم واحد فقط إذا كانت الخدمات حرجة. عطل خادم المراقبة أثناء الأزمة يعني فقدان الرؤية في أسوأ وقت ممكن، لذلك فكر في العزل، والنسخ الاحتياطي، وتصدير الإعدادات، ومراقبة منصة المراقبة نفسها.
الخلاصة
تثبيت Grafana وربطها مع Prometheus ليس مجرد تحسين بصري، بل خطوة جوهرية نحو تشغيل احترافي قائم على البيانات. حين تتحول المقاييس إلى لوحات واضحة، يصبح اكتشاف التدهور أسرع، وتحليل السلوك أسهل، واتخاذ القرار التشغيلي أدق.
ابدأ بلوحة بسيطة تراقب الخادم، ثم وسّعها تدريجياً لتشمل الحاويات والتطبيقات وقواعد البيانات وخطوط النشر. بهذه الطريقة ستبني طبقة Observability عملية وقابلة للنمو، وهي واحدة من أهم ركائز البنية الحديثة في أي فريق تقني جاد.
3 comments