Hlavní navigace

Sběr dat se systémem Zabbix

22. 8. 2006
Doba čtení: 8 minut

Sdílet

V minulém článku z naší série o dohledovém systému jsme si nainstalovali Zabbix, serverovou část a také jeho frontend. V tomto volném pokračování se podíváme na to, jak sbírat různá data, po kterých jakožto informační maniaci dychtíme, abychom se jimi následně mohli probírat a kochat.

Serverová část Zabbixu má dle mého doufejme správného pozorování v podstatě tři možnosti, jak data sbírat. Jedna je pomocí SNMP, druhá pomocí aktivní kontroly možnosti připojení na určitou službu vzdáleného systému a třetí je pomoci agentů, tedy malého programu Zabbixu, která lokálně sbírá data vzdáleného systému a poskytuje je serverové službě Zabbixu. Myslím, že věnovat se kontrole pomocí SNMP z tohoto hlediska je zbytečné, budu se věnovat druhé a třetí možnosti. Tedy ne že bych SNMP zcela ignoroval, touto metodou taky monitoruji, při nastavování hlídaných vzdálených stanic se o této možnosti zmíním, rád bych však věnoval pozornost možnostem aktivní kontroly a pomocí agentů.

Instalace agentů Zabbixu

Na stránce projektu lze stáhnout Zabbix agenty pro většinu používaných operačních systémů. V dokumentaci je popsaná instalace Zabbix agenta v OS Linux , dalo mi však dost času, než jsem zprovoznil agenta i ve Windows, respektive tedy spustil. Ale chtělo to jen trošku hledání v dokumentaci.

Agent v OS Linux

Zabbix agenta pro Linux jsme si stáhli, teď jak ho pustit. Ukázkový konfigurační soubor je přiložen v adresáři Zabbixu, kde jsme Zabbix kompilovali. Zde v adresáři misc/conf najdeme soubor zabbix_zagentd.conf, který nakopírujeme do adresáře /etc/zabbix/  – pokud ještě neexistuje, vytvoříme jej. Obsah jsem moc neměnil, změny se týkaly především IP adres a podobně. Vypadat může tedy například takto (cesty k logu a PID jsem nechal defaultní):

Server=1.1.1.1                          #IP adresa, kde běží zabbix_server
Hostname=scot                           #NETBIOS jméno PC, kde běží zabbix_server
ListenIP=1.1.1.5                        #chceme,aby náš zabbix_agent naslouchal na této adrese ->
                                        # -> je-li v PC pouze 1 síťová karta, nastavení je irelevantní
UserParameter=mysql.version,mysql -V    #Aktivní kontrola MySQL

Zabbix agent v Linuxu vyžaduje uživatele, pod kterým bude spuštěn. Tedy si takového uživatele vytvoříme i s heslem – uživatel se bude jmenovat zabbix  :

useradd zabbix
passwd zabbix

Stejně jako v případě zabbix_serveru musíme zajistit, aby se nám zabbix_agentd spustil při startu sám. Řeším to opět přes xinetd démona. V /etc/xinetd.d/  jsem vytvořil soubor zabbix_agentd s následujícím obsahem:

# zabbix_agentd
service zabbix_agent
{
        socket_type     =  stream
        protocol        =  tcp
        wait            =  no
        user            =  zabbix
        server          =  /usr/local/bin/zabbix_agentd   #plná cesta k zabbix_agentd
        log_on_failure  += USERID
        disable         =  no
}

Po restartu xinetd démona by nám měl zabbix_agentd běžet. Opět můžeme ověřit pomocí telnetu na port zabbix_agentd :

telnet 1.1.1.5 10050

Běží-l zabbix_agentd na PC, objeví se nám něco jako :

Trying 1.1.1.5...
Connected to 1.1.1.5.
Escape character is '^]'.

Tak tedy už máme zabbix_agentd na Linuxu, podíváme se ještě na to, jak to rozběhnout na Windows …

Agent ve Windows

Je potřeba se rozhodnout, kde budeme mít umístěný log soubor Zabbixu a též konfiguraci agenta. Zpravidla nejspíše v c:\zabbix\. Do něj nakopírujeme konfigurační soubor pro zabbix_agentd, můžeme použít i linuxový. Samozřejmě ho ale pak upravíme, aby cesty uvedené v konfiguračním souboru souhlasily s naším adresářem. Například log soubor nebude mít cestu /var/tmp/zabbix_agentd.log, ale c:\zabbix\zabbix_agentd.log. Mimo tyto úpravy cest jsou ještě nutné úpravy IP adresy, na kterém má zabbix_agentd naslouchat, viz předchozí bod instalace v OS Linux, ale to je určitě zcela jasné. Nuže, konfiguraci máme, zabbix_agenta máme staženého a uloženého taky, myslím, že už bychom se mohli pustit do toho… Instalace zabbix_agenta je prostá a jednoduchá. V příkazovém řádku napíšeme něco takového:

