,

مراقبة الخوادم باستخدام Prometheus & Grafana: بناء لوحة تحكم حية لموارد سيرفرك

إدارة السيرفرات دون وجود نظام مراقبة (Monitoring) تشبه قيادة سيارة في عتمة الليل مطفأة الأنوار؛ لن تدرك متى سينفد وقود المعالج (CPU)، أو متى ستلتهم قواعد البيانات كامل الذاكرة العشوائية (RAM) وتتسبب في توقف تطبيقاتك بالكامل.

الحل المعياري والأكثر قوة لمراقبة الموارد في بيئات العمل المعاصرة هو الثنائي الذهبي: Prometheus لتجميع البيانات وتخزينها، و Grafana لعرضها في لوحات تحكم تفاعلية مذهلة. في هذا المقال، سنشرح كيفية بناء لوحة تحكم حية لسيرفرك خطوة بخطوة.

مكونات نظام المراقبة الثلاثي

لبناء النظام، سنحتاج لثلاثة عناصر أساسية تعمل بانسجام تام:

  1. Node Exporter: برنامج خفيف يثبت على خادم لينكس لقراءة مؤشرات الأداء الحية (المعالج، الذاكرة، الأقراص، الشبكة) وتصديرها بصيغة يفهمها Prometheus.
  2. Prometheus: قاعدة بيانات تعتمد على السلاسل الزمنية (Time-Series DB) تقوم بالاتصال بـ Node Exporter دورياً (Scraping) لتسجيل وحفظ مؤشرات الأداء.
  3. Grafana: محرك الرسوم البيانية الأقوى الذي يتصل بـ Prometheus ويحول الأرقام المخزنة إلى لوحة تحكم حية وجميلة.

تثبيت النظام باستخدام Docker Compose

الطريقة الأسهل والأسرع لإطلاق هذا الثلاثي هي باستخدام Docker Compose في ملف واحد منظم.

الخطوة 1: إنشاء ملف إعداد Prometheus (prometheus.yml):

global:
  scrape_interval: 15s # جلب البيانات كل 15 ثانية

scrape_configs:
  - job_name: 'node_exporter'
    static_configs:
      - targets: ['node-exporter:9100']

الخطوة 2: إنشاء ملف docker-compose.yml:

version: '3.8'

services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheus_data:/prometheus
    ports:
      - "9090:9090"
    restart: always

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    ports:
      - "3000:3000"
    volumes:
      - grafana_data:/var/lib/grafana
    restart: always

  node-exporter:
    image: prom/node-exporter:latest
    container_name: node-exporter
    volumes:
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /:/rootfs:ro
    command:
      - '--path.procfs=/host/proc'
      - '--path.rootfs=/rootfs'
      - '--path.sysfs=/host/sys'
      - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($|/)'
    ports:
      - "9100:9100"
    restart: always

volumes:
  prometheus_data:
  grafana_data:

شغّل الحاويات بلمسة زر واحدة:

docker compose up -d

إعداد لوحة التحكم في Grafana

الآن، افتح متصفحك واذهب إلى منفذ Grafana الافتراضي:

http://YOUR_SERVER_IP:3000

سجل الدخول باستخدام بيانات المسؤول الافتراضية (اسم المستخدم: admin، كلمة السر: admin) ثم قم بتغيير كلمة السر فوراً.

الخطوة 3: ربط مصدر البيانات (Data Source)

  1. من القائمة الجانبية اختر Connections ثم Data sources.
  2. انقر على Add data source واختر Prometheus.
  3. في حقل رابط الاتصال (URL)، اكتب: http://prometheus:9090.
  4. انقر على Save & test لتأكيد الاتصال بنجاح.

الخطوة 4: استيراد لوحة تحكم مجتمعية مجهزة

بدلاً من بناء الرسوم التوضيحية من الصفر، يوفر مجتمع Grafana تصاميم جاهزة ورائعة. لوحة التحكم الأشهر لـ Node Exporter تحمل المعرف 1860.

  1. من القائمة الجانبية اختر Dashboards ثم انقر على New واختر Import.
  2. في حقل معرف لوحة التحكم اكتب الرقم 1860 واضغط على Load.
  3. اختر مصدر البيانات Prometheus الذي أعددته في الخطوة السابقة، وانقر على Import.

مبروك! ستظهر لك الآن لوحة تحكم مذهلة تعرض استهلاك السيرفر للمعالج والذاكرة وسرعة نقل البيانات وتفاصيل الأقراص حياً وبشكل فوري.

خاتمة

بناء نظام مراقبة باستخدام Prometheus و Grafana يمنحك السيطرة الكاملة والرؤية الواضحة لكل ما يحدث في خادمك. إن القدرة على تحليل الرسوم البيانية وتتبع استهلاك الموارد هي الفارق الأساسي بين الإدارة العشوائية والاحترافية.

نصيحة هندسية: قم بدمج ميزة التنبيهات (Alerting) في Grafana مع حسابك في Discord أو Telegram لتلقي رسائل فورية في حال زيادة استهلاك المعالج عن 90%.

روابط ذات صلة

اترك تعليقاً