Stav diskov ESXi v Zabbixe: SMART pre SATA, health log pre NVMe

Stav diskov ESXi v Zabbixe: SMART pre SATA, health log pre NVMe

Obsah

Štandardné Zabbix templaty pre VMware (VMware a VMware Hypervisor, cez vSphere API) sú výborné na CPU, pamäť, datastory a stav VM. Neprezradia však, ako sa majú fyzické disky v samostatnom ESXi hoste. Že disk zlyhal, sa dozviete, keď datastore prejde do offline — nie o týždeň skôr, keď disk začal presúvať sektory.

Pre lokálne úložisko — homelaby, hosty na pobočkách, zálohovacie servery, malé klastre s lokálnymi NVMe — používame dva malé templaty, ktoré čítajú stav diskov priamo z hosta cez SSH.

Templaty: esxi-smart-health a esxi-nvme-health — Zabbix 7.2+, otestované s ESXi 7.0.

SATA disky: ESXi SMART Health

ESXi neobsahuje smartctl, preto ho tento template potrebuje mať najprv nainštalovaný — balíme ho ako komunitný VIB: smartctl-esxi-vib (inštalácia cez esxcli software vib install, bez reštartu).

Ako to funguje:

  1. Raz za hodinu Zabbix cez SSH spustí ls -1 /dev/disks | grep t10.ATA | grep -v ':' — zoznam SATA diskov (bez partícií).
  2. Low-level discovery vytvorí jeden záznam pre každý disk, pomenovaný podľa sériového čísla.
  3. Pre každý disk sa každú hodinu spustí /opt/smartmontools/smartctl -s on -d sat,auto -A /dev/disks/<disk> a krok predspracovania v JavaScripte rozparsuje tabuľku atribútov do JSON.

Položky pre každý disk:

Položka Prečo je dôležitá
Reallocated Sector Count Sektory už presunuté do rezervnej oblasti
Current Pending Sector Nečitateľné sektory čakajúce na presun
Offline Uncorrectable Sektory, ktoré zlyhali pri offline kontrole
Power On Hours Vek disku — užitočné pri plánovaní výmen