ZabbixW32.exe --config c:\zabbix\zabbix_agentd.conf install

Tímto příkazem oznámíme cestu, kde má hledat konfigurační soubor a kam se nainstaluje. Nainstaluje se jako služba windows, tam ho najdeme a službu spustíme.

Frontend Zabbixu

Pustíme si náš oblíbený internetový prohlížeč a zadáme adresu našeho Zabbixu – viz první článek

login_zabbix

Jako bych to slyšel – jaký je login a heslo pro první přihlášení, že? Není to nic složitého, login je admin, heslo žádné není. Je-li vše dobře správně nakonfigurováno, jsme přihlášeni v systému.

Veškeré nastavování, přidávání a podobně je v menu Configuration. Zde budeme nastavovat vše, co se týká monitorování zařízení a s ním spojených úkonů. Jako první věc bychom si měli sledované prvky sítě přidat do Zabbixu.

V tomto menu konfigurace si vybereme Hosts. Kliknitím na Create host přidáme naši první oběť. Vytvoříme si řekněme PC, které se jmenuje cernobyl, jeho IP adresa je 1.1.1.10  – tuto volbu aktivujeme zaškrtnutím volby Use IP address. A nyní volba Link with Template, dle jakých pravidel bude náš cernobyl kontrolován, respektive s jakým pravidlem bude svázán. Na začátku tohoto článku jsem se o tom zmínil. PC budou zpravidla kontrolovány spíše pomocí agentů Zabbixu, tedy pro tento případ nás zajímají volby Windows_t a Unix_t. Nemáme-li nebo z nějakého důvodu ani nemůžeme na vzdálený PC instalovat Zabbix agenty, dá se použít volba Standalone_t. V tomto případě je vzdálený systém kontrolován na dostupnost určité služby – ftp, ssh, smtp, http, pop3, imap a nntp. Povolení nebo zakázání kontroly těchto jednotlivých služeb si ukážeme později. Další možnosti je monitoring pomocí SNMP. Je to vhodné, pokud je vzdálený prvek například switch s podporou monitoringu pomocí SNMP. Jako poslední možnost je monitoring pomocí MySQL_t. Tuto možnost ale v našem jednoduchém příkladu nevyužijeme.

create_host1

PC jménem cernobyl tedy máme vytvořený, přesněji přidaný v Zabbix serveru. Pro jednoduchost a přehlednost ukázky jsem jeho typ zvolil jako Standalone_t. Na tomto počítači nám však poběží pouze služba FTP a například ještě SSH. Při kontrole tohoto počítače Zabbix serverem by na ostatní služby definované tímto typem upozorňoval na jejich nefunkčnost. Druhy kontrolovaných služeb se však dobře dají povolit nebo zakázat. Tato možnost je v menu Configurations->Triggers. V menu Host vybereme nas cernobyl. Zaškrtáme políčka u jednotlivých položek, které chceme zakázat, a pod touto tabulkou klikneme na volbu Disable selected. Tak i toto bychom měli…

triggers_host1

Nyní bychom si mohli data, které náš Zabbix server poctivé sbírá, zobrazit graficky. Jak na to ? Jednoduše, přes menu Graphs. Volbou Create graph si připravíme graf, respektive vytvoříme si objekt, na kterém se budou naše data zobrazovat. Dle mého názoru jediné, co je nutné pro vyplnění, je políčko Name, ostatní políčka a jejich hodnoty mohou být ponechány výchozí. Tedy jako na následujícím obrázku.

create_graph1

Potvrzením Save graf uložíme a volbou Edit se dostaneme do menu, tedy lépe řečeno na stránku, kde graf (objekt grafu) provážeme s jednotlivými hodnotami PC jménem cernobyl, které náš Zabbix server uložil do své databáze. Pro přidání určitého typu záznamu a jejího grafického rozhraní na tento grafický objekt klikneme na Add Item. Pod naším objektem budoucího grafu se otevře menu, kde si v menu Parameter rozbalíme a vybereme údaj z databáze pro provázání a zobrazení v našem grafu. Zobrazí se data stylu host:parametr. Například cernobyl:Processor load je aktuální zatížení procesoru PC jménem cernobyl. Jak jednoduché. Pokud budeme mít více grafických znázornění v jednom grafu, je vhodné ještě změnit barvu/druh čáry v grafu volbou Color/Draw style. Ostaní hodnoty jsem též nechával výchozí. Volbou Save uložíme. Náš graf, v tomto případě zobrazení procesů, může vypadat například takto:

