Lihtne veebisaidi tõrkeotsas (jälgimine + dünaamiline DNS)

Selles artiklis tahan näidata, kui lihtsalt ja tasuta saate luua veebisaidi (või mõne muu Interneti-teenuse) tõrkesiirde skeemi, kasutades jälgimise kombinatsiooni. okerr ja dünaamiline DNS-teenus. See tähendab, et kui teil on probleeme põhisaidiga (alates probleemist "PHP veaga" lehel, kuni ruumipuuduse või lihtsalt kahtlaselt väikese tellimuste arvuni veebipoe puhul), saavad uued külastajad suunatakse teisele (kolmandale ja nii edasi) edasi) tuntud töötavale serverile või lehele "Vabandust", kus nad viisakalt selgitavad, et "probleem on, oleme juba teadlikud ja juba parandame seda, me parandab selle varsti ära” (ja sel juhul olete tegelikult juba kursis ja saate parandada).

Kas elada ebaõnnestunud või ilma?

Kuni probleemi ei juhtu, pole suurt vahet. Kuid kui see juhtub, juhtub ilma tõrkesiirdeta sageli järgmist: proovite kiiresti aru saada, milles probleem on, see ei tööta (varukoopiaid ei juurutata, tarkvara ei tööta mingil põhjusel nii nagu dokumentatsiooni järgi peaks jne), kuid pole aega, pole serverit - saidid laiutavad, kliendid helistavad, kõik on näpuga, proovite seda kuidagi jämedalt ja määrdunud "lindiga" parandada, siis tundub, et see kuidagi käivitub. karkude ja eludega. Arvate, et vabal ajal peate selle üksikasjalikumalt välja mõtlema ja kõik ilusti ümber tegema, kuid pole midagi püsivamat kui ajutine.

Nüüd, kuidas see ilusas failis versioonis juhtub:

  • Juhtub viga
  • Viga tuvastatakse automaatselt
  • Hoiatus saadetakse välja
  • Ühele varuserverile lülitumine kantakse üle
  • Rahulikult ja ilma paanikata probleem lahendatakse, parandatakse ja server pannakse uuesti tööle.

Sellel skeemil võivad loomulikult olla ka oma probleemid, kuid siiski on skeem lineaarne, iga etapp on lihtne ja peamine on see, et seda saab eraldi siluda, nii et selle skeemi ebaõnnestumise võimalus on palju väiksem ja kõiki toiminguid saab automatiseerida ja kiiresti sooritada (erinevalt ülesandest leida ja parandada tundmatu eepiline jama). Teie lennuk on maandunud kauges riigis, lülitate telefoni sisse ja näete telegrammis teadet, et server jooksis kokku, kuid kõik on korras, varuserver on aktiveeritud, saate reisi jätkata, pole vaja tagasi lennata või SSH kaudu remontida lähimast WiFi-ga kohvikust . Saate aru, kui see on mugavam.

Tulevik on juba käes!

Varem oli peamine probleem, mis muutis tõrkevahetuse sageli vastuvõetamatuks lahenduseks, selle maksumus. Või oli vaja osta kallist riistvara (ja kutsuda veel kallimad spetsialistid). Või kolhoos midagi keerulist juhendite järgi (sattusin isegi sellisele variandile, kus kaks serverit on lisaks ühendatud nullmodemi kaabliga ja saadavad sealt läbi südamelöögi, et õigel ajal varuserver selle ära tunneb ja üle võtab kontroll). Nüüd on lihtsamad ja tasuta viisid. Kui teil on kasside veebisait, pole teil mingit vabandust, et te selle jaoks veel tõrkesiiret ei rakenda!

Pealegi, tõrkeotsingu skeemi jaoks on vaja teist serverit (ja võib-olla rohkem kui ühte) ja enne oli see suur kulu, nüüd saate VDS-i sentide eest.

Kõige usaldusväärsem sait kassidega

