LINUXSOFT.cz Přeskoč levou lištu

ARCHIV



   

> Dohledový systém Zabbix IV - pokročilé metody dohledu

V dalším díle seriálu o dohledovém systému Zabbix se podívejme na pokročilejší možnosti monitoringu a vyhodnocení dat, s čímž souvisí tvorba grafů a map. Podíváme se taktéž, jakým způsobem rozšiřovat možnosti Zabbixu pomocí externích skriptů. V poslední části dnešního dílu si také ukážeme, jak se tvoří akce v případě vzniklého problému.

9.5.2013 06:00 | Antonín Kolísek | Články autora | přečteno 15137×

V minulém díle jsme se seznámili s tvorbou šablon, skupin a testů. To samozřejmě neznamená, že je nutné vždy zakládat a tvořit vlastní testy pro monitoring. Zabbix nabízí celou řadu již připravených šablon, které můžeme doplnit, upravit, a nebo použít beze změn. Často v nich najdeme přesně to, co potřebujeme již připravené. Při konfiguraci nebo zakládání hosta, itemu, triggeru nebo prakticky čehokoli nabízí Zabbix funkci Clone díky které je možné, jak již z názvu vyplývá, naklonovat a upravit, co potřebujeme. Vyjmenuji alespoň ty nejzajímavější šablony, které Zabbix nabízí ve výchozím nastavení.

  • App agentless : monitoring dostupnosti běžících aplikací/služeb (FTP, HTTP/HTTPS, LDAP, NTP, NNTP, SMTP, POP3, IMAP, SSH, ...)
  • App MySQL : monitoring stavu a činnosti MySQL databáze
  • App Zabbix server : informace o interním stavu Zabbix serveru
  • IPMI : informace o IPMI zařízení (v tuto dobu pouze Intel SR1530,SR1630)
  • SNMP : monitoring zařízení, některých parametrů OS (zatím pouze Windows a Linux)
  • OS : široká řada systémových informací (Windows, Linux, Solaris, AIX, FreeBSD, OpenBSD, HP-UX, Mac OS X,...)

Pokud Zabbix neumí co potřebujeme

Může se stát, že potřebujeme sledovat nějaké informace, ale dohledový systém nám nenabízí metody, jak se k požadovaným informacím dostat, a nebo nejsou informace podle našich představ. V takovém případě máme několik možností. Můžeme se podívat, zda stejný nebo podobný problém již někdo neřešil ( a většinou zjistíme, že již tento problém řešen byl ), a nebo přistoupit k vlastnímu řešení. Zabbix umožňuje využít externích skriptů a nebo pomocí API doprogramovat vlastní funkce. My se budeme držet první mnohem schůdnější metody, tedy využití externích skriptů. První varianta je komplikovaná v tom, že musíme spoléhat na neměnnost API a také řešit případné změny s každou aktualizací.

Externí skripty - příprava

Nejprve je nutné zkontrolovat nastavení serverové části dohledového systéme Zabbix, jestli je připravený pro používání externích skriptů. Pokud jsme při instalaci postupovali dle návodu (Dohledový systém Zabbix II. - instalace) nemusíme se o další nastavení starat. V opačném případě si je raději zkotrolujeme.

  • musí existovat adresář /etc/zabbix/externalscripts, který bude obsahovat veškeré externí skripty
  • v /etc/zabbix/externalscripts nastavíme ExternalScripts=/etc/zabbix/externalscripts

Píšeme náš první skript

Volbu jazyka nechávám na každém, dle vlastních preferencí. Je možné použít zcela libovolný "jazyk" (Bash, Perl, Python, Ruby,...). Důležité je dodržet s jakými argumenty skript / program budeme volat a jaké hodnoty bude vracet. Externí skript je volán následovně.

    skript[ARG_1,...,ARG_N]

  • ARG_1,...,ARG_N jsou argumenty, se kterými je skript volaný. Argumentem může být libovolný řetezec nebo podporované makro
  • pokud skript někam zapisuje pozor na oprávnění zabbix_server nebeží pod uživatelem root, ale pod uživatelem zabbix (nebo jiným) s omezenými právy
  • skript je vhodné ladit pod uživatelem, pod kterým běží proces zabbix_server

