Kaks aastat tagasi tegin juba postituse kohta . Praegu on projektil toimunud teatav areng ja olen avaldanud alla , seetĂ”ttu otsustasin kirjutada Habrisse selle vĂ€ikese ĂŒlevaate.

[ ]
Kellele see vÔiks huvi pakkuda
See vĂ”ib teile huvi pakkuda, kui töötate vĂ€ikese meeskonnaga vĂ”i olete ĂŒldse ĂŒksi. Teie kĂ€es pole mitte mingit monitooringut ja te pole kindel, kas see on tĂ”eliselt vajalik. VĂ”i olete proovinud mĂ”nda tuntud tĂ”sist monitooringut "suurematele poistele", aga see ei ole teie jaoks "Ă”nnestunud" vĂ”i töötab peaaegu vaikimisi konfiguratsioonis, mis ei olenenud teie elu palju muutnud. Ja veel - kui te ei plaani mÀÀrata ĂŒhte töötajat (rÀÀkimata osakonnast) selleks, et see veidi aega pĂ€evas veedaks monitooringu armatuurlaudade jĂ€lgimisega vĂ”i selle seadistamisega.
Mida eriliseks teeb okerr
Edasi nÀitan huvitavaid omadusi okerrist, mis eristavad seda mÔnest muust monitooringust.
Okerr on hĂŒbriidmonitooring
Sisemonitooringu korral töötab jÀlgitavates masinates "agent", mis edastab andmeid monitooringuserverisse (nt kettaruumi vabadus). VÀlimise monitooringu puhul teeb server vÔrgus kontrollimisi (nt ping vÔi veebisaidi kÀttesaadavus). Igal meetodil on oma piirangud. Okerr kasutab mÔlemat varianti. Kontrollimised serverites viiakse lÀbi vÀga kergest (30Kb) agendist vÔi teie enda skriptidest ja rakendustest, ning vÔrgu kontrollimised lÀbi okerr/i andurite erinevates riikides.
okerr ei ole lihtsalt tarkvara, vaid ka teenus
Iga monitooringu serveripoolne osa on suur ja keeruline teema, mille paigaldamine ja seadistamine on keeruline ning see nÔuab ressursse. Okerriga saate paigaldada oma monitooringuserveri (see on tasuta ja avatud lÀhtekoodiga), vÔi vÔite lihtsalt kasutada ainult kliendipoolset osa ja kasutada meie serveri teenust. Samuti tasuta.
Kui jĂ€lgimine suudab kompenseerida serverite ja rakenduste usaldusvÀÀrsuse puudujÀÀke, siis tekib filosoofiline kĂŒsimus - kes valvab valvurit? Kuidas jĂ€lgimine annab meile teada probleemist, kui see ise on mingil pĂ”hjusel âsurnudâ, kas iseseisvalt vĂ”i koos teiste teie ressurssidega (nĂ€iteks on andmekeskuse kanal kukkunud)? VĂ€lise teenuse kasutamisel okerr - lahendatakse see probleem - saate teate isegi siis, kui kogu teie serverite andmekeskus on vooluta vĂ”i zombie-rĂŒnnaku all.
Muidugi on oht, et okerr server ise vĂ”ib olla kĂ€ttesaamatu, see on tĂ”si (nagu teada, saadakse 90% usaldusvÀÀrsusest alati lihtsalt ja âtasutaâ, 99% - minimaalsete jĂ”upingutustega ja iga jĂ€rgmine null - eksponentsiaalselt keerulisem). Kuid esiteks on tĂ”enĂ€osus selleks madalam ja teiseks vĂ”ib probleem jÀÀda mĂ€rkamatuks vaid siis, kui see langeb ajaliselt kokku meie serverite probleemidega. Kui meil on usaldusvÀÀrsus 99,9% ja teil 99,9% (mitte liiga kĂ”rged numbrid), siis on mĂ€rkamatuks tĂ”rkeks tĂ”enĂ€osus 0,1% 0,1% = 0,0001%. Endale kolme nulli lisamine usaldusvÀÀrsusele peaaegu ilma pingutuseta ja kuludeta - see on vĂ€ga hea!
Veel ĂŒks jĂ€lgimise teenuse eelis on see, et hostimisettevĂ”te vĂ”i veebistuudio vĂ”ib paigaldada endale okerr serveri ja pakkuda klientidele juurdepÀÀsu kui tasulist vĂ”i tasuta lisateenust. Teie konkurentidel on lihtsalt hostimine ja veebilehed - aga teil on usaldusvÀÀrne hostimine koos jĂ€lgimisega.
Okerr - see on indikaatorite kohta
Indikaator on âlampâ. Sellel on kaks pĂ”hiseisundit - roheline (OK) vĂ”i punane (ERR). Projektis on palju rĂŒhmitatud (nĂ€iteks serverite jĂ€rgi) indikaatoreid. Projekti esilehel nĂ€ete kohe, kas teil on kĂ”ik roheline (ja saate sulgeda) vĂ”i midagi vilgub punaselt ja vajab parandamist. Need seisundid vahetudes saadetakse teade. Kui olete seadistanud, saadetakse kord pĂ€evas projekti kokkuvĂ”te.

