Monit monitoruje dynamické stránky webovej stránky a zisťuje, že stavový kód nie je 200, a automaticky reštartuje php8.3-fpm.

🚀 Keď sa dynamickej stránke na webovej stránke zrazu zobrazí stavový kód iný ako 200, ako sa môže PHP8.3-FPM samoopraviť za pár sekúnd?

​​🔥 Konfigurácia PHP90-FPM, ktorá zachraňuje životy a ktorú 8.3 % operátorov nepozná! Praktická výučba systému samoopravy dynamických stránok Monit.

Myslíte si, že monitorovanie prežitia procesu PHP-FPM je dostatočné? Úplne nesprávne!
Keď sa PHP-FPM na serveri zrazu zblázni, samotné pozeranie sa na prežitie procesu je ako použitie teplomera na meranie rakoviny - vôbec nezachytí závažný problém.

Videl som príliš veľa ľudí strážiťphp-fpm.sockMonitorovanie bolo nedbanlivé a v dôsledku toho sa webová stránka už dlho stala cintorínom 404. Dnes chcem rozbiť túto ilúziu prevádzky a údržby a ukázať vám krvavú pravdu: živý proces ≠ normálna služba.

🌪️ Deštruktívny scenár: Socket je pripojený, ale webová stránka je nefunkčná

istýdodávateľa elektrinyMonitorovanie webovej stránky ukázalo, že proces PHP-FPM bežal normálne, ale používatelia sa sťažovali na zlyhania platieb.

Po dlhom hľadaní som zistil, že únik pamäte v knižnici tretej strany spôsobil, že proces PHP bol síce aktívny, ale vôbec nebol schopný spracovať požiadavky.

V súčasnosti je spoliehanie sa výlučne na detekciu socketov ako kontrola pulzu zombie - mozog sa vôbec nenájde.úmrtia.

💥 Riešenie monitorovania s dvojitým zabitím, ktoré narúša kogníciu

Zahoďte tie zastarané jednorozmerné monitorovanie! Všetci najlepší experti používajú stratégiu dvojitého škrtenia procesnou vrstvou + obchodnou vrstvou.

Monit monitoruje dynamické stránky webovej stránky a zisťuje, že stavový kód nie je 200, a automaticky reštartuje php8.3-fpm.

Nasledujúca konfigurácia umožní vášmu serveru opraviť sa rýchlejšie, ako stihne prevádzkový a údržbársky personál vstať z postele, keď sa vyskytnú problémy:

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"

🔍 Smrteľné detaily skryté v parametroch

hostheaderParametre sú v scenároch CDN/vyrovnávania záťaže talizmany na záchranu života. Bez nich je to ako hľadať nenápadnú stíhačku s okuliarmi na nočné videnie – nezachytíte pozastavený stav spôsobený chýbajúcou hlavičkou Host.

for 3 cyclesTento návrh doby vyrovnávacej pamäte dokonale zabraňuje falošným poplachom spôsobeným jitterom siete. Je to ako nainštalovať tlmič nárazov do sledovacieho systému, aby sa zabránilo traseniu rúk pri spustení jadrového tlačidla.

• Poslednýexec "/usr/bin/systemctl restart hestia"Je to dokonalý vražedný ťah. Keď sa PHP-FPM nepodarilo päťkrát po sebe oživiť, otočil som stôl a reštartoval celý hostingový panel. Toto je trik, ktorý som ukradol z mechanizmu ističa obchodného systému na Wall Street.

🚨 Poučenie z bolesti a utrpenia: 3 pasce, ktoré vás môžu priviesť k zlyhaniu

  1. Podvod s certifikátom SSL: Po aktualizáciiprotocol httpsAk to nezapíšete, monitorovanie to vždy nesprávne vyhodnotí ako normálne. Neskôr som zistil, že stará verzia Monitu štandardne neoverovala certifikát, čo spôsobilo, že som prišiel o koncoročný bonus.
  2. Pasca na prihlasovacej stránke 401: zabudnite pridať pri monitorovaní prihlasovacej stránkyBasic AuthenticationV dôsledku toho každý test spustí reštart. Je to ako polievať záhradu požiarnym hydrantom - dosť silný, ale úplne nesprávny.
  3. Čierna diera v logaritme: Raz/var/log/monit.logKeď veľkosť prudko stúpla na 50G, zistili sme, že nejaký idiot nastavil detekčnú periódu na 1 sekundu. Pamätajte, že samotný monitorovací protokol je objekt, ktorý je potrebné monitorovať!

💡 Kroky overenia a ladenia

  1. Kontrola syntaxe konfigurácie:
    monit -t
    
  2. Konfigurácia preťaženia:
    monit reload

Záverečný test

  1. Test samovraždy: Priamykill -9Ukončite proces PHP-FPM a pozrite si záznamy o jeho obnovení v monitorovacom protokole. Je to ako pozerať film o zombie!
  2. Vstreknutie jedu: Zámerne upravte prihlasovaciu stránku tak, aby vracala stavový kód 503, a sledujte, či monitorovací systém dokáže presne zaútočiť. Túto metódu nazývam „digitálna vakcína“ – vstreknutie malého množstva vírusu do systému vopred, aby sa vytlačila imunitná odpoveď monitorovacieho systému. Keď alarmy divoko blikajú a služby sa samy uzdravia, uvidíte horieť najsexi vôľu prežiť vo svete kódu!

发表 评论

Vaša emailová adresa nebude zverejnená. 必填 项 已 用 * Štítok

Prejdite na začiatok