Uptime Kuma: إعداد مراقبة موقعك بنفسك على خادم VPS
قد يتعطل الموقع مع استمراره في إرجاع 200 OK. وقد تتوقف النسخة الاحتياطية عن العمل من دون ظهور خطأ واضح. يكتشف Uptime Kuma الحالتين: فهو يفحص المواقع وواجهات API والمنافذ والمهام التي تعمل في الخلفية، ثم يرسل إشعارًا عند حدوث مشكلة.
سنوضح أين تستضيف نظام المراقبة، وما نوع خادم VPS الذي يحتاج إليه، وكيفية تثبيت Uptime Kuma 2 وتفعيل HTTPS وربط Telegram وإنشاء صفحة حالة.
Uptime Kuma في سبع خطوات
- خصص خادم VPS صغيرًا منفصلًا عن المشاريع التي ستتم مراقبتها.
- وجّه نطاقًا فرعيًا مثل
monitor.example.comإليه. - ثبّت Docker وشغّل Uptime Kuma 2.
- أغلق المنفذ الداخلي
3001من الوصول الخارجي وفعّل HTTPS. - أنشئ أجهزة مراقبة HTTP أو DNS أو TCP أو Push.
- اضبط Telegram وأنشئ صفحة حالة عند الحاجة.
- أعدد التحديثات ونسخة احتياطية خارجية من مجلد البيانات.
ما هو Uptime Kuma؟
Uptime Kuma أداة مجانية ومفتوحة المصدر وتعمل على خادمك أنت. تُحفظ لوحة التحكم وسجل الفحوصات على الخادم الخاص بك.
يمكنه مراقبة HTTP(S) ومنافذ TCP وPing وDNS وWebSocket والنص وJSON في الاستجابات وإشارات Push وحاويات Docker. الحد الأدنى للفاصل بين الفحوصات هو 20 ثانية. كما يوفر عشرات قنوات الإشعارات والمصادقة الثنائية ومخططات زمن الاستجابة ومراقبة شهادات TLS وصفحات حالة متعددة.
كيف تكتشف عطلًا مخفيًا خلف 200 OK
لا يرى فحص HTTP الأساسي سوى رمز الاستجابة. ومع ذلك قد يعرض خادم الويب صفحة فارغة أو شاشة خطأ للتطبيق، مع الاستمرار في إرسال حالة نجاح.
للحصول على مراقبة أدق، استخدم:
- Keyword — يبحث عن عبارة متوقعة، مثل اسم الموقع أو النص «Account dashboard»؛
- JSON Query — يفحص قيمة داخل استجابة API، مثل
status: healthy.
بهذه الطريقة لا يتأكد جهاز المراقبة من إمكانية الوصول إلى المنفذ فحسب، بل يتحقق أيضًا من أن التطبيق يعرض علامة واحدة على الأقل تدل على عمله بشكل صحيح.
جهاز Push لمراقبة النسخ الاحتياطية ومهام cron
لا يستطلع جهاز Push الخدمة دوريًا. بل ينتظر إشارة منتظمة منها. يستدعي سكربت النسخ الاحتياطي أو مهمة cron عنوان URL فريدًا بعد إتمام العمل بنجاح. وإذا لم تصل الإشارة في الوقت المحدد، يبلغ Uptime Kuma عن فشل.
يساعد ذلك على اكتشاف مشكلة «صامتة»: ما زال الموقع يعمل، لكن النسخة الاحتياطية اليومية لم تُنشأ منذ عدة أيام.
ما الذي لا يستبدله Uptime Kuma؟
يتابع Uptime Kuma التوافر وزمن الاستجابة بشكل أساسي. ولمراقبة المعالج والذاكرة والقرص والسجلات ومقاييس الحاويات، أكمله باستخدام Prometheus أو Netdata أو Zabbix أو نظام مراقبة آخر: يلاحظ Kuma المشكلة من الخارج، بينما تساعد المقاييس في تحديد سببها.
لماذا ينبغي تشغيل المراقبة على خادم VPS منفصل؟
إذا ثبّت Uptime Kuma بجوار الموقع، فقد يؤدي عطل في خادم VPS أو الشبكة أو مركز البيانات إلى إيقاف المشروع ونظام المراقبة معًا. عندها قد لا يُرسل الإشعار.
استضف لوحة التحكم على خادم VPS منفصل، وللمشاريع المهمة اختر موقعًا آخر أو مزودًا آخر. ومن المفيد أيضًا مراقبة Kuma نفسه باستخدام خدمة خارجية: فلا بد أن يراقب أحد نظام المراقبة أيضًا.
متطلبات خادم Uptime Kuma
لا يحدد المشروع حدًا أدنى رسميًا صارمًا للمعالج والذاكرة. أما نقطة البداية العملية لتثبيت صغير فهي:
- 1 vCPU؛
- 1 GB من ذاكرة RAM؛
- 10 GB من مساحة SSD؛
- Ubuntu 24.04 LTS؛
- IPv4؛
- نطاق أو نطاق فرعي لاستخدام HTTPS.
يكفي هذا الإعداد عادةً لعدة عشرات من الفحوصات البسيطة. أما إذا كنت تحتاج إلى مئات أجهزة المراقبة أو الاحتفاظ بالسجل لفترة طويلة أو إجراء فحوصات تعتمد على المتصفح، فاختر ذاكرة RAM بسعة 2 GB أو أكثر.
كيفية تثبيت Uptime Kuma على خادم VPS
يستخدم هذا المثال Ubuntu 24.04 والنطاق الفرعي monitor.example.com.
1. إعداد DNS وجدار الحماية
أنشئ سجل DNS من نوع A يشير إلى عنوان IPv4 الخاص بخادم VPS. اتصل عبر SSH وافتح المنافذ المطلوبة:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enableلا تغلق جلسة SSH الحالية قبل اختبار اتصال جديد.
2. تثبيت Docker وDocker Compose
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose version3. تشغيل Uptime Kuma 2
mkdir -p /opt/uptime-kuma
cd /opt/uptime-kuma
cat > compose.yaml <<'EOF'
services:
uptime-kuma:
image: louislam/uptime-kuma:2
restart: unless-stopped
ports:
- "127.0.0.1:3001:3001"
volumes:
- ./data:/app/data
EOF
docker compose up -d
docker compose psاستخدم الوسم :2، لأن latest ما زال يشير إلى فرع v1 القديم. يجب حفظ مجلد /app/data على قرص محلي أو وحدة Docker عادية. قد تؤدي NFS وأنظمة التخزين التي لا توفر قفلًا مناسبًا للملفات إلى إتلاف قاعدة البيانات.
لا يمكن الوصول إلى المنفذ 3001 إلا على 127.0.0.1. وسيعرض وكيل عكسي يستخدم HTTPS لوحة التحكم للمستخدمين من الخارج.
4. تفعيل HTTPS باستخدام Caddy
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
monitor.example.com {
reverse_proxy 127.0.0.1:3001
}
EOF
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddyإذا كان DNS يشير إلى خادم VPS، فسيطلب Caddy شهادة TLS تلقائيًا ويمرر اتصالات WebSocket. استضف لوحة التحكم في جذر نطاق أو نطاق فرعي؛ فالعنوان مثل example.com/kuma غير مدعوم.
5. إنشاء حساب المسؤول
افتح https://monitor.example.com، وأنشئ حسابًا باستخدام كلمة مرور طويلة وفريدة، ثم فعّل المصادقة الثنائية.
كيفية إضافة أول جهاز مراقبة
انقر على Add New Monitor واختر HTTP(s):
- أدخل اسمًا وعنوان URL كاملًا.
- حدّد الفاصل الزمني، مثل 60 ثانية.
- أضف محاولتي إعادة لتجاوز أعطال الشبكة العرضية.
- اختر قناة إشعارات.
- احفظ جهاز المراقبة وتأكد من بدء ظهور الفحوصات الناجحة.
للموقع الرئيسي، تكون فحوصات HTTP وKeyword مفيدة. أما لواجهة API فاستخدم نقطة نهاية للصحة وJSON Query. لا تعرض قواعد البيانات أو المنافذ الإدارية على الإنترنت لمجرد المراقبة؛ استخدم شبكة موثوقة أو VPN.
مثال على Push لمراقبة نسخة احتياطية
بعد إنشاء جهاز مراقبة من نوع Push، أضف عنوان URL الفريد الخاص به إلى نهاية السكربت:
backup-command && \
curl -fsS "https://monitor.example.com/api/push/SECRET_TOKEN?status=up&msg=backup-ok"لا يُنفذ الطلب إلا بعد نجاح النسخ الاحتياطي. تعامل مع رمز Push كما تتعامل مع كلمة مرور: إذ يمكن لأي شخص يعرف العنوان إرسال إشارة زائفة.
كيفية ربط Telegram
أنشئ روبوتًا من خلال @BotFather، وأرسل إليه رسالة، ثم افتح Settings → Notifications → Telegram. أدخل Bot Token وChat ID، وانقر على Test، ثم اربط القناة بأجهزة المراقبة. وبالنسبة إلى الخدمات الحرجة، أضف قناة ثانية مثل البريد الإلكتروني.
كيفية إنشاء صفحة حالة
في Status Pages يمكنك تجميع أجهزة المراقبة وعرض الحالة الحالية وسجل التوافر وتعيين نطاق والإبلاغ عن الأعمال المخطط لها عبر Maintenance. لا تنشر عناوين IP الداخلية أو عناوين URL التقنية؛ فالعملاء يحتاجون فقط إلى مكونات مثل «الموقع» و«واجهة API» و«لوحة الحساب» و«المدفوعات».
تحديث Uptime Kuma ونسخه احتياطيًا
قبل تحديث رئيسي، أوقف الحاوية واحفظ مجلد البيانات:
cd /opt/uptime-kuma
docker compose down
tar -czf /root/uptime-kuma-$(date +%F).tar.gz \
data compose.yaml
docker compose up -dانقل الأرشيف إلى جهاز آخر أو إلى مساحة تخزين خارجية. فالنسخة الموجودة على خادم VPS نفسه لا تحميك من حذف الخادم أو تعطل القرص.
لإجراء تحديث عادي:
cd /opt/uptime-kuma
docker compose pull
docker compose up -d --force-recreateبعد بدء التشغيل، افحص docker compose ps، وافتح لوحة التحكم، وأرسل إشعارًا تجريبيًا.
أي خادم VPS تختار لـ Uptime Kuma؟
لا يحتاج التثبيت الصغير سوى إلى خادم VPS يعمل بنظام Linux مع 1 vCPU و1 GB من الذاكرة. الاستقلالية أهم من الأداء الخام: يجب أن يستمر جهاز المراقبة في العمل عندما يصبح المشروع الرئيسي غير متاح.
يمكنك استضافة Uptime Kuma على خادم VPS من tropic.host عندما تعمل الخدمات التي تراقبها على منصة أخرى أو عقدة مستقلة. يجعل Ubuntu وDocker وعنوان IP الثابت تشغيل لوحة التحكم سريعًا، كما يمكنك زيادة الموارد مع نمو عدد الفحوصات.
إذا كان الإنتاج يعمل أصلًا على البنية التحتية نفسها، فاختر عقدة أخرى أو أضف جهاز مراقبة خارجيًا للنسخ الاحتياطي. فصل نطاقات الأعطال أكثر فائدة من إضافة نواة معالج أخرى.
الأخطاء الشائعة
| الخطأ | سبب المشكلة | النهج الأفضل |
|---|---|---|
| تعمل المراقبة بجوار المشروع | يؤدي عطل مشترك إلى إيقاف الخدمة والإشعارات معًا | استخدم خادم VPS أو موقعًا منفصلًا |
المنفذ 3001 مكشوف للعامة | تصبح لوحة التحكم متاحة من دون وكيل عكسي أو HTTPS | اربط المنفذ بـ 127.0.0.1 |
يتم فحص رمز الحالة 200 فقط | قد يبدو خطأ التطبيق نجاحًا | أضف Keyword أو JSON Query |
استخدام الوسم latest | يشير إلى فرع v1 القديم | استخدم louislam/uptime-kuma:2 |
| حفظ النسخة الاحتياطية على خادم VPS نفسه | ستختفي مع الخادم | انسخ مجلد data إلى مكان آخر |
الخلاصة
يحوّل Uptime Kuma خادم VPS صغيرًا إلى مركز مراقبة خاص لمواقع الويب وواجهات API وDNS والمنافذ والشهادات والمهام التي تعمل في الخلفية. يساعد Keyword في اكتشاف الصفحة المعطلة، ويرصد JSON Query استجابة API غير الصحيحة، ويكشف Push توقف النسخة الاحتياطية أو مهمة cron.
لإعداد موثوق، استضف نظام المراقبة بعيدًا عن بيئة الإنتاج، وأغلق المنفذ 3001، وفعّل HTTPS والمصادقة الثنائية، واضبط قناتي إشعارات. بعد ذلك أنشئ نسخة احتياطية خارجية من مجلد البيانات وفحصًا مستقلًا لـ Uptime Kuma نفسه.
الأسئلة الشائعة
هل Uptime Kuma مجاني؟
نعم. المشروع مفتوح المصدر وموزع بموجب ترخيص MIT. ستدفع فقط مقابل البنية التحتية والنطاق والنسخ الاحتياطية الخارجية.
ما مقدار ذاكرة RAM التي يحتاج إليها Uptime Kuma؟
للتثبيت الصغير، تُعد ذاكرة 1 GB نقطة بداية مناسبة. وللمئات من الفحوصات أو الاحتفاظ بالسجل لفترة طويلة أو استخدام Browser Engine، خصص 2 GB أو أكثر.
هل يمكن تثبيت Uptime Kuma من دون Docker؟
نعم، باستخدام Node.js وPM2. لكن Docker Compose يكون عادةً أسهل في التحديث والنقل والاستعادة على خادم VPS.
هل يمكن استخدام Uptime Kuma من دون نطاق؟
نعم من الناحية التقنية، عبر عنوان IP أو نفق SSH. أما للوصول الدائم من الإنترنت، فالنطاق الفرعي مع HTTPS أكثر أمانًا.
هل يعرض Uptime Kuma استخدام المعالج والذاكرة والقرص؟
ليس كنظام متكامل لمقاييس الخادم. ولمراقبة موارد الخادم، أكمله باستخدام Prometheus أو Netdata أو Zabbix أو أداة متخصصة أخرى.
