Yksinkertainen vikasieto sivustolle (valvonta + dynaaminen DNS)

Tässä artikkelissa haluan näyttää, kuinka helposti ja ilmaiseksi voit tehdä vikasietojärjestelmän verkkosivustolle (tai mille tahansa muulle Internet-palvelulle) valvonnan yhdistelmällä. okerr ja dynaaminen DNS-palvelu. Eli jos pääsivustossa on ongelmia (sivulla olevasta "PHP-virheestä" tilanpuutteeseen tai yksinkertaisesti epäilyttävän pieneen tilausmäärään verkkokaupan tapauksessa), uudet kävijät ohjataan toiselle (kolmannelle ja niin edelleen) edelleen) tunnetulle toimivalle palvelimelle tai "Anteeksi"-sivulle, jossa he kohteliaasti selittävät, että "on ongelma, olemme jo tietoisia ja korjaamme sitä, me korjaa sen pian” (ja tässä tapauksessa olet itse asiassa jo perillä ja osaat korjata).

Elääkö epäonnistumisen kanssa vai ilman?

Ennen kuin jokin ongelma ilmenee, eroa ei ole paljon. Mutta kun se tapahtuu, ilman vikasietoa tapahtuu usein seuraavaa: yrität selvittää nopeasti, mikä ongelma on, se ei toimi (varmuuskopiot eivät ota käyttöön, ohjelmisto ei jostain syystä toimi niin kuin sen pitäisi dokumentaation mukaan tms.), mutta ei ole aikaa, ei palvelinta - sivustot makaavat, asiakkaat soittavat, kaikki ovat syrjässä, yrität jotenkin korjata sen karkeasti ja likaiseksi "teipillä", sitten jotenkin se näyttää käynnistyvän kainalosauvojen ja henkien kanssa. Ajattelet, että vapaa-ajalla sinun täytyy selvittää se tarkemmin ja tehdä kaikki kauniisti uudelleen, mutta mikään ei ole pysyvämpää kuin väliaikainen.

Nyt, kuinka tämä tapahtuu kauniissa versiossa, jossa on tiedosto:

  • Virhe tapahtuu
  • Virhe havaitaan automaattisesti
  • Hälytys lähetetään
  • Vaihto johonkin varmuuskopiopalvelimista siirretään
  • Rauhallisesti ja ilman paniikkia ongelma selvitetään, korjataan ja palvelin laitetaan takaisin toimintaan.

Tällä skeemalla voi tietysti olla myös omat ongelmansa, mutta silti järjestelmä on lineaarinen, jokainen vaihe on yksinkertainen ja tärkeintä on, että se voidaan korjata erikseen, joten tämän järjestelmän epäonnistumisen mahdollisuus on paljon pienempi, ja kaikki toiminnot voidaan automatisoida ja suorittaa nopeasti (toisin kuin tehtävänä löytää ja korjata tuntematon eeppinen paska). Koneesi on laskeutunut kaukaiseen maahan, käynnistät puhelimesi ja näet sähkeessä ilmoituksen, että palvelin on kaatunut, mutta kaikki on kunnossa, varapalvelin on aktivoitu, voit jatkaa matkaasi, et tarvitse lentää takaisin tai korjata se SSH:n kautta lähimmästä WiFi-kahvilasta. Selvität sitten kun se on kätevämpää.

Tulevaisuus on jo täällä!

Aikaisemmin pääongelma, joka teki epäonnistumisesta usein kelpaamattoman ratkaisun, oli sen maksamien kustannusten määrä. Tai oli tarpeen ostaa kalliita laitteita (ja kutsua vielä kalliimpia asiantuntijoita). Tai kolhoosi jotain monimutkaista ohjeiden mukaan (jopa törmäsin sellaiseen vaihtoehtoon, jossa kaksi palvelinta on lisäksi yhdistetty nollamodeemikaapelilla ja ne lähettävät sykettä sen läpi, jotta varapalvelin tunnistaa sen oikealla hetkellä ja ottaa vallan ohjaus). Nyt on helpompia ja ilmaisia ​​tapoja. Jos sinulla on kissoja sisältävä verkkosivusto, sinulla ei ole mitään tekosyytä olla toteuttamatta sitä vielä!

No, sitä paitsi, vikasietojärjestelmää varten tarvitset toisen palvelimen (ja ehkä useamman kuin yhden), ja ennen tämä oli suuri kustannus, nyt voit saada VDS: n penneillä.

Luotettavin sivusto kissoille