Iga okerr indikaatoril on sisseehitatud tingimused, mille alusel see oma seisundit muudab (Zabbixis nimetatakse seda triggeriks). NĂ€iteks peab koormuse keskmine olema mitte ĂŒle 2 (loomulikult on see konfigureeritav). Ja iga sisemise kontrolli (koormuse keskmine, vaba ketas jne) jaoks on vahtkond. Kui mingil pĂ”hjusel ei saa me mÀÀratud ajal eduka kinnituse - registreeritakse viga ja saadetakse teade.
Meie tavapĂ€rane töökorraldus hĂ”lmab hommikust e-kirjade kontrollimist, kus vaatame muu hulgas ka ĂŒlevaadet (selle aja mÀÀrame töö alguseks). Kui seal on kĂ”ik korras, tegeleme teiste oluliste asjadega (kuid vĂ”ime usaldusvÀÀrsuse huvides kiiresti ĂŒle vaadata ka okerrâi armatuurlaua, et veenduda, et kĂ”ik on rohelised). Kui tuleb hĂ€iresignaal, reageerime.
Loomulikult on vÔimalus lihtsalt hoida "teavet" nÀitavaid indikaatoreid (et nÀha, kuidas vÔrk töötab), kuid kÔik on loodud nii, et indikaatoreid oleks lihtne, mugav ja kiire luua automaatseks jÀlgimiseks ning hÀiresignaalide saatmiseks.
MĂ”te, miks te seadistate okerrâi, peitub hĂ€iresignaalides, et saaksite minutiga luua indikaatori, mis vĂ”ib aastaid "magada", lihtsalt uuendusi vastu vĂ”tta, ja kui aasta pĂ€rast juhtub teil midagi katki minema, hakkab see vilkuma ja saadab hĂ€ire. Ăks minut, mille kulutasite kord indikaatori loomise peale, tasus end Ă€ra â saite probleemist kohe teada, enne kui keegi teine mĂ€rkama jĂ”udis. Kiirelt tĂ”stetud ei loeta kukkunuks!
Turvalisus
Oleks kahetsusvÀÀrne, kui paneksite jĂ€lgimise kĂ€ima usaldusvÀÀrsuse tĂ”stmiseks, aga tulemuseks oleks see, et teid rĂŒnnatakse selle kaudu vĂ”rgus, ning erinevate jĂ€lgimistööriistade puhul on suhteliselt palju vĂ”rgu haavatavusi (, ).
Agent (okerrmod pakist ), mis töötab sĂŒsteemis â ei ole vĂ”rgu server, vaid klient. SeetĂ”ttu ei ole jĂ€lgitaval serveril lisatud avatud porte, klient töötab kergesti tulemĂŒĂŒrist vĂ”i NAT-ist taga ning seda on vĂ€ga keeruline (öeldes "vĂ”imatu") vĂ”rgu kaudu hĂ€kkida, kuna see ei kuula vĂ”rgu soketti.
TÀielik jÀlgimise katvus
Meie praegune reegel on â me saame teada kĂ”igist tehnilistest probleemidest okerr-ist. Kui reegel peaks rikkuvama (okerr ei teatanud selle varasemast tulekust (kui see on vĂ”imalik) vĂ”i sellest, et see on juba toimunud) â lisame kontrollid okerr-isse.
VĂ€listab kontrolle
Suhteliselt tavaline komplekt:
- ping
- http staatus
- SSL-sertifikaadi kehtivuse ja vÀrskuse kontroll (teavitab, kui kehtivusaeg varsti lÔppeb)
- avatud TCP port ja sellel banner
- http grep (lehe [ei] tohiks olla teatud teksti)
- sha1 hash, et tuvastada lehe muudatused.
- DNS (DNS-kirje peab omama teatud vÀÀrtust)
- WHOIS (teavitab, kui domeen varsti aegub)
- Antispam DNSBL (hosti kontroll kohe 50+ rÀmpsposti musta nimekirja vastu)
Sisene kontroll
Samuti ĂŒsna tĂŒĂŒpiline komplekt (aga kergesti laiendatav).
- df (vaba kettaruumi)
- koormuse keskmine
- opentcp (avatud TCP pistikute kuulamine â teavitab, kui midagi kĂ€ivitub vĂ”i kukub Ă€ra)
- uptime â lihtsalt serveri tööaeg. Teavitab, kui see muutub madalamaks (st server taaskĂ€ivitus)
- client_ip
- dirsize â kasutame seda, et jĂ€lgida, kui meil rootfs virtuaalmasinate maht ĂŒletab lubatud suuruse, ilma rangete piiranguteta, ja jĂ€lgime kasutajate kodu kataloogide suurusi.
- empty ja nonempty â jĂ€lgivad faile, mis peavad olema tĂŒhjad (vĂ”i mitte tĂŒhjad). NĂ€iteks, serveri error log okerr â peab olema tĂŒhi, ja kui seal on vĂ€hemalt ĂŒks rida â saan teate ja kontrollin. Kuid mail.log meiliserveris ei tohi olla TĂŒhi (N minuti pĂ€rast pĂ€rast rotatsiooni). MĂ”nikord oli see meil tĂŒhi, pĂ€rast sĂŒsteemi uuendamist, kui logrotate ei saanud Ă”igesti rsyslog'i taaskĂ€ivitada.
- linecount â ridade arv failis (kui wc -l). Kasutame seda pehme asendusena empty'le, kui error log tĂ”esti vĂ”ib kasvada, kuid ainult aeglaselt (nĂ€iteks Googlebot rĂŒndab mĂ”ningaid suletud lehti). Piirang on 2 rida 20 minuti jooksul. Kui see ĂŒletab â tuleb hĂ€ire.
Huvitavad sisemised kontrollid
Kui olete siiani lugenud âdiagonaalisâ, siis nĂŒĂŒd on huvitavam lugeda tĂ€helepanelikumalt.
bÀkupid
JĂ€lgib varukoopiaid kataloogis. Meil on varukoopiafailide nimed nagu âServerName-20200530.tar.gzâ. Iga serveri jaoks luuakse okerris indikaator ServerName-DATE.tar.gz (reaalne kuupĂ€ev asendatakse sĂ”naga âDATEâ). JĂ€lgib mitte ainult vĂ€rske varukoopia olemasolu, vaid ka selle suurust (nt see ei saa olla vĂ€iksem kui 90% eelmisest varukoopiast).
Mida peab tegema, et uus varukoopia hakkaks jĂ€lgima, pĂ€rast seda, kui oleme selle loonud ja sellesse kataloogi paigutanud? Mitte midagi! See on vĂ€ga mugav lĂ€henemine, kui on vaja teha âmitte midagiâ, sest:
- Mitte midagi tegemine on ĂŒsna kiire, see sÀÀstab aega
- Raske on unustada teha âmitte midagiâ
- Raske on teha âmitte midagiâ valesti, eksimustega. Mitte midagi â see on kĂ”ige usaldusvÀÀrsem meetod
Kui ootamatult ei hakka vĂ€rskeid varukoopiafaile ilmuma â tuleb hĂ€ire. Kui nĂ€iteks olete ĂŒhe serveri vĂ€lja lĂŒlitanud ja selle varukoopiaid enam ei tohiks olla â peate indikaatori kustutama (kas veebiliidese kaudu vĂ”i shellis API kaudu).
maxfilesz
JĂ€lgib suurimaid faile (tavaliselt: /var/log/*). See vĂ”imaldab tabada ettearvamatuid probleeme, nagu nĂ€iteks paroolide ĂŒlevool vĂ”i serveri kaudu spĂ€mmimise korral.
runstatus/runline
Need on kaks olulist proxy moodulit, et kĂ€ivitada teisi programme serveris. Runstatus edastab indikaatoris programmi vĂ€ljumiskoodi. NĂ€iteks, okerr ei vaja moodulit, et kontrollida, kas systemd teenused töötavad. Seda tehakse runstatus'i kaudu (vt allpool). Runline â edastab serverile rea, mille programm genereerib. NĂ€iteks, temp_RUN="cat /sys/class/thermal/thermal_zone0/temp" Runline'i konfiguratsioon meie serveris loob indikaatori servername:temp koos protsessori temperatuuriga.
sql
Teeb numbrilise pĂ€ringu MySQL-le ja edastab tulemuse indikaatorisse. Lihtsaim nĂ€ide oleks nĂ€iteks âSELECT 1â â see kontrollib, et andmebaas tervikuna töötab.
Aga palju huvitavam rakendus â nĂ€iteks jĂ€lgida tellimuste arvu veebipoes. Kui tead, et tunnis tuleb 100 tellimust, saad seadistada minimaalsete piirideks 100 vĂ”i 80. Siis, kui mĂŒĂŒk Ă€kitselt langeb â saad alerti ja saad asjale lĂ€heneda.
Pange tĂ€hele â ei ole oluline, mis ettearvamatul pĂ”hjusel see juhtus:
- Server on lihtsalt kĂ€tketehituselt (ilma vooluta vĂ”i ilma vĂ”rguta) ja alert tuli sellest, et indikaator âkukkus Ă€raâ.
- Server on mingil pĂ”hjusel ĂŒlekoormatud, töötab aeglaselt vĂ”i pakette kaob, kasutajad tunnevad ebamugavust ja lahkuvad ilma ostudeta.
- Server on satunud spÀmmilisti ja tema e-kirju ei aktsepteerita, kasutajad ei saa registreeruda.
- Reklaamikampaania eelarve on lÔppenud, bÀnnerid ei jookse.
PÔhjuseid vÔib olla palju, ja neid ei saa ette nÀha, ning tehniliselt on seda keeruline jÀlgida. Kuid saab mugavalt jÀlgida lÔppparameetrit (tellimusi) ja selle pÔhjal mÀÀrata, et olukord on kahtlane ja vajab tÀhelepanu.
Loogilised indikaatorid
Lubab kasutada loogilisi vĂ€ljendusi (Python sĂŒntaks) mooduli kaudu (). VĂ€ljendusele on saadaval projekti ning tema indikaatorite andmed. NĂ€iteks, SQL kontrollimise lĂ”igus, mida eespool mainiti, vĂ”isite mĂ€rgata nĂ”rkust â pĂ€eval on meil 100 mĂŒĂŒki tunnis, aga öösel â 20, ja see on normaalne, mitte probleem. Kuidas olla? Indikaator ju paneb öösiti pidevalt hĂ€iret.
Saate luua kaks indikaatorit, pÀevane ja öine. MÔlemad teha "vaikseks" (nad ei saadeta teateid). Ja luua loogiline indikaator, mis nÔuab kuni kell 20:00, et pÀevane indikaator oleks OK ja pÀrast kell 20:00 piisab, kui öine indikaator on OK.
Teine nĂ€ide loogilise indikaatori kasutamisest on eskalatsioon. NĂ€iteks projektijuht loobub teavitustest (sest tal pole seda vaja, administraatorid peavad reageerima tavapĂ€rastele probleemidele), kuid liitub loogilise indikaatoriga, mis muutub punaseks, kui ĂŒkskĂ”ik milline indikaator projektis pole mÀÀratud ajaks parandatud.
Samuti on vĂ”imalus mÀÀrata lubatud tööaeg, nĂ€iteks kell 3â5 hommikul. Meid ei huvita, kui serverid ja saidid sellel ajal "kukuvad". Kuid kell 5:00 peavad nad tööle hakkama. Kui nad ei tööta muul ajal - teade. Samuti vĂ”imaldab loogiline indikaator arvesse vĂ”tta serverite varundamist. Kui teil on 5 veebiserverit, saavad administraatorid 1-2 serverit igal ajal vĂ€lja lĂŒlitada. Kuid kui vĂ”itlusboonis on vĂ€hem kui 3 viiest serverist - tuleb teade.
Ălaltoodud nĂ€ited ei ole okerri funktsioonid, ei ole need mingid funktsioonid, mida tuleb aktiveerida ja seadistada. KĂ”iki neid funktsioone okerril ei ole, kuid on olemas loogiline moodul, mis vĂ”imaldab seda funktsionaalsust rakendada (ligikaudu nagu programmeerimiskeeles - kui meil on aritmeetilised operaatorid, siis ei vaja me keelest erilist funktsiooni 20% kĂ€ibemaksu arvutamiseks, seda saab alati ise teha oma vajaduste kohaselt).
Loogiline indikaator on vĂ”ib-olla ĂŒks vĂ€heseid suhteliselt keerulisi teemasid okerris, kuid hea uudis on see, et te ei pea neid valdama, kuni see pole vajalik. Kuid sellegipoolest laiendavad nad vĂ”imalusi oluliselt, sĂ€ilitades samas sĂŒsteemi piisavalt lihtsana.
Oma kontrollide lisamine
Ma sooviksin vĂ€ga rĂ”hutada, et okerr ei ole tuhat valmiskontrolli igaks juhuks, vaid vastupidi - see on eelkĂ”ige lihtne mootor koos lihtsa vĂ”imalusega luua oma kontrollid. Oma kontrollide loomine okerris ei ole hĂ€kkerite, sĂŒsteemi kaasarendajate vĂ”i vĂ€hemalt edasijĂ”udnud okerri kasutajate ĂŒlesanne, vaid igasuguse administraatori kergesti teostatav ĂŒlesanne, kes kuu aega tagasi esmakordselt Linuxi paigaldas.
Minimaalsete kontrollide tegemine toimub mooduli kaudu :
See rida konfingus teavitab, kui Àkki /bin/true ei kÀivitu vÔi tagastab mitte 0.
true_OK=\/bin\/trueAinult ĂŒks rida â ja juba oleme natuke laiendanud funktsionaalsust okerr.
Isegi selline kontroll â omab juba vÀÀrtust: kui teie server peaks alla minema â vastav indikaator serveris okerr ei uuene Ă”igeaegselt ja aja möödudes tekib hĂ€ire.
See kontroll teavitab, et server apache2 on kokku kukkunud (noh, juhtub ka):
apache_OK="systemctl is-active --quiet apache2"Seega, kui teil on teadmisi mĂ”nest programmeerimiskeelest, vĂ€hemalt oskate shell skripte kirjutada â siis saate juba lisada enda kontrollid.
Raskem on kirjutada (mÔnes keeles) oma moodul okerrmod jaoks. Lihtsamal juhul nÀeb see vÀlja jÀrgmine:
#!/usr/bin/python3
print("STATUS: OK")TÔsi, pole ju vÀga keeruline? Moodul peab teostama ise kontrolli ja andma tulemused STDOUT-ile. Raskem moodul annab nÀiteks sellise:
$ okerrmod --dump df
NAME: pi:df-\/
TAGS: df
METHOD: arvuline|maxlim=90
DETAILS: 49.52%, 13.9G\/28.2G kasutatud, 13.0G vaba
STATUS: 49.52
NAME: pi:df-\/boot
TAGS: df
METHOD: arvuline|maxlim=90
DETAILS: 84.32%, 53.1M\/62.9M kasutatud, 9.9M vaba
STATUS: 84.32See uuendab korraga mitut indikaatorit (eraldatud tĂŒhja reaga), vajadusel loob need, nĂ€itab kontrolli detaile ja silte, mille jĂ€rgi on dashboardil kerge leida vajalikke indikaatoreid.
Telegram
On Telegrami bot . Te ei pea telefoni tĂŒlikas aplikatsioonidega tĂ€itma (ise ei armasta, et nĂ€iteks Paateriks vajab ĂŒhte aplikatsiooni kaardiga, Lenta teist, MTS kolmandat jne). Ăks Telegram on piisav. Telegrami kaudu saate kohe hĂ€ireid ja kontrollida projekti seisu ning anda kĂ€su kĂ”igi probleemsete indikaatorite jĂ€relevalveks. VĂ€ljusite teatrist/lennukist, kaks tundi ei hoidnud pulsil, lĂŒlitasite tele vĂ€lja, vajutasite chat-boti nupule ja veendusite, et kĂ”ik on korras.
Olekulehed
Meie ajal on olekuhed juba peaaegu must have iga Àri jaoks, mis tegeleb IT-ga, on vastutustundlik usaldusvÀÀrsuse osas ja austab oma kliente/kasutajaid.
Kujutage ette olukorda â kasutaja tahab midagi teha, vaadata infot vĂ”i esitada tellimust, kuid midagi ei toimi. Ta ei tea, mis on vale, kellel on probleem ja millal see lahendatakse. Kas teie ettevĂ”tte veebisait on lihtsalt maas? VĂ”i see kahjustati kuus kuud tagasi ja parandatakse kahe aasta pĂ€rast? Aga kĂŒlmkapp peab ostma juba praegu, see on juba ostukorvis⊠Ja tĂ€iesti teine asi on see, kui inimene nĂ€eb, et teil on midagi valesti (olgu vĂ”i selge, et probleem ei ole tema poolel), et probleem on tuvastatud, et te töötate selle kallal ja vĂ”ib-olla on isegi kirjutatud ligikaudne parandamise aeg. Kasutaja vĂ”ib tellida ja saada e-posti teel teate, kui probleem on lahendatud ja saab teha, mida ta soovis (osta kĂŒlmkapp).

Probleemid, seisakud â juhtub kĂ”igil. Kuid kasutajad ja partnerid usaldavad rohkem neid, kes on rohkem lĂ€bipaistvad ja vastutustundlikud.
Siin . Siin on nÀited, millised need lehed on projektides ja . .
Failover
Et mitte muuta seda artiklit veelgi pikemaks, viitan veel kord oma eelnevale artiklile â . Kui saate teha varuserveri, siis failoveri kasutamine tĂ€hendab, et teil ei ole pĂ”himĂ”tteliselt pikki seisakuid â kohe, kui probleem on tuvastatud, suunatakse kasutajad automaatselt töötavale varuserverile. Ja mulle tundub, et see on vĂ€ga huvitav, silmatorkav funktsioon, mida pole paljudes kohtades.
Madala sĂŒstemaatilised nĂ”uded
Okerr-serverite jaoks â kasutame masinaid, kus on RAM alates 2Gb. VĂ”rgusensorite jaoks piisab isegi 512Mb-st. Klient osa â praktiliselt null. (Pakett kaalub 26 Kb, kuid nĂ”uab Python3 ja standardteeke). Klient kĂ€ivitatakse kront skripti kaudu, seega on selle pidev mĂ€lu tarbimine null. JĂ€lgitavate masinate seas on meil sisendseadmed (ĂŒlimalt odavad VPS-id 512Mb RAM-iga) ja Raspberry Pi. Isegi ilma kliendi osata !(vt allpool)
Selle arvesse vĂ”ttes â okerr on tĂ”enĂ€oliselt kĂ”ige tasuta Kasutatavad jĂ€lgimissĂŒsteemi, sest isegi teise tasuta avatud lĂ€htekoodiga sĂŒsteemi nagu Zabbix vĂ”i Nagios kasutamiseks tuleb sellele eraldada ressursid (server), ja see on juba raha. Lisaks on ikkagi vajalik serveri hooldus. okerr'iga saab seda osa jĂ€tta vĂ€lja. VĂ”i saab ka mitte vĂ€lja jĂ€tta ja kasutada oma serverit â kuidas teile rohkem meeldib.
API ja integreerimine oma tarkvarasse
Lihtne ja avatud arhitektuur. okerr'il on ĂŒsna lihtne , millega on lihtne töötada. Kas soovite luua 1000 indikaatorit? Ăks shell-skript 3-4 rida teeb selle Ă€ra. Kas peate 1000 indikaatorit ĂŒmber seadistama? See on samuti vĂ€ga lihtne. NĂ€iteks tahame uuesti kontrollida kĂ”iki meie HTTPS sertifikaate Venemaa sensoriga:
#!/bin/sh
for indicator in `okerrclient --api-filter sslcert`
do
echo set location for $indicator
okerrclient --api-set location=ru retest=1 --name $indicator
doneIndikaatori uuendamine on vÔimalik kas meie kliendimooduli abil vÔi isegi ilma selleta, lihtsalt curl'i kaudu.
# short and nice (using okerrupdate and config file)
$ okerrupdate MyIndicator OK
# only curl is enough!
$ curl -d 'textid=MyProject&name=MyIndicator&secret=MySecret&status=OK' https://bravo.okerr.com/Indikaatoreid saab uuendada otse oma programmist. NĂ€iteks saates heartbeat signaale, et okerr teaks, et see on aktiivne, ja tĂ”staks alarmi, kui see kukub vĂ”i hangub. Muide, okerr'i komponendid teevadki nii â okerr jĂ€lgib iseennast, ja probleemid peaaegu igas moodulis avastatakse ning genereeritakse teatis probleemist. (Ja selle 'peaaegu' jaoks â neid kontrollitakse kruvise ĂŒlesanne teise serveriga)
Siin on selline kood (lihtsustatud) meie Telegram'i botis:
from okerrupdate import OkerrProject, OkerrExc
op = OkerrProject()
uptimei = op.indicator("{}:telebot_uptime".format(hostname))
...
uptimei.update('OK', 'pid: {} Uptime: {} cmds: {}'.format(
os.getpid(), dhms(uptime), commands_cnt))Indikaatorite uuendamiseks Python programmide kaudu on olemas raamatukogu , teiste keelte jaoks ei ole raamatukogu, kuid saate kas kutsuda okerrupdate skripti vÔi teha HTTP pÀringu okerr serverisse.
Kuidas okerr meid aitab
Okerr on muutnud meie elu. TĂ”epoolest. Usu mind, teine jĂ€lgimissĂŒsteem oleks ka seda suutnud, kuid okerr'iga on meil lihtsalt mugav töötada ja seal on kĂ”ik funktsioonid, mida me vajasime (mida puudu oli â kirjutasime ise juurde). Ăks asi veel, kui mĂ”ni funktsioon puudub â kĂŒsige, ja ma lisan selle (ei lubada, kuid mulle meeldiks, et okerr oleks parim jĂ€lgimissĂŒsteem vĂ€ikese- ja keskmise suurusega projektide jaoks). VĂ”i, mis veelgi parem, lisage ise â see on lihtne.
Meil on Ă”nnestunud elada pĂ”himĂ”tte jĂ€rgi «kĂ”igist probleemidest teada okerrist». Kui juhtub probleem, millest me ei saanud teada okerrist â lisame kontrolli okerrisse. (selle all mĂ”istan 'me' kasutajatena sĂŒsteemis, mitte kaasarendajatena). Alguses juhtus see tihti, kuid nĂŒĂŒd on see vĂ€ga harv.
JĂ€lgimine
Okerri kaudu jĂ€lgime logide suurust kĂ”igil serveritel. Iga logirida silmadega hoolikalt lugeda â see on muidugi vĂ”imatu, kuid lihtsalt kasvu jĂ€lgimine annab juba palju. Selle kaudu oleme avastanud nii spĂ€mmilĂ€kitamisi kui ka bruteforce paroolide katsetamis, ja kui mĂ”ned rakendused 'hulluks lĂ€hevad', siis nad ei suuda midagi ja kordavad ikka ja jĂ€lle (iga kord lisades paar rida logisse).
SSL sertifikaadid. Peaaegu kohe pĂ€rast kĂ€ivitamist meie klient hakkas oma klientidele pakkuma tasuta SSL sertifikaate (umbes tuhat neist). Ja see osutus lihtsalt administratsiooniks pĂ”rguks! Asi on selles, et saidid on 'elavad', kliendid kĂŒsivad neilt pidevalt midagi teha, arendajad teevad. Nad vĂ”ivad vabalt liigutada saidi teise DocumentRoot'i nĂ€iteks. VĂ”i lisada tingimusteta Rewrite virtuaalhosti konfiguratsiooni. Loomulikult, pĂ€rast seda rikutakse automaatne sertifikaatide uuendamine. NĂŒĂŒd lisatakse kĂ”ik meie SSL hostid okerrisse automaatselt lĂ€bi veel ĂŒhe meie kasuliku tööriista paketist . Lihtsalt kĂ€ivitame a2okerr.py â ja kui serveris ilmuvad mitu uut saiti â need ilmuvad automaatselt okerrisse. Kui mingil pĂ”hjusel sertifikaat ei uuene, kolme nĂ€dala jooksul enne sertifikaadi aegumist â oleme kursis ja uurime, miks see ei uuene, kurat. a2certbot.py sama paketist â aitab sellele vĂ€ga palju (kontrollib kohe kĂ”ige tĂ”enĂ€olisemaid probleeme â ja kirjutab, mis on hĂ€sti kontrollitud ja kus on tĂ”enĂ€oliselt probleem).
JĂ€lgime kĂ”ikide meie domeenide aegumistĂ€htaegu. Ja kĂ”ik meie postiserverid, mis saadavad postit, kontrollitakse ka 50+ erineva musta nimekirja alusel. (Ja mĂ”nikord satuvad sinna). Muide, kas teadsite, et ka googleâi postiserverid on mustades nimekirjades? Lihtsalt enesetestsimiseks lisasime mail-wr1-f54.google.com jĂ€lgitavate serverite hulka ja see on tĂ”epoolest SORBS-i mustas nimekirjas! (See on seotud 'antispĂ€mmide' vÀÀrtuse kĂŒsimusega)
Varukoopiad â ma juba kirjutasin, kui lihtne on neid jĂ€lgida okerriga. Kuid me jĂ€lgime ka vĂ€rskeid varukoopiaid meie serveris ja (kasutades eraldi tööriista, mis kasutab okerrit) â varukoopiaid, mille me ĂŒles laadime Amazon Glacierisse. Ja jah â aeg-ajalt juhtub probleeme. Mitte asjata ei jĂ€lgita.
Kasutame eskaleerimise indikaatorit. Selle jĂ€rgi on nĂ€ha, kui mĂ”ni probleem ei ole pikka aega lahendatud. Ja isegi mina, kui lahendan mĂ”ningaid ĂŒlesandeid, vĂ”in vahel unustada need. Eskaleerimine â hea meeldetuletus, isegi kui jĂ€lgid iseennast.
Ăldiselt arvan, et meie töö kvaliteet on tĂ”usnud kordades. Peaaegu pole seisakuid (noh, vĂ”i klient ei saagi neid mĂ€rgata. Ainult tĆĄsss!), samas on töömaht vĂ€henenud ja töötingimused â rahulikumad. Oleme liikunud hĂ€daolukordadest, kus lappisime auke teibiga, rahulikku ja mÔÔdetud tööle, kus paljusid probleeme ennustatakse ette ja on aega neid ennetada. Isegi toimunud probleeme â on kergem parandada: esiteks kuuleme neist enne, kui kliendid paanikat korraldavad, teiseks juhtub sageli, et probleem on seotud hiljutise tööga (kui tegin ĂŒhte, rikkusin teise) â seega on kergem sellega kuumadel jĂ€lgedel tegutseda.
Ja veel ĂŒks juhtumâŠ
Kas teadsite, et populaarseks saanud Debian 9 (Stretch) populaarne pakett phpmyadmin on endiselt (juba mitu kuud!) olukorras vulnerable? (). Kui haavatavus ilmus â katsetasime kiiresti erinevaid viise, et seda varjata. Kuid seadsin okerrisse jĂ€lgimise security-tracker'i lehe jaoks, et teada, millal ilmub "ilus" lahendus (SHA1 sisu summa kaudu). Mitu korda indikaator tĂ”mbas mind, leht muutus, kuid nagu nĂ€ete â siiani (alates jaanuarist 2019!) ei ole seal nĂ€idatud, et probleem on lahendatud. VĂ”ib-olla teavad mĂ”ned, mis probleem seal on, et selline oluline pakett on juba ĂŒle aasta vulnerable?
Teine kord sarnases olukorras: pĂ€rast SSH haavatavust tuli kĂ”ik serverid uuendada. Ja kui sa annad ĂŒlesande, tuleb kontrollida selle tĂ€itmist. (Alamordenid kipuvad mitte nii aru saama, unustavad, segadusse minema, eksima). SeetĂ”ttu lisasime esmalt okerr'i, et kontrollida SSH versiooni kĂ”igis serverites, ja okerr'i kaudu jĂ€lgisime, et uuendused oleksid kĂ”igisse serveritesse paigaldatud. (Mugav! Valisin selle indikaatori tĂŒĂŒbi ja kohe on nĂ€ha, millises serveris milline versioon). Kui me veendusime, et ĂŒlesanne on kĂ”igis serverites tĂ€idetud, eemaldasime indikaatorid.
MĂ”ni kord oli olukord, kus mingi probleem esines, kuid siis lahendas end ise. (tĂ”enĂ€oliselt on see kĂ”igile tuttav?). Kuni sa mĂ€rkad, kuni sa kontrollid â ja seal pole enam midagi kontrollida â kĂ”ik töötab juba hĂ€sti. Aga siis puruneb see jĂ€lle. Meil oli see nĂ€iteks Amazon Marketplace'is (MWS) laaditud toodetega. Mingil hetkel olid laetud varud valed (vale kogus kaupu ja vale hind). Sain aru. Kuid et aru saada â oli oluline probleemi kohe mĂ€rgata. Kahjuks on MWS, nagu kĂ”ik Amazoni teenused â natuke aeglane, seetĂ”ttu oli alati viivitus, kuid siiski â suutsime vĂ€hemalt enam-vĂ€hem tabada seose probleemi ja skriptide vahel, mis seda pĂ”hjustavad (tegin kontrolli, lisasin selle okerr'i ja kontrollisin kohe pĂ€rast hĂ€ire saamist).
Hiljuti lisas suur ja kallis Euroopa hostiteenuse pakkuja, mida kasutab meie klient, oma kogemuste kolleksiooni huvitava juhtumi. ĂhtĂ€kki kadusid meie radarilt KĂIK meie serverid! Esiteks, klient ise mĂ€rkis, et tema tööleht ei lae, ja saatis selle kohta pilet. Aga probleem ei olnud ainult ĂŒhes veebilehes, vaid kĂ”ikides! (Natasha, me oleme kĂ”ik Ă€ra kukkunud!). Siis hakkas Okerr saatma pikki teateid kĂ”ikide indikaatorite kohta, mis tal pĂ”lema leidsid. HĂ€da, hĂ€da, ringi jooksmine (mis sa veel teed?). Hiljem kĂ”ik taastus. Selgus, et andmekeskuses olid regulaarsete tööde tĂ”ttu (ĂŒks kord mitme aasta jooksul) meid, loomulikult, pidanuks ette lööma. Aga neil oli mingi sĂ”nk ja ei hoiatatud meid. Aga see on sama palju infarkti, rohkem vĂ”i vĂ€hem. Kuid pĂ€rast kĂ”ike taastumist - peab kĂ”ik ĂŒle kontrollima! Ma ei suuda ette kujutada, kuidas ma seda kĂ€sitsi teeksin. Okerr katsetas kĂ”ik paarikĂŒmne minutiga lĂ€bi. Selgus, et suurem osa serveritest oli lihtsalt ajutiselt kĂ€ttesaamatu, kuid töötas. MĂ”ned - ĂŒlekoormatud, kuid taastusid samuti. KĂ”ikidest kaotustest - me kaotasime kaks varukoopiat, mis pidid cron'iga looma ja laadima just sel ajal, kui see tĂ€ielik jama kĂ€is. Ma ei hakanud neid looma, lihtsalt tunni pĂ€rast tulid teated, et kĂ”ik on korras, varukoopiad ilmusid. Mulle meeldib see nĂ€ide vĂ€ga, kuna Okerr osutus keerulises olukorras vĂ€ga kasulikuks, millest me isegi eelnevalt ei mĂ”elnud, kuid see ongi monitooringu ĂŒlesanne - vastanduda ettearvamatule.
Okerri sensorite jaoks kasutame maksimaalselt odavaid hostiteenuseid (seal ei ole kvaliteet ja usaldusvÀÀrsus olulised, nad katab ĂŒksteist). Noh, hiljuti leidsime vĂ€ga elava hostinguteenuse ja super odava, tĂ”husus oli fantastiline. Kuid... mĂ”nikord osutub, et vĂ€lised ĂŒhendused virtuaalserverist teostatakse teise (naabri) IP kaudu. Imeline. Moodul client_ip saab vale IP. Ja serveri logid nĂ€itavad, et uuendus tuli samuti sellest naabri IP-st. Hetkel tegeleme toega. Hea, et me mĂ€rkame seda rahuajal. Kuid nĂ€iteks, tihti on nii, et ligipÀÀs on mÀÀratud valge IP nimekirja jĂ€rgi - ja kui server mĂ”nikord lĂŒhikese aja jooksul nii vilgub - siis vĂ”ib olla vĂ€ga pikk aeg, kuni seda probleemi tabada.
Ja veel â kui me rÀÀgime VPS-hostingutest â me kasutame alati odavaid (hetzner, ovh, scaleway). Ja nii jĂ”udluse kui ka stabiilsuse osas â meeldib vĂ€ga. Kasutame ka kallimat Amazon EC2 teiste projektide jaoks. Nii et tĂ€nu okerr'ile on meil oma pĂ”hjendatud arvamus. MĂ”lemad kukuvad vahel. Ja ma ei ĂŒtleks, et meie pikaajaliste tĂ€helepanekute pĂ”hjal oleksid odavad hostingud nagu hetzner oluliselt ebastabiilsemad kui EC2. Seega, kui te ei ole seotud Amazoni muude funktsioonidega â miks maksta rohkem? đ
Mis edasi?
Kui ma teid sel etapil veel okerr'ist liiga palju eemale ei peitanud â siis proovige! Otse sellel lingil saate siseneda (KlĂ”psake kohe!). Kuid pidage meeles â et demokonto on kĂ”igi jaoks ĂŒks, seega, kui te teete midagi â vĂ”ib keegi teine samal ajal teie tegevusele takistada. VĂ”i (parem) registreerige end lingi kaudu â kĂ”ik on lihtne, ilma SMSita. Kui te ei soovi kasutada oma tegelikku e-posti â vĂ”ite valida ĂŒhekordse, nĂ€iteks mailinator'i (soovitan ma ). Sellised kontod vĂ”ivad aja jooksul kaduda â kuid testimiseks sobib.
PĂ€rast registreerimist pakutakse teile koolitust (mitme mitte eriti keerulise Ă”ppeĂŒlesande tĂ€itmist). Algse limiidid on vĂ€ga vĂ€ikesed, kuid koolituse vĂ”i ĂŒhe serveri jaoks on neid piisavalt. PĂ€rast koolituse lĂ€bimist â limiidid (nĂ€iteks maksimaalne indikaatorite arv) tĂ”stetakse.
Dokumentatsioonis â kĂ”igepealt serveri osa ja kliendi jaoks (). Kuid kui midagi on arusaamatu â kirjutage aadressile support (at) okerr.com vĂ”i jĂ€tke pilet â pĂŒĂŒame kiiresti kĂ”ik lahendada.
Kui hakkate tĂ”siselt kasutama ja neid suurendatud limite ei piisa â kirjutage ka support'i, suurendame (tasuta).
Soovite installida okerr'i serveri oma serverisse? Siin on . Soovitame installida puhtale virtuaalkeskkonnale, siis saate selle hĂ”lpsasti installimis skripti abil teha. Oma virtuaalkeskkonnas â ei ole mingeid piiranguid :-). Ja jĂ€lle â kui on midagi â pĂŒĂŒame alati abiks olla.
Me tahame, et see projekt Ă”nnestuks, et maailm muutuks meie abiga usaldusvÀÀrsemaks. Tasuta tarkvara ja teenuste abil on maailm sĂ”bralikum ja areneb dĂŒnaamilisemalt. Allikaid saab tasuta hoida github'is, e-posti jaoks kasutada tasuta gmaili. Me kasutame tasuta klienditoe jaoks. Ăkski neist ei nĂ”ua serverite eest tasumist, ei ole vaja alla laadida ja konfigureerida ega tegeleda erinevate haldusprobleemidega. Iga uus projekt, iga meeskond â kĂ”ik on kohe varustatud nii e-posti, hoidlate kui ka CRM-iga. Ja kĂ”ik see on vĂ€ga kvaliteetne, tasuta ja koheselt kĂ€ttesaadav. Me tahame, et ka monitooring oleks nii â vĂ€ikesed ettevĂ”tted ja projektid saaksid tasuta kasutada okerr'i ja isegi sĂŒnni ja kasvu faasis omada usaldusvÀÀrsust nagu suurte tĂ”siste projektide seas.
Allikas: habr.com