Template obsahuje jeden trigger: Current Pending Sector > 0 (Average) — najjasnejší včasný príznak umierajúceho disku. Odporúčame do template pridať ešte dva v rovnakom štýle:

  • change(/ESXI SMART Health/smart.status[{#DISK_ID},Reallocated_Sector_Ct])>0 — počet presunutých sektorov narástol;
  • last(/ESXI SMART Health/smart.status[{#DISK_ID},Offline_Uncorrectable])>0.

NVMe disky: ESXi NVMe Health

Pre NVMe má ESXi všetko zabudované — na hoste netreba nič inštalovať. Template používa localcli:

  1. /bin/localcli nvme device list (každú hodinu) nájde NVMe adaptéry (vmhba…).
  2. /bin/localcli nvme device log smart get --adapter <vmhba> (každých 5 minút) prečíta SMART/health log NVMe.

Položky a triggery pre každý disk:

Položka Triggery
Media Errors > 0 → High — údaje sa nepodarilo obnoviť
Composite Temperature > 60 °C Warning, > 70 °C High
Available Spare < 20 % Warning, < 10 % High
Percentage Used (menovitá životnosť) > 80 % Warning, > 95 % High
Power On Hours, Power Cycles, Controller Busy Time informačné

Percentage Used je hodnota, ktorú treba sledovať pri plánovaní kapacít: je to vlastný odhad disku, koľko z jeho menovitej zápisovej životnosti už spotreboval. Spotrebiteľský NVMe pod vyťaženým VM datastorom sa môže dostať z 10 % na 80 % prekvapivo rýchlo.

Nastavenie (oba templaty)

Oba templaty používajú Zabbix položky typu SSH agent: Zabbix server (alebo proxy) sa prihlási na ESXi ako root pomocou kľúča a spustí príkazy. Na ESXi nie je žiadny agent.

1. Zapnite SSH na ESXi hoste (Host → Manage → Services → TSM-SSH, politiku nastavte na spúšťanie spolu s hostom).

2. Vytvorte pár kľúčov pre Zabbix a uložte ho tam, kde Zabbix server hľadá kľúče:

sudo -u zabbix mkdir -p /var/lib/zabbix/ssh_keys
sudo -u zabbix ssh-keygen -t rsa -b 4096 -m PEM -N "" -f /var/lib/zabbix/ssh_keys/esxi

a uistite sa, že zabbix_server.conf (alebo zabbix_proxy.conf) obsahuje SSHKeyLocation=/var/lib/zabbix/ssh_keys.

3. Nainštalujte verejný kľúč na ESXi pridaním esxi.pub do /etc/ssh/keys-root/authorized_keys. Na ESXi 7 ho môžete nahrať aj cez API hosta:

curl -k -X PUT --data "@/var/lib/zabbix/ssh_keys/esxi.pub" \
  -u root:<password> https://<esxi-ip>/host/ssh_root_authorized_keys

Na ESXi 8.0 U3 tento endpoint vracia 404 — upravte súbor priamo.

4. Importujte templaty, vytvorte pre ESXi server hosta s rozhraním smerujúcim na jeho IP (typ agent je v poriadku, používa sa len kvôli adrese), pripojte ESXI SMART Health a/alebo ESXI NVME Health a nastavte {$ESXI.SSH.KEY} na názov súboru s kľúčom (predvolene esxi).

Tip

Ak SSH položky zlyhávajú s chybou autentifikácie, hoci ssh -i esxi root@host funguje, vygenerujte kľúč vo formáte PEM (-m PEM, ako vyššie). Podľa toho, ako bol Zabbix zostavený, nemusí vedieť čítať novší formát kľúčov OpenSSH.

Poznámka k bezpečnosti

Tieto kontroly sa prihlasujú ako root. Súkromný kľúč nechajte čitateľný iba pre používateľa zabbix, obmedzte SSH na ESXi na adresu Zabbix servera (Firewall → SSH Server → povolené IP adresy) a kľúč nepoužívajte nikde inde. Majte tiež na pamäti, že smartctl VIB vyžaduje vypnutý Secure Boot; NVMe template takú požiadavku nemá.

Zhrnutie

  • SATA: smartctl VIB + ESXI SMART Health — presunuté, čakajúce a neopraviteľné sektory.
  • NVMe: vstavaný localcli + ESXI NVME Health — chyby média, rezerva, opotrebenie, teplota.
  • Bez agenta, cez SSH so samostatným kľúčom; ESXi 7.0 a Zabbix 7.2+.

Prevádzkujete VMware alebo migrujete na Proxmox a chcete mať hardvér poriadne monitorovaný? Ozvite sa.

comments powered by Disqus

Súvisiace články

gWebTail: tail -f v prehliadači pre tímy bez SSH prístupu

gWebTail: tail -f v prehliadači pre tímy bez SSH prístupu

Známa situácia: na testovací server sa nasadí nový build a vývojár sa pýta „môžeš mi poslať log?“. Niekto so SSH prístupom sa prihlási, spustí tail -f, skopíruje kus do chatu — a o desať minút znova.

Čítať ďalej
Ako monitorovať domáce internetové pripojenie — a dokázať to poskytovateľovi

Ako monitorovať domáce internetové pripojenie — a dokázať to poskytovateľovi

Videohovor zamrzne, hra laguje, obchodný terminál sa znova pripája. Speedtest o päť minút neskôr ukáže 500 Mbit/s a všetko vyzerá v poriadku. Zavoláte poskytovateľovi, ten „na linke nevidí žiadny problém“ a odporučí reštartovať router.

Čítať ďalej
Fungujú vaše zálohy konfigurácií sieťových zariadení? Oxidized + Zabbix

Fungujú vaše zálohy konfigurácií sieťových zariadení? Oxidized + Zabbix

Oxidized je de facto štandardný open-source nástroj na zálohovanie konfigurácií sieťových zariadení. Prihlasuje sa na switche, routery a firewally — Cisco, Juniper, MikroTik, Fortinet, HPE/Aruba a desiatky ďalších —, stiahne bežiacu konfiguráciu a každú verziu uloží do Gitu. Keď zariadenie odíde alebo niekto pokazí konfiguráciu, máte poslednú funkčnú verziu aj diff toho, čo sa zmenilo.

Čítať ďalej