Hyvä palvelimen hälytysraja laukeaa, kun ihmisen pitää tehdä jotain, ja on muuten hiljaa. Käytännössä se tarkoittaa, että hälytät pitkäkestoisista arvoista etkä yksittäisistä piikeistä, mittaat kuormaa suhteessa CPU-ytimiin etkä raakalukuna, seuraat käytettävissä olevaa muistia ja swapia etkä ”käytettyä RAM-muistia”, hälytät levytilasta ajoissa ja sen kasvunopeudesta sekä pidät jokaista suunnittelematonta uudelleenkäynnistystä tiedon arvoisena. Jaa hälytykset varoitustasoon työaikaa varten ja kriittiseen tasoon, joka saa herättää jonkun, ja käy luvut läpi jokaisen häiriön jälkeen.
Tämä opas käy läpi jokaisen mittarin, kertoo, millainen on mielekäs hälytysraja, ja päättyy taulukkoon lähtöarvoista. Ne ovat lähtökohtia, eivät sääntöjä: jokaisella palvelimella on oma normaalinsa, ja oikea raja on se, joka vastaa sitä.
Mitä varten hälytysraja on
Jokainen hälytys vie huomiota. Hälytys, joka laukeaa eikä vaadi toimia, opettaa ihmiset ohittamaan seuraavan, ja seuraava voi olla aito. Ennen kuin asetat rajan, vastaa kolmeen kysymykseen:
Mikä hajoaa, jos arvo jatkaa samaan suuntaan, ja kuinka pian?
Mitä hälytyksen saava ihminen oikeasti tekisi?
Voiko se odottaa aamuun?
Jos mikään ei hajoa eikä kukaan tekisi mitään, kyse on kaaviosta, ei hälytyksestä. Jos se voi odottaa aamuun, se on varoitus. Vain sen, mikä ei voi odottaa, pitää tavoittaa puhelin yöllä.
Varoitus- ja kriittinen taso
Useimmille tiimeille kaksi tasoa mittaria kohden toimii hyvin:
Varoitus: jokin on kehittymässä väärään suuntaan. Lähetä se sähköpostiin tai tiimin chat-kanavalle ja hoida se työaikana.
Kriittinen: katko on lähellä tai jo käynnissä. Lähetä se push-ilmoituksena päivystäjälle, oli päivä tai yö.
Jos valvontatyökalussasi on yksi raja mittaria kohden, saat saman vaikutuksen reitityksellä: aseta raja kohtaan, jossa toimia tarvitaan, ja valitse kanava palvelinkohtaisesti. Testipalvelimen levyhälytys voi mennä sähköpostiin, tuotantotietokannan sama hälytys päivystystiimin chattiin. Uptimecheckin ilmoitukset valitaan valvontakohtaisesti, joten jako on helppo tehdä. Päivystysvuoroilla push-hälytykset tavoittavat sen, joka päivystää juuri nyt, ja eskalointi voi pidättää kanavaa 5–60 minuuttia ja hälyttää vain, jos ongelma jatkuu eikä kukaan ole kuitannut sitä.
Kesto voittaa piikit
Yleisin turhien hälytysten lähde on hälyttäminen yksittäisestä lukemasta. CPU 100 prosentissa kymmenen sekuntia julkaisun, varmuuskopion tai välimuistin uudelleenrakennuksen aikana on normaalia. CPU 100 prosentissa kaksikymmentä minuuttia ei ole. Lisää kesto aina, kun työkalusi sallii sen: ”yli 90 prosenttia 10 minuutin ajan” eikä ”yli 90 prosenttia”.
Jos se ei salli, käytä mittareita, jotka jo tasoittavat ajan yli. 15 minuutin kuormituskeskiarvo on hyvä esimerkki: lyhyt purske tuskin liikuttaa sitä, kun taas pitkäkestoinen ylikuorma nostaa sen ja pitää sen ylhäällä.
CPU
Korkea CPU-käyttö yksinään on harvoin ongelma. Kiireinen palvelin tekee sitä, mistä siitä maksetaan. CPU:sta tulee ongelma, kun se pysyy kyllästyneenä niin kauan, että pyynnöt jonoutuvat ja vasteajat kasvavat. Hälytä pitkäkestoisesta käytöstä ja katso sitä yhdessä käytettävyystarkistusten vasteaikojen kanssa. Jos CPU on 95 prosentissa ja vasteajat pysyvät tasaisina, palvelin on kiireinen, ei vikaantumassa.
Kuormituskeskiarvo ydintä kohden
Linuxissa kuormituskeskiarvo on suunnilleen niiden prosessien määrä, jotka ovat käynnissä tai odottavat CPU:ta, ja Linuxissa myös niiden, jotka odottavat levyn I/O:ta, keskiarvona 1, 5 ja 15 minuutin ajalta. Raakakuorma 4 ei kerro yksinään mitään: 16-ytimisellä palvelimella se on kevyt, 2-ytimisellä kaksinkertainen siihen nähden, mitä kone jaksaa. Jaa ytimien määrällä ennen vertailua; sen kertoo nproc.
1 minuutin arvo reagoi nopeasti ja on kohinainen. Käytä sitä vianmääritykseen, ei hälytyksiin.
15 minuutin arvosta kannattaa hälyttää. Yli 1 ydintä kohden tarkoittaa, että työ jonoutuu; selvästi sen yli pitkään tarkoittaa, että käyttäjät huomaavat sen.
Korkea kuorma ja matala CPU-käyttö tarkoittavat yleensä prosesseja, jotka odottavat levyä tai verkkotallennusta. Katso I/O:ta, älä koodia.
RAM ja swap
”Käytetty RAM” on Linuxissa harhaanjohtava mittari. Ydin käyttää vapaata muistia tiedostovälimuistiin ja antaa sen takaisin, kun sovellukset tarvitsevat sitä, joten terveen palvelimen muisti näyttää usein lähes täydeltä. Katso sen sijaan käytettävissä olevaa muistia, eli free -m -komennon ”available”-saraketta, joka laskee mukaan vapautettavissa olevan välimuistin.
Swap kertoo enemmän. Palvelin, joka ei normaalisti swappaa mutta alkaa tehdä niin, on muistipaineen alla, ja suorituskyky romahtaa, kun aktiivista muistia siirretään levylle. Kaksi hyödyllistä signaalia:
Swapin käyttö ilmestyy tai kasvaa palvelimella, jolla sitä ei yleensä ole.
Käytettävissä oleva muisti vähenee tasaisesti päivien ajan, mikä viittaa usein vuotoon pitkään käynnissä olevassa prosessissa.
Tietokantapalvelimet ovat erikoistapaus: ne on tarkoituksella määritetty käyttämään suurin osa muistista. Aseta niiden rajat sen mukaan, mitä näet tavallisella viikolla.
Levytila ja sen kasvu
Täysi levy on yksi yleisimmistä vältettävissä olevien katkojen syistä. Tietokannat lakkaavat kirjoittamasta, lokit lakkaavat kiertämästä, istuntoja ei voi tallentaa ja varmuuskopiot epäonnistuvat. Levy on myös helpoin mittari saada kohdalleen, koska se muuttuu harvoin nopeasti, mikä jättää aikaa toimia, jos hälytät ajoissa.
Käytä prosenttirajaa varoitukselle ja kriittiselle tasolle, mutta sovita se levyn kokoon. 2 TB:n levyllä 10 prosenttia vapaata on yhä 200 GB; 20 GB:n levyllä se on 2 GB, jonka yksi villiintynyt loki voi syödä iltapäivässä.
Seuraa kasvua tason lisäksi. Levy, joka on 70 prosentissa ja kasvoi tällä viikolla 10 prosenttiyksikköä, on kiireellisempi kuin levy, joka on ollut 85 prosentissa vuoden.
Tiedä, mikä sen täyttää: lokit, paikallisesti säilytetyt varmuuskopiot, ladatut tiedostot, Docker-imaget, tietokantatiedostot. Jokaiseen on eri korjaus.
Verkko
Verkkoliikenteelle on vaikea asettaa kiinteää rajaa, koska normaali vaihtelee vuorokaudenajan ja kauden mukaan. Kaksi kuviota ansaitsee hälytyksen. Liikenne, joka on selvästi tavallista suurempaa ja lähellä yhteyden kapasiteettia, voi tarkoittaa liikennepiikkiä, scraperia tai hyökkäystä. Liikenne, joka putoaa lähes nollaan normaalisti kiireisellä palvelimella, voi tarkoittaa, että se on poistettu kuormantasaajasta tai menettänyt verkkoyhteytensä, vaikka kone itse näyttäisi kunnossa olevalta. Opettele normaali vaihteluväli muutaman viikon historiasta ennen kuin asetat lukuja.
Uudelleenkäynnistykset
Suunnittelemattomasta uudelleenkäynnistyksestä kannattaa aina tietää. Taustalla voi olla ytimen päivitys, palveluntarjoajan huolto, kaatuminen tai muistin loppuminen. Vaikka kaikki palaisi, palvelut, joita ei ole asetettu käynnistymään automaattisesti, uudelleenkäynnistyksen aikana erääntyneet ajastetut tehtävät ja liitetyt levyt voivat jäädä huonoon tilaan. Hälytä jokaisesta uudelleenkäynnistyksestä huoltoikkunan ulkopuolella, varoitustasolla, jos palvelin toipui itsestään.
Lähtöarvot
Alla olevat arvot ovat esimerkkejä lähtökohdiksi tyypilliselle verkko- tai sovelluspalvelimelle. Käytä niitä ensimmäiset viikot ja säädä ne sitten havaintojesi mukaan.
MittariVaroitus (esimerkki)Kriittinen (esimerkki)CPUYli 85 % 15 minuutin ajanYli 95 % 15 minuutin ajan, ja vasteajat kasvavatKuormituskeskiarvo (15 min)Yli 1 ydintä kohdenYli 2 ydintä kohdenKäytettävissä oleva muistiAlle 15 %Alle 5 %SwapMikä tahansa käyttö palvelimella, jolla sitä ei normaalisti oleYli 50 % swapista käytössäLevyYli 80 % tai täynnä viikon sisällä nykyvauhdillaYli 90 % tai täynnä vuorokauden sisälläVerkkoSelvästi vuorokaudenajan normaalin vaihteluvälin ulkopuolellaLähellä yhteyden kapasiteettia tai lähellä nollaa kiireisellä palvelimellaUudelleenkäynnistysMikä tahansa uudelleenkäynnistys huoltoikkunan ulkopuolellaPalvelut eivät palanneet uudelleenkäynnistyksen jälkeen
Uptimecheckin palvelinvalvonta raportoi CPU:n, muistin, levyn ja verkon minuutin välein Linuxilla, macOS:llä ja Windowsilla. Asetat CPU:lle, muistille ja levylle palvelinkohtaiset rajat ja keston, esimerkiksi 5 tai 15 minuuttia, ja saat hälytyksen myös uudelleenkäynnistyksistä ja silloin, kun palvelin hiljenee, joten raportoinnin lopettanutta konetta ei koskaan luulla rauhalliseksi. Taustaa siihen, miksi nämä luvut ovat tärkeitä, löydät oppaasta verkkosivuston pitäminen toiminnassa palvelimen tilan valvonnalla.
Seuraa myös oireita
Palvelinmittarit kuvaavat syitä. Käyttäjäsi kokevat oireita: hitaita sivuja, virheitä ja epäonnistuneita tehtäviä. Valvo molempia. Käytettävyystarkistus vastauksen validoinnilla kertoo, kun sivusto pettää, ja heartbeat kertoo, kun varmuuskopio ei valmistunut. Kun oirehälytys ja resurssihälytys laukeavat yhdessä, syy on yleensä ilmeinen. Kun vain resurssihälytys laukeaa, sinulla on usein aikaa korjata asia ennen kuin kukaan huomaa.
Näin voit myös nostaa palvelinrajoja luottavaisin mielin. Jos sivusto tarkistetaan minuutin välein, CPU-hälytyksen ei tarvitse olla se, joka huomaa katkon. Sen voi virittää ennakkovaroitukseksi viimeisen oljenkorren sijaan. Sama ajattelu pätee verkkosivuston tarkistuksiin; katso miten vähennät vääriä hälytyksiä käytettävyyden valvonnassa.
Käy rajat läpi häiriöiden jälkeen
Hälytysrajat eivät ole koskaan valmiita. Kysy jokaisen häiriön jälkeen, ja meluisten palvelinten kohdalla kerran kuussa:
Laukesiko hälytys ennen kuin käyttäjät huomasivat? Jos ei, mikä mittari liikahti ensin, ja olisiko matalampi raja huomannut sen?
Mitkä hälytykset laukesivat ilman, että kukaan teki mitään? Nosta niitä, lisää kesto tai siirrä ne päiväaikaiselle kanavalle.
Tavoittiko hälytys jonkun, joka pystyi toimimaan? Jos ei, muuta reititystä.
Onko palvelimen normaali muuttunut päivityksen, siirron tai kasvaneen liikenteen jälkeen?
Kirjaa vastaukset häiriöraporttiin, jotta muutoksella on perustelu. Häiriön jälkianalyysin pohjassa on osio juuri tätä varten.
Yhteenveto
Hälytä siitä, mikä vaatii ihmistä, sillä kiireellisyydellä, joka sillä todella on. Käytä pitkäkestoisia arvoja, kuormaa ydintä kohden, käytettävissä olevaa muistia ja swapia, levyn tasoa ja kasvua sekä jokaista suunnittelematonta uudelleenkäynnistystä. Aloita esimerkkiarvoilla, opettele kunkin palvelimen normaali ja säädä jokaisen häiriön jälkeen.
Uptimecheck tuo palvelinvalvonnan käytettävyystarkistusten, heartbeatien ja tilasivujen rinnalle samaan tiliin. Aloita 14 päivän ilmainen kokeilu, luottokorttia ei tarvita.