لماذا Gatus بدلًا من مراقبة ping الكلاسيكية
نقر HTTP يخبرك أن خادمك يستجيب. Gatus يخبرك أنه يستجيب *بشكل صحيح*: تحدد الشروط الدقيقة — [STATUS] == 200، [RESPONSE_TIME] < 800، [BODY] contains "ok"، [CERTIFICATE_EXPIRATION] > 14d — ويرفع Gatus تنبيهًا فور عدم استيفاء أي شرط.
الفرق العملي: تكتشف أن API يُعيد 500 في صمت، أن شهادة تنتهي خلال 10 أيام، أو أن سجل DNS يشير إلى IP خاطئ — قبل أن يكتشف عملاؤك. كل ذلك مدفوع بملف YAML تُصدره مع بقية بنيتك التحتية.
ما يراقبه Gatus — وما لا يستطيع Uptime Kuma فعله
- شروط HTTP غنية: رمز الحالة الدقيق، زمن الاستجابة بالـ ms، محتوى الجسم بـ regex، قيمة حقل JSON — في تعريف نقطة نهاية واحدة.
- انتهاء شهادات TLS:
[CERTIFICATE_EXPIRATION] > 14dيُطلق تنبيهًا عند بقاء أقل من 14 يومًا قبل انتهاء الشهادة. - TCP وICMP وDNS وWebSocket: راقب قاعدة بيانات (
tcp://db:5432)، نقر شبكة (icmp://gateway)، حل DNS (dns://ns1.example.com) أو صدى WebSocket من نفس الكونفيغ. - صفحة حالة عامة: رابط واحد تعطيه للعملاء ليتحققوا من حالة خدماتك دون مراسلتك.
- أكثر من 40 قناة تنبيه: Slack وPagerDuty وOpsGenie وDiscord وTeams وntfy وPushover وTelegram والبريد الإلكتروني والـ webhook — مع حدود تشغيل قابلة للضبط لتجنب ضوضاء التقلبات.
المعمارية: حاوية Go واحدة، أقل من 256 ميغابايت RAM
Gatus ثنائي Go موزع في صورة distroless (أقل من 20 ميغابايت). حاوية واحدة، لا تبعية خارجية للتشغيل: سجل الفحوصات مخزّن في قاعدة SQLite في Docker volume. على ServOrbit، تُنشئ حاوية init من alpine:3.20 ملف config.yaml أوليًا عند أول تشغيل — تُعدّله بعدها عبر SSH لإضافة نقاط نهايتك الخاصة.
استهلاك الذاكرة في وضع الخمول أقل من 80 ميغابايت. VPS بـ 512 ميغابايت أكثر من كافٍ.
استضافة Gatus ذاتيًا على VPS في 6 خطوات
اطلب VPS من ServOrbit
أي خطة بـ 512 ميغابايت RAM كافية — يستهلك Gatus أقل من 80 ميغابايت في وضع الخمول. ضعه على VPS منفصل عن التطبيق الذي يراقبه: إذا تعطّل VPS التطبيق، يستمر VPS المراقبة في إرسال التنبيهات.
النشر من السوق بنقرة واحدة
لوحة ServOrbit → السوق → المراقبة → Gatus → نشر. تكتب حاوية init ملف
config.yamlنموذجًا، ثم يبدأ Gatus. صفحة الحالة متاحة علىhttp://ip-vps:8080في ثوانٍ.عدّل ملف التكوين
سجّل الدخول عبر SSH وعدّل
/opt/stacks/gatus/config/config.yaml. استبدل نقطة النهاية النموذجية بخدماتك الفعلية. مثال لـ endpoint HTTP بسيط:endpoints: - name: "واجهة API الخاصة بي" url: "https://api.your-domain.com/health" interval: 1m conditions: - "[STATUS] == 200" - "[RESPONSE_TIME] < 1000"أعد التشغيل:
cd /opt/stacks/gatus && docker compose restart gatus— تظهر نقاط النهاية الجديدة في ثوانٍ.اضبط التنبيهات
أضف كتلة
alerting:إلى كونفيغك. مثال مع ntfy (تطبيق آخر من السوق):alerting: ntfy: url: "http://your-ntfy-vps:8080" topic: "gatus-alerts" priority: 3 failure-threshold: 2 success-threshold: 3يُنبّه Gatus فقط بعد فشلَين متتاليَين (يتجنب الإيجابيات الكاذبة) ويُرسل تنبيه تعافٍ بعد 3 نجاحات متتالية.
شارك صفحة الحالة
صفحة الحالة على المنفذ 8080 جاهزة للمشاركة فورًا. وجّه نطاقًا فرعيًا (
status.your-domain.com) إلى IP الخادم وضبط nginx ليعبر المنفذ 8080، أو فعّلrequireDomain: trueفي السوق للحصول على vhost nginx مكتمل من ServOrbit.أول تسجيل دخول
لا يستخدم Gatus أي حسابات: يعرض الرابط صفحة الحالة مباشرةً، وهي عمومية بشكل افتراضي. خطوتكم الأولى الحقيقية هي الإعداد — عدّلوا الملف config.yaml لتستبدلوا نقطة النهاية النموذجية بخدماتكم الخاصة، ثم أعيدوا التشغيل بالأمر التالي: docker compose restart gatus
نصيحة: أضف config.yaml إلى مستودع git خاص
ملف config.yaml الخاص بـ Gatus هو مصدر الحقيقة لمراقبتك. أنشئ مستودع git في /opt/stacks/gatus/، وأضف التغييرات عند كل تعديل، وستحصل على سجل كامل لنقاط النهاية المراقَبة وعتبات التنبيه وتطورها عبر الزمن — تمامًا كبقية كود البنية التحتية.