العربية

استكشف تجميع المقاييس باستخدام Prometheus و Grafana. تعلّم كيفية مراقبة تطبيقاتك وبنيتك التحتية بفعالية باستخدام هذه الأدوات القوية مفتوحة المصدر.

تجميع المقاييس: دليل شامل مع Prometheus و Grafana

في مشهد تكنولوجيا المعلومات المعقد اليوم، تعد المراقبة الفعالة أمرًا بالغ الأهمية للحفاظ على صحة وأداء التطبيقات والبنية التحتية. يوفر تجميع المقاييس الأساس لهذه المراقبة، مما يمكّنك من تتبع مؤشرات الأداء الرئيسية (KPIs)، وتحديد المشكلات المحتملة، وتحسين استخدام الموارد. يستكشف هذا الدليل الشامل كيفية الاستفادة من Prometheus و Grafana، وهما أداتان قويتان مفتوحتا المصدر، لتجميع المقاييس وتصورها بشكل قوي.

ما هو تجميع المقاييس؟

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

لماذا يعتبر تجميع المقاييس مهمًا؟

تقديم Prometheus و Grafana

Prometheus هي مجموعة أدوات مفتوحة المصدر لمراقبة الأنظمة والتنبيه، تم تطويرها في الأصل في SoundCloud. وهي تتفوق في جمع وتخزين بيانات السلاسل الزمنية، وهي البيانات المفهرسة بواسطة الطوابع الزمنية. يستخدم Prometheus نموذجًا قائمًا على السحب لسحب المقاييس من الأهداف (مثل الخوادم والتطبيقات) على فترات منتظمة. وهو يوفر لغة استعلام قوية (PromQL) لتحليل البيانات التي تم جمعها وتحديد قواعد التنبيه.

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

تشكل Prometheus و Grafana معًا حل مراقبة قويًا ومرنًا يمكن تكييفه مع مجموعة واسعة من البيئات وحالات الاستخدام. يتم استخدامها بكثافة في ممارسات DevOps و SRE (هندسة موثوقية الموقع) في جميع أنحاء العالم.

هندسة Prometheus والمفاهيم

يعد فهم المكونات الأساسية لـ Prometheus أمرًا ضروريًا للتنفيذ والاستخدام الفعال:

تدفق عمل Prometheus

  1. تعرض الأهداف (التطبيقات والخوادم وما إلى ذلك) المقاييس. عادةً ما يتم عرض هذه المقاييس عبر نقطة نهاية HTTP.
  2. يقوم خادم Prometheus بسحب المقاييس من الأهداف التي تم تكوينها. يقوم بشكل دوري بسحب المقاييس من نقاط النهاية هذه.
  3. يقوم Prometheus بتخزين المقاييس التي تم سحبها في قاعدة بيانات السلاسل الزمنية الخاصة به.
  4. يستعلم المستخدمون عن المقاييس باستخدام PromQL. يتيح لهم ذلك تحليل البيانات وإنشاء الرسوم البيانية ولوحات المعلومات.
  5. يتم تقييم قواعد التنبيه بناءً على المقاييس المخزنة. إذا تم استيفاء شرط القاعدة، فسيتم تشغيل تنبيه.
  6. يعالج Alertmanager التنبيهات التي تم تشغيلها. يقوم بإزالة التكرارات وتجميعها وتوجيهها إلى قنوات الإعلام المناسبة.

هندسة Grafana والمفاهيم

يكمل Grafana Prometheus من خلال توفير واجهة سهلة الاستخدام لتصور المقاييس التي تم جمعها وتحليلها:

تدفق عمل Grafana

  1. تكوين مصادر البيانات: قم بتوصيل Grafana بخادم Prometheus الخاص بك.
  2. إنشاء لوحات معلومات: تصميم لوحات معلومات لتصور مقاييسك.
  3. إضافة لوحات إلى لوحات المعلومات: إضافة لوحات لعرض نقاط بيانات محددة من Prometheus باستخدام استعلامات PromQL.
  4. تكوين التنبيه (اختياري): قم بإعداد قواعد التنبيه داخل Grafana لتلقي الإشعارات بناءً على عتبات مقاييس محددة.
  5. مشاركة لوحات المعلومات: شارك لوحات المعلومات مع فريقك للتعاون في المراقبة والتحليل.

إعداد Prometheus و Grafana

يوفر هذا القسم دليلًا تفصيليًا حول إعداد Prometheus و Grafana.

تثبيت Prometheus

1. تنزيل Prometheus:

قم بتنزيل أحدث إصدار من Prometheus من الموقع الرسمي: https://prometheus.io/download/. اختر الحزمة المناسبة لنظام التشغيل الخاص بك (مثل Linux و Windows و macOS).

2. استخراج الأرشيف:

استخرج الأرشيف الذي تم تنزيله إلى دليل من اختيارك.

3. تكوين Prometheus:

قم بإنشاء ملف تكوين `prometheus.yml`. يحدد هذا الملف الأهداف التي سيسحبها Prometheus وخيارات التكوين الأخرى. قد يبدو التكوين الأساسي كما يلي:


global:
  scrape_interval:     15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100']

يحدد هذا التكوين مهمتين لسحب المقاييس: واحدة لـ Prometheus نفسه (سحب مقاييسه الخاصة) وواحدة لـ node_exporter يعمل على المنفذ المحلي 9100. تحدد `scrape_interval` عدد المرات التي سيسحب فيها Prometheus الأهداف.

4. بدء Prometheus:

قم بتشغيل الملف التنفيذي Prometheus من الدليل الذي استخرجت الأرشيف إليه:

./prometheus --config.file=prometheus.yml

سيبدأ Prometheus ويستمع على المنفذ 9090 افتراضيًا. يمكنك الوصول إلى واجهة الويب Prometheus في متصفحك على http://localhost:9090.

تثبيت Grafana

1. تنزيل Grafana:

قم بتنزيل أحدث إصدار من Grafana من الموقع الرسمي: https://grafana.com/grafana/download. اختر الحزمة المناسبة لنظام التشغيل الخاص بك.

2. تثبيت Grafana:

اتبع تعليمات التثبيت لنظام التشغيل الخاص بك. على سبيل المثال، على Debian/Ubuntu:


sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana

3. بدء Grafana:

ابدأ خدمة Grafana:

sudo systemctl start grafana-server

4. الوصول إلى Grafana:

سيبدأ Grafana ويستمع على المنفذ 3000 افتراضيًا. يمكنك الوصول إلى واجهة الويب Grafana في متصفحك على http://localhost:3000.

اسم المستخدم وكلمة المرور الافتراضيان هما `admin` و `admin`. ستتم مطالبتك بتغيير كلمة المرور عند تسجيل الدخول لأول مرة.

توصيل Grafana بـ Prometheus

لتصور المقاييس من Prometheus في Grafana، تحتاج إلى تكوين Prometheus كمصدر بيانات في Grafana.

1. إضافة مصدر بيانات:

في واجهة الويب Grafana، انتقل إلى التكوين > مصادر البيانات وانقر فوق إضافة مصدر بيانات.

2. حدد Prometheus:

اختر Prometheus كنوع مصدر البيانات.

3. تكوين اتصال Prometheus:

أدخل عنوان URL لخادم Prometheus الخاص بك (على سبيل المثال، `http://localhost:9090`). قم بتكوين الخيارات الأخرى حسب الحاجة (على سبيل المثال، المصادقة).

4. حفظ واختبار:

انقر فوق حفظ واختبار للتحقق من أن Grafana يمكنه الاتصال بـ Prometheus بنجاح.

إنشاء لوحات معلومات في Grafana

بمجرد توصيل Grafana بـ Prometheus، يمكنك إنشاء لوحات معلومات لتصور مقاييسك.

1. إنشاء لوحة معلومات جديدة:

في واجهة الويب Grafana، انقر فوق الرمز + في الشريط الجانبي وحدد لوحة معلومات.

2. إضافة لوحة:

انقر فوق إضافة لوحة فارغة لإضافة لوحة جديدة إلى لوحة المعلومات.

3. تكوين اللوحة:


rate(process_cpu_seconds_total{job="node_exporter"}[5m])

يحسب هذا الاستعلام معدل التغير في وقت وحدة المعالجة المركزية الذي تستخدمه العمليات التي جمعها node_exporter على مدى فترة 5 دقائق.

4. حفظ لوحة المعلومات:

انقر فوق رمز الحفظ لحفظ لوحة المعلومات.

PromQL: لغة استعلام Prometheus

PromQL هي لغة استعلام قوية تستخدم لاسترداد ومعالجة المقاييس المخزنة في Prometheus. يتيح لك إجراء مجموعة واسعة من العمليات، بما في ذلك:

أمثلة على PromQL


rate(process_cpu_seconds_total{job="node_exporter"}[5m])

node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes

(node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_free_bytes{mountpoint="/"}) / node_filesystem_size_bytes{mountpoint="/"} * 100

rate(http_requests_total[5m])

يعد تعلم PromQL أمرًا ضروريًا للاستخدام الفعال لـ Prometheus و Grafana. ارجع إلى وثائق Prometheus للحصول على دليل شامل للغة.

التنبيه باستخدام Prometheus و Alertmanager

يوفر Prometheus نظام تنبيه قويًا يتيح لك تحديد القواعد بناءً على قيم المقاييس. عندما يتم استيفاء شرط القاعدة، يتم تشغيل تنبيه، ويتعامل Alertmanager مع عملية الإعلام.

تحديد قواعد التنبيه

يتم تحديد قواعد التنبيه في ملف التكوين `prometheus.yml`. فيما يلي مثال على قاعدة تنبيه يتم تشغيلها عندما يتجاوز استخدام وحدة المعالجة المركزية 80٪:


rule_files:
  - "rules.yml"

ثم، في ملف باسم `rules.yml`، ضع قواعد مثل هذه:


groups:
- name: example
  rules:
  - alert: HighCPUUsage
    expr: rate(process_cpu_seconds_total{job="node_exporter"}[5m]) > 0.8
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "تم الكشف عن استخدام عالي لوحدة المعالجة المركزية"
      description: "استخدام وحدة المعالجة المركزية أعلى من 80٪ على {{ $labels.instance }}"

شرح:

تكوين Alertmanager

يتعامل Alertmanager مع توجيه التنبيهات والإعلام بها. تحتاج إلى تكوين Alertmanager لتحديد مكان إرسال التنبيهات (على سبيل المثال، البريد الإلكتروني، Slack، PagerDuty). ارجع إلى وثائق Alertmanager للحصول على تعليمات التكوين التفصيلية.

قد يبدو تكوين `alertmanager.yml` بسيطًا كما يلي:


global:
  resolve_timeout: 5m

route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 12h
  receiver: 'web.hook'

receivers:
- name: 'web.hook'
  webhook_configs:
  - url: 'http://localhost:8080/'

يرسل هذا التكوين تنبيهات إلى webhook على المنفذ المحلي 8080. يمكنك تخصيص قسم `receivers` لاستخدام خدمات مثل Slack أو البريد الإلكتروني بدلاً من ذلك.

أمثلة عملية وحالات استخدام

يمكن استخدام Prometheus و Grafana لمراقبة مجموعة واسعة من التطبيقات ومكونات البنية التحتية. فيما يلي بعض الأمثلة العملية:

مثال: مراقبة بنية الخدمات المصغرة

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

التقنيات المتقدمة وأفضل الممارسات

لتحقيق أقصى استفادة من Prometheus و Grafana، ضع في اعتبارك التقنيات المتقدمة وأفضل الممارسات التالية:

استكشاف الأخطاء الشائعة وإصلاحها

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

حلول المراقبة البديلة

في حين أن Prometheus و Grafana أدوات قوية، إلا أنها ليست الخيارات الوحيدة لتجميع المقاييس وتصورها. تتضمن حلول المراقبة الشائعة الأخرى ما يلي:

سيعتمد أفضل حل مراقبة لمؤسستك على متطلباتك وميزانيتك المحددة.

الخلاصة

يعد تجميع المقاييس ضروريًا للحفاظ على صحة وأداء التطبيقات والبنية التحتية. يوفر Prometheus و Grafana حلاً قويًا ومرنًا مفتوح المصدر لجمع المقاييس وتخزينها وتصورها. من خلال فهم المفاهيم الأساسية واتباع أفضل الممارسات الموضحة في هذا الدليل، يمكنك الاستفادة من Prometheus و Grafana لبناء نظام مراقبة قوي يلبي احتياجات مؤسستك.

تعد المراقبة الفعالة، جنبًا إلى جنب مع التنبيه الاستباقي والاستجابة السريعة للحوادث، حجر الزاوية في عمليات تكنولوجيا المعلومات الحديثة. إن تبني أدوات مثل Prometheus و Grafana يمكّن المؤسسات من تقديم خدمات موثوقة وعالية الأداء لمستخدميها، بغض النظر عن موقعهم أو صناعتهم.