Lahenduse praktiliseks illustreerimiseks okerr + dünaamilise dns-iga avasime oma veebisaidi kassidega cat.okerr.com. Me vihkame kasse, nii et neid pole seal palju. Kokku on kolm saiti, millest igaüks näeb välja ligikaudu sama (kõik sama malli järgi), kuid eri kassipoegadega, et neid oleks lihtne eristada, ja igaüks kirjutab tehnilist teavet, et näha, kuidas tõrkesiirde toimib. Leht värskendab ennast kord iga minuti järel, kuid alati saate brauseris klõpsata nupul Laadi uuesti.

Tehnilises teabes on rida “status=OK”. Mõnikord teesklevad serverid probleeme ja kirjutavad status=ERR. Peaserver "paistab jooksvat kokku" 20 minuti järel igas tunnis (0:20, 1:20, 2:20, …). Varuserver 40 minutiga. Viimane server ("vabandust" server) töötab alati. Igas tunnis kell 0 minutit "taastatakse" esmane ja varuserver.

Lihtne veebisaidi tõrkeotsas (jälgimine + dünaamiline DNS)

Kui avate saidi ja jätate selle vahelehele, näete, et see ei jookse kunagi kokku (kuigi iga server simuleerib perioodiliselt mõnda probleemi) ja serveriga seotud probleemide korral "töötab" see lihtsalt reaalajas serverite vahel. Muutub serveri pilt, nimi ja aadress ning roll. Mõnikord võite tabada hetke, mil status = ERR (probleem on juba olemas, kuid kogu tõrkeotsingu skeem pole veel toiminud), kuid järgmine värskendus näitab teile lehte töötavast saidist.

Rikkumine okerril + dünaamiline DNS

Vaatame, kuidas see kapoti all töötab. Faili esitaja ülesanne on tagada, et cat.okerr.com aadress viitaks alati töötava serveri IP-aadressile.
Iga meie okerris meie kassi saiti majutava serveri taga on indikaator, mis kontrollib selle olekut kord minutis.

Lihtne veebisaidi tõrkeotsas (jälgimine + dünaamiline DNS)

Sellel ekraanipildil näeme, kuidas saiti cat.okerr.com kontrollitakse alpha.okerr.com serverist. Leht peaks sisaldama status=OK ja nagu eespool näeme, on meie indikaatori olek nüüd OK. Kui server "katki läheb", tuleb ERR. (See on vaid üks näide indikaatorist, okerr jälgib, nii et saate lisada mis tahes tüüpi indikaatoreid, näiteks kontrollida ketta vaba ruumi, uute tellimuste arvu andmebaasis ja isegi näiteks loogilisi indikaatoreid , öösel on mõned veakriteeriumid ja päeval teised) .

Projekti seadetes lõime tõrkesiirde skeemi järgmiste näitajatega:

Lihtne veebisaidi tõrkeotsas (jälgimine + dünaamiline DNS)

Skeemil on kolm indikaatorit (kolm serverit), mis on prioriteedilt erinevad. Saidi põhiserver on charlie, kui see ei tööta (sellel pole "status=OK" või see pole lihtsalt saadaval), siis bravo ja viimasel juhul - alfa. Lehe paremas servas on näha DNS-kirje olek erinevates serverites.

Neile, kes märkasid, et kasutatakse nime cat.he.okerr.com: Kasutame veidi keerulisemat skeemi. Selle asemel, et muuta lihtsalt cat.okerr.com DNS-kirjet, muudame me cat.he.okerr.com (dünaamilise DNS-i pakkuja juures Orkaan elektriline) ja cat.okerr.com on CNAME (alias), mis ei muutu, osutab alati aadressile cat.he.okerr.com. Meile meeldib Hurricane dünaamilise DNS-ina paremini ja sellel on võtmed ühe kirje (mitte terve tsooni) haldamiseks, meie arvates on see turvalisem. Samuti ei pea te määrama võtmeparoole okerris kogu domeeni haldamiseks, vaid ainult alamdomeeni või kirje jaoks.

Kukkumisest tõusmiseni

Samm-sammult, kuidas see skeem töötab:

  1. Serveris ilmneb (simuleeritud) probleem
  2. okerri andur kontrollib iga serveri olekut kord minutis ja annab aru peamise projekti serverile okerris
  3. Vastav serveri indikaator muutub OK-st ERR-iks
  4. Indikaatori oleku muutumisel arvutatakse tõrkesiirde ümber ja arvutatakse, milline aadress tuleb määrata (vajadusel. Näiteks kui põhiserver töötab ja samal ajal suri varuserver, siis muudatusi ei tehta tehtud)
  5. See aadress edastatakse dünaamilisele DNS-teenusele. Selle etapi lõppedes näete paremal olekut "sünkroonitud".
  6. Üsna peagi (sekundite jooksul) jõuab kirje teie domeeni DNS-serveritesse (kassi saidi jaoks on see ns1-ns5.he.net).
  7. Sellest hetkest alates on osa kasutajaid juba uues reaalajas serveris. Kuid mitte kõik maailma DNS-serverid pole veel kirjeid värskendanud ja vana kirje võib ikka veel kuskil vahemällu jääda. Näete, kuidas avalikes DNS-serverites olevad andmed "tantsivad", näidates kas uut või vana väärtust. Kui värskendate tõrkesiirde konfiguratsioonilehte, küsib operaator ise DNS-serveritelt uusi andmeid.
  8. Pärast andmete stabiliseerumist on vana vahemällu salvestatud kirje kõikjal mäda – kõik 100% päringutest lähevad uude serverisse.

7. etapi (sageli pikima) kiirendamiseks tuleks dünaamilise DNS-kirje TTL seada võimalikult madalaks. Tavaliselt lubavad teenused intervalli 90–120 sekundit. See on täiesti mõistlik kompromiss.

Lisaks

Seda kõike saab õhtuga seadistada (kui varuserver juba olemas on). Nii okerr kui ka dünaamilised DNS-teenused on tasuta. Et saada okerris rohkem tšekke ja lühemat kinnitusperioodi, pead läbima koolituse (oma profiililehelt). Lõpetamisel tõuseb tase kohe (20 indikaatorit tunnis + 1 kiire, 10 minutit). Ja kui neid on vähe, siis kirjutage [meiliga kaitstud], suure tõenäosusega on võimalik suurendada (seni on alati olnud võimalus, pole kunagi keeldunud, vastupidi, ise pakkusin). Lihtsalt esialgu ei taha ma kõigile kõike lubada, ma pole kindel, kas mul on piisavalt võimet oma sõna pidada. Kuid seni on kasutajaid vähe, seega pole limiitide suurendamisega probleeme.

Mida okerr üldiselt teha saab – vaata kodulehelt esitlus. Üldiselt on see monitooring (zabbix pilvest) ja failihaldur on tore lisafunktsioon. Demole pääsete juurde ka saidilt ilma registreerimiseta.

Kui indikaatori olek muutub, saadetakse teade e-posti või telegrammi teel. (Vaatasime toimuvat ja saime aru, et telegramm näib olevat kõige usaldusväärsem sõnumitooja. Tänud RKN-ile stressitesti eest!) Kui okerr on õigesti seadistatud, on iga teavitus kas signaal "jätke kõik maha, me peame selle parandama!" või "tuled kustus!" Okerrast ei tohiks lisahoiatusi tulla (kui on, tuleb need kuidagi teisiti konfigureerida). Näiteks meie kassisaidi puhul on alfaserver viimane ega tee kunagi viga. Kui ta lamab, peame teadma. Kuid teised serverid teesklevad pidevalt vigu, nii et selleks, et mitte saada hoiatusi mitu korda tunnis, on nende indikaatorite olek "vaikne".

Samuti on mõttekas luua vabandusserver (iga kõige odavamal hostimisel), millel on kas teie vabandusleht (juhul kui kõik põhi- ja varuserverid on maas) või suunab teid okerri olekulehele (näiteks meie oma cp.okerr.com/status/okerr) või statuspage.io.

Allikas: www.habr.com

Lisa kommentaar