لماذا يعرف العميل بالعطل قبل الوكالة
دون مراقبة، يُكتشف العطل من الطرف الخطأ: يفتح العميل موقعه فيرى خطأ ثم يكتب لك. لم تعد المدة بين العطل وردّ فعلك مما تقيسه أنت، بل ما يقيسه هو. وفي المقابل، تفشل المراقبة السيئة الضبط بطريقة أخرى: عشرة تنبيهات أسبوعيًا تسعة منها كاذبة، وقناة لم يعد أحد يقرؤها، والعطل الحقيقي يضيع وسط الضجيج.
فالهدف ليس مراقبة كل شيء، بل معرفة ثلاثة أمور عن كل موقع: هل يمكن الوصول إليه، وهل يجيب بالمحتوى الصحيح، وهل مواعيد انتهائه (الشهادة، النطاق) بعيدة. وتظهر حاجة ثانية في نهاية الشهر: يطلب العميل إثباتًا للتوفر، ولا يتيح الإجابة دون إعادة بناء الأحداث من الذاكرة إلا قياس مستمر ومؤرَّخ.
أنواع المجسّات وما يكشفه كل منها
مرّر الجدول أفقيًا
| المجسّ | ما يكشفه | ما لا يراه |
|---|---|---|
| HTTP (رمز الاستجابة) | خادم متوقف، خطأ 5xx، انتهاء المهلة، موقع لا يمكن الوصول إليه | صفحة خطأ تُعاد برمز 200 |
| HTTP مع كلمة مفتاحية متوقعة | صفحة فارغة، رسالة خطأ من التطبيق، قاعدة بيانات غائبة، صفحة صيانة منسية | عيب بصري أو وظيفة معطلة في مرحلة لاحقة من المسار |
| شهادة TLS | شهادة منتهية أو على وشك الانتهاء، سلسلة ناقصة، اسم مضيف خاطئ | موقع متوقف تظل شهادته صالحة |
| DNS | سجل A أو AAAA أو MX تغيّر أو اختفى، منطقة لم تعد تستجيب | خادم ويب متوقف خلف DNS سليم |
| انتهاء النطاق | نطاق قريب من تاريخ استحقاقه، تجديد تلقائي غير مفعّل | الحالة الصحية للخادم |
| نبضة مهمة مجدولة | نسخة احتياطية أو مهمة cron أو طابور رسائل لم يُنفَّذ خلال المهلة المتوقعة | مهمة تُنفَّذ لكنها تعطي نتيجة خاطئة |
قاعدة التأكيد: n فحوصات قبل التنبيه
معظم التنبيهات الكاذبة أعطال تدوم ثوانيَ: إعادة تشغيل خدمة، أو انقطاع شبكة عند المجسّ، أو ذروة حمل. التنبيه الذي ينطلق عند أول خطأ يوقظ شخصًا بلا داعٍ. والعلاج قاعدة واحدة: لا يُعلَن العطل إلا بعد n فحوصات فاشلة متتالية تفصل بينها مدة قصيرة.
كلفة هذه القاعدة معروفة وقابلة للحساب: زمن الكشف يساوي تقريبًا المدة بين الفحوصات مضروبة في n. بفحص واحد كل دقيقة وثلاثة إخفاقات متتالية، يصدر التنبيه بعد نحو ثلاث دقائق. هذا مقبول لموقع تعريفي. أما لمتجر في فترة التخفيضات فتُقصَّر المدة بدل إلغاء التأكيد. وبعد إعلان الحادث يستمر الفحص: يُؤكَّد انتهاء الحادث أيضًا بعدة نجاحات متتالية، وإلا أنتج الموقع المتذبذب سيلًا من الرسائل المتناوبة.
أسباب التنبيهات الكاذبة الواجب إزالتها
- مجسّ واحد — مجسّ وحيد في شبكة واحدة يخلط بين انقطاعه هو وانقطاع الموقع؛ يحسم الأمر موقعان مستقلان أو فحص ثانٍ من نقطة أخرى.
- مهلة قصيرة جدًا — مهلة استجابة أقل من زمن إحماء موقع WordPress البارد تطلق تنبيهًا عند أول زيارة بعد فترة هدوء.
- الرمز وحده — فحص يقتصر على الرمز 200 يفوّت الصفحة الفارغة، بينما كلمة مفتاحية هشّة (شعار يتغير) تنبّه عند كل تعديل تحريري؛ اختر عنصرًا ثابتًا مثل اسم العلامة في التذييل.
- إعادة توجيه غير متبوعة — إعادة توجيه من http إلى https أو من النطاق الجذر إلى www يُسيء المجسّ التعامل معها فتبدو خطأً.
- الحماية من الروبوتات — جدار حماية تطبيقات أو حدّ للطلبات يحجب عنوان المجسّ يعطي استجابات 403 متكررة؛ اسمح بعنوان المجسّ بدل خفض حماية الموقع.
- صيانة غير مُعلَنة — تحديث مجدول يقطع الخدمة دقائق يطلق تنبيهًا ويشوّه تقرير الشهر؛ تُعلَن مسبقًا، انظر أدناه.
عتبات انطلاق إرشادية تُعدَّل لكل موقع
مرّر الجدول أفقيًا
| الإعداد | قيمة انطلاق إرشادية | السبب |
|---|---|---|
| المدة بين الفحوصات | دقيقة واحدة لموقع حرج، و5 دقائق لموقع تعريفي | كلما قصرت المدة أسرع الكشف، لكن يزداد الحمل على المجسّ |
| الإخفاقات قبل التنبيه | 3 فحوصات متتالية | يرشّح الانقطاعات التي تدوم ثوانيَ دون تأخير الكشف أكثر من دقائق |
| أقصى زمن للاستجابة | من 10 إلى 30 ثانية بحسب الموقع | بعد ذلك يكون الزائر قد غادر الصفحة |
| النجاحات قبل إنهاء الحادث | فحصان متتاليان | يتجنب سيل رسائل الفتح والإغلاق على موقع غير مستقر |
| تنبيه انتهاء الشهادة | قبل الاستحقاق بـ 30 ثم 14 ثم 7 أيام | يترك وقتًا لفهم سبب فشل التجديد التلقائي |
| تنبيه انتهاء النطاق | قبل الاستحقاق بـ 60 ثم 30 يومًا | استرجاع نطاق منتهٍ أغلى من تعطل خادم |
إعداد مراقبة محفظة مواقع
إعداد جرد المواقع
سجّل كل موقع مع عنوانه ومستضيفه وتاريخ استحقاق نطاقه وجهة اتصال لدى العميل. دون هذا الجرد يستحيل القول أي موقع غير مراقب.
اختيار كلمة مفتاحية ثابتة لكل موقع
افتح الصفحة الرئيسية واختر نصًا يوجد في كل الاستجابات العادية، كاسم العلامة مثلًا. تحقق منه يدويًا بالأمر
curl -s https://your-domain.com | grep -c "اسم العلامة".قياس استجابة موقع يدويًا
قبل ضبط المجسّ، اقرأ الرمز وزمن الاستجابة بالأمر
curl -s -o /dev/null -w "%{http_code} %{time_total}\n" https://your-domain.com. يُستعمل هذا الزمن المرجعي لتحديد أقصى مهلة.فحص الشهادة
اقرأ تاريخ نهاية الصلاحية بالأمر
echo | openssl s_client -connect your-domain.com:443 -servername your-domain.com 2>/dev/null | openssl x509 -noout -enddate، ثم فعّل مجسّ الشهادة بعتبات الجدول.فحص DNS
دوّن القيم المتوقعة بالأمرين
dig +short A your-domain.comوdig +short MX your-domain.com، ثم اجعل مجسّ DNS ينبّه عند أي اختلاف.ضبط المدة والتأكيد
طبّق قيم الانطلاق من الجدول ثم اتركها تعمل أسبوعًا. يُصحَّح التنبيه الكاذب بمعالجة سببه، لا بتعطيل المجسّ أبدًا.
ربط كل مجسّ بقناة
اربط التنبيهات الحرجة بقناة توقظ شخصًا، والتحذيرات بقناة تُقرأ خلال اليوم، كما هو مفصّل أدناه.
نوافذ الصيانة وقنوات التنبيه
نافذة الصيانة فترة زمنية تُعلَن مسبقًا لا تطلق فيها أعطال الموقع أي تنبيه. وهي تؤدي وظيفتين: تحمي مناوبك، وتبقى ظاهرة في التقرير حيث تُحتسب الفترة على حدة بدل إخفائها. تذكر النافذة المضبوطة الموقع وساعة البداية وساعة النهاية والسبب. لا تمدّدها بحكم العادة: نافذة مفتوحة دائمًا هي مراقبة مطفأة.
أما القنوات ففرّق بين العاجل والإعلامي. العطل المؤكد لموقع إنتاجي يذهب إلى قناة ترنّ، كتطبيق مراسلة للفريق مع إشعار على الهاتف أو مكالمة مناوبة. وشهادة تبعد 14 يومًا عن انتهائها تذهب إلى قناة تُقرأ كل صباح، كصندوق بريد مشترك أو سلسلة رسائل مخصصة. وخصّص مستلمًا ثانيًا أيضًا: التنبيه الذي يقرؤه شخص واحد يفشل يوم إجازته.
اكسر المجسّ قبل أن تثق به
المجسّ الذي لم ينبّه قط غير مُثبَت. على موقع تجريبي، غيّر الكلمة المفتاحية المتوقعة عمدًا أو أوقف خدمة الويب، ثم تحقق من ثلاثة أمور: أن الزمن قبل التنبيه يطابق حساب المدة مضروبة في n، وأن الرسالة تصل إلى القناة الصحيحة، وأن الإغلاق ينطلق عند عودة الخدمة. أعد هذا الاختبار بعد كل تغيير في المجسّ أو القناة.
التقرير الشهري: ما يقرؤه العميل في دقيقتين
لا يقرأ العميل سجل أحداث. يريد أن يعرف في صفحة واحدة هل صمد موقعه، وماذا حدث حين لم يصمد، وما الذي غيّرته منذ ذلك. التقرير المفيد يتسع لصفحة واحدة ويُولَّد من القياسات نفسها التي تطلق تنبيهاتك، دون تعديل يدوي: التقرير المعدَّل يفقد قيمته كدليل.
حساب التوفر المقاس بسيط عمدًا: الدقائق التي أجاب فيها الموقع مقسومة على دقائق الفترة، بعد طرح نوافذ الصيانة المعلنة. على سبيل التوضيح فقط، 22 دقيقة من التعطل في فترة مدتها 43200 دقيقة تمثل نحو 0.05% من الوقت الضائع. هذا مثال حسابي لا التزام: اذكر دائمًا الطريقة بجانب النتيجة، ولا تَعِد برقم مسبقًا.
نموذج التقرير الشهري
مرّر الجدول أفقيًا
| البند | المحتوى | مثال |
|---|---|---|
| الفترة والنطاق | تاريخا البداية والنهاية، الموقع، المجسّات الفعالة، المدة بين الفحوصات | من 1 إلى 30 من الشهر، الصفحة الرئيسية وصفحة الاتصال، فحص كل 5 دقائق |
| التوفر المقاس | النسبة المحسوبة، دقائق التعطل، طريقة الحساب | 22 دقيقة من أصل 43200، مع استبعاد الصيانة المعلنة |
| حوادث مؤرَّخة | بداية كل حادث ونهايته ومدته | يوم 12، من 02:14 إلى 02:36، أي 22 دقيقة |
| السبب | المصدر المثبت، أو إشارة صريحة إلى أنه ما زال مجهولًا | إعادة تشغيل خدمة بعد تحديث أمني |
| الإجراءات المتخذة | ما جرى إصلاحه أو قراره | إعادة التشغيل المخطط لها صارت خارج ساعات العمل |
| نوافذ الصيانة | الفترات المعلنة، المطروحة من الحساب، مع سببها | يوم 20، من 03:00 إلى 03:30، تحديث النظام |
التوفر الذي تقيسه الوكالة واتفاقية مستوى الخدمة لدى المستضيف: أمران مختلفان
يقيس تقرير الوكالة ما يراه الزائر: هل أجاب الموقع، وبالمحتوى الصحيح، من الخارج. أما اتفاقية مستوى الخدمة لدى المستضيف فالتزام تعاقدي بشأن البنية التحتية، له تعريفاته واستثناءاته وشروط تعويضه. وقد يختلف الاثنان دون أن يكذب أحد: تطبيق ينهار والخادم يعمل لا يُحسب على المستضيف، لكنه يُحسب على الموقع.
لذلك لا تقدّم قياسك على أنه ضمان المستضيف، ولا العكس. في التقرير، اذكر ما قيس وبأي مجسّ ومن أي نقطة. وإن كان الحادث من البنية التحتية فأرفق الطلب الموجه إلى المستضيف وجوابه، واقرأ شروط التزامه قبل أن تعد عميلك بأي تعويض. هذا التوزيع الواضح للمسؤوليات يحمي العلاقة أيضًا: أنت توثّق، ولا تَعِد نيابة عن طرف ثالث.
حين تكبر المحفظة
مع خمسة مواقع تكفي جدولة بيانات وبضعة مجسّات. ومع خمسين تصبح الصعوبة في الشمول: موقع منسي، أو نطاق لا يراقب أحد استحقاقه، أو جهة اتصال لدى العميل قديمة. عيّن مسؤولًا عن الجرد، وأضف إنشاء المجسّات إلى قائمة الإطلاق لكل مشروع جديد، وقاطع كل شهر قائمة المواقع المراقبة مع قائمة العقود.
تجيب مجسّات التوفر عن سؤال «هل يعمل الموقع؟». وهي تكمّل، دون أن تحل محل، مراقبة موارد الخادم والتدقيق الأمني الشهري: قرص ممتلئ أو ذاكرة مشبعة أو تحديث متأخر أسباب عطل يُستحسن أن تُرى قبل وقوعها لا أن تُكتشف بعده.
التوثيق الرسمي
دليل curl: https://curl.se/docs/manpage.html
الأمر openssl s_client: https://docs.openssl.org/master/man1/openssl-s_client/
الأمر openssl x509: https://docs.openssl.org/master/man1/openssl-x509/
أداة dig: https://bind9.readthedocs.io/en/latest/manpages.html
بروتوكول RDAP وتواريخ انتهاء النطاقات: https://www.icann.org/rdap
توثيق Uptime Kuma: https://github.com/louislam/uptime-kuma/wiki