Serverių monitoringas su zabbix

Vasara – atostogų metas. Prieš atotostogas pasirūpinau, kad ištikus bėdai bet kada ir iš bet kur galėčiau atstatyti serverio veiklą. Tik va kaip sužinoti, kad iškilo problema? Skambutis iš kliento – variantas nelabai tinkamas. Taigi pradėjau ieškoti serverių monitoringo sprendimo. Ilgą laiką naudojau Munin tačiau tai tiesiog grafikų braižymas pagal numatytus senarijus. Kiek teko girdėti iš stambesnio kalibro monitorinimo sistemų yra Nagios ir Zabbix. Nagios kažkada seniau esu bandęs pasijungti, bet kažkaip labai ten sunkiai sekėsi. Tai prisiminęs čiupau Zabbix. Apie tai truputį papasakosiu.
Visa sistema paremta serverio – kliento principu. Pirmiausia įsidiegiame serverį, vėliau visuose serveriuose kuriuos norėsime stebėti – diegiame klientus (agentus). Ubuntu sistemoje su diegimu neturėjau jokių problemų, tad nemanau, kad reikia kažką papildomai pažymėti, nebent tik tai, kad frontend dalis yra source failuose kuriuos parsisiųsti galime iš oficialių šaltinių. Frontend dalį galima įdiegti pasinaudojant ir komandine eilute, tačiau kartu diegiamas ir Apache web serveris, kurio aš nenaudoju. Frontend dalis parašyta su PHP, tad pasileisti su PHP-FPM ir Nginx ilgai neužtruko.
Viską įdiegus ir paleidus džiaugtis grafikais dar negalėsime, reikia viską konfigūruoti… Taigi pirmiausia pridedant naują stebimą serverį reikia nurodyti šablonus, pagal kuriuos bus renkami duomenys. Šablonai iš esmės susideda iš stebimų parametrų (items), grafikų (jie braižomi pagal tam tikras taisykles ir duomenis kurie gaunami iš parametrų), trigerių (taisyklės kurios pagal parametrų reikšmes parodo ar yra problemų). Visi šie elementai viename šablone gali būti grupuojami pagal programas. Šioje vietoje reikia atsiminti vieną dalyką, kad serveriui priskiriant daugiau negu vieną šabloną reikia žiūrėti, kad elementai nesidubliuotų.
Sistemoje jau būna paruoštų daug šablonų, tačiau man patogiau pasirodė kurti savo šablonus kuriu kiekvienas apima kažkurią vieną sritį. Tarkime turiu šablonus CPU, RAM, MySql, FTP ir panašiai. Turėdamas skirtingų konfiguracijų serverius tiesiog priskiriu šablonus kurie tai konfiguracijai tinkami, vietoje to kad kurčiau vieną šabloną tam serveriui.
Priskyrus šablonus pradedama rinkti informacija, o grafikus galime dėliotis kada panorėsime, jie braižomi dinamiškai. Duomenys saugomi duomenų bazėje, mano atveju tai yra MySql. Visus grafikus galima susidėti į „ekranus“ kuriuose informacija atnaujinama kas 30 sekundžių, tik čia yra viena bėda, tas atnaujinamas yra refresh, be jokių ajax.

Kaip matote yra laiko juosta kurios pagalba galime peržiūrėti tam tikro periodo duomenis.
Vienas iš naudingų dalykų yra tas, kad sistema gali stebėti tam tikrų failų checksum ir jiems pasikeitus pagal numatytus trigerius pranešti apie tai mums. Stebimi failai gali būti bet kokie, nuo /etc/passwd iki servisų konfiguracinių failų.
Dar viena pravertusi dalis yra internetinių svetainių monitorinimas. Jei mūsų web serveris veikia, dar nereiškia, kad lankytojams pateikiamas tinkamas turinys. Taigi galime susikurti testus kurie susideda iš numatytų žingsnių. Žingsnį sudaro url adresas, timeout reikšmė, numatomas response code (200 404 ir pan) bei tekstas kurio reikia ieškoti turinyje. Vėliau testų rezultatai atvaizduojami grafikuose. Ten matomas atsako laikas bei parsiųstų duomenų kiekis.
Pranešti apie trigerių sugeneruotas žinutes yra kelios galimybės: el. paštas, jabber, sms arba paties rašytas skriptas/programa kurią paleidus bus atliekami numatyti veiksmai (pavyzdžiui sms siuntimas per trečiųjų šalių serverius).
Visas sistemos galimybes nupasakoti tikrai sudėtinga, mat jų tikrai labai daug, o ir pats visko nespejau peržiūrėti iki savo atostogų. Verta paminėti, kad viskas iki mažiausių smulkmenų konfiguruojama, tad skyrus truputį savo laiko galite pasigaminti monitorinimo sistemą tokią kokios visada norėjote. Tiesa nusiteikite skirti savo laiko ir pačioje pradžioje, nes pirmą kartą prisėdus kyla daugybė klausimų, o atsakymai kažkur giliai instrukcijose (rimti vyrai jų neskaito :D). Zabbix ruošia ir 2.0 versiją kuri kažkada išeis, gal tuomet atsiras daugiau tvarkos nustatymų languose, nes manau dabartinė situacija ne vieną naujoką gali atbaidyti ilgam.
Išvada paprasta – Zabbix yra puikus ir itin lankstus serverių ūkio monitoringo sprendimas kuris nieko papildomai nekainuoja.

Žygimantas

Lead developer at Soundest. Zend Certified Engineer.

More Posts - Website

Žymos: , ,

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *

Galite naudoti šias HTML žymas ir atributus: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>