وظائف كرون تفشل بهدوء. يتوقف تشغيل البرنامج النصي للنسخ الاحتياطي بعد نقل الخادم، أو يؤدي تدوير كلمة المرور إلى قطع الاستيراد ليلاً، أو يؤدي القرص الممتلئ إلى تعطل مهمة الفاتورة في الساعة 3 صباحًا. لا شيء معطل، لذا تظل شاشة وقت التشغيل العادية باللون الأخضر، ولن تكتشف ذلك إلا بعد أسابيع عندما تحتاج إلى نسخة احتياطية أو عندما يسأل العميل عن مكان فاتورته. مراقبة نبضات القلب تسد هذه الفجوة. يوضح هذا الدليل كيفية عمله وكيفية إعداده مجانًا في بضع دقائق.
ما هو رصد نبضات القلب؟
يقوم مراقب وقت التشغيل المنتظم بفحص موقع الويب الخاص بك من الخارج. يعمل جهاز مراقبة نبضات القلب في الاتجاه المعاكس: حيث يتم التحقق من مهمتك المجدولة. وتحصل على عنوان URL فريد، وتستدعيه وظيفتك في كل مرة تنتهي فيها. إذا لم تصل المكالمة في الوقت المحدد، ستعرف الشاشة أن هناك خطأ ما وتنبهك.
هذا يمسك بكل أنواع الفشل الصامت في وقت واحد:
- المهمة لم تبدأ قط تم فقدان إدخال
crontab، أو تم إعادة تشغيل الخادم بدون المجدول، أو تم استبدال الحاوية. - لقد تحطمت الوظيفة. حدث خطأ أدى إلى إيقاف البرنامج النصي قبل أن يصل إلى النهاية.
- الوظيفة معلقة. لقد بدأ ولكنه عالق في قاعدة بيانات مقفلة أو واجهة برمجة تطبيقات بطيئة ولا ينتهي أبدًا.
- لقد ذهب الخادم بأكمله. لا يوجد خادم، ولا يوجد اختبار ping، لذلك تسمع عنه حتى لو لم يكن هناك أي شيء آخر يشاهده.
ما هي المهام المجدولة التي يجب عليك مراقبتها؟
ابدأ بالوظائف التي تكلفك أكثر عندما تتوقف دون أن يلاحظ أحد:
- النسخ الاحتياطية لقواعد البيانات والملفات. النسخة الاحتياطية التي لم تتحقق منها مطلقًا هي نسخة احتياطية قد لا تكون لديك.
- نصوص الفواتير والفواتير وتجديد الاشتراك وتسوية الدفع.
- يتم استيراد البيانات ومزامنتها بين متجرك أو إدارة علاقات العملاء (CRM) أو المستودع الخاص بك أو خلاصة المورد.
- قوائم انتظار البريد الإلكتروني والرسائل الإخبارية التي يتم إرسالها بواسطة عامل مجدول.
- وظائف تجديد الشهادات مثل تجديدات SSL التلقائية، ومهام التنظيف التي تمنع امتلاء القرص.
- WordPress أو application cron الذي ينشر المنشورات المجدولة ويدير مهام الصيانة.
تشتمل الخطة المجانية على 5 أجهزة مراقبة نبضات القلب، وهو ما يكفي لتغطية المهام المهمة لشركة صغيرة نموذجية أو عدد قليل من مواقع العملاء.
كيفية إعداد مراقبة وظائف cron المجانية
1. قم بإنشاء حساب مجاني
قم بالتسجيل في My Site Alerts باستخدام عنوان بريدك الإلكتروني. لا توجد بطاقة ائتمان ولا فترة تجريبية.
2. إنشاء نبض القلب
افتح Heartbeats في لوحة المعلومات الخاصة بك واختر إنشاء نبضات. أعطه اسمًا واضحًا، مثل النسخ الاحتياطي لقاعدة البيانات ليلاً، حتى يخبرك التنبيه بالضبط بما فشل.
3. قم بتعيين الجدول الزمني المتوقع وفترة السماح
في توقع نبضة قلب كل مرة، أدخل عدد مرات تشغيل المهمة: كل 15 دقيقة، كل ساعة، مرة واحدة يوميًا. ثم قم بتعيين فترة السماح على المدة التي تستغرقها المهمة تقريبًا، بالإضافة إلى هامش الأمان. تحتاج النسخة الاحتياطية التي يتم تشغيلها في الساعة 2:00 وعادةً ما تستغرق 20 دقيقة إلى فترة سماح تتراوح من 30 إلى 40 دقيقة تقريبًا، لذا فإن الليل البطيء لا يؤدي إلى إطلاق إنذار كاذب.
4. انسخ عنوان URL الخاص بنبضات القلب
كل نبضة قلب لها عنوان URL السري الخاص بها. ترسل وظيفتك طلب GET أو POST إليها في كل مرة يتم تشغيلها. يمكنك أيضًا فتح عنوان URL في متصفحك مرة واحدة لاختباره: يجب أن يتحول نبض القلب إلى الأعلى.
5. اختر المكان الذي تذهب إليه التنبيهات
البريد الإلكتروني يعمل خارج الصندوق. يمكنك أيضًا إرسال تنبيهات إلى Slack ، أو Discord ، Telegram ، أو Microsoft Teams أو خطاف الويب الخاص بك، بحيث يصل التشغيل الفائت إلى المكان الذي تبحث فيه بالفعل.
كيفية اختبار نبضات القلب من عملك
crontab لينكس
أضف الطلب بعد الأمر الخاص بك، وانضم إلى && ، بحيث يتم إرسال الأمر ping فقط عندما تنجح المهمة:
0 2 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 --retry 3 https://mysitealerts.com/webhook-heartbeat/YOUR-CODE يقوم الخيار -m 10 بإيقاف التجعيد إذا كانت الشبكة بطيئة، ويغطي خيار --retry 3 انقطاعًا قصيرًا في الاتصال. إذا كان خادمك يحتوي على wget بدلاً من cur، wget -q -O /dev/null متبوعًا بعنوان URL يؤدي نفس الوظيفة.
داخل البرنامج النصي
ضع اختبار ping على السطر الأخير من البرنامج النصي، بعد الانتهاء من العمل الحقيقي. في برنامج نصي لـ Shell، أضف set -e في الأعلى حتى يوقف أي أمر فاشل البرنامج النصي قبل أن يصل إلى اختبار ping. في Python أو PHP أو Node.js، قم بإجراء طلب HTTP بسيط إلى عنوان URL لنبض القلب كخطوة أخيرة للمهمة.
استضافة لوحات التحكم
في حالة الاستضافة المشتركة، أضف نفس أمر الضفيرة إلى نهاية مهمة cron في لوحة التحكم الخاصة بك. تتيح لك معظم اللوحات لصق سطر أوامر كاملاً، بحيث يعمل نفس النمط && هناك أيضًا.
وورد cron
يقوم WordPress بتشغيل المهام المجدولة فقط عندما يزور شخص ما الموقع. للحصول على جدولة موثوقة، قم بتعطيل المشغل المدمج، واستدعاء wp-cron.php من مهمة cron لخادم حقيقي، وأضف اختبار اتصال نبضات القلب إلى نفس السطر. الآن أنت تعرف أنه يتم تشغيل الجدول وأنه يكتمل.
الأخطاء الشائعة التي تسبب إنذارات كاذبة (أو إنذارات فائتة)
- تنفيذ الأمر ping في بداية المهمة. وهذا يثبت فقط أن المهمة بدأت. بينغ في النهاية، بعد نجاح العمل.
- فترة سماح قصيرة جدًا. تصبح الوظائف أبطأ مع نمو البيانات. قم بمراجعة فترة السماح كل بضعة أشهر.
- تجاهل المناطق الزمنية. إذا كانت ساعة الخادم والجدول الزمني الخاص بك لا يتفقان، فقد تبدو المهمة اليومية متأخرة لمدة ساعة. اضبط الفاصل الزمني المتوقع، وليس وقت ساعة الحائط، ودع التشغيل الأول يبدأ تشغيل المؤقت.
- الأزيز في كثير من الأحيان. تم تصميم نبضات القلب للمهام التي يتم تشغيلها مرة واحدة في الدقيقة على الأكثر؛ ويتم تجاهل الأصوات الإضافية خلال نفس الدقيقة.
- تقاسم نبضة قلب واحدة بين الوظائف. تحتاج كل مهمة إلى عنوان URL الخاص بها، وإلا فإن إحدى الوظائف السليمة تخفي مهمة أخرى توقفت.
- نسيان التوقف أثناء الصيانة. قم بإيقاف نبضات القلب مؤقتًا أثناء ترحيل الخادم، بحيث يعرض السجل الأحداث الحقيقية فقط.
تعمل نبضات القلب بشكل أفضل بجوار فحوصات وقت التشغيل
تخبرك نبضات القلب أن العمل يجري خلف موقعك؛ تخبرك فحوصات وقت التشغيل أن الزوار يمكنهم الوصول إليها. معًا يغطون كلا النصفين. إذا لم تقم بإعداد عمليات فحص موقع الويب بعد، فاتبع دليلنا حول كيفية مراقبة وقت تشغيل موقع الويب مجانًا ، وإضافة SSL ومراقبة انتهاء صلاحية النطاق أثناء تواجدك هناك. يمكنك التحقق من أي شهادة الآن باستخدام مدقق SSL.
يستغرق الأمر حوالي خمس دقائق لحماية وظيفتك الأكثر أهمية. أنشئ حسابك المجاني ، وأضف نبضة قلب واحدة للنسخ الاحتياطي، ودعنا نراقبك حتى لا تضطر إلى ذلك.
الأسئلة المتداولة
ما الفرق بين مراقبة cron ومراقبة وقت التشغيل؟
تتحقق مراقبة وقت التشغيل من عنوان URL من الخارج لمعرفة ما إذا كان موقعك يستجيب أم لا. تنتظر مراقبة Cron أو نبضات القلب حتى يتم تسجيل وصول مهمتك المجدولة، وتنبهك عندما لا تصل في الوقت المحدد.
هل مراقبة نبضات القلب مجانية حقًا؟
نعم. تتضمن الخطة المجانية 5 أجهزة مراقبة نبضات القلب مع تنبيهات البريد الإلكتروني و Slack و Discord و Telegram و Microsoft Teams وتنبيهات webhook. لا توجد بطاقة ائتمان ولا توجد نسخة تجريبية تنتهي.
هل أحتاج إلى تثبيت وكيل على الخادم الخاص بي؟
لا. تحتاج وظيفتك فقط إلى تقديم طلب HTTP واحد إلى عنوان URL الخاص بنبضات القلب، على سبيل المثال باستخدام curl أو wget، المتوفرين على كل خادم تقريبًا.
كم يجب أن تكون فترة السماح؟
اضبطه على وقت التشغيل العادي للمهمة بالإضافة إلى هامش أمان. العمل الذي يستغرق عادةً 10 دقائق يتم خدمته جيدًا بفترة سماح تتراوح من 15 إلى 20 دقيقة.
هل يمكنني مراقبة الوظائف التي يتم تشغيلها مرة واحدة يوميًا أو مرة واحدة في الأسبوع؟
نعم. قم بتعيين الفاصل الزمني المتوقع لجدول المهمة، مثل يوم واحد أو 7 أيام، وسيتم تنبيهك عند تفويت التشغيل.