Havainnollistaaksemme ratkaisua käytännössä okerr + dynaamisella dns:llä, julkaisimme kissojen verkkosivustomme cat.okerr.com. Me vihaamme kissoja, joten niitä ei ole paljon siellä. Sivustoja on yhteensä kolme, joista jokainen näyttää suunnilleen samalta (kaikki samassa mallissa), mutta eri kissanpentuilla, jotta ne olisi helppo erottaa, ja jokainen kirjoittaa teknisiä tietoja nähdäkseen, miten vikasietoisuus toimii. Sivu päivittyy itsestään minuutin välein, mutta voit aina napsauttaa selaimessa Lataa uudelleen.

Teknisissä tiedoissa on rivi "status=OK". Joskus palvelimet teeskentelevät ongelmia ja kirjoittavat status=ERR. Pääpalvelin "näyttää kaatuvan" 20 minuutin välein joka tunti (0:20, 1:20, 2:20, …). Varmuuskopiointipalvelin 40 minuutissa. Viimeinen palvelin ("anteeksi" palvelin) on aina käynnissä. 0 minuutin välein joka tunti ensisijainen ja varapalvelin "palautetaan".

Yksinkertainen vikasieto sivustolle (valvonta + dynaaminen DNS)

Jos avaat sivuston ja jätät sen välilehdelle, huomaat, että se ei koskaan kaatuu (vaikka jokainen yksittäinen palvelin simuloi ajoittain ongelmaa), ja jos palvelimessa on ongelma, se yksinkertaisesti "käy" live-palvelimien välillä. Palvelimen kuva, nimi ja osoite sekä sen rooli muuttuvat. Joskus voit saada kiinni hetken, jolloin status = ERR (ongelma on jo olemassa, mutta koko vikasietosuunnitelma ei ole vielä toiminut), mutta seuraava päivitys näyttää sinulle sivun toimivasta sivustosta.

Virheenvaihto okerrissä + dynaaminen DNS

Katsotaan kuinka konepellin alla toimii. Ilmoittajan tehtävänä on varmistaa, että cat.okerr.com-osoite osoittaa aina toimivan palvelimen IP-osoitteeseen.
Jokaisen palvelimen takana, joka isännöi kissasivustoamme Okerrissa, on osoitin, joka tarkistaa sen tilan kerran minuutissa.

Yksinkertainen vikasieto sivustolle (valvonta + dynaaminen DNS)

Tässä kuvakaappauksessa näemme, kuinka sivusto cat.okerr.com tarkistetaan alpha.okerr.com-palvelimelta. Sivun tulee sisältää status=OK, ja kuten yllä näemme, ilmaisimen tila on nyt OK. Kun palvelin "rikkoutuu", tulee ERR. (Tämä on vain yksi esimerkki indikaattorista, okerr valvoo, joten voit liittää minkä tahansa tyyppisen ilmaisimen, esimerkiksi tarkistaa vapaan tilan levyllä, uusien tilausten määrän tietokannassa ja jopa loogisia indikaattoreita esim. , yöllä on joitain virhekriteerejä ja päivällä toisia) .

Projektiasetuksissa loimme vikasietojärjestelmän seuraavilla indikaattoreilla:

Yksinkertainen vikasieto sivustolle (valvonta + dynaaminen DNS)

Järjestelmässä on kolme indikaattoria (kolme palvelinta), joiden prioriteetti on erilainen. Sivuston pääpalvelin on charlie, jos se ei toimi (sillä ei ole "status=OK" tai se on yksinkertaisesti poissa), niin bravo ja jälkimmäisessä tapauksessa - alfa. Sivun oikealla puolella näkyy DNS-tietueen tila eri palvelimilla.

Niille, jotka huomasivat, että nimeä cat.he.okerr.com käytetään: Käytämme hieman monimutkaisempaa kaavaa. Sen sijaan, että muuttaisimme vain cat.okerr.comin DNS-tietuetta, vaihdamme cat.he.okerr.com-sivustoa (dynaamisella DNS-palveluntarjoajalla Hurricane Electric), ja cat.okerr.com on CNAME (alias), joka ei muutu, osoittaa aina osoitteeseen cat.he.okerr.com. Pidämme Hurricanesta paremmin dynaamisena DNS:nä, ja sillä on avaimet yksittäisen merkinnän (eikä kokonaisen vyöhykkeen) hallintaan, mielestämme se on turvallisempaa. Sinun ei myöskään tarvitse määrittää avainsalasanoja okerrissä hallitaksesi koko verkkotunnusta, vaan vain aliverkkotunnuksen tai tietueen.

Putoamisesta nousuun

Askel askeleelta, kuinka tämä järjestelmä toimii:

  1. Palvelimessa ilmenee (simuloitu) ongelma
  2. okerr-anturi tarkistaa jokaisen palvelimen tilan kerran minuutissa ja raportoi okerrin pääprojektipalvelimelle
  3. Vastaava palvelinilmaisin muuttuu OK:sta ERR:ksi
  4. Kun indikaattorin tila muuttuu, vikasieto lasketaan uudelleen ja lasketaan mikä osoite on asetettava (tarvittaessa. Jos esimerkiksi pääpalvelin toimii ja samalla varapalvelin kuoli, muutoksia ei tehdä tehty)
  5. Tämä osoite ilmoitetaan dynaamiselle dns-palvelulle. Kun tämä vaihe on suoritettu, näet "synkronoitu"-tilan oikealla.
  6. Hyvin pian (sekunnissa) tietue saavuttaa verkkotunnuksesi DNS-palvelimia (kissasivustolle se on ns1-ns5.he.net).
  7. Tästä hetkestä lähtien osa käyttäjistä on jo uudella live-palvelimella. Mutta kaikki maailman DNS-palvelimet eivät ole vielä päivittäneet tietueita, ja vanha tietue saattaa silti olla jossain välimuistissa. Näet kuinka julkisten DNS-palvelimien tiedot "tanssivat" näyttäen joko uutta tai vanhaa arvoa. Jos päivität vikasietoasetussivun, operaattori itse pyytää uusia tietoja DNS-palvelimista.
  8. Kun tiedot ovat vakiintuneet, vanha välimuistitietue on mätä kaikkialla - kaikki 100% pyynnöistä menee uudelle palvelimelle.

Vaiheen 7 (usein pisin) nopeuttamiseksi dynaamisen DNS-tietueen TTL tulee asettaa mahdollisimman alhaiseksi. Tyypillisesti palvelut sallivat 90-120 sekunnin välein. Tämä on täysin järkevä kompromissi.

lisäksi

Kaikki tämä voidaan konfiguroida illalla (jos sinulla on jo varapalvelin). Sekä okerr- että dynaamiset DNS-palvelut ovat ilmaisia. Saadaksesi enemmän shekkejä okerrissä ja lyhyemmän vahvistusajan, sinun on suoritettava koulutus (profiilisivultasi). Valmistuttuaan taso nousee välittömästi (20 ilmaisinta tunnissa + 1 nopea, 10 minuuttia). Ja jos niitä on vähän, kirjoita [sähköposti suojattu], todennäköisesti se on mahdollista lisätä (toistaiseksi on aina ollut mahdollisuus, en ole koskaan kieltäytynyt, päinvastoin, tarjosin sitä itse). Aluksi en vain halua luvata kaikille kaikkea, en ole varma, että minulla on tarpeeksi kapasiteettia pitää sanani. Mutta toistaiseksi käyttäjiä on vähän, joten rajojen lisäämisessä ei ole ongelmia.

Mitä okerr yleensä voi tehdä - katso verkkosivustoa esittely. Yleisesti ottaen tämä on valvontaa (zabbix pilvestä), ja arkistointi on mukava lisätoiminto. Pääset demoon myös sivustolta ilman rekisteröitymistä.

Kun ilmaisimen tila muuttuu, ilmoitus lähetetään sähköpostilla tai sähkeellä. (Katsoimme mitä tapahtui ja huomasimme, että sähke näyttää olevan luotettavin lähettiläs. Kiitos RKN:lle stressitestistä!) Kun okerr on määritetty oikein, jokainen ilmoitus on joko signaali "pudota kaikki, meidän täytyy korjata se!" , tai "valo sammuu!" Okerrasta ei pitäisi tulla ylimääräisiä hälytyksiä (jos on, ne on määritettävä jotenkin eri tavalla). Esimerkiksi kissasivustollamme alfapalvelin on viimeinen eikä koskaan väärennä virhettä. Jos hän makaa, meidän on tiedettävä. Mutta muut palvelimet teeskentelevät jatkuvasti virheitä, joten jotta ne eivät saisi hälytyksiä useita kertoja tunnissa, näillä ilmaisimilla on "hiljainen" tila.

On myös järkevää luoda sorry-palvelin (mihin tahansa halvimpaan isännöintiin), jolla on joko anteeksipyyntösivusi (jos kaikki pää- ja varapalvelimet ovat poissa) tai ohjaa sinut okerrin tilasivulle (esim. cp.okerr.com/status/okerr) tai statuspage.io.

Lähde: will.com

Lisää kommentti