graf_procs1

Monitorujeme-li nějakou rozsáhlejší, větší síť, pak je vytvoření mapy v Maps  další dobrou volbou. Pomocí Create map si v následujícím menu jednu mapku vytvoříme. V kolonce Name uvedeme, jaké jméno má naše mapka mít, případně ještě výšku/šířku, o další nastavení relativně není třeba se zajímat. Uložíme pomocí Save. Mapu si editujeme, tedy upravíme objekty v mapě, pomocí Edit. Add element vložíme jednotlivé součásti, možnosti nastavení každého jsou pro jednoduchý popis na následujícím obrázku.

maps_element1

Za povšimnutí stojí především volba ikony elementu (Icon OFF/Icon on) a jeho souřadnice na mapě (Coordinate X/Coordinate Y). Pokud sledované zařízení je PC, jeho ikona může být typu Workstation, dle mého mínění si každý najde svou ikonku. Dále souřadnice. Na obrázku před tímto odstavcem můžete vidět pod polem nastavení našeho Černobylu jakýsi rastr, po krajích očíslovaný. Právě tyto čísla jsou možné souřadnice X/Y. Objekt vložíme na mapku pomocí Save.

Řekněme, že na naší mapce máme umístěno již několik objektů. Jak je spojit, aby se nám naše síť zrodila? Podobně,jako když jsme tyto elementy vytvářeli, jen je tato volba o trochu níže a jmenuje se příhodně Create connection. Vytváří vlastně spojení dvou na sobě závislých bodů, například hub/server. V menu se vybere pomocí Link status indicator podmínka, která bude indikovat funkčnost nebo nefunkčnost spojení těchto dvou objektů. A pozor:hlídá se PRAVDA/NEPRAVDA (TRUE/FALSE) indikátoru. Tedy například barva linky pro OFF bude zelená, jelikož podmínka FTP server is down je nepravdivá, když je možné se na cílový objekt připojit FTPkem. Save uloží nastavení spojení a pokud je vše OK mezi našimi objekty, je mezi nimi zelená spojnice. Zde jsem pro pouhou ukázku uvedl spojení cernobyl-cernobyl, což je jinak v praxi nesmysl, že?

root_podpora

maps_links1

Tak a hotovo. Máme hlídané objekty, jejich grafy i krásnou mapku. V hlavním menu Monitoring si dle chuti můžeme vybrat nějaký graf nebo celou mapku… Ovšem to časem přestane bavit a vyvstane touha – co kdyby grafy a mapka nebo mapky byly na jedné stránce společně? Tvůrci Zabbixu mysleli i na tuto vlastnost. Grafy a mapky spolu s dalšími užitečnými věcmi můžeme mít na jedné obrazovce, Zabbix tuto možnost pojmenovává příznačně Screens. Nastavení je opět v menu Configuration->Screens. Nejprve si ji musíme vytvořit Create Screen. Nic složitého nás nečeká, pouze jméno a počet řádků a sloupců. To nejlepší teprve přijde při editaci, přesněji řečeno při vkládání objektů. Naše obrazovka bude rozdělena do řádků a sloupců, které jsme jí nadefinovali ve vlastnostech. Pokud zatím buňka nemá nic přiřazeno, je v tomto políčku Change, čímž buňce přiřadíme například prve vytvořenou mapku, která se jmenuje Planeta Země. Možnosti jsou například Resource  – typ zdrojů vkládaného objektu, jako například graf, mapa, text a podobně. Pokud jako zdroj dat vybereme Resource, jsou níže v seznamu uvedeny přímo naše grafy/mapy. Samozřejmě se jinak vše liší dle zvoleného typu zdroje (Resource). Další příjemná věc je, chceme-li mít například ještě náš graf přes celý řádek, zvolíme hodnotu Column span takovou, kolik máme sloupců. Uložíme a můžeme se vrhnout například na přidávání grafů do 3 a 4 buňky. V konečném výsledku to může vypadat například takto:

screens_komplet

A nyní bych si dovolil říci, že vše je hotovo a připraveno ke kochání se informacemi. Samozřejmě to není vše, co Zabbix nabízí. Článek jsem psal ve smyslu rychlého a jednoduchého průvodce Zabbixem a seznámení s ním, není účelem konkurovat přímo manuálovým stránkám, na které lze najít další užitečné možnosti a vlastnosti.

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