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

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.5.2017 23:50 /František Kučera

Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 18. května od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).


Přidat komentář

12.5.2017 16:42 /Honza Javorek
PyCon CZ, česká konference o programovacím jazyce Python, se po dvou úspěšných ročnících v Brně bude letos konat v Praze, a to 8. až 10. června. Na konferenci letos zavítá např. i Armin Ronacher, známý především jako autor frameworku Flask, šablon Jinja2/Twig, a dalších projektů. Těšit se můžete na přednášky o datové analytice, tvorbě webu, testování, tvorbě API, učení a mentorování programování, přednášky o rozvoji komunity, o použití Pythonu ve vědě nebo k ovládání nejrůznějších zařízení (MicroPython). Na vlastní prsty si můžete na workshopech vyzkoušet postavit Pythonem ovládaného robota, naučit se učit šestileté děti programovat, efektivně testovat nebo si v Pythonu pohrát s kartografickým materiálem. Kupujte lístky, dokud jsou.
Přidat komentář

2.5.2017 9:20 /Eva Rázgová
Putovní konference československé Drupal komunity "DrupalCamp Československo" se tentokrát koná 27. 5.2017 na VUT FIT v Brně. Můžete načerpat a vyměnit si zkušenosti z oblasti Drupalu 7 a 8, UX, SEO, managementu týmového vývoje, využití Dockeru pro Drupal a dalších. Vítáni jsou nováčci i experti. Akci pořádají Slovenská Drupal Asociácia a česká Asociace pro Drupal. Registrace na webu .
Přidat komentář

1.5.2017 20:31 /Pavel `Goldenfish' Kysilka
PR: 25.5.2017 proběhne v Praze konference na téma Firemní informační systémy. Hlavními tématy jsou: Informační systémy s vlastní inteligencí, efektivní práce s dokumenty, mobilní přístup k datům nebo využívání cloudu.
Přidat komentář

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ář

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

> Poslední diskuze

15.6.2017 9:34 / Ondřej Havlas
php,

10.6.2017 10:39 / Temple
sell home for cash

11.5.2017 23:32 / lelo
Re: Problém se správcem balíčků

11.5.2017 5:45 / davd mašek
Re: Problém se správcem balíčků

10.5.2017 22:54 / lelo
Re: Problém se správcem balíčků

Více ...

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