Ako pridať vlastné ikonky do Zabbix mapy

Zabbix mapa nemusí byť len funkčná – pomocou vlastných ikoniek si ju môžeme upraviť tak, aby jednotlivé prvky na prvý pohľad pripomínali zariadenia, ktoré v sieti skutočne používame.

V Zabbixe prejdeme do Administration → General → Images.

Následne klikneme na Create icon.

Nahráme obrázok, ktorý chceme použiť

Upozornenie: obrázky musia mať veľkosť maximálne 1 MB.

Ja som si týmto spôsobom pridal vlastné obrázky pre Raspberry Pi a herný automat Arcade 101.

Ak chceme v mape použiť rôzne veľkosti ikoniek, je potrebné pripraviť si viac verzií toho istého obrázka v rôznych rozmeroch, napríklad:

  • 64 px
  • 96 px
  • 128 px

Výsledok môže vyzerať napríklad takto:

Priradenie ikonky do Zabbix mapy

Následne prejdeme do Monitoring → Maps.

Ak už máme vytvorenú mapu, klikneme na Edit map.

Potom klikneme na prvok, ktorý chceme upraviť. V časti Icons vyberieme požadovaný obrázok, napríklad raspberry_pi_96.

V poli Default zvolíme ikonku, ktorú chceme pre dané zariadenie používať.

Následne klikneme na Apply.

A zariadenie sa nám úspešné zmení

Výsledok môže vyzerať aj takto:

Ak si chcete tieto ikonky vyskúšať aj vo svojej Zabbix mape, môžete si ich stiahnuť nižšie.

Raspberry

Arcade 101

Zabbix – vizualizácia webových stránok v Dashboarde pomocou URL widgetu

Úvod

Monitorovanie IT infraštruktúry nie je iba o sledovaní serverov, sieťových zariadení a systémových služieb. Dôležitou súčasťou je aj prehľad o webových aplikáciách a stránkach, ktoré v infraštruktúre prevádzkujeme.

Systém Zabbix umožňuje pomocou funkcie Dashboard vytvárať centralizované monitorovacie panely, ktoré kombinujú rôzne typy widgetov a poskytujú prehľad o jednotlivých službách.

Jednou z dostupných možností je URL widget, ktorý umožňuje vložiť webovú stránku priamo do prostredia Zabbix Dashboardu.

V tomto návode si ukážeme, ako vytvoriť a nakonfigurovať URL widget na príklade našej webovej aplikácie https://video.ibasterisk.eu.

Výsledkom bude dashboard, v ktorom môžeme mať na jednom mieste monitorovacie údaje a náhľady vybraných webových aplikácií.

Dôležité: URL widget slúži na zobrazenie webovej stránky. Samotnú dostupnosť a funkčnosť webových služieb je potrebné monitorovať pomocou ďalších funkcií Zabbixu, napríklad Web scenarios alebo HTTP agent.

1. Pridanie URL widgetu do Zabbix Dashboardu

V administrácii systému Zabbix otvoríme sekciu:

Dashboards

Vyberieme existujúci dashboard, do ktorého chceme pridať náhľad webovej stránky, a prepneme ho do režimu úprav pomocou tlačidla Edit dashboard.

Následne klikneme na Add widget, čím otvoríme konfiguračné okno nového widgetu.

V poli Type vyberieme možnosť URL.

Tento typ widgetu umožňuje zobrazovať obsah webových stránok priamo v prostredí Zabbix Dashboardu bez potreby otvárania samostatného okna prehliadača.

2. Konfigurácia URL widgetu

Po výbere typu URL sa zobrazí konfiguračné okno Edit widget, v ktorom nastavíme webovú stránku, ktorú chceme zobrazovať v Zabbix Dashboarde.

Jednotlivé polia vyplníme nasledovne:

  • Type: URL – typ widgetu na zobrazenie webovej stránky.
  • Name: video.ibasterisk.eu – názov widgetu, ktorý sa zobrazí v dashboarde.
  • Refresh interval: Default (No refresh) – obsah sa nebude automaticky obnovovať v pravidelných intervaloch.
  • URL: https://video.ibasterisk.eu – adresa webovej aplikácie, ktorú chceme zobraziť.
  • Override host: Ponecháme nevyplnené, pretože v našom prípade nepotrebujeme vybrať iného monitorovaného hosta.
  • Show header: Ponecháme zapnuté, aby sa zobrazoval názov widgetu.

Po dokončení konfigurácie klikneme na tlačidlo Apply, čím potvrdíme nastavenia widgetu.

Dôležité upozornenie – obmedzenia zobrazovania webových stránok

Nie všetky webové stránky a aplikácie umožňujú zobrazenie svojho obsahu priamo v Zabbix Dashboarde prostredníctvom URL widgetu.

Dôvodom sú bezpečnostné mechanizmy webových serverov a aplikácií, ktoré môžu zakazovať vloženie stránky do inej webovej stránky pomocou HTML prvku iframe.

Medzi najčastejšie bezpečnostné obmedzenia patria:

  • X-Frame-Options – HTTP hlavička, ktorá môže zakazovať zobrazovanie stránky v rámci inej stránky.
  • Content-Security-Policy (CSP) – bezpečnostná politika, ktorá pomocou direktívy frame-ancestors určuje, ktoré webové stránky môžu daný obsah vkladať.

V našom prípade sme sa pokúsili pridať webovú aplikáciu https://mail.ibasterisk.eu.

Po nakonfigurovaní URL widgetu však prehliadač Firefox zobrazil bezpečnostné upozornenie a odmietol načítať stránku v rámci dashboardu.

To neznamená, že webová aplikácia je nedostupná alebo nefunkčná. Znamená to, že jej bezpečnostné nastavenia neumožňujú tento spôsob zobrazenia.

Odporúčanie: Pri aplikáciách, ktoré blokujú vloženie do URL widgetu, odporúčame zachovať ich bezpečnostné nastavenia a monitorovať ich dostupnosť pomocou funkcií Web scenarios alebo HTTP agent v Zabbixe.

Bezpečnostné obmedzenia webových aplikácií, najmä prihlasovacích rozhraní, by sa nemali vypínať iba kvôli ich zobrazeniu v dashboarde.

3. Uloženie widgetu a výsledné zobrazenie webovej stránky

Po dokončení konfigurácie URL widgetu klikneme na tlačidlo Apply, čím potvrdíme vykonané nastavenia.

Nový widget sa následne zobrazí na pracovnej ploche Zabbix Dashboardu.

V režime úprav môžeme widget presunúť na požadované miesto a upraviť jeho veľkosť podľa rozloženia ostatných monitorovacích prvkov.

Po dokončení úprav klikneme na tlačidlo Save changes, čím uložíme konfiguráciu celého dashboardu.

Ak webová stránka povoľuje vloženie do rámca iframe, jej obsah sa zobrazí priamo vo vytvorenom URL widgete.

V našom prípade môžeme týmto spôsobom zobrazovať webovú aplikáciu https://video.ibasterisk.eu a pristupovať k jej rozhraniu priamo z monitorovacieho panela.

Takto získavame centralizované prostredie, v ktorom máme na jednom mieste monitorovacie údaje Zabbixu a náhľady vybraných webových aplikácií.

Dôležité: Úspešné zobrazenie stránky v URL widgete nenahrádza automatické monitorovanie jej dostupnosti. Na pravidelnú kontrolu HTTP odpovedí, odozvy a dostupnosti webových služieb môžeme použiť funkcie Web scenarios alebo HTTP agent.

Po kliknutí na tlačidlo Save changes sa konfigurácia dashboardu uloží a výsledné zobrazenie bude vyzerať nasledovne:

4. Záver

Pomocou funkcie Zabbix Dashboard a widgetu typu URL sme si ukázali, ako jednoducho integrovať webové stránky a aplikácie priamo do centralizovaného monitorovacieho panela.

Na praktickom príklade webovej aplikácie https://video.ibasterisk.eu sme vytvorili URL widget, nakonfigurovali jeho základné parametre a zobrazili obsah stránky priamo v prostredí Zabbixu.

Zároveň sme si vysvetlili bezpečnostné obmedzenia, ktoré môžu zabrániť zobrazeniu niektorých webových aplikácií, napríklad mail.ibasterisk.eu, prostredníctvom URL widgetu.

Takto vytvorený dashboard umožňuje kombinovať monitorovacie údaje s náhľadmi vybraných webových aplikácií a poskytuje prehľadnejšie prostredie na správu IT infraštruktúry.

Dôležité je rozlišovať medzi vizualizáciou webovej stránky a skutočným monitorovaním jej dostupnosti. URL widget zabezpečuje zobrazenie obsahu, zatiaľ čo funkcie Web scenarios a HTTP agent umožňujú automatizované overovanie dostupnosti a sledovanie vybraných parametrov webových služieb.

Výsledkom je praktické rozšírenie Zabbix Dashboardu, ktoré môžeme postupne dopĺňať o ďalšie webové aplikácie a monitorovacie prvky podľa potrieb našej infraštruktúry IBASTERISK.

Zabbix – vizualizácia sieťovej infraštruktúry pomocou Maps

Úvod

Monitorovanie sieťovej infraštruktúry nie je iba o sledovaní dostupnosti jednotlivých zariadení. Dôležitá je aj prehľadná vizualizácia ich vzájomného prepojenia, aktuálneho prevádzkového stavu a sieťovej komunikácie.

Systém Zabbix umožňuje prostredníctvom funkcie Maps vytvárať interaktívne topologické mapy, ktoré zobrazujú servery, sieťové zariadenia a ich logické prepojenia.

V našej infraštruktúre IBASTERISK používame túto funkcionalitu na vizualizáciu prepojenia internetovej konektivity, firewallu FortiGate a jednotlivých Linux serverov vrátane Synology NAS.

V tomto návode si ukážeme, ako upraviť existujúcu mapu a doplniť na ňu aktuálne hodnoty prijatej a odoslanej sieťovej prevádzky pomocou výrazov Zabbix.

1. Úprava existujúcej sieťovej mapy

V administrácii Zabbixu otvoríme sekciu:

Monitoring → Maps

Vyberieme existujúcu sieťovú mapu a klikneme na Edit map.

V režime úprav môžeme meniť rozmiestnenie monitorovaných objektov, ich grafické zobrazenie, popisy a vzájomné prepojenia.

Jednotlivé prvky mapy môžu reprezentovať napríklad firewall, server, sieťový prepínač alebo internetovú konektivitu.

2. Výber a konfigurácia prepojenia

Na mape vyberieme prepojenie medzi firewallom FortiGate a monitorovaným serverom.

Po označení príslušného prepojenia otvoríme jeho konfiguračné dialógové okno.

3. Zobrazenie sieťovej prevádzky pomocou RX/TX

Jednou z užitočných možností funkcie Maps je zobrazovanie aktuálnych monitorovacích hodnôt priamo v popisoch jednotlivých prvkov a prepojení.

V našom prípade chceme zobrazovať:

  • RX (Receive) – prijatú sieťovú prevádzku.
  • TX (Transmit) – odoslanú sieťovú prevádzku.

Tieto hodnoty získavame z monitorovacích položiek (Items), ktoré Zabbix pravidelne aktualizuje.

Po výbere príslušného spojenia otvoríme jeho konfiguráciu a klikneme na Edit.

Do poľa Label následne vložíme výrazy na zobrazenie prijatej (RX) a odoslanej (TX) sieťovej prevádzky.

  • net.if.in["eth0"] – monitoruje prijatú sieťovú prevádzku (RX) na rozhraní eth0.
  • net.if.out["eth0"] – monitoruje odoslanú sieťovú prevádzku (TX) na rozhraní eth0.
  • eth0 – názov sieťového rozhrania monitorovaného servera.
RX: {?last(/mon.ibasterisk.local/net.if.in["eth0"])}
TX: {?last(/mon.ibasterisk.local/net.if.out["eth0"])}