Jednoduchý skript by mohl vypadat dle následující ukázky. Uvádím praktický příklad, který využijeme v další části seriálu. Jedná se o skript pro sledování vytíženosti síťového pásma. Strukturu skriptu nebudu vysvětlovat, abych příliš nepřekročil rámec seriálu. Stačí, když budeme věřit, že funguje, jak má. Poznamenám jen, že poslední řádek skriptu (echo "$BPS") je velmi důležitý. Skript by měl v každém případě končit návratovou hodnotou a neměl by být přerušený voláním exit,aniž by nepředal nějakou hodnotu na standartní výstup (STDOUT). Vykonaní externího skriptu je časově omezené. Výchozí doba je nastavena v zabbix_server.conf na 3 vteřiny a maximální doma může být 30 vteřin. Je nutné si uvědomit, že čím náročnější (časově delší) je externí skript, tím více bude Zabbix vytížen, proto je vhodné přikročit k externím skriptům pouze v krajním případě.

    #!/bin/bash
    #
    # Skript pro mereni BPS.
    #
    # Pouziti: net_traff IPADDR DEV {in,out}
    #
    # <antonin@kolisek.cz>
    
    TMP_DIR=/tmp/zabbix
    
        if [ ! -d $TMP_DIR ];
        then
            mkdir $TMP_DIR
        fi
    
    
        C_TRAF=$(/usr/local/bin/zabbix_get -s $1 -k net.if.$3[$2,bytes])
        C_TIMES=$(date +%s)
    
        if [ -e $TMP_DIR/$1_$2.$3 ];
        then
            P_TRAF=$(cat $TMP_DIR/$1_$2.$3 | awk '{print $2}')
            P_TIMES=$(cat $TMP_DIR/$1_$2.$3 | awk '{print $1}')
            echo "$C_TIMES $C_TRAF" > $TMP_DIR/$1_$2.$3
        else
            echo "$C_TIMES $C_TRAF" > $TMP_DIR/$1_$2.$3
            echo "0"
    
            exit
        fi
    
        BPS=$(echo "(($C_TRAF-$P_TRAF) / ($C_TIMES-$P_TIMES)) * 8" | bc)
    
        if [[ "$BPS" =~ "^[0-9]+$" ]];
        then
            BPS="0"
        fi
    
        echo "$BPS"
    

  • ve skriptu byl použitý nástroj zabbix_get - tento nástroj slouží k čtení dat se vzdáleného Zabbix agenta. Syntaxe programu je následující:

  • zabbix_get -s HOST_IP -k ITEM_NAME[ARG]

Založení nového itemu

Externí skript je pouze prvním krokem, a aby jsme mohli využít Externích testů, musíme založit odpovídající Item. Postup jsme probrali v minulém díle seriálu. Pro zopakování uvádím i názorný příklad. V našem případě se bude jednat o test přenosového pásma na síťovém rozhraní (eth0). Budeme muset založit Item zvlášť pro odchozí a příchozí směr viz následující obrázek.

Zabbix agent - uživatelské rozšíření

Vedle výše uvedených možností nabízí Zabbix ještě jednu možnost, jak přidávat vlastní funkce. Pomocí rozšíření Zabbix agenta. Princip je velmi jednoduchý. Konfigurační soubor agenta zabbix_agentd.conf obsahje položku UserParameter=<key>, <command>, které může obsahovat libovolné pořadí příkazů viz následující příklad, který si v zápětí vysvětlíme.

    UserParameter=vfs.folder_size[*],du -shb $1 | cut -f1

Zabbix ve fázi, kdy píšu tento seriál, neobsahuje metodu, jak určit velikost složky. Obsahuje metody na určení velikosti souboru, ale co když potřebujeme velikost celé složky? Externí skript by byl v tomto případě krajně nevhodný. Můžeme s výhodou použít rozšíření Zabbix agenta. V první části definujeme název a řekneme, že budeme předávat argumenty [*]. Dále následuje sled příkazů, jejichž výstupem bude výstup Zabbix agenta. Po každém vložení vlastního testu je nutné agenta restartovat. Jestli vše funguje ověříme následujícím krokem.

    shell> zabbix_get -s 127.0.0.1 -k vfs.folder_size[/tmp]

