إذا لم تكن متأكدًا بعد مما تعنيه Prometheus وGrafana، فاقرأ مقالنا عن Prometheus مقابل Grafana. أما إذا كنت تعرف الفرق بالفعل، فإليك كيفية تشغيلهما معًا.
هذا المقال هو الجزء التطبيقي. يقوم بنشر Prometheus وGrafana وNode Exporter على خادم VPS واحد باستخدام Docker Compose، ويضع HTTPS أمام Grafana عبر Caddy، ويستورد لوحة Node Exporter Full (المعرّف 1860)، ويوضح كيفية جمع المقاييس من خادم VPS ثانٍ عبر WireGuard.
أُجري الاختبار الأصلي في أبريل 2026 على Ubuntu 24.04 LTS مع Docker Engine 27.x وDocker Compose v2.30. أما إصدارات الصور المثبّتة في الإعداد أدناه فقد جرى تحديثها منذ ذلك الحين إلى الإصدارات المدعومة حاليًا. في ذلك الاختبار الأصلي بخمسة أجهزة، استهلك المركز نحو 300 MB من الذاكرة في وضع الخمول ومن 530 إلى 650 MB أثناء الجمع المستمر للمقاييس.
الخلاصة السريعة
- يشغّل خادم VPS المركزي كلًا من Prometheus وGrafana وNode Exporter ضمن حزمة Compose واحدة، مع تثبيت Caddy على المضيف كوكيل عكسي.
- يستمع كل من Prometheus وGrafana على العنوان 127.0.0.1 فقط. أما الوصول العام فيمر عبر Caddy مع HTTPS تلقائي.
- أضِف خوادم أخرى بتثبيت Node Exporter على كل منها وإلحاق مدخلات بالملف
prometheus.yml. - يُعد WireGuard المسار الشبكي الموصى به بين المركز والأطراف. أما الشبكة الخاصة فتعمل جيدًا عندما تكون خوادمك تشترك بالفعل في شبكة خاصة.
- كان خادم VPS بسعة 2 GB كافيًا للاختبار بخمسة أجهزة أدناه، لكن اعتبر ذلك مرجعًا أوليًا لا قاعدة ثابتة مرتبطة بعدد الأجهزة.
ما الذي ستبنيه
إليك فكرة مبدئية عن الشكل الذي سيبدو عليه الإعداد بعد الانتهاء.
+-------------------+
| Your laptop |
+---------+---------+
| HTTPS
v
+--------------------------+----------------------------+
| MONITORING HUB VPS (2 GB RAM starting point) |
| Caddy (reverse proxy, auto HTTPS) |
| Grafana (port 3000, only via Caddy) |
| Prometheus (port 9090, internal only) |
| Node Exporter (port 9100, scraped on localhost) |
+----+---------------------------------+----------------+
| |
| scrape over WireGuard | scrape over WG
v v
+----+--------+ +-----+-------+
| App VPS 1 | | App VPS 2 |
| Node Expo. | | Node Expo. |
+-------------+ +-------------+
يستضيف خادم VPS مركزي واحد حزمة المراقبة بأكملها. أما كل خادم VPS آخر تريد مراقبته فلا يشغّل سوى Node Exporter. ويسحب Prometheus على المركز المقاييس من كل واحد منها، ويعرضها Grafana، بينما يتولى Caddy مهمة HTTPS.
ما تحتاجه
لهذا الإعداد تحديدًا تحتاج إلى خادم VPS واحد بنظام Ubuntu ليكون المركز، ونطاق، وصلاحية sudo.
- خادم VPS بذاكرة لا تقل عن 2 GB يعمل بنظام Ubuntu 24.04 LTS.
- اسم نطاق مع سجل A يشير إلى عنوان IP العام للخادم (مثل grafana.example.com). وهو مطلوب لتفعيل HTTPS.
- صلاحية root أو sudo عبر SSH.
في هذا الدليل كله، استبدل grafana.example.com بالنطاق الفرعي الذي وجّهته فعليًا إلى خادم المراقبة لديك. واستخدم النطاق نفسه في متغير بيئة Grafana وفي فحص DNS وفي ملف Caddyfile.
إذا كنت تريد مراقبة خادم واحد فقط ولا تحتاج إلى HTTPS بعد، يمكنك تشغيل حزمة Compose على خادمك الحالي من دون قسم الوكيل العكسي. وتبقى بقية الدليل سارية.
أطلق خادم Ubuntu VPS فورًا بوصول root وتخزين NVMe.
انشر Ubuntu VPSالخطوة 1: تجهيز الخادم
اتصل عبر SSH بالخادم المركزي بمستخدم يملك صلاحية sudo. وابدأ بتحديث النظام.
sudo apt update && sudo apt upgrade -y
ثبّت Docker Engine وإضافة Compose من مستودع Docker الرسمي.
# Install prerequisites
sudo apt install -y ca-certificates curl gnupg lsb-release
# Add Docker's official GPG key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the Docker repository
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
تحقق من تثبيت كليهما.
docker --version
docker compose version
ينبغي أن يعيد الأمران رقم إصدار بنجاح. أما الإصدارات الدقيقة لـ Docker Engine وCompose فتعتمد على ما يوفره المستودع الرسمي وقت التثبيت.
sudo usermod -aG docker $USER
سجّل الخروج ثم الدخول من جديد قبل المتابعة حتى تسري عضوية المجموعة الجديدة. وتمنح مجموعة docker عمليًا صلاحيات بمستوى الجذر، لذا لا تضِف إليها سوى مسؤولين موثوقين.
اضبط UFW للسماح بـ SSH وHTTP وHTTPS على مركز المراقبة. ويتكفل المنفذ 80 بإعادة التوجيه من HTTP إلى HTTPS وبالتحقق عبر ACME. أما Grafana نفسها فتبقى خلف Caddy.
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status
لا تفتح المنافذ 3000 أو 9090 أو 9100 على الإنترنت العام. فخدمات المراقبة تستمع على 127.0.0.1 لسبب وجيه.
الخطوة 2: حزمة Compose
أنشئ مجلدًا للحزمة ولإعدادات Prometheus.
mkdir -p ~/monitoring/prometheus
cd ~/monitoring
اكتب ملف Compose.
# ~/monitoring/docker-compose.yml
services:
prometheus:
image: prom/prometheus:v3.13.2
container_name: prometheus
restart: unless-stopped
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--storage.tsdb.retention.time=15d'
- '--web.enable-lifecycle'
- '--web.listen-address=127.0.0.1:9090'
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
- prometheus_data:/prometheus
network_mode: host
node-exporter:
image: prom/node-exporter:v1.12.1
container_name: node-exporter
restart: unless-stopped
pid: host
network_mode: host
command:
- '--path.rootfs=/host'
- '--web.listen-address=127.0.0.1:9100'
- '--collector.filesystem.mount-points-exclude=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($$|/)'
volumes:
- '/:/host:ro,rslave'
grafana:
image: grafana/grafana:13.1.3
container_name: grafana
restart: unless-stopped
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD}
- GF_USERS_ALLOW_SIGN_UP=false
- GF_SERVER_ROOT_URL=https://grafana.example.com
- GF_SERVER_HTTP_ADDR=127.0.0.1
volumes:
- grafana_data:/var/lib/grafana
network_mode: host
depends_on:
- prometheus
volumes:
prometheus_data:
grafana_data:
والآن اكتب إعدادات Prometheus.
# ~/monitoring/prometheus/prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
external_labels:
monitor: 'monitoring-hub'
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['127.0.0.1:9090']
- job_name: 'node'
static_configs:
- targets: ['127.0.0.1:9100']
labels:
host: 'monitoring-hub'
أنشئ ملف .env يحتوي على كلمة مرور مدير Grafana. واستخدم كلمة مرور قوية، ولا ترفع هذا الملف إلى git.
cat > ~/monitoring/.env <<'EOF'
GRAFANA_ADMIN_PASSWORD='replace-with-a-strong-password'
EOF
chmod 600 ~/monitoring/.env
تستحق بعض الخيارات أعلاه شرحًا قصيرًا.
--web.listen-address=127.0.0.1:9090يجعل Prometheus يستمع على واجهة الاسترجاع المحلية للمضيف فقط. وهذا يُبقي المنفذ 9090 بعيدًا عن الشبكة العامة مع بقائه متاحًا لـ Grafana وللإدارة المحلية.--web.enable-lifecycleيُفعّلPOST /-/reload، بحيث يمكنك تطبيق تغييرات إعدادات Prometheus من دون إعادة تشغيل الحاوية.pid: host,network_mode: host، وتركيب جذر المضيف عبر bind، و--path.rootfs=/hostتمنح Node Exporter داخل الحاوية سياق المضيف الذي يحتاجه بدلًا من أن يراقب بيئة الحاوية الخاصة به فقط.GF_USERS_ALLOW_SIGN_UP=falseيمنع الزوار من إنشاء حسابات Grafana بأنفسهم. لكنه لا يجعل Grafana خاصة، إذ تبقى صفحة تسجيل الدخول متاحة للعموم عبر Caddy.
نصيحة احترافية: إذا كنت تفضّل تجاوز التثبيت اليدوي، فإن Cloudzy توفر عمليات نشر بنقرة واحدة لكل من Grafana و Prometheus . كما يمكن لعملية نشر Prometheus أن تثبّت Node Exporter أيضًا.
الخطوة 3: التشغيل الأول والتحقق
شغّل الحزمة.
cd ~/monitoring
docker compose up -d
انتظر بضع ثوانٍ، ثم تحقق من أن الحاويات الثلاث تعمل.
docker compose ps
ينبغي أن تظهر الخدمات الثلاث جميعها في حالة تشغيل.
افتح نفق SSH من حاسوبك المحمول للتحقق من صفحة أهداف Prometheus.
ssh -L 9090:localhost:9090 your-user@your-vps-ip
ثم افتح http://localhost:9090/targets في متصفحك. ينبغي أن ترى هدفين، كلاهما في الحالة UP:
prometheus UP http://127.0.0.1:9090/metrics
node UP http://127.0.0.1:9100/metrics
إذا كان أي منهما في الحالة DOWN، فانتقل إلى قسم المشكلات الشائعة. ولا تكمل قبل أن يصبح كلاهما UP.
أغلق النفق بعد الانتهاء من فحص الأهداف. فمن خارج الخادم سيبقى الوصول إلى Prometheus عبر نفق SSH هذا فقط. أما الخطوة التالية فتتيح Grafana عبر HTTPS.
الخطوة 4: وكيل عكسي مع HTTPS باستخدام Caddy
Caddy عبارة عن ملف تنفيذي واحد، ويتولى HTTPS تلقائيًا. وفي حالة وكيل عكسي لموقع واحد، يكون إعداده أقصر من كتلة Nginx المكافئة.
ثبّت Caddy من المستودع الرسمي.
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | \
sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | \
sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
sudo chmod o+r /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install -y caddy
قبل الخطوة التالية، تأكد من أن سجل DNS من نوع A الخاص بـ grafana.example.com يشير إلى عنوان IP العام للخادم. فبدون ذلك يفشل التحقق عبر ACME.
dig +short grafana.example.com
# Should print the VPS public IP
حرّر ملف Caddyfile.
# /etc/caddy/Caddyfile
grafana.example.com {
reverse_proxy 127.0.0.1:3000
encode gzip
}
أعد تحميل Caddy.
sudo systemctl reload caddy
يحصل Caddy تلقائيًا على شهادات TLS موثوقة عالميًا ويجددها عبر ACME، بمجرد أن يشير النطاق إلى خادمك ويكون المنفذان 80 و443 قابلين للوصول. افتح https://grafana.example.com في متصفحك، وينبغي أن ترى صفحة تسجيل الدخول إلى Grafana عبر اتصال HTTPS صالح. سجّل الدخول باسم admin وكلمة المرور الموجودة في ملف .env.
الخطوة 5: إضافة Prometheus كمصدر بيانات واستيراد لوحة المعلومات 1860
في واجهة Grafana، انتقل إلى الاتصالات > مصادر البيانات > إضافة مصدر بيانات ثم اختر Prometheus.
اضبط عنوان URL على:
http://127.0.0.1:9090
في هذا الإعداد يتشارك Grafana وPrometheus شبكة المضيف، بينما يستمع Prometheus على واجهة الاسترجاع فقط. انقر على Save & test وتأكد من أن Grafana قادرة على الاستعلام من واجهة Prometheus البرمجية. ينبغي أن تظهر لك رسالة "Successfully queried the Prometheus API".
والآن استورد لوحة المعلومات. تُعد Node Exporter Full (المعرّف 1860 من إعداد rfmoz) لوحة مجتمعية واسعة الانتشار لمقاييس Node Exporter. وهي تغطي المعالج والذاكرة وعمليات القرص والشبكة وواصفات الملفات ودرجات حرارة العتاد حين يوفرها المضيف. كما تتضمن متغيرات لـ job وinstance، لذا تعمل مع نمط المركز والأطراف من دون أي تعديل.
Go إلى لوحات المعلومات > جديد > استيراد لوحة معلومات، وأدخل معرّف لوحة المعلومات 1860، واختر مصدر بيانات Prometheus لديك، ثم استوردها.
ينبغي أن تمتلئ لوحة المعلومات بالبيانات بمجرد أن يصبح هدف Node Exporter في الحالة UP. كما تستخدم اللوحة 1860 في بعض اللوحات الفرعية مقاييس من مجمّعَي systemd وprocesses الاختياريين، لذا فإن بقاء لوحة فرعية واحدة فارغة لا يعني بالضرورة أن الهدف معطّل.
الخطوة 6: إضافة خادم VPS ثانٍ (نمط المركز والأطراف)
قبل تشغيل Node Exporter، تأكد من أن عنوان IP الخاص الذي تنوي الربط به موجود فعلًا على الخادم الثاني. وإذا كنت تستخدم WireGuard، فأكمل إعداده أولًا.
على الخادم الثاني، ثبّت Docker باتباع جزء تثبيت Docker من الخطوة 1، لكن لا تفتح المنفذين 80 أو 443 لمجرد المراقبة. ثم شغّل Node Exporter وحده.
mkdir -p ~/node-exporter
cd ~/node-exporter
cat > docker-compose.yml <<'EOF'
services:
node-exporter:
image: prom/node-exporter:v1.12.1
container_name: node-exporter
restart: unless-stopped
pid: host
command:
- '--path.rootfs=/host'
- '--web.listen-address=10.10.0.2:9100' # bind to the private monitoring IP, never 0.0.0.0
volumes:
- '/:/host:ro,rslave'
network_mode: host
EOF
docker compose up -d
استبدل 10.10.0.2 بعنوان IP الخاص بالمراقبة لهذا الخادم. فإن كنت تستخدم WireGuard فاستخدم عنوانه ضمن WireGuard، وإن كنت تستخدم الشبكة الخاصة من Cloudzy فاستخدم عنوان الواجهة الخاصة للخادم. وإذا كان UFW مفعّلًا بالفعل على هذا الخادم، فاسمح لمركز المراقبة وحده بالوصول إلى Node Exporter. فمثلًا، إذا كان عنوان IP الخاص بالمركز هو 10.10.0.1:
sudo ufw allow proto tcp from 10.10.0.1 to any port 9100
sudo ufw status
استبدل 10.10.0.1 بعنوان IP الخاص الفعلي للمركز. وإذا كان UFW غير مفعّل، فإن تحديد --web.listen-address يُبقي Node Exporter بعيدًا عن الواجهة العامة، لكن الأجهزة الأخرى التي تصل إلى تلك الشبكة الخاصة قد تصل أيضًا إلى المنفذ 9100.
خياران جيدان للمسار الشبكي بين المركز والأطراف:
- شبكة WireGuard. ينضم كل خادم VPS إلى شبكة WireGuard، ويجمع Prometheus المقاييس من عناوين IP الخاصة. وهو الخيار الأكثر أمانًا بعد إتمام إعداد WireGuard الأولي. ونحن نوفر WireGuard كنشر بنقرة واحدة، ولدينا كذلك درسًا تعليميًا جاهزًا لإعداده بشأنه.
- الشبكة الخاصة من Cloudzy. تحصل خوادم Cloudzy الافتراضية الموجودة في المنطقة نفسها على واجهة خاصة لحركة المرور بين الخوادم، لذا يمكنك جمع المقاييس من ذلك العنوان بدلًا من إنشاء نفق WireGuard منفصل.
بمجرد أن يعمل Node Exporter على الخادم الثاني ويصبح متاحًا على عنوانه الخاص، استبدل مهمة node الحالية في prometheus.yml على المركز بالكتلة الواردة أدناه.
# Update the existing 'node' job in ~/monitoring/prometheus/prometheus.yml
- job_name: 'node'
static_configs:
- targets: ['127.0.0.1:9100']
labels:
host: 'monitoring-hub'
- targets: ['10.10.0.2:9100']
labels:
host: 'app-vps-1'
tier: 'production'
أعد تحميل Prometheus من دون إعادة تشغيل الحاوية.
curl -X POST http://localhost:9090/-/reload
أعد فتح نفق SSH من الخطوة 3، ثم افتح http://localhost:9090/targets. ينبغي أن يظهر الهدف الجديد بالحالة UP. افتح لوحة Node Exporter Full، وغيّر متغير instance في الأعلى إلى الخادم الجديد، وسترى رسومه البيانية.
استهلاك الموارد ومتى ينبغي الترقية
هذه الأرقام مأخوذة من الاختبار الأصلي في أبريل 2026 على خادم Ubuntu بسعة 2 GB مع خمسة أجهزة مراقَبة. تعامل معها كمرجع لهذا النوع من الأحمال لا كضمان لتحديد الحجم مع الإصدارات الأحدث.
| المكوّن | RAM في حالة الخمول | الذاكرة أثناء النشاط (جهاز واحد) | الذاكرة مع 5 أجهزة | القرص (احتفاظ 15 يومًا، 5 أجهزة) |
|---|---|---|---|---|
| Prometheus | ~100 MB | ~150 MB | ~250-350 MB | ~500 MB إلى 1.5 GB |
| Grafana | ~150 MB | ~180 ميغابايت | ~200 ميغابايت | ~50 MB |
| Node Exporter | ~15 MB | ~20 MB | لا ينطبق | ضئيل جدًا |
| Caddy | ~30 MB | ~40 MB | ~40 MB | لا ينطبق |
| إجمالي المركز | ~300 MB | ~390 MB | ~530-650 MB | ~1.5 GB من مجموعة العمل |
رقِّ الخادم عندما تبدأ ذاكرة المركز أو مساحة القرص لديه بالنفاد. أما عدد الأجهزة وحده فهو مؤشر ضعيف لتحديد الحجم، لأن تعدد السلاسل والمجمّعات المفعّلة وفترة الجمع ومدة الاحتفاظ تغيّر جميعها حجم الاستهلاك. وللتخزين المركزي طويل الأمد، يدعم Prometheus تكاملات التخزين البعيد، وتُعد VictoriaMetrics أحد الخيارات المتوافقة مع Prometheus.
المشكلات الشائعة
المشكلات السبع الأكثر شيوعًا مع طرق حلها.
- إمكانية الوصول إلى Prometheus من الإنترنت العام. إن ربط المنفذ 9090:9090 مباشرةً يعرّض Prometheus للعالم كله. والحل: أبقِ
--web.listen-address=127.0.0.1:9090ضمن أمر Prometheus كما هو موضح أعلاه، فذلك يجعله يستمع على واجهة الاسترجاع المحلية للمضيف فقط. - مصدر بيانات Grafana لا يستطيع الوصول إلى Prometheus. تستخدم هذه الحزمة شبكة المضيف، لذا يمكن لـ Grafana الوصول إلى Prometheus على العنوان http://127.0.0.1:9090. تحقق من أن Prometheus يعمل ولا يزال يستمع على واجهة الاسترجاع.
- لوحة Node Exporter تعرض "No data". ثلاثة أسباب معتادة. (أ) لا يجمع Prometheus بيانات الهدف. تحقق من
/targets. (ب) لا تتطابق تسمية job في متغير لوحة المعلومات معjob_nameفي إعدادات الجمع. (ج) جدار ناري يحجب المنفذ 9100 بين المركز والهدف. - كلمة مرور مدير Grafana لا تزال
admin/adminفي بيئة الإنتاج. عيّنGF_SECURITY_ADMIN_PASSWORDمن ملف .env قبل التشغيل الأول. وإن فاتك ذلك، فغيّرها عند أول تسجيل دخول وعطّل إنشاء الحسابات. - ظهور رسالة "ACME challenge failed" في Caddy. لم ينتشر سجل DNS من نوع A بعد، أو أن المنفذ 80 محجوب. نفّذ
ufw allow 80,443/tcp، وانتظر انتشار DNS، ثم نفّذsudo systemctl reload caddy. استخدمdig +shortللتأكد من انتشار السجل. - امتلاء قرص Prometheus. قد تملأ التسميات عالية التعدد أو فترات الجمع القصيرة مع كثرة الأجهزة وحدة التخزين بسرعة. راقب
prometheus_tsdb_head_seriesوحجم وحدة التخزين. ومن وسائل التخفيف: تعطيل مجمّعات Node Exporter غير المستخدمة، أو إطالةscrape_intervalإلى 30s، أو تقصير مدة الاحتفاظ. - أخطاء صلاحيات في عمليات تركيب bind. إذا ركّبت مجلدًا من المضيف بدلًا من وحدة تخزين مسمّاة، فسيحتاج معرّف مستخدم الحاوية (65534 لـ Prometheus و472 لـ Grafana) إلى صلاحية الكتابة. أما وحدات التخزين المسمّاة، كما في ملف Compose أعلاه، فتجنّبك هذه المشكلة.
متى تكون هذه الحزمة مبالغًا فيها
إذا كان كل ما تريده تنبيهًا عندما يتوقف عنوان URL عن الاستجابة، فهذه الحزمة مبالغ فيها. Uptime Kuma خيار أخف بكثير إذا كان كل ما تحتاجه فحوصات توفر أساسية.
الأسئلة الشائعة
ما الفرق بين Prometheus وGrafana؟
Prometheus قاعدة بيانات للسلاسل الزمنية، تجمع المقاييس من الأهداف المضبوطة وفق الفترة التي تحددها، وتخزنها على القرص، وتجيب عن استعلامات PromQL. أما Grafana فطبقة عرض ترتبط بـ Prometheus (وبمصادر بيانات كثيرة أخرى) وترسم لوحات المعلومات. وفي معظم الحالات ستحتاج إليهما معًا: Prometheus للجمع والتخزين، وGrafana للعرض.
كم من الذاكرة يحتاج إعداد Prometheus + Grafana؟
يستهلك مركز مراقبة يشغّل Prometheus وGrafana وNode Exporter ووكيلًا عكسيًا على خادم VPS واحد نحو 300 MB من الذاكرة في وضع الخمول، ومن 530 إلى 650 MB أثناء الجمع النشط من خمسة أجهزة كل 15 ثانية.
هل يمكنني مراقبة عدة خوادم من نسخة Grafana واحدة؟
نعم. النمط المعتاد هو المركز والأطراف. فنسخة واحدة من Prometheus على خادم VPS مركزي تجمع البيانات من Node Exporter العامل على كل خادم آخر تريد مراقبته، وتستعلم Grafana على المركز من تلك النسخة الوحيدة. وتدعم لوحة Node Exporter Full (المعرّف 1860) متغير instance، فتنتقل بين الخوادم من لوحة واحدة.
ما أفضل لوحة معلومات في Grafana لـ Node Exporter؟
لهذا الإعداد تُعد Node Exporter Full (لوحة المعلومات رقم 1860 من إعداد rfmoz) خيارًا افتراضيًا قويًا. فهي تغطي مقاييس المضيف الأساسية في Node Exporter وتدعم متغيري job وinstance لمراقبة عدة خوادم. وتعتمد بعض اللوحات الفرعية على مجمّعات Node Exporter الاختيارية، لذا فإن بقاء لوحة فرعية فارغة لا يعني بالضرورة أن هدف الجمع معطّل.
كيف أتيح Grafana عبر HTTPS؟
شغّل Grafana مرتبطة بالعنوان 127.0.0.1:3000 وضع أمامها وكيلًا عكسيًا يتولى HTTPS. وأبسط الخيارات هو Caddy: ملف Caddyfile من أربعة أسطر يحتوي على reverse_proxy 127.0.0.1:3000 وكتلة نطاق واحدة يؤدي المهمة كلها، بما في ذلك الإدارة التلقائية لشهادات TLS.
هل Prometheus + Grafana مجانيان للاستخدام التجاري؟
يخضع Prometheus لرخصة Apache 2.0، بينما تخضع Grafana OSS لرخصة AGPLv3. ويُسمح بالاستخدام الداخلي والتجاري لنسخة Grafana OSS غير المعدّلة، لكن تعديلها أو توزيعها أو إتاحة نسخة معدّلة منها عبر الشبكة قد يترتب عليه التزامات بمشاركة الشيفرة المصدرية بموجب AGPL. أما Grafana Enterprise وGrafana Cloud فتخضعان لشروط تجارية منفصلة.
متى ينبغي الانتقال من Prometheus إلى VictoriaMetrics؟
فكّر في VictoriaMetrics عندما تجعل مدة الاحتفاظ الأطول أو تعدد السلاسل المرتفع أو تشغيل عدة نسخ من Prometheus إدارةَ قاعدة TSDB المحلية أصعب ضمن ميزانية الذاكرة والقرص لخادمك. فبإمكان VictoriaMetrics استقبال بيانات Prometheus وإتاحة واجهة استعلام متوافقة معه، ومن ثم العمل كتخزين طويل الأمد أو كخلفية للمقاييس في Grafana. جرّبها على حِملك الفعلي بدل التحول عند حد ثابت من الذاكرة.