Výsledok:

Následne klikneme na tlačidlo Apply.

Výsledné zobrazenie prepojenia:

Použité výrazy odkazujú na monitorovací host mon.ibasterisk.local a sieťové rozhranie eth0.

Funkcia last() vracia poslednú dostupnú hodnotu z príslušnej monitorovacej položky.

Zabbix dosadí do popisu aktuálne hodnoty získané zo svojej monitorovacej databázy.

Dôležité: Názov hosta, sieťového rozhrania aj kľúče monitorovacích položiek musia zodpovedať skutočnej konfigurácii Zabbixu. Pri inom serveri alebo rozhraní je potrebné výrazy upraviť.

Rovnako treba overiť typ a jednotky monitorovacích položiek, aby zobrazované hodnoty skutočne reprezentovali požadovanú sieťovú prevádzku.

Po dokončení konfigurácie uložíme zmeny mapy kliknutím na tlačidlo Update.

Následne sa vrátime do sekcie Monitoring → Maps, otvoríme upravenú mapu a skontrolujeme výsledné zobrazenie sieťovej prevádzky.

4. Uloženie konfigurácie a výsledná vizualizácia

Po otvorení mapy v režime monitorovania Zabbix automaticky vyhodnotí použité výrazy a zobrazí aktuálne hodnoty sieťovej prevádzky.

Jednotlivé prepojenia tak obsahujú informácie o prijatej (RX) a odoslanej (TX) prevádzke. Tieto údaje pochádzajú z monitorovacích položiek priradených konkrétnym sieťovým rozhraniam.

Výsledná topologická mapa našej infraštruktúry IBASTERISK zobrazuje internetové pripojenie Orange, firewall FortiGate, sieťový prepínač a jednotlivé servery vrátane Synology NAS.

Pri serveroch máme navyše uvedené príslušné porty na FortiGate, čo umožňuje jednoduchšiu identifikáciu fyzického zapojenia.

Takto získavame centralizovaný grafický prehľad o dostupnosti zariadení, ich vzájomnom prepojení a aktuálnej sieťovej komunikácii.

5. Odporúčania pre prevádzku

Pri používaní funkcie Zabbix Maps je dôležité pravidelne kontrolovať správnosť konfigurácie monitorovacích položiek a zobrazovaných údajov.

Odporúčame dodržiavať nasledujúce zásady:

  • Kontrola monitorovacích položiek (Items): Výrazy použité v popisoch prepojení musia odkazovať na existujúce položky konkrétnych hostov.
  • Správne sieťové rozhrania: Pri zmene názvu rozhrania, napríklad z eth0 na ens18, je potrebné aktualizovať príslušné výrazy.
  • Kontrola hodnôt RX/TX: Ak sa namiesto aktuálnej hodnoty zobrazuje *UNKNOWN*, treba overiť dostupnosť údajov v sekcii Monitoring → Latest data a správnosť použitých výrazov.
  • Aktualizácia topológie: Pri pridaní nového servera alebo zmene zapojenia aktualizujeme aj sieťovú mapu.
  • Prehľadnosť mapy: Odporúčame používať jednotné názvy zariadení, označenia portov a zobrazovať iba najdôležitejšie prevádzkové informácie.

Takto zostane mapa aktuálna a využiteľná nielen na vizualizáciu infraštruktúry, ale aj pri diagnostike sieťových problémov.

6. Záver

Pomocou funkcie Zabbix Maps sme vytvorili prehľadnú vizualizáciu sieťovej infraštruktúry IBASTERISK, ktorá zobrazuje internetové pripojenie Orange, firewall FortiGate, sieťový prepínač a jednotlivé servery vrátane Synology NAS.

Doplnením dynamických výrazov do popisov sieťových prepojení sme získali možnosť zobrazovať aktuálne hodnoty prijatej (RX) a odoslanej (TX) sieťovej prevádzky priamo na topologickej mape.

Takto vytvorená mapa poskytuje centralizovaný prehľad o monitorovaných zariadeniach, ich logických prepojeniach a aktuálnom prevádzkovom stave.

Veľkou výhodou je možnosť kombinovať grafické znázornenie infraštruktúry s monitorovacími údajmi a upozorneniami systému Zabbix.

Výsledkom je praktický nástroj, ktorý uľahčuje každodennú správu infraštruktúry, rýchlejšiu orientáciu pri diagnostike problémov a priebežné sledovanie sieťovej komunikácie.

V budúcnosti môžeme mapu rozšíriť o ďalšie zariadenia, monitorovacie položky alebo podrobnejšie zobrazenie prevádzkových parametrov.

Zabbix – monitoring diskov Synology NAS pomocou SNMP

Monitoring úložiska patrí medzi dôležité súčasti správy serverovej infraštruktúry. Pri sieťových úložiskách NAS je potrebné pravidelne kontrolovať nielen dostupnosť zariadenia, ale aj kapacitu diskových zväzkov, aby sme dokázali včas reagovať na nedostatok voľného miesta.

V tomto návode si ukážeme, ako nakonfigurovať monitoring diskového zväzku Synology NAS pomocou SNMP v systéme Zabbix.

V našej infraštruktúre IBASTERISK používame Synology NAS, ktorý už monitorujeme prostredníctvom SNMP. Pri kontrole existujúcej šablóny Linux by SNMP sme však zistili, že automatické objavovanie súborových systémov nefunguje správne.

Preto si ukážeme diagnostiku problému, overenie dostupných SNMP OID, vytvorenie vlastných monitorovacích položiek (Items) a nastavenie upozornení (Triggers).

1. Použité prostredie

ParameterHodnota
Monitorovací systémZabbix
Monitorované zariadenieSynology NAS
Hostnamenas.ibasterisk.local
IP adresa NAS10.10.8.3
Monitorovací protokolSNMP v2c, port 161
Existujúca šablónaLinux by SNMP
Monitorovaný zväzok/volume1
Použitý SNMP index57

2. Diagnostika SNMP

Vyhľadáme server nas.ibasterisk.local

Klikneme na Discovery

Teraz klikni na červenú ikonu i úplne vpravo pri pravidle Mounted filesystem discovery.

Tam sa zobrazí chybové hlásenie, ktoré sme už pri diagnostike videli:

No Such Instance currently exists at this OID

2.1 Overenie SNMP OID

Aby sme zistili príčinu chyby, overíme dostupnosť SNMP OID priamo z monitorovacieho servera pomocou nástroja snmpwalk.

Na serveri mon.ibasterisk.local najskôr nainštalujeme potrebný balík:

sudo apt update
sudo apt install -y snmp

Následne skontrolujeme SNMP vetvu, ktorú používa šablóna Linux by SNMP na získavanie informácií o diskoch:

snmpwalk -v2c -c 'SNMP_COMMUNITY' 10.10.8.3 1.3.6.1.4.1.2021.9

Hodnotu SNMP_COMMUNITY nahradíme skutočnou SNMP community nakonfigurovanou na zariadení.

V našom prípade sme dostali:

iso.3.6.1.4.1.2021.9 = No Such Object available on this agent at this OID

Výsledok potvrdzuje, že Synology NAS neposkytuje požadované údaje cez túto vetvu UCD-SNMP-MIB. Preto existujúce pravidlo Mounted filesystem discovery v šablóne Linux by SNMP nedokáže správne objavovať diskové zväzky.

Samotná SNMP komunikácia však funguje, preto preveríme alternatívnu štandardnú SNMP tabuľku hrStorageTable.

Poznámka: Ako SNMP community v článku používame zástupný názov SNMP_COMMUNITY, aby sme nezverejňovali skutočnú konfiguračnú hodnotu.

2.2 Vyhľadanie diskového zväzku cez hrStorageTable

Keďže Synology NAS neposkytovalo požadované údaje cez UCD-SNMP-MIB, rozhodli sme sa preveriť štandardnú SNMP tabuľku hrStorageTable, ktorá je súčasťou HOST-RESOURCES-MIB.

Na monitorovacom serveri mon.ibasterisk.local spustíme:

snmpwalk -v2c -c 'SNMP_COMMUNITY' 10.10.8.3 1.3.6.1.2.1.25.2.3

Príkaz vypíše dostupné úložiská vrátane pamäte, dočasných súborových systémov a diskových zväzkov.

V našom prípade sme vo výstupe našli:

iso.3.6.1.2.1.25.2.3.1.3.57 = STRING: "/volume1"
iso.3.6.1.2.1.25.2.3.1.4.57 = INTEGER: 8192
iso.3.6.1.2.1.25.2.3.1.5.57 = INTEGER: 1402617201
iso.3.6.1.2.1.25.2.3.1.6.57 = INTEGER: 536773441

Jednotlivé hodnoty predstavujú:

  • hrStorageDescr.57 – názov diskového zväzku /volume1.
  • hrStorageAllocationUnits.57 – veľkosť alokačnej jednotky, 8192 bajtov.
  • hrStorageSize.57 – celkový počet alokačných jednotiek.
  • hrStorageUsed.57 – počet použitých alokačných jednotiek.

Číslo 57 predstavuje SNMP index nášho zväzku /volume1.

Percentuálnu obsadenosť vypočítame:

Obsadenosť (%) = (Použité jednotky / Celkové jednotky) × 100

Podľa získaných hodnôt je obsadenosť zväzku približne 38,27 %.

Tým sme potvrdili, že Synology poskytuje potrebné informácie o disku cez HOST-RESOURCES-MIB a môžeme ich použiť na vytvorenie vlastných monitorovacích položiek v Zabbixe.

Upozornenie: SNMP index 57 nemusí zostať rovnaký po zmene konfigurácie alebo opätovnom objavení úložísk. V tomto návode používame pevný index, ktorý sme overili na našom NAS. Pre univerzálne riešenie je vhodné doplniť automatické objavovanie zväzkov.

3. Vytvorenie monitorovacích položiek (Items)

Po úspešnom overení SNMP OID môžeme vytvoriť vlastné monitorovacie položky (Items), pomocou ktorých bude Zabbix pravidelne získavať údaje o zaplnení diskového zväzku /volume1.

Vytvoríme tri položky:

  1. Celkový počet alokačných jednotiek zväzku.
  2. Počet použitých alokačných jednotiek.
  3. Percentuálnu obsadenosť vypočítanú z predchádzajúcich dvoch položiek.

V Zabbixe otvoríme:

Data collection → Hosts → nas.ibasterisk.local → Items → Create item

Na stránke Items klikneme na tlačidlo Create item, čím otvoríme formulár na vytvorenie novej monitorovacej položky.

3.1 Celková kapacita zväzku

ParameterHodnota
NameSynology: Volume1 total size
TypeSNMP agent
Keysynology.volume1.total
SNMP OID1.3.6.1.2.1.25.2.3.1.5.57
Host interface10.10.8.3:161
Type of informationNumeric (unsigned)
Update interval1m
UnitsNevypĺňame

Výsledok

Po vyplnení položku uložíme kliknutím na Add.

Funkčnosť overíme v Monitoring → Latest data, kde vyhľadáme položku Synology: Volume1 total size.

Prvý Item získava celkový počet alokačných jednotiek diskového zväzku /volume1 prostredníctvom SNMP. Tieto údaje následne použijeme na výpočet percentuálnej obsadenosti disku.

V našom prípade Zabbix získal hodnotu:

1402617201

Táto hodnota predstavuje počet alokačných jednotiek, nie priamo veľkosť disku v bajtoch.

3.2 Obsadená kapacita zväzku

Druhý Item bude získavať počet použitých alokačných jednotiek rovnakého zväzku.

Opäť otvoríme:

Data collection → Hosts → nas.ibasterisk.local → Items → Create item

Parameter Hodnota
Name Synology: Volume1 used size
Type SNMP agent
Key synology.volume1.used
SNMP OID 1.3.6.1.2.1.25.2.3.1.6.57
Host interface 10.10.8.3:161
Type of information Numeric (unsigned)
Update interval 1m
Units Nevypĺňame

3.3 Vypočítanie percentuálnej obsadenosti disku

Keď už Zabbix získava celkový a použitý počet alokačných jednotiek, vytvoríme tretiu položku typu Calculated, ktorá bude zobrazovať obsadenosť zväzku v percentách.

Otvoríme:

Data collection → Hosts → nas.ibasterisk.local → Items

Parameter Hodnota
Name Synology: Volume1 usage in %
Type Calculated
Key synology.volume1.pused
Type of information Numeric (float)
Units %
Update interval 1m

Do poľa Formula vložíme:

100 * last(//synology.volume1.used) / last(//synology.volume1.total)

Výsledkom je percentuálna obsadenosť diskového zväzku. V našom prípade Zabbix zobrazoval približne 38,27 %.

4. Vytvorenie upozornení (Triggers)

Po vytvorení monitorovacích položiek nastavíme v Zabbixe automatické upozornenia na nedostatok voľného miesta na diskovom zväzku /volume1.

Použijeme dva triggery:

  • Warning – pri obsadenosti disku nad 80 %.
  • High – pri obsadenosti disku nad 90 %.

Oba triggery budú vyhodnocovať obsadenosť počas päťminútového časového okna, aby krátkodobé výkyvy nespôsobovali zbytočné upozornenia.

V Zabbixe otvoríme:

Data collection → Hosts → nas.ibasterisk.local → Triggers → Create trigger

4.1 Vytvorenie Warning triggera

Ako prvý vytvoríme trigger so závažnosťou Warning, ktorý upozorní na zaplnenie diskového zväzku /volume1 nad 80 %.

Parameter Hodnota
Name Synology: Volume1 disk space is low
Severity Warning
OK event generation Expression
Enabled Yes

Do poľa Expression vložíme:

min(/nas.ibasterisk.local/synology.volume1.pused,5m)>80

Trigger sa aktivuje, keď je obsadenosť zväzku /volume1 nad 80 % počas celého päťminútového okna.

Po vyplnení klikneme na Add, čím trigger uložíme.

4.2 Vytvorenie kritického triggera

Rovnakým postupom vytvoríme druhý trigger, ktorý upozorní na kritické zaplnenie diskového zväzku.

Parameter Hodnota
Name Synology: Volume1 disk space is critically low
Severity High
OK event generation Expression
Enabled Yes

Do poľa Expression vložíme:

min(/nas.ibasterisk.local/synology.volume1.pused,5m)>90

Druhý trigger sa aktivuje pri obsadenosti nad 90 % počas celého päťminútového okna.

Po uložení máme pripravené dva stupne upozornení na zaplnenie diskového zväzku.

4.3 Kontrola vytvorených triggerov

Vrátime sa do:

Data collection → Hosts → nas.ibasterisk.local → Triggers

Vo filtri Name vyhľadáme Synology: Volume1 disk space.

V zozname by sme mali vidieť oba vytvorené triggery so stavom Enabled.

Keďže aktuálna obsadenosť nášho NAS bola približne 38 %, oba triggery zostali v stave OK.

5. Nastavenie závislosti triggerov (Dependencies)

Po vytvorení oboch triggerov nastavíme medzi nimi závislosť (Dependency).

Pri zaplnení diskového zväzku /volume1 nad 90 % sa môžu splniť podmienky oboch triggerov:

  • Warning – obsadenosť nad 80 %.
  • High – obsadenosť nad 90 %.

Aby Zabbix nevytváral zbytočné upozornenia z oboch triggerov súčasne, nastavíme závislosť menej závažného triggera od kritického.

5.1 Konfigurácia Dependencies

V Zabbixe otvoríme:

Data collection → Hosts → nas.ibasterisk.local → Triggers

Nájdeme trigger:

Synology: Volume1 disk space is low

Klikneme na jeho názov a otvoríme záložku Dependencies.

Následne klikneme na Add a vyberieme kritický trigger:

nas.ibasterisk.local: Synology: Volume1 disk space is critically low

Výber potvrdíme a konfiguráciu uložíme kliknutím na Update.

Dôležité: Závislosť nastavujeme na triggre Warning, ktorý bude závisieť od triggera High, nie naopak.

5.2 Výsledok konfigurácie

Po uložení sa v záložke Dependencies zobrazí:

nas.ibasterisk.local: Synology: Volume1 disk space is critically low

Tým sme nastavili, že počas aktívneho kritického problému bude Zabbix potláčať vytváranie nových problémových udalostí zo závislého Warning triggera.

Ak sa najskôr aktivuje Warning a obsadenosť následne prekročí 90 %, už existujúca udalosť Warning môže zostať otvorená. Závislosť teda nezaručuje automatické uzavretie staršieho upozornenia.

6. E-mailové upozornenia

Po vytvorení diskových triggerov je dôležité zabezpečiť, aby Zabbix v prípade nedostatku voľného miesta automaticky upozornil administrátora.

V našej infraštruktúre už máme nakonfigurované odosielanie e-mailových upozornení, preto nie je potrebné vytvárať novú akciu.

6.1 Kontrola existujúcej akcie

V Zabbixe otvoríme:

Alerts → Actions → Trigger actions

Vyhľadáme existujúcu akciu:

Report problems to Zabbix administrators

Akcia má nastavené nasledujúce podmienky:

  • Host group equals Linux servers
  • Host group equals Networks
  • Host group equals web

Podmienky sú spojené operátorom OR, takže stačí, aby monitorovaný host patril aspoň do jednej z uvedených skupín.

Náš host nas.ibasterisk.local patrí do skupiny Linux servers, preto spĺňa podmienku tejto akcie.

6.2 Odosielanie upozornení

V záložke Operations máme nastavené odosielanie správ používateľskej skupine Zabbix administrators prostredníctvom média Email.

Overili sme tiež, že akcia má stav Enabled.

V prípade aktivácie diskového triggera tak existujúca konfigurácia umožňuje odoslať upozornenie na nedostatok voľného miesta.

Pre zväzok /volume1 sme nastavili tieto hranice:

  • Warning: obsadenosť nad 80 % počas päťminútového okna.
  • High: obsadenosť nad 90 % počas päťminútového okna.

6.3 Overenie odosielania

Históriu vykonaných akcií môžeme skontrolovať v sekcii:

Reports → Action log

Tu Zabbix zobrazuje výsledky odosielania upozornení vrátane stavu Sent.

Stav Sent potvrdzuje úspešné odovzdanie správy nakonfigurovanému e-mailovému serveru, nie nevyhnutne jej doručenie do schránky príjemcu.

V našom prostredí sme už overili funkčné odosielanie upozornení pri iných monitorovaných službách. Samostatný test odoslania upozornenia pri zaplnení Synology NAS sme zatiaľ nevykonali.

7. Zobrazenie obsadenosti diskov na Zabbix Dashboarde

Po vytvorení monitorovacích položiek a triggerov môžeme doplniť aj grafické zobrazenie aktuálnej obsadenosti diskového zväzku.

Zabbix ponúka viacero typov widgetov. V našom prípade použijeme Gauge, ktorý zobrazuje percentuálnu obsadenosť disku pomocou prehľadného ukazovateľa.

7.1 Vytvorenie dashboardu

V Zabbixe otvoríme:

Monitoring → Dashboards

Klikneme na Create dashboard a vytvoríme dashboard s názvom:

Disk Monitoring – IBASTERISK

Po jeho vytvorení prejdeme do režimu úprav a klikneme na Add widget.

7.2 Konfigurácia widgetu Gauge

Ako typ widgetu vyberieme Gauge.

Pre monitoring Synology NAS nastavíme nasledujúce parametre:

Parameter Hodnota
Type Gauge
Name Synology NAS – Volume1
Host nas.ibasterisk.local
Item Synology: Volume1 usage in %
Min 0
Max 100
Refresh interval Default (1 minute)

Pri výbere monitorovacej položky klikneme na tlačidlo Select vedľa poľa Item.

Vyhľadáme hosta nas.ibasterisk.local a vyberieme položku:

Synology: Volume1 usage in %

Rozsah ukazovateľa nastavíme od 0 do 100, pretože zobrazujeme percentuálnu obsadenosť disku.

Ostatné nastavenia môžeme ponechať na predvolených hodnotách.

Kliknutím na Add vložíme widget na dashboard.

V našom prípade bola obsadenosť zväzku /volume1 približne 38 %.

7.3 Výsledný dashboard

Na výslednom dashboarde vidíme aktuálnu percentuálnu obsadenosť diskov monitorovaných serverov MON, FreeIPA, Mail, DNS a Synology NAS. Každý server má vlastný ukazovateľ Gauge, vďaka čomu získame rýchly prehľad o využití diskovej kapacity celej infraštruktúry.

8. Záver a odporúčania

V tomto návode sme si ukázali, ako nakonfigurovať monitoring diskového zväzku Synology NAS pomocou protokolu SNMP v systéme Zabbix.

Pri konfigurácii sme zistili, že existujúca šablóna Linux by SNMP nedokázala správne objavovať diskové zväzky, pretože Synology neposkytovalo požadované údaje cez UCD-SNMP-MIB.

Pomocou nástroja snmpwalk sme overili dostupnosť údajov cez HOST-RESOURCES-MIB a vytvorili tri vlastné monitorovacie položky na sledovanie celkovej kapacity, využitého miesta a percentuálnej obsadenosti zväzku /volume1.

Následne sme nastavili upozornenia pri obsadenosti nad 80 % (Warning) a 90 % (High), doplnili závislosť medzi triggermi a overili konfiguráciu existujúcej e-mailovej akcie.

Na záver sme vytvorili prehľadný ukazovateľ Gauge, ktorý zobrazuje aktuálnu obsadenosť diskového zväzku na Zabbix Dashboarde.

Odporúčania pre ďalšiu prevádzku

  • Kontrolovať SNMP index: V našej konfigurácii používame pevný index 57, ktorý sa môže pri zmenách konfigurácie NAS zmeniť. Pre dlhodobú prevádzku odporúčame automatické objavovanie zväzkov.
  • Pravidelne kontrolovať dostupnosť údajov: Overovať, že monitorovacie položky nezostávajú v stave Not supported.
  • Testovať upozornenia: Funkčnosť e-mailovej akcie sme overili pri iných službách, ale konkrétne upozornenie na zaplnenie Synology NAS zatiaľ nebolo otestované.
  • Sledovať stav úložiska: Monitoring voľnej kapacity nenahrádza kontrolu zdravia fyzických diskov, RAID alebo SHR a stavu úložného poolu.

Výsledkom je funkčný monitoring zaplnenia zväzku /volume1, ktorý môžeme v budúcnosti rozšíriť o automatické objavovanie ďalších zväzkov a sledovanie stavu fyzických diskov.

Zabbix – konfigurácia Items, Triggers, Macros a automatického monitoringu služieb

Monitoring SSH, Docker kontajnerov a SSL certifikátov v prostredí Linux a Docker

V tomto návode si ukážeme, ako rozšíriť existujúci monitoring v Zabbixe o vlastné monitorovacie položky (Items), spúšťacie podmienky (Triggers), používateľské makrá (Macros) a automatické objavovanie služieb (Low-Level Discovery).

Zameriame sa na praktické príklady z infraštruktúry IBASTERISK, kde prevádzkujeme viacero Linux serverov, Docker aplikácií, interných webových služieb a certifikátov vydávaných internou certifikačnou autoritou FreeIPA.

1. Základné pojmy v Zabbixe

Pojem Význam
Host Server, sieťové zariadenie alebo monitorovaná služba
Item Položka, ktorá získava konkrétnu monitorovanú hodnotu
Trigger Podmienka, ktorá vyhodnocuje získané údaje a vytvára problém
Template Šablóna obsahujúca opakovane použiteľné Items, Triggers a ďalšie nastavenia
Macro Premenná používaná pri konfigurácii monitoringu
Discovery Automatické objavovanie monitorovaných objektov
Trigger prototype Vzor na automatické vytváranie triggerov pre objavené objekty
Action Pravidlo určujúce, čo sa má vykonať pri udalosti, napríklad odoslanie e-mailu

2. Monitoring dostupnosti SSH

Ako prvý príklad vytvoríme jednoduchý monitoring dostupnosti služby SSH.

Cieľom je, aby Zabbix pravidelne kontroloval SSH na Linux serveroch a v prípade nedostupnosti vytvoril upozornenie.

2.1 Vytvorenie vlastnej šablóny

 V Zabbixe otvoríme:

Data collection → Templates → Create template

Vyplníme

Parameter Hodnota
Template name Template SSH Monitoring
Visible name SSH Monitoring
Template groups Templates

Kliknutím na Add vytvoríme šablónu.

2.2 Pridanie SSH Item

Otvoríme vytvorenú šablónu a prejdeme do sekcie Items → Create item.

Parameter Hodnota
Name SSH service availability
Type Simple check
Key net.tcp.service[ssh]
Type of information Numeric (unsigned)
Update interval 1m
History 7d

Kľúč `net.tcp.service[ssh]` kontroluje dostupnosť SSH služby na štandardnom porte 22.

  • `1` – SSH služba odpovedá.
  • `0` – SSH služba neodpovedá.

Kontrolu vykonáva Zabbix server alebo proxy. Na cieľovom serveri preto tento konkrétny Item nevyžaduje Zabbix agenta.

Pri neštandardnom SSH porte môžeme použiť napríklad:

net.tcp.service[ssh,,2222]

2.3 Vytvorenie SSH Trigger

V šablóne otvoríme Triggers → Create trigger.

Následne Create trigger

Parameter Hodnota
Name SSH service is unavailable on {HOST.NAME}
Severity High
OK event generation Expression
Enabled Yes

Do poľa Expression vložíme:

max(/Template SSH Monitoring/net.tcp.service[ssh],3m)=0

Trigger sa aktivuje vtedy, keď sú všetky dostupné hodnoty SSH kontroly za posledné tri minúty nulové. Keď Zabbix opäť zaznamená hodnotu `1`, problém sa automaticky uzavrie.

Poznámka: Výraz využíva trojminútové časové okno, ale nie je to presný časovač. Pri neúplnej histórii meraní môže byť vhodné pridať podmienku na minimálny počet vzoriek.

2.4 Priradenie šablóny serverom

Prejdeme do Data collection → Hosts → vybraný server → Templates.

V časti Link new templates vyberieme `SSH Monitoring` a uložíme zmeny.

V našej infraštruktúre sme šablónu priradili serverom:

  • dns.ibasterisk.local
  • freeipa.ibasterisk.local
  • mail.ibasterisk.local
  • mon.ibasterisk.local

Ako pridať template na ďalší server

Klikneme na server napríklad

freeipa.ibasterisk.local

Do poľa vpíšeme SSH, vyberieme ho

A následne klikneme na update

Funkčnosť overíme v **Monitoring → Latest data**. Vyhľadáme `SSH service availability`. Pri dostupnom SSH by sme mali vidieť hodnotu `1`.

Ak už na serveri existuje rovnaký Item, pred priradením šablóny treba vyriešiť duplicitu.

3. Monitoring Docker kontajnerov

Ďalším krokom je monitoring Docker prostredia pomocou Zabbix Agent 2.

Na monitorovacom serveri prevádzkujeme viacero aplikácií vrátane Grafany, Graylogu, NetBoxu, Passboltu a samotného Zabbixu.

3.1 Kontrola Zabbix Agent 2

Na Linux serveri spustíme:

zabbix_agent2 -V

V našom prípade bola použitá verzia:

zabbix_agent2 (Zabbix) 7.4.15

Docker monitoring vyžaduje dostupný Docker plugin a prístup k Docker API.

3.2 Kontrola Docker socketu

Aby mohol Zabbix Agent 2 monitorovať Docker kontajnery, musí mať oprávnenie komunikovať s Docker Engine prostredníctvom Docker socketu.

Najskôr overíme, či Docker socket existuje a aké má nastavené oprávnenia:

ls -l /var/run/docker.sock

Príklad výstupu:

srw-rw---- 1 root docker 0 Oct 11 18:14 /var/run/docker.sock

Z výstupu vidíme, že vlastníkom socketu je používateľ root a skupina docker. Prístup k socketu majú štandardne iba títo používatelia a členovia príslušnej skupiny.

Následne skontrolujeme, do ktorých skupín patrí používateľ zabbix:

id zabbix

V našom prípade bol výsledok:

uid=109(zabbix) gid=113(zabbix) groups=113(zabbix)

Z výstupu vyplýva, že používateľ zabbix nie je členom skupiny docker.

Overenie komunikácie s Dockerom

Teraz otestujeme, či Zabbix Agent 2 dokáže komunikovať s Docker Engine:

sudo -u zabbix zabbix_agent2 -t docker.ping

V našom prípade sme dostali:

docker.ping    [s|0]

Hodnota 0 znamená, že Docker nie je z pohľadu vykonaného testu dostupný. Jednou z možných príčin sú nedostatočné oprávnenia k Docker socketu.

Dočasný test s oprávneniami skupiny docker

Aby sme si overili, či problém skutočne súvisí s oprávneniami, vykonáme test so skupinou docker bez trvalej zmeny členstva používateľa:

sudo -g docker -u zabbix zabbix_agent2 -t docker.ping

Výsledok testu:

docker.ping    [s|1]

Hodnota 1 potvrdzuje, že Zabbix Agent 2 dokáže komunikovať s Docker Engine, keď má prístup k Docker socketu.

Záver kontroly

Porovnaním oboch výsledkov sme potvrdili, že príčinou nedostupnosti Docker API boli nedostatočné oprávnenia používateľa zabbix.

V nasledujúcom kroku nastavíme trvalý prístup k Docker socketu a reštartujeme Zabbix Agent 2, aby sa nové oprávnenia prejavili.

Bezpečnostné upozornenie: Členstvo v skupine docker poskytuje prakticky administrátorské oprávnenia nad hostiteľským systémom. Preto je potrebné túto zmenu vykonávať iba v dôveryhodnom prostredí a po zvážení bezpečnostných rizík.

3.3 Nastavenie oprávnení

Jednoduchou možnosťou je priradenie používateľa `zabbix` do skupiny `docker`:

sudo usermod -aG docker zabbix
sudo systemctl restart zabbix-agent2
sudo systemctl is-active zabbix-agent2
sudo -u zabbix zabbix_agent2 -t docker.ping

Očakávaná hodnota poslednej kontroly je `1`.

Bezpečnostné upozornenie. Členstvo v skupine `docker` poskytuje prakticky administrátorské oprávnenia nad hostiteľským systémom. Toto riešenie používame len tam, kde akceptujeme uvedené riziko. V prísnejšie zabezpečenom prostredí je vhodné použiť obmedzený prístup k monitorovaciemu API.

3.4 Priradenie Docker šablóny

V Zabbixe otvoríme Data collection → Hosts → mon.ibasterisk.local → Templates a pridáme oficiálnu šablónu:

`Docker by Zabbix agent 2`

Následne klikneme na update

Po jej priradení overíme položky v Monitoring → Latest data.

Zabbix dokáže získavať informácie o Docker Engine aj jednotlivých kontajneroch, napríklad stav, CPU, pamäť, sieťové štatistiky a počty reštartov.

Do Hosts zadáme meno servera

4. Automatické objavovanie Docker kontajnerov

Otvoríme Data collection → Templates a vyhľadáme šablónu Docker by Zabbix agent 2

Na jej riadku klikneme na Discovery.

Nájdeme pravidlo Containers discovery.

Oficiálna Docker šablóna obsahuje pravidlo `Containers discovery`.

V našej konfigurácii používalo kľúč:

docker.containers.discovery[false]

Interval automatického objavovania bol nastavený na `15m`.

Pomocou Low-Level Discovery Zabbix automaticky vytvára monitorovacie položky pre jednotlivé kontajnery.

4.1 Kontrola stavu kontajnera

Pre stav kontajnera využijeme Item prototype `Container {#NAME}: Running`:

docker.container_info.state.running["{#NAME}"]

Makro `{#NAME}` sa pri objavovaní automaticky nahradí názvom kontajnera. Napríklad pre Grafanu vznikne:

docker.container_info.state.running["/grafana"]
  • `1` – kontajner beží.
  • `0` – kontajner nebeží.

4.2 Vlastný Trigger prototype

Oficiálna šablóna už obsahuje triggery pre chybový exit kód, chybový stav a neúspešný healthcheck. V praxi sme však chceli monitorovať aj kontajner, ktorý sa zastaví korektne s exit kódom `0`.

Preto sme doplnili vlastný Trigger prototype v Data collection → Templates → Docker by Zabbix agent 2 → Discovery → Containers discovery → Trigger prototypes.

ParameterHodnota
NameDocker: Container {#NAME} is not running
SeverityHigh
Create enabledYes
DiscoverYes
Expression:


max(/Docker by Zabbix agent 2/docker.container_info.state.running["{#NAME}"],3m)=0
and
count(/Docker by Zabbix agent 2/docker.container_info.state.running["{#NAME}"],3m)>=4

Výsledok

Trigger sa aktivuje pri najmenej štyroch nulových meraniach v posledných troch minútach, pričom v tomto okne nesmie byť zaznamenaná hodnota `1`.

Pri našom intervale merania približne 50 sekúnd tým obmedzujeme upozornenia na krátke reštarty.

Po vytvorení prototypu Zabbix automaticky vygeneroval **17 triggerov** pre objavené kontajnery. Medzi nimi boli:

  • `/grafana`
  • `/graylog`
  • `/graylog-datanode`
  • `/graylog-mongodb`
  • `/netbox-netbox-1`
  • `/passbolt`
  • `/freepbx-app`
  • `/zabbix-server`
  • `/zabbix-web`

Dôležité: Pred zásahom do oficiálnej šablóny odporúčame exportovať jej YAML zálohu. Po aktualizácii alebo opätovnom importe šablóny treba vlastné úpravy skontrolovať.

Trigger funguje iba vtedy, keď Zabbix stále získava stav kontajnera. Pri úplnom odstránení kontajnera počas aktualizácie treba zvlášť riešiť pravidlá pre stratené objekty (*lost resources*) a kontroly neprítomnosti dát. Pre kontajnery, ktoré sa majú pravidelne zastavovať, je vhodné použiť výnimky.

5. Monitoring SSL/TLS certifikátov

Okrem dostupnosti aplikácií je dôležité sledovať aj platnosť ich SSL/TLS certifikátov.

V našej infraštruktúre používame verejné certifikáty pre internetové domény a interné certifikáty vydávané cez FreeIPA Certificate Authority.

Na monitoring používame oficiálnu šablónu `Website certificate by Zabbix agent 2`.

5.1 Manuálna kontrola certifikátu

Pred vytvorením monitoringu môžeme certifikát overiť pomocou OpenSSL:


echo | openssl s_client \
  -connect grafana.ibasterisk.local:443 \
  -servername grafana.ibasterisk.local \
  2>/dev/null | openssl x509 \
  -noout -subject -issuer -dates

Výsledok kontroly


subject=O = IBASTERISK.LOCAL, CN = grafana.ibasterisk.local
issuer=O = IBASTERISK.LOCAL, CN = Certificate Authority
notBefore=Aug  1 21:10:07 2026 GMT
notAfter=Aug  1 21:10:07 2028 GMT

Tento príkaz kontroluje obsah certifikátu, ale sám osebe ešte nepotvrdzuje dôveryhodnosť celého certifikačného reťazca.

5.2 Vytvorenie SSL monitorovacieho hosta

Prejdeme do Data collection → Hosts → Create host.


ParameterHodnota
Host namessl.grafana.ibasterisk.local
Visible nameSSL – Grafana
Host groupsweb
TemplateWebsite certificate by Zabbix agent 2
Agent interface10.10.8.5:10050

5.3 Konfigurácia makier

Na záložke **Macros** nastavíme:

Macro Value
{$CERT.WEBSITE.HOSTNAME} grafana.ibasterisk.local
{$CERT.EXPIRY.WARN} 30
{$CERT.WEBSITE.PORT} 443

Dedenie makier zo šablóny

Pri konfigurácii SSL monitoringu nemusíme všetky makrá definovať priamo na monitorovanom hoste. Zabbix umožňuje dediť predvolené hodnoty z priradenej šablóny.

V našom prípade sme na hoste ssl.grafana.ibasterisk.local nastavili dve vlastné makrá:

  • {$CERT.WEBSITE.HOSTNAME} – grafana.ibasterisk.local
  • {$CERT.EXPIRY.WARN} – 30

Makro {$CERT.WEBSITE.PORT} s hodnotou 443 je automaticky zdedené zo šablóny Website certificate by Zabbix agent 2.

Zdedené hodnoty môžeme overiť v konfigurácii hosta na záložke Macros → Inherited and host macros, kde Zabbix zobrazuje výslednú hodnotu makra (Effective value) aj hodnotu definovanú v šablóne (Template value).

Vďaka dedeniu makier nemusíme opakovane nastavovať rovnaké hodnoty na každom monitorovanom hoste. Ak služba používa iný HTTPS port, napríklad Synology NAS na porte 5001, môžeme zdedenú hodnotu prepísať makrom priamo na danom hoste.

V zozname hostov klikneme na SSL – Grafana a otvoríme záložku Macros.

Makro `{$CERT.EXPIRY.WARN}` určuje počet dní pred expiráciou, pri ktorých Zabbix aktivuje upozornenie.

Výraz triggera pracuje so zostávajúcou platnosťou (ukážka z verejnej domény):

(last(/web.cv.ibasterisk.eu/cert.not_after[cv.ibasterisk.eu])-now())/86400 < {$CERT.EXPIRY.WARN}

Pri iných hostoch sa názov hosta a kľúč prispôsobia automaticky prostredníctvom šablóny.

5.4 Overenie certifikátu v Zabbixe

V Monitoring → Latest data sme pri Grafane získali:

Parameter Výsledok
Expires on 1. 8. 2028
Issuer Certificate Authority, IBASTERISK.LOCAL
Validation result valid
Last validation status certificate verified successfully

5.5 Klonovanie SSL hostov

Po úspešnom nastavení prvého hosta je najjednoduchšie použiť funkciu Clone. Pri klonovaní zmeníme Host name, Visible name, makro `{$CERT.WEBSITE.HOSTNAME}` a makro `{$CERT.WEBSITE.PORT}`, ak služba nepoužíva port 443.

Ostatné nastavenia šablóny a agenta môžeme ponechať.

Takto možno monitorovať Grafanu, Graylog, FreeIPA, Zabbix, NetBox a ďalšie interné HTTPS služby. Pred použitím rovnakého postupu treba overiť, že cieľový port poskytuje TLS certifikát a Agent 2 ho dokáže načítať.

6. Monitoring certifikátu Synology NAS

Rovnaký postup sme pripravili aj pre Synology NAS na IP `10.10.8.3` a doméne `nas.ibasterisk.local`.

Keďže administrácia Synology DSM využíva štandardne HTTPS port `5001`, certifikát sme overili:


echo | openssl s_client \
  -connect 10.10.8.3:5001 \
  -servername nas.ibasterisk.local \
  2>/dev/null | openssl x509 \
  -noout -subject -issuer -dates

Výsledkom bol certifikát vydaný cez internú FreeIPA CA s dátumom expirácie 1. augusta 2028.

Pre Synology vytvoríme samostatný host klonovaním Grafany:

Parameter Hodnota
Host name ssl.nas.ibasterisk.local
Visible name SSL – Synology NAS
Template Website certificate by Zabbix agent 2
Agent interface 10.10.8.5:10050

Makrá:

{$CERT.WEBSITE.HOSTNAME} = nas.ibasterisk.local

{$CERT.WEBSITE.PORT} = 5001

{$CERT.EXPIRY.WARN} = 30


Po vytvorení hosta treba overiť `Expires on` a `Validation result` v Latest data. Výsledok manuálnej kontroly OpenSSL ešte neznamená, že sa už úspešne vykonala aj kontrola zo Zabbixu.

V zozname hostov vyberieme SSL – Synology NAS.

Klikneme na Macros a Host macros

Potom vedľa na Inherited and host macros

7. E-mailové upozornenia

Samotné vytvorenie triggerov nestačí. Aby Zabbix automaticky informoval administrátora o problémoch, potrebujeme nakonfigurovať e-mailový Media type a Trigger actions.

V našej infraštruktúre používame **Alerts → Actions → Trigger actions**.

Klikneme na Report problems to Zabbix administrators

Action

Obsahuje podmienky:

Podmienky sú spojené operátorom OR, takže akcia sa vykoná pri probléme na hoste, ktorý patrí aspoň do jednej z uvedených skupín.

Následne otvoríme záložku Operations, kde skontrolujeme nastavenia odosielania e-mailových upozornení.

V záložke **Operations** je nastavené odosielanie správ cez Email skupine `Zabbix administrators`. Samostatne sú pripravené aj Recovery operations na informovanie o vyriešení problému.

7.1 Overenie odosielania

V sekcii Reports → Action log môžeme skontrolovať, či boli správy úspešne odoslané alebo došlo k chybe.

Potom zvolíme napríklad Last 7 days

Príklad odoslania mailu

Na obrázku vidíme úspešne odoslané e-mailové upozornenia so stavom Sent. Tento stav potvrdzuje, že Zabbix úspešne odovzdal správu nakonfigurovanému SMTP serveru. Neznamená však automaticky, že správa bola doručená do schránky príjemcu. Skutočné doručenie je potrebné overiť aj na poštovom serveri alebo v cieľovej e-mailovej schránke.

Je potrebné pamätať, že pri úplnom výpadku samotného Zabbix servera nemusí byť schopný odoslať upozornenie. Na takéto situácie je vhodný externý monitoring.

8. Odporúčania pre prevádzku

  1. Používať šablóny. Rovnaké kontroly nastavujeme na viacerých serveroch bez zbytočného opakovania.
  2. Nevytvárať duplicitné Items a Triggers. Pred vytvorením novej kontroly najskôr preveríme existujúce šablóny.
  3. Využívať Low-Level Discovery. Pri Dockeri umožňuje automaticky objavovať nové kontajnery.
  4. Prispôsobiť intervaly merania. Príliš krátke intervaly môžu zbytočne zaťažovať infraštruktúru; príliš dlhé môžu oneskoriť upozornenia.
  5. Zálohovať vlastné úpravy šablón. Najmä pred aktualizáciami alebo opätovným importom.
  6. Kontrolovať dôveryhodnosť certifikátov. Samotný dátum expirácie nie je dostatočným potvrdením platnosti SSL/TLS.
  7. Testovať upozornenia. Stav Enabled a OK potvrdzuje konfiguráciu, ale úplné overenie vyžaduje aj kontrolu skutočného správania pri probléme a doručenia notifikácie.

9. Záver

Pomocou Zabbixu sme rozšírili existujúci monitoring o kontrolu SSH, automatické objavovanie Docker kontajnerov, vlastné „Docker trigger“ prototypy a sledovanie SSL/TLS certifikátov.

Výsledkom je centralizované monitorovacie prostredie, ktoré dokáže sledovať dostupnosť služieb, ich prevádzkový stav a včas upozorňovať na potenciálne problémy.

Najväčší prínos prináša kombinácia Templates, Items, Trigger prototypes, Macros a Actions, pretože umožňuje správu väčšieho množstva služieb bez nutnosti opakovať konfiguráciu na každom serveri.

Celý postup je možné rozšíriť o monitoring diskov, databáz, sieťových rozhraní, HTTP služieb a ďalších komponentov infraštruktúry.

**Testovacie prostredie:** Zabbix 8.0 vývojová vetva, Zabbix Agent 2 7.4.15, Ubuntu 24.04 ARM64, Docker, FreeIPA CA a Synology NAS.

Fortigate na Zabbix SNMP V2

Na fortigate cez CLI napíšte následovné príkazy

  • networks – ako sa bude volať comunity string (ľubovoľný názov)
  • IP adresa sa dáva Servera na ktorom beží Zabbix
config system snmp community
    edit 1
        set name "networks"
        set status enable
        set query-v1-status enable
        set query-v2c-status enable
        set trap-v1-status enable
        set trap-v2c-status enable
        config hosts
            edit 1
                set ip 10.10.8.5 255.255.255.255
            next
        end
    next
end

Následne na Zabbix pridáme hosta následovne

Chvíľu počkajte a mal by zozelenieť

Zabbix troubleshooting so Zabbix agentom

Zabbix Server som inštaloval do Docker a zistil som, že nie dobre monitoruje „sam seba“

Na Zabbix serveri overíme, či je agent dostupný:

telnet 10.10.8.5 10050

Ak sa zobrazí Connected to 10.10.8.5, port je otvorený.

Ak sa spojenie okamžite zatvorí, problém je zvyčajne v hostname alebo povolených IP agenta.

Upravil som agenta

nano /etc/zabbix/zabbix_agentd.conf
# Povolené IP Zabbix servera pre pasívne kontroly
Server=10.10.8.5,172.19.0.4

# Povolené IP Zabbix servera pre aktívne kontroly
ServerActive=10.10.8.5,172.19.0.4

# Hostname agenta – MUSÍ presne sedieť so Zabbix GUI
Hostname=mon.ibasterisk.local

Reštartujeme agenta

sudo systemctl restart zabbix-agent

Skontrolujeme logy, či agent beží správne:

sudo tail -f /var/log/zabbix/zabbix_agentd.log

Chvíľu počkáme na výsledok, ak nieje pridaný ešte host, tak ho pridáme

Problém s NAT a Zabbix monitoringom na strane Mikrotik

Scenár

Máme server v internej sieti s adresou 10.0.3.35, na ktorom beží Zabbix agent (porty 10050, 10051).
Zabbix server sa nachádza v inej sieti (rozsah 193.87.79.0/27) a má monitorovať tento agent cez verejnú IP routera 193.87.79.11.

Na routeri MikroTik je nastavené NAT pravidlo:

Scenár

Máme server v internej sieti s adresou 10.0.3.35, na ktorom beží Zabbix agent (porty 10050, 10051).
Zabbix server sa nachádza v inej sieti (rozsah 109.230.12.223/27) a má monitorovať tento agent cez verejnú IP routera 109.230.12.223.

Na routeri MikroTik je nastavené NAT pravidlo:

/ip firewall nat add action=dst-nat chain=dstnat dst-address=109.230.12.223 dst-port=10050,10051 protocol=tcp src-address=193.87.79.0/27 to-addresses=10.0.3.35

Zabbix 7.4.1 na Raspberry Pi – Ubuntu 24.04

Ako prvé je potrebné urobiť update a upgrade

sudo apt update
sudo apt upgrade

Nainštalujeme MariaDB

sudo apt install mariadb-server mariadb-client -y

Spustíme a povolíme službu

sudo systemctl enable mariadb
sudo systemctl start mariadb

Môžeme databázu zabezpečiť

sudo mysql_secure_installation

Vytvoríme databázu

sudo mysql -uroot -p
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
SET GLOBAL log_bin_trust_function_creators = 1;
EXIT;

Zakážeme log_bin_trust_function_creators (nieje to povinné, ale odporúča sa)

SET GLOBAL log_bin_trust_function_creators = 0;
EXIT;

Inštalácia Zabbix repozitárov

wget https://repo.zabbix.com/zabbix/7.4/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.4+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest_7.4+ubuntu24.04_all.deb
apt update 

Inštalácia Zabbix server, frondend a agent

sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent

Importovať čistú schému Zabbix:

zcat /usr/share/zabbix/sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

Upravíme konmfiguráciu databázy pre Zabbix server

sudo vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password

Reštartujte službu
sudo systemctl restart zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2

Teraz otvorímewebový prehliadač a zadáme IP adresu daného servera v tvare X.X.X.X/zabbix. IP adresu, ak nevieme, ta ksa dá zistiť s príkazom

ip a 

Môžete mať problém

berie mspat ide mi t ourobil som iba chybu ale ma mteraz problem Locale for language "en_US" is not found on the web server. Tried to set: en_US, en_US.utf8, en_US.UTF-8, en_US.iso885915, en_US.ISO8859-1, en_US.ISO8859-2, en_US.ISO8859-4, en_US.ISO8859-5, en_US.ISO8859-15, en_US.ISO8859-13, en_US.CP1131, en_US.CP1251, en_US.CP1251, en_US.CP949, en_US.KOI8-U, en_US.US-ASCII, en_US.eucKR, en_US.eucJP, en_US.SJIS, en_US.GB18030, en_US.GB2312, en_US.GBK, en_US.eucCN, en_US.Big5HKSCS, en_US.Big5, en_US.armscii8, en_US.cp1251, en_US.eucjp, en_US.euckr, en_US.euctw, en_US.gb18030, en_US.gbk, en_US.koi8r, en_US.tcvn. Unable to translate Zabbix interface.

Je potrebné doinštalovať locales

sudo apt install locales -y
sudo locale-gen en_US en_US.UTF-8
sudo update-locale

Reštartujte Apache

sudo systemctl restart apache2

Potom znovu choďte na webový prehliadač a obnovte web stránku

Zadáme parametre, aké sme zadali pri vytváraní databázy

Teraz si môžeme nastaviť Zabbix server name, časové pásmo a vzhľad. V mojom prípade, nech to súhlasí s DNS záznamom, tak napíšem mon-ibasterisk.local a zvolím dark mode 🙂

Už sa len prihlásiť. Admin a heslo je zabbix

A keď už mám aj ten DNS server, tak môžeme otestovať A záznam

mon-ibasterisk.local/zabbix

Nastavenie monitoringu SSL certifikátu na serveri

Konfigurácia na strane servera, ktorý chceme monitorovať

Ako prvé je potrebné na servery nainštalovať zabbix-agent2

sudo apt install zabbix-agent2

Prípadne , ak je nainštalovaný zabbix agent, tak ten treba zastaviť

systemctl stop zabbix-agent

Teraz je potrebné nakonfigurovať zabbix-agent2

Pridáme následovné parametre

Server= IP adresa servera, kde je nainštalovaný Zabbix
ServerActive= IP adresa servera, kde je nainštalovaný Zabbix
Hostname= buď hostname daného servera, alebo IP adresa servera, ktorý chceme monitorovať 

Danú konfiguráciu uložíme

Teraz, aby sa nám spúšťal pri boote je potrebné Zabbix Agenta2 reštartovať, povoliť a prípadne zakázať pôvodný.

systemctl restart zabbix-agent2
systemctl enable zabbix-agent2
systemctl disable  zabbix-agent

Pridanie hosta na Zabbix a vytvorenei web scenario

WEB scenario

je potrebné si rozliknúť daného hosta

Volíme web scenario

Potom možnosť Create web scenario, dôležitý je Required status code 200

V Scenario vyplníme následovné

Klikneme na Steps

Zvolíme Add

Príklad pridania servera

  • Host name, je názov, servera, to je na vás ako si server pomenujete
  • Visible name automaticky doplní Zabbix za Vás
  • Host groups, keďže web ktorý hostujem, je postavený na Linuxe tak som ho dal do predvolenej Linux servers a WEB monitoring som si vytvoril.

Teraz ideme do tabu Macros a zvolíme pod Tab Host Macros

Vytvoríme makro

{$CERT.EXPIRY.WARN} Value 90

Výsledok, je ten, že 90 dní pred expiráciou nám príde hláška, že sa konči SSL certifikát

Teraz ideme do pod Tab Inherited and host macros

A nastavíme ho napr. Takto

{$AGENT.TIMEOUT}  3m
{$CERT.EXPIRY.WARN} 90
{$CPU.UTIL.CRIT} 90

A zvolíme update

Zabbix Agent 7.2 na Arch Linux

Urobíme ako prvé update

sudo pacman -Syu

Nainštalujeme zabbix agenta

sudo pacman -S zabbix-agent

Nakonfigurujeme Zabbix Agenta pomocu textového edita nano (vim je potrebné doinštalovať)

sudo pacman -S vim
sudo nano /etc/zabbix/zabbix_agentd.conf

Tu nastavujeme parametre

Server=<Zabbix_server_IP>
ServerActive=<Zabbix_server_IP>
Hostname= IP adresa servera, kde beží Zabbix Agent, alebo IP adresa toho servera 

Povolíme, aby sa daný Agent spúšťal už pri boote OS

sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent

Upozornenie, ak meníme v Zabbix Agentovi parametre, tak je ho vždy potrebné reštartovať

sudo systemctl restart zabbix-agent

Zabbix 7.2 – Monitorovanie SNMP protokolu na VOIP telefónoch GrandStream GXP1625

Nieje to potrebné, ale keď sa hrám so Zabbix a robím okrem iného aj telefónnu ústredňu tak som si povedal, že si vyskúšam si urobiť aj Template

?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
  <version>7.2</version>
  <templates>
    <template>
      <uuid>550e8400e29b41d4a716446655440000</uuid>
      <template>Template_SNMP_Grandstream_GXP1620_1625</template>
      <name>Template SNMP Grandstream GXP1620/1625</name>
      <groups>
        <group>
          <name>Templates</name>
        </group>
      </groups>
      <items>
        <item>
          <uuid>550e8400e29b41d4a716446655440001</uuid>
          <name>Device Uptime</name>
          <type>SNMP_AGENT</type>
          <snmp_oid>1.3.6.1.2.1.1.3.0</snmp_oid>
          <key>sysUptime</key>
          <delay>60s</delay>
          <history>90d</history>
          <trends>365d</trends>
          <value_type>FLOAT</value_type>
          <units>seconds</units>
        </item>
        <item>
          <uuid>550e8400e29b41d4a716446655440002</uuid>
          <name>Network IP Address</name>
          <type>SNMP_AGENT</type>
          <snmp_oid>1.3.6.1.2.1.4.20.1.1</snmp_oid>
          <key>ipAddress</key>
          <delay>300s</delay>
          <history>90d</history>
          <trends>365d</trends>
          <value_type>CHAR</value_type>
        </item>
        <item>
          <uuid>550e8400e29b41d4a716446655440003</uuid>
          <name>System Name</name>
          <type>SNMP_AGENT</type>
          <snmp_oid>1.3.6.1.2.1.1.5.0</snmp_oid>
          <key>sysName</key>
          <delay>300s</delay>
          <history>90d</history>
          <trends>365d</trends>
          <value_type>CHAR</value_type>
        </item>
      </items>
    </template>
  </templates>
</zabbix_export>

je potrebné ho uložiť, ako XML a nahrať do do template

Zvoľte Import Template

Začneme na strane telefónu

Pripojíme sa na neho, cez webový prehliadač

Ideme do Network a SNMP Settings

  • Je potrebné SNMP Enable z No dať na YES
  • Keď to mámtestujúcom móde, tak zatiaľ to nechám na Version 1
  • SNMP Trap IP je IP adresa, kde sa nachádza Zabbix Server
  • comunity string napr. voip
  • SNMP Username je IP adresa telefónu

Zvolíme Save and Apply

Na strane Zabbix pridáme nový host

  • Vypíšeme hostname
  • SNMP daného telefónu
  • Volíme Verziu SNMP, takú akú sme nastavili na telfóne v našom prípade SNMPv1 potom zvolíme len Add

Počkáme kým sa synchronizuje

Pridanie Hosta na Zabbix server

Ideme do možnosti Monitoring

Tam zvolíme Host

Ak už máme nejaký Host monitorovaný, tak môžeme zvoliť Clone a vypisujeme

  • host name
  • Host groups
  • Interface, keďže sa jedná o agenta, tak volíme interface Agent s IP adresou servera, ktorý chceme monitorovať

Je potrebné potom chvíľu počkať, aby sa server „našiel“.Výsledok, by mal vyzerať nejak takto

Zabbix Agent 7.0 na Ubuntu 24.10


sudo apt update
sudo apt upgrade

Stiahneme repozitár

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-2+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_7.0-2+ubuntu24.04_all.deb

Urobíme update

sudo apt update
sudo apt install zabbix-agent -y

Nakonfigurujeme Zabbix agenta

sudo vim /etc/zabbix/zabbix_agentd.conf

Server=IP adresa servera
ServerActive=IP adresa servera
Hostname=IP alebo hostname servera, kde je nainštalovaný agent 

Uložíme to

Agenta je potrebné reštartovať

sudo systemctl restart zabbix-agent

Povolíme mu, aby sa spúšťal agent priamo pri boote s OS

sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent

Môžeme overiť, či agent beží

sudo systemctl status zabbix-agent

Server pridáme na Zabbix server

Ideme do možnosti Monitoring

Tam zvolíme Host

Ak už máme nejaký Host monitorovaný, tak môžeme zvoliť Clone a vypisujeme

  • host name
  • Host groups
  • Interface, keďže sa jedná o agenta, tak volíme interface Agent s IP adresou servera, ktorý chceme monitorovať

Je potrebné potom chvíľu počkať, aby sa server „našiel“.Výsledok, by mal vyzerať nejak takto

Zabbix Agent 7.2 na Cent OS 7

rpm -Uvh https://repo.zabbix.com/zabbix/7.2/release/rhel/7/noarch/zabbix-release-latest-7.2.el7.noarch.rpm
yum clean all
yum install zabbix-agent 

Teraz upravne configuráciu agenta

vim /etc/zabbix/zabbix_agentd.conf
Server=10.0.3.35 // IP adresa servera
ServerActive=10.0.3.35 //IP adresa servera 
Hostname = // ak máta DNS server tak meno daného servera alebo IP adresa 
Hostname=10.0.3.37

Uložte to a reštartujte agetna

systemctl restart zabbix-agent

Teraz ešte povolíme, aby sa agent spúšťal pri boote s OS

systemctl enable zabbix-agent

Prípadne môžeme overiť, či agent funguje

systemctl status zabbix-agent

Update Zabbix server 7.2 na Ubuntu 24.04

Je potrebné pre istotu si uložiť DB prípadne ak sa jedná o virtuálizáciu, tak urobiť snapshot

Potom pre istotu si pozrieť verziu operačného systému

cat /etc/os-release

Ako prvé musíme zastaviť služby

systemctl stop zabbix-server
systemctl stop zabbix-proxy
systemctl stop zabbix-agent
systemctl stop zabbix-agent2

Vymaže súbor zabbix.list, ktorý sa nachádza v priečinku /etc/apt/sources.list.d/.

rm -Rf /etc/apt/sources.list.d/zabbix.list

Stiahneme repozitár k Zabbix 7.2

wget https://repo.zabbix.com/zabbix/7.2/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest+ubuntu24.04_all.deb 

Nainštalujte balík pomocou dpkg

dpkg -i zabbix-release_latest+ubuntu24.04_all.deb

Potom je potrebné urobiť upgrade mysql

apt install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent

Spustite znovu služby

systemctl start zabbix-server
systemctl start zabbix-proxy
systemctl start zabbix-agent
systemctl start zabbix-agent2

Zabbix Nastavenie mailových notifikácií

Nájdeme Alerts a volíme Media types

Potom ponuku email

Microsoft O365

ak je to Microsot o365, tak SMTP server bdue v tvare

smtp.office365.com

Port

587

SMTP helo

smtp.office365.com

Klikneme na STARTTLS a potom na Username and password

  • Username xy@ibasterisk.eu
  • Heslo k účtu

Klikneme na update

Overme, testovaciu komunikáciu klikneme na test, ako v pravom rohu, červeným.

E-mailový server hostovaný u iného providera

Či už máte u seba hostovaný Mail server alebo napr. gmail tak konfigurácia je veľmi podobá. V mojom prípade používam Mailcow

Je potrebné zadať SMTP server

mail.ibasterisk.eu

SMTP port

587

Emailovú adresu, ktorý bude odosielať informácie o serveri.

Connection security Security STARTTLS

Mail užívateľa a heslo dotohoto mailu

Nastavenie mailových notifikácií

V Zabbixe sú Conditions (podmienky) pravidlá, ktoré určujú KEDY sa má akcia vôbec spustiť.

Jednoducho povedané:
Conditions = filter, ktorý rozhoduje, či sa akcia vykoná alebo nie

Čo Conditions robia

Keď nastane udalosť (napr. trigger → PROBLEM), Zabbix:

pozrie sa na Conditions

ak splnené → akcia sa spustí

ak nesplnené → nič sa nestane

Kde ich nájdeš

Configuration → Actions → (vybraná akcia) → Conditions

Typické Conditions

Najpoužívanejšie podmienky:

Trigger / Event

Trigger severity
→ len Warning / High / Disaster

Trigger name
→ len konkrétny trigger

Problem event tag / tag value
→ moderný a odporúčaný spôsob

Time period
→ len v pracovnom čase

Hosť

Hosť group
→ len servery, databázy, sieť

Hosť name

Hosť tag

User / Acknowledgement

Acknowledged = No
→ neposielať znova, keď je problém potvrdený

Ideme do Alerts >> Actions >> Trigger action

Volíme Add

Type: Host group

Host groups nakoľko ja mám momentálne, iba Linuxové servery, tak volím len Linux servers

A už len Select

A následne Add

A update

Potom Klikneme na Operation

Potom operation Add

A následne Add

Upozornenie Status musí byť Enable

Nastavenie Recovery operations

V Zabbixe sú Recovery operations (obnovovacie operácie) akcie, ktoré sa vykonajú vo chvíli, keď problémový trigger prejde zo stavu PROBLEM späť do OK.

Výsledok

Na záver je potrebé ísť do User:

Kliknúť na admina

Kliknúť na Media

Kliknúť na Add a výpísať údaje

Výsledok

Zabbix 6.2 na Ubuntu 22.04

Balík Zabbix nie je dostupný v predvolenom úložisku Ubuntu 22.04. Takže budete musieť stiahnuť a nainštalovať oficiálne úložisko Zabbix na váš server. Najprv si stiahnite balík úložiska Zabbix 6 z ich oficiálnej webovej stránky pomocou nasledujúceho príkazu:

wget https://repo.zabbix.com/zabbix/6.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.2-4%2Bubuntu22.04_all.deb

Následne ho nainštalujeme

dpkg -i zabbix-release_6.2-4+ubuntu22.04_all.deb

Ako prvé teraz musíme urobiť update

sudo apt update -y

Potom nainštalujte Zabbix vrátane ďalších požadovaných komponentov pomocou nasledujúceho príkazu:

sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent zabbix-frontend-php zabbix-apache-conf -y

Po nainštalovaní je potrebné zmeniť php.ini časové pásmo. Je potrebné riadok nájsť a odomenotvať a dať tam spávne časové pásmo

sudo vim /etc/php/8.1/apache2/php.ini
date.timezone =Europe/Bratislava

Následne uložte

Nakonfigurujte MariaDB

sudo apt install mariadb-server -y

Po nainštalovaní MariaDB zabezpečte inštaláciu MariaDB a nastavte heslo root pomocou nasledujúceho príkazu:

mariadb-secure-installation
Enter current password for root (enter for none): 
Switch to unix_socket authentication [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

Potom sa pripojte k MariaDB pomocou nasledujúceho príkazu:

sudo mysql -u root -p
CREATE DATABASE zabbix character set utf8mb4 collate utf8mb4_bin;
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT;

Konfigurácia zabbix – je potrebné editovať zabbix_server.conf

vim /etc/zabbix/zabbix_server.conf

Následne zmeňte alebo popridávajte riadky

sudo vim /etc/zabbix/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=password

Uložte to

Po dokončení uložte a zatvorte súbor. Potom importujte údaje Zabbix. Pomoocu hesla, ktoré ste zvolili pre Databázu.

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix

Teraz reštartujte služby a spustute, príkaz, aby sa zabbix spúšťal pri boote servera

systemctl restart apache2
systemctl enable zabbix-server zabbix-agent apache2
systemctl restart zabbix-server zabbix-agent

Môžemesi overiť, či server správne beží príkazom

systemctl status zabbix-server

Overejne Zabbix Agent

systemctl status zabbix-agent

Overejne apache2

systemctl status apache2

Môžete sa prihlásiť na daný server pomocou webového prehliadača pomocou IP adresy

http://x.x.x.x/zabbix

  • User zabbix
  • password password

Default login je:

  • meno: Admin
  • Heslo Zabbix

Monitoring tlačiarní Zabbix

Na tlačiarne sa neinštaluje Agent, ale monitoruje sa SNMP Simple (Network Management Protocol)

Nasatvenie SNMP na tlačiarni

Ako prvé je potrebné nastaiť na tlačiarni SNMP 

1. Nastavení síte >> Nastavení SNMP

2. Pre testovacie účely a pre dobrú komunikáciu sa mi podaril onastaviť SNMP vo verzii následovne

Dajte uložiť

SNMP na Zabbix

je potrebné si stiahnúť template na danú tlačiareň

napr. na canon som pooužil tento template

https://github.com/zabbix/community-templates/blob/main/Printers/Canon/template_canon_c5540/5.0/template_canon_c5540.xml

Daný súbor stiahneme a importujeme do Zabbix 

Klikneme Data collection a zvolíme Templates

V pravom hornom rohu nájdeme Import

A klikneme na import

 Teraz Kliknite na Data Collection a Hosts

Kliknite na Create host (v pravo hore)

Vypĺňame

– Hsotname

– Host groups

– Interfaces vyberáme SNMP

Príklad nastavenia tlačiarne:

Klikneme už iba na Add

Chvíľu počkáme a bude spojenie medzi tlačiarňou a Zabbixom

Monitoring TrueNAS na Zabbix

na TrueNAS sa neinštaluje Zabbix agent a ani sa nekonfiguruje. 

TrueNAS sa monitoruje prostredníctvom SNMP protokolu (Simple Network Management Protocol) 

Prihláste sa na TrueNAS 

Na TrueNAS je potrebné povoliť službu, SNMP 

  • Services >> SNMP 

Nájdite službu SNMP

Zabbix – overenie template, či sa nachádza 

Pre istotu overte, či sa daný template nachádza v Zabbix 

Nachádza sa ? 

Pridanie hosta na Zabbix 

Choďte do Data Collection >> Host 

Zvoľte create Host 

Zvoľte hostname napr. TruNAS 

Zvoliť host groupe. TruNAS je postavený na Linux FreeBSD, ja som ho pridal do Hsot grups Linux 

Interface sa volí SNMP a IP adresu dávame, tú kdesa nachádza TrueNAS 

Počkajte pár sekúnd až 1 minútu. A začne sa monitorovať 

Zabbix agent Ubuntu 22.04

  1. Je vhodné používať Zabbix agenta, aký máte Zabbix server. V mojom prípade to je 6.2
  2. Ako prvé je potrebné naištalovať Zabbix agenta na danom servery a nakonfigurovať. Ako prvé musíte pridať repozitár
wget https://repo.zabbix.com/zabbix/6.2/debian/pool/main/z/zabbix-release/zabbix-release_6.2-1+debian11_all.deb 
dpkg -i zabbix-release_6.2-1+debian11_all.deb

Teraz nainštalujte Zabbix agenta

sudo apt update
sudo apt install zabbix-agent

Je potrebné, aby sa spúšťal Zabbix agent ptiamo pri boote OS. To sa spravý následovne príkazmy

sudo systemctl enable zabbix-agent 
sudo systemctl start zabbix-agent

Je potrebné ísť do agenta a nastaviť IP adresu a hostname nájdite riadky Server a Hostname

sudo nano /etc/zabbix/zabbix_agentd.conf
2
3
	
Server=<Zabbix_Server_IP>
ServerActive=<Zabbix_Server_IP>
Hostname=<Hostname alebo IP adresa -servera, ktorý chceme monitorovať>

Uložte to

Je potebné Zabbix agenta reštartovať

sudo systemctl restart zabbix-agent

Troubleshooting

wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-2%2Bubuntu22.04_all.deb
sudo dpkg -i zabbix-release_6.0-2+ubuntu22.04_all.deb
sudo apt update
sudo apt install zabbix-agent
sudo apt –fix-broken install

Inštalácia Zabbix na vSphere Client

Klikneme V Monitoring na Host 

V pravo hore klikneme na Create Host 

Vypíšeme hostname daného servera 

V templatoch je potrebné násť VMware Guest

Teraz kliknite na Macro

Je potrebné:  

  • zadať heslo, pre administrator@vsphere.local 
  • IP adresa, kde sa nachádza Vsphere client v tvare: http://X.X.X.X/sdk
  • A heslo ku danému kontu.  
{$VMWARE.PASSWORD}
{$VMWARE.URL}
{$VMWARE.USERNAME}

Teraz je potrebné na servery kde sa nachádza Zabbix 

Sa pripojte ssh

 root@X.X.X.X 

Choďte do súboru pomocou textového editoru (vim, vi, nano) 

nano /etc/zabbix/zabbix_server.conf 

Tu je potrebné násjť riadok  

StartVMwareCollectors=0 

(odkomentovať ho a 0 prepísať za číslo od 1-5) 

StartVMwareCollectors=5 

Zmenu uložte a reštartujte službu 

systemctl restart zabbix-server.service 

Keď pôjdete na Zabbix 

A otvoríte si daný server, uvidíte, že monitoruje 

Zabbix monitoring portu

Kliknite do Hosts a vyhľadajte daný server

Rozkliknite ho a kliknite na Items

Kliknite na Create Item

Vypíšeme údaje:

  • Name: port
  • Type Zabbix Agent
  • Key je vela možností v tomto prípade chceme monitorovať port a IP
  • net.tcp.port[<172.28.79.16>,22]
  • Host Interface názov_daného_servera: 10050

Zakliknite Enabled

A teraz na add

Úspešné pridanie portu na monitoring

Teraz kliknite na Triggers

  • Kliknite create trigger
  • Vypíšte názov
  • Kliknite na information >> kkliknite na Add

Pridajte Items, ktorý ste vytvorili. V našom prípade to je port_22

Teraz kliknite na Warrning, zakliknite Allow manual close

Už len klinite na Add

Choďte na hlavný dashboard a počkajte cca 30 sekúnd trigger sa objaví.

Zabbix Agent na Windows

Stiahnite Agenta z tejto stránky

Download Zabbix agents

Vhodné je použiť agenta v takej verzií v akej máte Zabbix Server

Príklad konfigurácie

Kliknite na Download

Keď je stiahnutý

Spustite inštaláciu kliknite Next

Súhlaste s licenciou

V tomto kroku kliknite iba na Next

Teraz vypíšte:

  • Host name zariadenia
  • IP dresa, Zabbix Servera
  • Port agenta sa nemení
  • Server proxy
  • Server or Proxy for active checks: Zadajte IP adresu zabbix servera

Po inštalácii kliknite na Finish

Povoľte Agenta, ešte vo Firewalle

Choďte do ovládacieho panela

Kliknite na Windows Defender Firewall

Kliknite na Allow an app or feature through Windows Defender Firewall

Kliknite na Allow another app…

Pri Path, kliknite na Browse…

Podľa toho, či máte 32 bitový OS, alebo 64 zvoľte Program Files a nájdite Zabbix Agent

Zvoľte zabbix_agentd a kliknite na Open

Potom kliknite na Add

Nájdite zabbix_agentd.exe a kliknite na public a potom Len na OK

Pridanie hosta na Zabbix Serveri

Kliknite na Configuration a tam nájdite Hosts

Kliknite na Create Host

Kliknite na Hosts

Napíšte názov servera a Visible name, odporúčam nazov servera a vyberte v groups do akej skupiny bude patriť. Agent je IP adresa daného servera

Teraz choďte do Monitoring a zvoľte Maps

Kliknite na Edit map

Kliknite na Add

Kliknite na Select

Vyberieme správnu Host groups

Klikneme na server, ktorý chceme pridať do mapy

Vypíšeme:

  • Hosts
  • Label
  • Typ

Klikneme na Apply

A následne na Update

Zabbix agent na Debian 10

  1. Je vhodné používať Zabbix agenta, aký máte Zabbix server. V mojom prípade to je 5.0
  2. Ako prvé je potrebné naištalovať Zabbix agenta na danom servery a nakonfigurovať. Ako prvé musíte pridať repozitár
wget https://repo.zabbix.com/zabbix/6.2/debian/pool/main/z/zabbix-release/zabbix-release_6.2-1+debian11_all.deb
dpkg -i zabbix-release_6.2-1+debian11_all.deb
apt update

Teraz ho môžete stiahnúť agenta

wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_5.0-1+buster_all.deb
sudo dpkg -i zabbix-release_5.0-1+buster_all.deb
sudo apt update

Nainštalujte Zabbix agenta

sudo apt update
sudo apt install zabbix-agent

Zapnite ho, aby sa spúšťal priamo pri boote OS

sudo systemctl enable zabbix-agent
sudo systemctl start zabbix-agent

Nakonfigurujte Zabbix agenta

sudo nano /etc/zabbix/zabbix_agentd.conf
ServerZadáva sa IP adresa servera, kde je nainštalovaný Zabbix
HostnameZadáva sa hostname klienta, servera ktorý chceme priať na Zabbix monitorovací s
PortZabbix agent počúva na porte 10050, je to potrebné

Teraz musíte na firewalle povoliť port 10050

sudo ufw allow 10050
sudo ufw reload

Pridajte host na Zabbix

Teraz choďte na Zabbix server

Nájdite Configuration a Hots

Teraz kliknite na Create Host

Vypíšte to podľa seba

Vypisuje sa:

  • Hostname
  • Groupa
  • Agent (IP adresa, kde sa nachádza nainštalovaný agent)

Keď to máte hotové, tak kliknite na Add

Vytvorenie Mapy

Teraz ak chcete vytvoriť mapu serverov, kliknite na Monitoring a Maps

Kliknite na Create map

Napíšte názov mapy ako sa bude volať a kliknite na add

Kliknite na Edit map

Kliknite na Add

Vypisuje sa:

  • Typ
  • Label
  • Host

Kliknite na apply

Kliknite na update

Pridával som nexctclou2

MAPA serverov

Keď chceme mať nejakú topológiu serverov, tak si môžeme vytvoriť mapu niečo ako je na obrázku vyššie.

Teraz môj cieľ je, aby Zabbix bol prepojený s nextcloud2

Kliknite na Edit Map

Označte si Servery

CTRL + klik na myške

Teraz, ako je Link: Add/Remove, tak kliknite na ADD

Opäť kliknite na Update

Zabbix 6 na Ubuntu 22.04

apt install software-properties-common -y
add-apt-repository ppa:ondrej/php --yes &> /dev/null
apt update
apt install build-essential libmariadb-dev sudo libxml2-dev \
php7.4 php7.4-gd php7.4-xml php7.4-bcmath php7.4-mbstring libapache2-mod-php7.4 \
php7.4-ldap php7.4-mysql apache2 mysql-server snmp libsnmp-dev \
libcurl4-openssl-dev libevent-dev libpcre3-dev libxml2-dev \
libmariadb-dev libopenipmi-dev pkg-config libssh2-1-dev libldap-dev

Teraz vytvorte databazu pre Zabbix a databazu pre užívateľa

Prihláste sa na server MariaDB a vytvorte databázu a používateľa databázy pre Zabbix. Užívateľ databázy by mal mať všetky privilégiá pre databázu zabbix.

mysql -u root -p
create database zabbixdb character set utf8 collate utf8_bin;
create user zabbixadmin@localhost identified by 'P@SSw0RD';
grant all on zabbixdb.* to zabbixadmin@localhost;
flush privileges;
quit

Vytvorte používateľský systémový účet Zabbix

Na spustenie démonov Zabbix je potrebný systémový účet Zabbix. Preto ho môžete vytvoriť spustením príkazu nižšie;

sudo useradd -r -d /var/lib/zabbix -s /sbin/nologin -M zabbix
mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
chown zabbix:zabbix /var/lib/zabbix

Stiahnite Zabbix zdrojové kódy

wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.4.tar.gz
tar xzf zabbix-6.0.4.tar.gz

Prejdite do extrahovaného zdrojového adresára Zabbix a spustite konfiguračný skript na prispôsobenie Zabbix systému. Tento krok môže zlyhať, ak nie je nainštalovaná jedna z požadovaných závislostí. V tejto príručke nakonfigurujeme server a agenta Zabbix a povolíme podporu pre backend databázy MariaDB.

Choďte do priečinka

cd zabbix-6.0.4

Ak to prebehlo úspešne. Uvidíte takúto hlášku

sudo make install

Otvorte konfiguračný súbor

/usr/local/etc/zabbix_server.conf

A nahraďte hodnoty:

  • DBname
  • DBuser
  • DBPassword

S tým, čo ste nastavili pri vytváraní databázy. Odkomentujte riadok # DBHost=localhost.

Zmeňte adresár denníka servera Zabbix

LogFile=/var/log/zabbix_server.log

Teraz vytvorte tento súbor denníka a nastavte vlastníctvo na používateľa Zabbix.

touch /var/log/zabbix_server.log
chown zabbix:zabbix /var/log/zabbix_server.log

Importujte predvolenú databázu Zabbix a počiatočné údaje

cd ~/zabbix-6.0.4/database/mysql/
ls -1 *.sql

Začnite importovaním databázovej schémy Images.sql a potom data.sql. A použite heslo, ktoré ste zvolili v mojom prípade P@SSw0RD

mysql -u zabbixadmin -p zabbixdb < schema.sql
mysql -u zabbixadmin -p zabbixdb < images.sql
mysql -u zabbixadmin -p zabbixdb < data.sql

Vytvorte systémovú službu pre server Zabbix.

cat > /etc/systemd/system/zabbix-server.service << EOL
[Unit]
Description=Zabbix Server
After=syslog.target network.target mariadb.service
 
[Service]
Type=oneshot
User=zabbix
ExecStart=/usr/local/sbin/zabbix_server
ExecReload=/usr/local/sbin/zabbix_server -R config_cache_reload
RemainAfterExit=yes
PIDFile=/var/run/zabbix/zabbix_server.pid
 
[Install]
WantedBy=multi-user.target
EOL

Vytvorte službu systemd pre agenta Zabbix

cat >  /etc/systemd/system/zabbix-agent.service << EOL
[Unit]
Description=Zabbix Agent
After=syslog.target network.target
 
[Service]
Type=oneshot
User=zabbix
ExecStart=/usr/local/sbin/zabbix_agentd
RemainAfterExit=yes
PIDFile=/var/run/zabbix/zabbix_agent.pid
 
[Install]
WantedBy=multi-user.target
EOL

Reštartujte systemd konfiguráciu

systemctl daemon-reload

Spustite službu priamo s bootom

systemctl enable --now zabbix-server zabbix-agent

Otvorte port na firewall pomocou ufw

ufw allow 10051/tcp

Inštalácia rozhrania Zabbix na Ubuntu 22.04

Vytvorte koreňový adresár Zabbix Web.

mkdir /var/www/html/zabbix

Ďalej skopírujte súbory PHP Zabbix.

cp -a ~/zabbix-6.0.4/ui/* /var/www/html/zabbix/

Nastavte vlastníctvo používateľa a skupiny adresára Zabbix na www-data.

chown -R www-data:www-data /var/www/html/zabbix/

Nakonfigurujte rozhranie Zabbix

sed -i '/post_max_size/s/= 8M/= 16M/' /etc/php/7.4/apache2/php.ini

Nastavte PHP max_execution_time na 300 s

Nastavte PHP max_input_time na 300s

sed -i '/max_input_time/s/= 60/= 300/' /etc/php/7.4/apache2/php.ini

Nakonfigurujte časové pásmo PHP

sed -i 's/;date.timezone =/date.timezone = Europe\/Bratislava/' /etc/php/7.4/apache2/php.ini

Reštartujte službu

systemctl restart apache2

Nakonfigurujte webové používateľské rozhranie Zabbix

Zabbix na Raspberry

Tento manuál je pre Raspberry Pi 3 a 4. Pôvodne som h oskúšal na Raspberry PI 2. Fungovalo to tiež, len dlhšie trval jedne proces. Na Raspberry Pi 2 to netrvalo 5 minút, ale vyše 4 hodín, kým zbehlo importovanie schém a dát. V tomto manuály budeme inštalovať Zabbix 4.0

Nainštalujte Zabbix server, frontend a agenta

sudo wget https://repo.zabbix.com/zabbix/4.0/raspbian/pool/main/z/zabbix-release/zabbix-release_4.0-3+$(lsb_release -sc)_all.deb
sudo dpkg -i zabbix-release_4.0-3+$(lsb_release -sc)_all.deb
sudo apt update
sudo apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-agent

Resetnite root heslo pre databázu

sudo mysql_secure_installation
Enter current password for root (enter for none): Press the Enter
Set root password? [Y/n]: Y
New password: <Enter root DB password>   (to je na Vás)
Re-enter new password: <Repeat root DB password>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

Vytvorte databázu

sudo mysql -uroot -p'rootDBpass'
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbixDBpass';
mysql> quit;

Importujte schému a data. Tento krok na Raspberry pi 3 trvá cca 5 minút.

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz |  mysql -uzabbix -p'zabbixDBpass' zabbix

Teraz do sudo nano /etc/zabbix/zabbix_server.conf zapíšte heslo do databázy. V tomto manuály zabbixDBpass

DBPassword=zabbixDBpass

Reštartujte Zabbix server a agenta

sudo systemctl restart zabbix-server zabbix-agent 
sudo systemctl enable zabbix-server zabbix-agent

Keď sa uspešne nainštaloval a nakonfiguroval. Choďte ce zwebový prehliadač na Zabbix server v tvare X.X.X.X. A mali by ste vidieť Apache2 Debian:

Teraz nastavte časové pásmo

sudo nano /etc/zabbix/apache.conf

Reštartujte Apache web server a povoľte mu, aby sa Zabbix spúšťal pri boote

sudo systemctl restart apache2
sudo systemctl enable apache2

Teraz nastavte práva pre web

sudo find /usr/share/zabbix -type f -exec chmod 664 {} \; 
sudo find /usr/share/zabbix -type d -exec chmod 775 {} \;

Teraz na webovom prehliadači otvorte web stránku v tvare X.X.X.X/zabbix

Môžete skontrolovať, či Vám všetko funguje

Ak ste postupovali podľa tohoto manuálu, tak použite heslo: zabbixDBpass

V ďalšom kroku zvoľte iba „Next Step“

Továrenské prihlásenie nado Zabbix je:

  • Meno: Admin
  • Heslo: zabbix

Už len kozmetická úprava:

Keď pôjdete do Administration>>General môžete zmeniť tému