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.

naspäť