Hlavní navigace

Icinga: monitorování sítí a serverů

13. 5. 2011
Doba čtení: 8 minut

Sdílet

Služby mohou běžet bez problémů několik let, ale dřív nebo později každý administrátor serverů nebo správce sítě na nějaký problém narazí. Pak začíná souboj o to, kdo na to přijde dřív, jestli zákazník nebo admin. Monitoring má nahrávat do karet adminovi a když monitoring, tak pořádný se skvostným jménem Icinga.

Byl pozdní večer…

Administrátor Karel sedí na terase při západu slunce a užívá si prvních slunečních paprsků tohoto roku. Říká si, že tuhle idylku snad může zkazit jenom manželka, ale ta teď není doma, a tak má Karel čas jen pro sebe. Jenže jak už to u podobným příběhů bývá, jeho autor si pro čtenáře připravil zvrat. Náhled začne Karlovi zvonit telefon. Koukne, a je to jeden z jeho nejlepších klientů. Volá, aby mu řekl, že jeho služba prý už hodinu nejede, a chce vědět, co se pro nápravu dělá. Teď přichází na řadu fráze, kterou se Karel naučil za těch posledních pár měsíců, kdy začal se správou serverů, „problém hledám, ale zatím se moc nedaří, během pár minut vám zavolám“.'

'Po odložení telefonu vystřídala pocit pohody jemná nervozita. Karel netušil, kde je problém a hned letěl k nejbližšímu počítači, aby zkusil něco najít, ale ejhle, SSH nejede. Cesta do serverovny je dlouhá a jelikož Karel přes hodinu nevěděl, že se vůbec něco děje, určitě se nebude cítit dobře, až klientovi zavolá, že ještě minimálně dvě hodiny to nepůjde.

Zatím co Karel pojede limitně k devadesátikilometrové rychlosti do serverovny, my si povíme, co že se to vlastně stalo. Už před dvěma měsíci se s tímto serverem začalo dít něco divného. Jednou dokonce nepochopitelně stoupl load nad 20 a všechny služby byly neskutečně pomalé. Karel si tenkrát říkal, že to nic nebude a server v klidu restartoval. Po naběhnutí bylo vše v pořádku a server běžel, jak má. Byl to server zákazníka, který se snažil tlačit cenu dolů, takže se v něm krčil jen jeden malý disk. Karla tenkrát nenapadlo, že by mohl být zakopaný pes právě v něm a problému dál nevěnoval pozornost.

Disk si po restartu serveru přemapoval pár sektorů, ke kterým se snažil dostat, seč mu síly stačily. Snaha o takovéto nestandardní chování chce čas, a tak chvilku trvalo, než se operační systém dočkal dat, o která zažádal. I když se disk snažil volat o pomoc pomocí S.M.A.R.T., nebyl nikdo, kdo by ho poslouchal. Po dvou měsících to vzdal a přestal reagovat úplně.

Karel se po hodině a půl dostal do serverovny, kde zjistil přesně to, co je popsáno výše. Deska hlásí, že nemá z čeho bootovat. Karla polije studený pot a začne se modlit, aby nic nebylo se zálohami. Dalších několik hodin nemohl sehnat žádný disk a když už ho měl, trvalo dvě hodiny, než se na něj nahrály zálohy. Celkově byl server nedostupný osm hodin a čtyřicet minut. Karel k ránu volal svému klientovi, že už je vše v pořádku, oznámil mu, že problém dělal disk, a tak obnovil den staré zálohy. Malinko naznačil, že by bylo dobré koupit disk ještě jeden a klient uznal, že to je dobrý nápad a hned zítra to zařídí.

Kde se stala chyba

Dávat jeden disk do serveru není sice nic bezpečného, ale mnoho serverů na tom bez problémů běží, zvlášť když existuje nějaký krizový scénář, jak případný výpadek řešit. V případě Karla a vadného disku byl problém jinde. Karel měl už přes dvěma měsíci běžet do serverovny a disk vyměnit. Se servery pracoval teprve krátce a i když slyšel různé více i méně zábavné příběhy, nevěřil, že by se mu mohlo stát něco podobného. Bohužel Karel si neuvědomil, že problémy se stávají a často velmi nečekaně a nejhorší je, když o nich administrátor neví.

V tomto bodě je nejdůležitější zjistit včas, když se začne něco dít. Disky se umí samy hlídat a dělají to dobře. Navíc se nestává zas tak často, aby odešly z ničeho nic. Administrátor by měl vědět o každém kousku hardwaru, ať už jde o podivné chování disku nebo o nestandardní napětí na jedné z napájecích větví zdroje. Kdyby Karel pravidelně kontroloval povrch disku a hlídal údaje ze S.M.A.R.T.u, vyměnil by disk už dávno a nečekané situaci by nikdy nedošlo.

Icinga

Monitorování je komplexní záležitost a jeho spolehlivost odráží na spolehlivosti zařízení. Navíc na monitoring existuje mnoho skvělých nástrojů, které jsou odzkoušené a používají se i ve velkých firmách. Kdyby vás náhodou napadlo si nějaký takový nástroj napsat, určitě si předtím vyzkoušejte již něco existujícího. Minimálně získáte inspiraci, ale spíše zjistíte, že raději zůstanete u jednoho z existujících řešení.


Tento článek je pojat jako motivační úvod k seriálu k monitorovacímu nástroji Icinga a měl by čtenáři ukázat, že se monitoring vyplatí i u na první pohled nedůležitých parametrů. Icinga je fork Nagiosu, od kterého se odtrhla po vnitřních neshodách s hlavním vývojářem, který nechtěl zařazovat některé užitečné patche. I přes změnu jména je Icinga Nagios jak vyšitý, ale disponuje několika vlastnostmi, které stojí za to umět použít. Jinak jsou Nagios a Icinga kompatibiliní. To znamená, že konfigurační soubory pro vaše servery, stejně jako pluginy, můžete použít u obou.