Grafické znázornění dat

Naměřená data a stav sledovaných zařízení můžeme zobrazit v grafické podobě. Máme na výběr dvě možnosti. První možností je znázornění grafem, kde vidíme aktuální stav i historii. Druhou možností je zobrazení pomocí mapy. Tato možnost je vhodná pro znázornění celé infrastruktury a stavu konkrétních zařízení.

Tvorba grafů

Zabbix umožňuje naměřené informace prezentovat pomocí grafů. Máme možnost využít automaticky generovaného grafu, nebo si vlastní graf vytvořit k obrazu svému. V praktickém příkladě se podívejme, jak postupovat při tvorbě grafu.

  • Configuration -> Templates -> moje_sablona:Graphs -> Create graph

V příkladu vidíme veškeré vlastnosti grafů, které můžeme ovlivnit. Po nastavení velikosti grafu a jména můžeme zvolit, co vše se bude v grafu zobrazovat (legenda, čas, triggery ). Dále pak můžeme nastavit maximum a munimum pro osu Y, a nebo nechat meze automaticky vypočítat Zabbixem. V sekci Items vybereme, to co bude graf zobrazovat. Zde máme možnost ovlivnit funkci pro výběr dat (průměr, maximum, minimum, vše), dále styl grafu, barvu a umístění osy Y. Výsledkem vznikne graf podobný tomu našemu. V grafu je možné stejně jako v automaticky generovaném grafu zoomovat a pohybovat se v určitém časovém období, což závisí na délce historie a délce trendů, které máme nastavené pro konkrétní Item.

Tvorba map

Zajímavým způsobem, jak prezentovat v Zabbixu aktuální stav monitorovaných zařízení, je použití map. Mapa graficky znázorňuje infrastrukturu monitorované sítě. Můžeme tak mít přehled nejen o stavu zařízení, ale také o jejich umístění a závislosti na jiných aktivních prvcích počítačové sítě. Při tvorbě mapy nejprve musíme definovat velikost a nastavit základní parametry. Většina nastavení se týká grafické podoby. Jako mapový podklad můžeme použít obrázek. Při aktivaci volby Advanced labels může definovat popisky (label) jednotlivých elementů mapy a jejich umístění.

  • Configuration -> Maps -> Create map

Po založení mapy můžeme přidávat jednotlivá zařízení tzv elementy. U Každého elementu máme možnost nastavit určité vlastnosti:

  • Type : typ elementu (host, mapa, trigger, skupina, obrázek)
  • Label : popis elementu
  • Label location : umístění popisu
  • další paramentry se týkají vlastností ikon pro jednotlivé stavy nebo-li jak budeme graficky vyjadřovat konkrétní stav (Problem, Disables, Maintenance,...)

Jednotlivé prvky můžeme propojovat pomocí Linky a vyjádřit tak propojením vztah mezi jednotlivými elementy. K propojům je možné uvádět popisky a rozlišit je barvou a stylem čáry. Můžeme tak rozlišit optické, metalické a bezdrátové sítě.

  • v Monitoring -> Maps najdeme všechny naše mapy
  • mapy mohou být společně s grafy použity při tvorbě Screens tzv dohledových obrazovek čemuž se budeme věnovat v příštím díle

Vybereme-li v mapě konkrétní element máme možnost provádět určité akce (Scripts), které jsou definovány v nabídce Administration -> Scripts. Jedná se o jednoduché příkazy, které můžeme spouštět na straně serveru nebo pomocí Zabbix agenta na vzdáleném hostu a výstup příkazu Zabbix zobrazí ve webovém rozhraní. Při tvorbě skriptů je nutné dbát na několik zásad:

  • pozor na práva, v něterých případech bude nutné použít program sudo
  • je vhodné používat absolutní cesty k programům
  • pozor na SELinux

Akce

