Netdata + S.M.A.R.T. + NVMe a XCP-ng - protřepat, nemíchat
Rád bych věděl v při jakých teplotách pracují disky serveru, jaká je běžná zátěž CPU atd.. Monitoruji samotného hosta (dom0), proto to není taková legrace…
Na XENu tohle snad asi nešlo. Na XCP-ng je dostupný balík Netdata (viz web).
yum install netdata-ui
http://ip_serveru:19999
Pokud chci SSL / jiný port, pak musím upravit konfiguraci (bacha VIM):
# konfigurace netdata webserveru cd /etc/netdata ./edit-config netdata.conf # doplněním cest k certifikátům automaticky poběží SSL (https) # další volbou omezíme přístup k Netdata jen na localhost a vybranou část sítě .. [web] ssl key = /etc/netdata/ssl/key.pem ssl certificate = /etc/netdata/ssl/cert.pem allow connections from = localhost 192.168.8.* .. # po editaci konfigurace je třeba restartovat službu nedata systemctl restart netdata
V základu chybí monitorování disků (pro mě především jejich teplot). Netdata umí:
Návod na rozběhnutí smartmontools v Netdata je zde. Na XCP-ng se ale cesty trochu liší…
Logování smartmontools démona do souborů:
# nejprve vytvoříme adresář pro logy mkdir /var/log/smartd # na XCP-ng je konfigurace služby jinde nano /etc/sysconfig/smartmontools # zde jsem nechal původní volby (démon smartd skončí jen při kritické chybě) .. smartd_opts="-q never -A /var/log/smartd/ -i 600" .. # restart smartd služby systemctl restart smartd # kontrola, že smartd vytvořil logy (pro každé zařízení jeden .csv soubor) ls -l /var/log/smartd/
Zapnutí smartd modulu v netdata (pozor - zase VIM…):
cd /etc/netdata ./edit-config python.d/smartd_log.conf # tady přidáme na konec sekce JOBS smartd modul: .. custom: name: srv2 log_path: '/var/log/smartd/' .. # pak stačí jen restartovat netdata systemctl restart netdata
Nakonec se nám statistiky S.M.A.R.T. objeví v levém menu:
Monitoring disků bychom měli. Nebo ne? Kdepak mám NVMe SSD? Ajajaj…
Proč nevidíme stav NVMe SSD mezi ostatními disky je docela záludný problém. Popisuje ho Chris Siebenmann ve svém článku. Stručně:
smartctl
data vypíše, smartd
je už ale do *.csv souboru neuloží (nemá jak, sloupce ostatních disků zde neexistují)
Co s tím? Nějaké skriptování s Cronem? Ale nee. Existuje balík nvme-cli
se kterým Netdata umí pracovat. A kupodivu ho můžeme nainstalovat i na XCP-ng 8.2.1
yum install nvme-cli
Netdata umí s nvme
pracovat. Podle GITu se práce s tímto balíkem začala probírat již v roce 2020 a v roce 2022 bylo vše hotovo. Proto má dnešní Netdata Go modul nvme… No jo, jenže XCP-ng je hypervisor, silně ořezaná striktní distribuce okolo CentOS7. A Netdata z roku 2019 o nvme nemají ani tušení.
Co s tím? Ručně to zapnout podle návodu na webu Netdata nejde. Ten modul tam prostě chybí. Aktualizovat balíky Netdata? Ten byl dobrej… No ne no.
Ještě nějaká možnost?
Ale jistě: v GITu si najdeme první implementaci nvme collectoru a tu si ručně přidáme do našeho Netdata.
nvme.conf
- mě funguje tento soubornvme.chart.sh
- a tento soubornvme.conf
umístíme do /usr/lib/netdata/conf.d/go.d/
nvme.chart.sh
umístíme do /usr/libexec/netdata/charts.d/
# přidat na konec /etc/sudoers netdata ALL=(root) NOPASSWD: /usr/sbin/nvme # doplnit konfiguraci (pozor VIM...) cd /etc/netdata ./edit-config go.d/nvme.conf .. jobs: - name: nvme - path: /usr/sbin/nvme .. # nakonec restartovat službu Netdata systemctl restart netdata
A pokud přálo štěstí, pak výsledek vypadá třeba takhle: