LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> 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 10550×

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ů

15.4.2017 15:20 /František Kučera

Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě IoT a radiokomunikace? Přijď na sraz spolku OpenAlt, který se bude konat ve středu 19. dubna od 18:30 v Šenkovně (Sokolská 60, Praha 2).


Přidat komentář

5.3.2017 19:12 /Redakce Linuxsoft.cz
PR: 23. března proběhne v Praze konferenci na téma Cloud computing v praxi. Hlavními tématy jsou: Nejžhavější trendy v oblasti cloudu a cloudových řešení, Moderní cloudové služby, Infrastruktura současných cloudů, Efektivní využití cloudu, Nástrahy cloudových řešení a jak se jim vyhnout.
Přidat komentář

27.2.2017 22:12 /František Kučera
Pozvánka na 137. sraz OpenAlt – Praha: Tentokrát jsme si pro vás připravili neobvyklou akci. Ve středu 1.3. v 17:30 nás přivítá sdružení CZ.NIC ve svých prostorách v Milešovské ulici číslo 5 na Praze 3, kde si pro nás připravili krátkou prezentaci jejich činnosti. Následně navštívíme jejich datacentrum pod Žižkovskou věží. Provedou nás prostory, které jsou běžnému smrtelníkovi nedostupné!
Po ukončení prohlídky se všchni odebereme do hostince U vodoucha, Jagelonská 21, Praha 3 pochutnat si na některém z vybraných piv či dát si něco na zub. Rezervaci máme od 19:30, heslo je OpenAlt.
Ale pozor! Do prostor datového centra máme omezený přístup, dostane se tam pouze 10 lidí! Takže kdo přijde dříve, ten má přednost, a občanky s sebou! Kdo nebude chtít na prohlídku datového centra, může se pomalu přesunout do hostince U vodoucha a u nepřeberné nabídky piv počkat na ostatní.
Přidat komentář

18.1.2017 0:49 /František Kučera
Členové a příznivci spolku OpenAlt se pravidelně schází v Praze a Brně. Fotky z pražských srazů za uplynulý rok si můžete prohlédnout na stránkách spolku. Příští sraz se koná už 19. ledna – tentokrát je tématem ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. Také budete mít příležitost si prohlédnout pražský hackerspace Brmlab.
Přidat komentář

8.1.2017 17:51 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 19. ledna od 18:30 v pražském hackerspacu Brmlab. Tentokrát je tématem srazu ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. K vidění bude mechanická klávesnice dasKeyboard, trackball Logitech nebo grafický tablet (a velký touchpad) Wacom. Přineste i vy ukázat svoje zajímavé klávesnice a další HW. V 18:20 je sraz před budovou, v 18:30 jdeme společně dovnitř, je tedy dobré přijít včas. Podle zájmu se později přesuneme do nějaké restaurace v okolí.
Přidat komentář

1.12.2016 22:13 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.
Komentářů: 1

4.9.2016 20:13 /Pavel `Goldenfish' Kysilka
PR: Dne 22.9.2016 proběhne v Praze konference Cloud computing v praxi. Tématy bude např. nejnovější trendy v oblasti cloudu a cloudových řešení, provozování ERP v cloudu, o hostování různých typů softwaru, ale třeba i o zálohování dat nabízeném podnikům formou služby.
Přidat komentář

1.9.2016 11:27 /Honza Javorek
Česká konference o Pythonu, PyCon CZ, stále hledá přednášející skrz dobrovolné přihlášky. Máte-li zajímavé téma, neváhejte a zkuste jej přihlásit, uzávěrka je již 12. září. Konference letos přijímá i přednášky v češtině a nabízí pomoc s přípravou začínajícím speakerům. Řečníci mají navíc vstup zadarmo! Více na webu.
Přidat komentář

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

> Poslední diskuze

17.4.2017 19:15 / Jakub shoop
chyba

7.4.2017 15:43 / Som
foreign car repair

31.3.2017 18:33 / David Ostrovsky
Dotazník na obeznámenost s hummusem.

24.3.2017 11:54 / Hui
country cottages

16.3.2017 16:33 / BezvaDesign.cz
Re: Hledám grafika do teamu

Více ...

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