يقوم Monit بمراقبة الصفحات الديناميكية للموقع ويكتشف أن رمز الحالة ليس 200، ويقوم بإعادة تشغيل php8.3-fpm تلقائيًا

🚀 عندما تحتوي صفحة ديناميكية على موقع ويب فجأة على رمز حالة غير 200، فكيف يمكن لـ PHP8.3-FPM أن يعالج نفسه في ثوانٍ؟​​

🔥 PHP90-FPM هو التكوين المنقذ للحياة الذي لا يعرفه 8.3% من المشغلين! التدريس العملي لنظام Monit للشفاء الذاتي للصفحات الديناميكية.

هل تعتقد أن مراقبة بقاء عملية PHP-FPM كافية؟ خطأ تماما!
عندما يصاب PHP-FPM على الخادم بعطل مفاجئ، فإن مجرد النظر إلى بقاء العملية يشبه استخدام مقياس حرارة لقياس السرطان - فهو لا يكتشف المشكلة القاتلة على الإطلاق.

لقد رأيت الكثير من الناس يحرسونphp-fpm.sockكانت المراقبة متراخية، ونتيجة لذلك، أصبح الموقع منذ فترة طويلة مقبرة للأخطاء 404. اليوم أريد أن أحطم وهم التشغيل والصيانة هذا وأظهر لك الحقيقة الدموية: العملية الحية ≠ خدمة عادية.

🌪️ سيناريو مدمر: المقبس متصل، لكن الموقع الإلكتروني معطل

المؤكدالمورد الكهرباءأظهرت مراقبة الموقع أن عملية PHP-FPM تعمل بشكل طبيعي، لكن المستخدمين كانوا يشكون من فشل الدفع.

بعد بحث طويل، وجدت أن تسرب الذاكرة في مكتبة تابعة لجهة خارجية تسبب في أن تكون عملية PHP نشطة ولكنها غير قادرة تمامًا على معالجة الطلبات.

في هذا الوقت، الاعتماد فقط على اكتشاف المقبس يشبه التحقق من نبض الزومبي - لا يمكنك العثور على الدماغ على الإطلاق死亡.

💥 حل مراقبة مزدوج القتل يقوض الإدراك

تخلص من تلك المراقبة أحادية البعد القديمة! يستخدم أفضل الخبراء استراتيجية الخنق المزدوج لطبقة العملية + طبقة الأعمال.

يقوم Monit بمراقبة الصفحات الديناميكية للموقع ويكتشف أن رمز الحالة ليس 200، ويقوم بإعادة تشغيل php8.3-fpm تلقائيًا

سيسمح التكوين التالي لخادمك بإصلاح نفسه بشكل أسرع مما يمكن لموظفي التشغيل والصيانة النهوض من السرير عند حدوث المشكلات:

check process php8.3-fpm with pidfile /run/php/php8.3-fpm.pid
    start program = "/usr/sbin/service php8.3-fpm start"
    stop program  = "/usr/sbin/service php8.3-fpm stop"
    if failed unixsocket /run/php/php8.3-fpm.sock then restart
    if failed 
        host www.chenweiliang.com 
        port 443
        protocol https
        request "/wp-login.php"
        status = 200
        hostheader www.chenweiliang.com
        for 3 cycles
    then restart
    if 5 restarts within 5 cycles then exec "/usr/bin/systemctl restart hestia"

🔍 تفاصيل قاتلة مخفية في المعلمات

hostheaderالمعلمات هي تعويذات منقذة للحياة في سيناريوهات CDN/موازنة التحميل. بدونهم، يكون الأمر مثل البحث عن مقاتلة خفية باستخدام نظارات الرؤية الليلية - لا يمكنك التقاط الحالة المعلقة الناجمة عن رأس المضيف المفقود.

for 3 cyclesيتجنب تصميم فترة التخزين المؤقت هذه بشكل مثالي النتائج الإيجابية الخاطئة الناجمة عن تذبذب الشبكة. إنه مثل تركيب ممتص صدمات على نظام المراقبة لمنع اهتزاز اليد من الضغط على الزر النووي.

• آخرexec "/usr/bin/systemctl restart hestia"إنها الخطوة القاتلة النهائية. عندما فشل PHP-FPM في العودة إلى الحياة لمدة 5 مرات متتالية، قمت بقلب الطاولة وإعادة تشغيل لوحة الاستضافة بأكملها. هذه خدعة سرقتها من آلية قاطع الدائرة في نظام التداول في وول ستريت.

🚨 دروس مستفادة من الألم والمعاناة: 3 فخاخ قد تؤدي إلى فشلك

  1. احتيال شهادة SSL: بعد الترقية،protocol httpsعدم كتابته يجعل المراقبة دائمًا تعتبره أمرًا طبيعيًا. اكتشفت لاحقًا أن الإصدار القديم من Monit لم يتحقق من الشهادة افتراضيًا، مما جعلني أفقد مكافأة نهاية العام الخاصة بي
  2. فخ صفحة تسجيل الدخول 401: نسيان الإضافة عند مراقبة صفحة تسجيل الدخولBasic Authenticationونتيجة لذلك، يؤدي كل اختبار إلى إعادة التشغيل. إنه مثل سقي الحديقة بفوهة إطفاء الحرائق - قوية بما فيه الكفاية ولكنها خاطئة تمامًا
  3. سجل الثقب الأسود: مرة واحدة/var/log/monit.logعندما وصل الحجم إلى 50 جيجابايت، اكتشفنا أن أحد الحمقى قام بضبط فترة الكشف على ثانية واحدة. تذكر أن سجل المراقبة في حد ذاته هو الكائن الذي يحتاج إلى المراقبة!

💡 خطوات التحقق والتصحيح

  1. التحقق من بناء جملة التكوين:
    monit -t
    
  2. تكوين التحميل الزائد:
    monit reload

الاختبار النهائي

  1. اختبار الانتحار: مباشرkill -9قم بإنهاء عملية PHP-FPM وانظر إلى سجلات الإحياء في سجل المراقبة. أشعر وكأنني أشاهد فيلم زومبي!
  2. حقن السم: تعديل صفحة تسجيل الدخول عمدًا لإرجاع رمز الحالة 503 ومراقبة ما إذا كان نظام المراقبة قادرًا على الهجوم بدقة. أطلق على هذه الطريقة اسم "اللقاح الرقمي" - حقن كمية صغيرة من الفيروس في النظام مسبقًا لإجبار الاستجابة المناعية لنظام المراقبة على الخروج. عندما تومض الإنذارات بعنف وتقوم الخدمات بمعالجة نفسها، فسوف ترى الإرادة الأكثر جاذبية للبقاء على قيد الحياة في عالم الكود تحترق!

مدونة Hope Chen Weiliang ( https://www.chenweiliang.com/ ) المقال الذي شاركه Monit الذي يراقب صفحة الموقع الديناميكية يكتشف أن رمز الحالة ليس 200 ويعيد تشغيل php8.3-fpm تلقائيًا قد يكون مفيدًا لك.

مرحبا بكم في مشاركة رابط هذه المقالة:https://www.chenweiliang.com/cwl-32764.html

لاكتشاف المزيد من الحيل المخفية🔑، مرحبًا بك في الانضمام إلى قناتنا على Telegram!

مشاركة ومثل إذا كنت ترغب في ذلك! مشاركاتك وإعجاباتك هي حافزنا المستمر!

 

发表 评论

لن يتم نشر عنوان بريدك الإلكتروني. 必填 项 已 用 * 标注

انتقل إلى الأعلى