Seriál bude psán od píky. Sám jsem Icingu začal používat, aniž bych znal Nagios jinak než z doslechu. Dovolím si předpokládat, že takových jako já je víc.

Od píky

Icinga samozřejmě z Nagiosu zdědila všechno dobré, takže to co na dalších řádcích popíši, najdete i v Nagiosu. Monitorovací daemon má nevděčnou činnost. Monitorování dokáže zabrat mnoho systémových prostředků a odrazí se tak na výkonu serveru. Přitom většina měření dopadne dobře, a tak se dá říct, že prošlo zbytečně. Pokud začnete měřit stovky zařízení a u každého deset hodnot, zjistíte, že už máte na monitoring jeden či dva servery vyhrazeny. Zároveň je monitoring službou, která nesmí selhat v žádném směru. Nesmí se stát, že vám přijde falešný poplach nebo ještě hůř, že u nějaké hlídané hodnoty nebude odhalena chyba.


Icinga je z tohoto pohledu navržena dobře a o samotné monitorování se nestará. Po instalaci Icingy zjistíte, že je rozdělena na samotného daemona a na pluginy. Dalo by se říci, že běžící daemon jen sbírá data a pokud mu nějaký plugin oznámí chybu, tak podle konfigurace na ní zareaguje třeba tak, že pošle e-mail na zadaný kontakt nebo spustí nějaký skript. Icinga nemusí oznamovat problém hned. Ne u všech sledovaných parametrů musí jeden výkyv nutně znamenat problém. Signál u WiFi karty může zakolísat z mnoha důvodů a ty se nám nikdy nepodaří vysvětlit, tak proč by hned první měření mělo otravovat s e-mailem?

Pokud jste někdy zkoušeli napsat něco na monitorování, narazili jste u většího množství sledovaných parametrů na problémy s výkonem. I to Icinga elegantně řeší a jednotlivé kontroly plánuje dopředu, takže se nestane, že server začne kontrolovat všech 100 hostovaných domén najednou, mezi testy jsou odstupy. Toto chování je samozřejmě konfigurovatelné, ale i když jde jen o několik sekund, tak díky němu ani nepoznáte, že nějaký monitoring na pozadí běží.

Pluginy jsou základ

Skutečnou „killer-feature“ jsou ovšem pluginy. Jde o standardní unixové programy nebo skripty, které si Icinga spouští a podle toho co vrátí reaguje. Takže když plugin vrátí stavový kód 0, Icinga ví, že je všechno v pořádku. Když je stavový kód 2, znamená to kritickou chybu a je nutné bít na poplach. Kromě OK a kritického stavu je tu ještě varování a neznámá chyba. Zatím varování může být třeba mírně zvýšená teplota disku, kritickou chybou může být selhání pole RAID. Neznámá chyba pak znamená, že je něco s pluginem, že nefunguje správně.

Pro Nagios a tím pádem i pro Icingu existuje nepřeberné množství pluginů od sledování hodnot získaných z SNMP protokolu, přes hlídání hodnot na různých senzorech až po kontrolu volného místa na disku. V zásadě se dá říct, že na serverech zaměřených na pluginy do Nagiosu, najdete všechno možné i nemožné jak pro Linux, tak pro Windows. Pokud by se stalo, že musíte hlídat nějaký obecně neznámý hardware nebo dokonce i nějaký svůj výtvor, stačí vzít oblíbený skriptovací jazyk a plugin je za čtvrt hodinky na světě.

Servery, sítě, to Icinga neřeší

Ne všechny měření dokáže vždy dělat jeden stroj a ne vždy je to také vhodné. Proto Icinga nabízí řadu způsobů, jak pluginy spouštět v režii někoho jiného a přitom ona sama udržuje jen databázi se stavem. Icinga disponuje tzv. aktivními a pasivními měřeními. Aktivní měření provádí sama. Nemusí jít nezbytně jen o kontroly lokálního stroje, ale má nástroje k tomu, aby mohla pluginy spouštět i na ostatních strojích. Důležitým prvkem tu je fakt, že při aktivních měřeních se Icinga stará o kontroly sama. Sama si je plánuje a sama spouští.

root_podpora

Na druhou stranu pasivní kontroly jsou mnohem zajímavější. O ty se stará daemon na jiném serveru, aniž by Icinga o čemkoli věděla. Daemon takto posbírá balík informací a ten pak odešle na server s Icingou. Ta pak s informacemi naloží stejně, jako kdyby si je získala sama. Výhoda tohoto způsobu je zřejmá, prakticky nulové nároky na server, kde Icinga běží.

Závěr

Výpadkům se nevyhnete, ale můžete se vyhnout tomu, aby se o nich váš klient dozvěděl. Icinga je jenom jedno řešení, ale pokud započítáme i Nagios, je masově rozšířená a dokáže monitorovat spolehlivě neskutečné množství serverů a jejich parametrů. Když si upravíte pluginy na vlastní potřeby, aby dokázaly hlídat specifické chování vaší konfigurace, zjistíte, že i změny konfigurace serveru nebo jeho aktualizace už tolik nebolí, protože máte přehled o tom, co funguje a co to nepřežilo. Monitoring by pomohl Karlovi v úvodu tohoto článku a stejně tak pomůže vám.

Odkazy

Byl pro vás článek přínosný?

Autor článku

Adam Štrauch je redaktorem serveru Root.cz a svobodný software nasazuje jak na desktopech tak i na routerech a serverech. Ve svém volném čase se stará o komunitní síť, ve které je již přes 100 členů.