Naměřená data a stav jednotlivých zařízení můžeme sledovat přes webové rozhraní. U dohledového systému předpokládáme určitou míru samostatnosti. V případě nějakého nežádoucího stavu chceme, aby Zabbix reagoval na vzniklou situaci. Dal nám o problému vědět a pokusil se ho nějakým způsobem v určitých případech řešit. Takový postup označujeme jako scénář. Na tvorbu pokročilých scénářů se podíváme v příštím díle. Nyní se podíváme na tvorbu Akcí, které se od scénářů nijak neliší. V podstatě jde o to samé. Akci si můžeme představit jako určitý úkon (notifikace, restart zařízení, ...) reakci na konkrétní stav, situaci. Scénář není nic jiného než množina akcí. Základní akcí v případě problému je notifikace na email. Podívejme se podle následujícího příkladu, jak akci vytvořit. Předpokládejme, že požadujeme, aby Zabbix poslal e-mail na konkrétního uživatele v případě výpadku jakéhokoli zařízení. Postup by byl následující.

  • Configuration -> Actions -> Create action
  • vyplníme název, aktivujeme akci zatržením položky Enabled
  • pokud chceme automatickou notifikaci i v případě, že je problém vyřešený, aktivujeme položku Recovery message


V záložce Conditions nastavíme podmínky, za jakých situací bude Zabbix provádět akce. Podmínky je možné spojovat logickou spojkou AND / OR. V našem případě vybereme logickou spojku AND. Podmínka bude znít : pokud je hodnota triggeru "PROBLEM" a zároveň (AND) tento tigger je ze šablony moje_sablona a má název Dostupnost, proveď akci.


Záložka Operationsslouží k nastavení samotné akce / úkonu. V našem případě použijeme notifikaci na e-mail viz následující příklad. Podrobnější tvorbu akcí a scénářů si ukážeme v příštím díle. Na začátku si můžeme povědět, že e-mail je možné zaslat jednomu uživateli nebo více uživatelům a nebo celé skupině. Formát zprávy můžeme ponechat ve výchozím tvaru, nebo ji upravit podle vlastních představ.

Rekapitulace

V dnešním díle jsme se podrobněji seznámili s možností tvorby vlastních testů a s prezentací naměřených dat formou map a grafů. Letmo jsme se podívali na tvorbu akcí a dohledových scénářů, které probereme podrobněji v příštím díle. Podíváme se také na některé další metody zjišťování dat, jako je protokol SNMP nebo IPMI.

Odkazy

1. Zabbix domovské stránky : http://www.zabbix.com

2. Zabbix dokumentace : http://www.zabbix.com/documentation.php

3. Zabbix - API : https://www.zabbix.com/documentation/2.0/manual/appendix/api/api

4. Zabbix - externí skripty : https://www.zabbix.com/documentation/2.0/manual/config/items/itemtypes/external

5. Zabbix - akce : https://www.zabbix.com/documentation/2.0/manual/config/notifications/action

6. Zabbix - uživatelské rozšíření : https://www.zabbix.com/documentation/2.0/manual/config/items/userparameters

Verze pro tisk

pridej.cz

 

DISKUZE

Zabbix 13.5.2013 06:50 Radim Kolář
Super!!! 17.6.2013 18:24 Karel Belunek




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

28.11.2018 23:56 /František Kučera
Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1

12.11.2018 21:28 /Redakce Linuxsoft.cz
22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář

6.11.2018 2:04 /František Kučera
Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

4.10.2018 21:30 /Ondřej Čečák
LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář

18.9.2018 23:30 /František Kučera
Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

9.9.2018 14:15 /Redakce Linuxsoft.cz
20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business. Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář

12.8.2018 16:58 /František Kučera
Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář

16.7.2018 1:05 /František Kučera
Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

13.12.2018 10:57 / Jan Mareš
Re: zavináč

2.12.2018 23:56 / František Kučera
Sraz

5.10.2018 17:12 / Jakub Kuljovsky
Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?

20.9.2018 10:04 / Jan Ober
Jaký kurz a software by jste doporučili pro začínajcího kodéra?

20.9.2018 10:00 / Jan Ober
Re: Gimp

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2022) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze