UPS monitorozása Grafanával, hogy ilyen szép grafikonjaink legyenek:
Források:
https://blog.linuxserver.io/2017/11/25/how-to-monitor-your-server-using-grafana-influxdb-and-telegraf/
https://github.com/vkorobov/ups-telegraf
https://grafana.com/grafana/dashboards/10482
Elsőnek is mi is az az OMV?
OMV, vagyis OpenMediaVault, egy olyan Debian alapú Linux disztribució, amit leginkább otthoni szerver célokra készítettek, alapból található rajta WebUI, amivel tudjuk a rendszert telepítés után böngészőből managelni. A blogbejegyzés pillanatában az 5-ös verzió a legfrissebb, de én most a 4-es verzióval foglalkozok, de ha a felhasznált programok megtalálhatóak az 5-ös verzión is, akkor minden probléma nélkül működnie kéne ott is, mivel leginkább Dockerben futnak az alkalmazások.
A bemutatott alkalmazások minden olyan szünetmentes táppal működnek, amit a NUT kezel!
Felhasznált Programok:
NUT - UPS kezelése USB-n keresztül
Telegraf - adatok megszerzése
InfluxDB - szerzett adatok tárolása
Grafana - szerzett adatok megjelenítése
NUT, vagyis Network UPS Tool:
OMV alatt pluginként telepíthető, az usb-n csatlakoztatott és kompatibilis UPS-t kezeli, például értesítést küld, ha elmegy az áram (ha be van kapcsolva és konfigurálva van az email értesítés), valamint alap grafikont is készít a töltöttségrről, terhelésről, hőmérsékletről, feszültségről, valamint különböző változókat készít,amiket az InfluxDB-ben használunk fel például.
A dockeres és parancssoros telepítéssel nem foglalkozik ez a blogbejegyzés!
InfluxDB Docker install:
influxdb:
image: influxdb:latest
container_name: influxdb
ports:
- 8086:8086
volumes:
- /opt/appdata/influxdb:/var/lib/influxdb
restart:
always
Grafana Docker install:
grafana:
image: grafana/grafana
container_name: grafana
ports:
- 3001:3000
volumes:
- /opt/appdata/grafana:/var/lib/grafana
restart:
always
Telegraf telepítés OMV cli (érdemes ssh-n csinálni, a kódok másolása miatt):
1.curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
2.echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
3.sudo apt update && sudo apt install telegraf
Telegraf futásának ellenőrzése:
systemctl status telegraf -l
Létrehozzuk a getUpsData.py
filet ezen link alapján. Én a /etc/nut
mappában hoztam létre. Csak ctrl + c, ctrl + v a linkről. Ő fogja a nut adatait InfluxDB által emészthető formára hozni.
Csak a cmd="upsc ups"
sort kell módosítani a saját UPS-ünk elérési nevére, amit az upsc -l
paranccsal kapsz meg. Nálam ez így néz ki:
root@PetiNas:/# upsc -l
Init SSL without certificate database
eaton5e
Szóval nálam így néz ki az a sor: cmd="upsc eaton5e"
Futási jog adása a file-nak: chmod a+x getUpsData.py
Teszt gyanánt futtassuk a mappán belül: ./getUpsData.py
Itt látjuk az adatokat kiírva InfluxDB formában.
Kiegészítjük a Telegraf konfig végét (/etc/telegraf/telegraf.conf
) a következő sorral értelemszerűen behelyettesítve:
[[inputs.exec]]
commands = ["/path/to/getUpsData.py"]
timeout = "5s"
data_format = "influx"
Nálam ugye így néz ki:
[[inputs.exec]]
commands = ["/etc/nut/getUpsData.py"]
timeout = "5s"
data_format = "influx"
Telegraf újraindítás és futás ellenőrzés:
systemctl restart telegraf
systemctl status telegraf -l
Grafanába belépünk böngészőből a http://nasip:3000
-es címen admin/admin párossal.
Majd: Settings -> Data Sources -> Add data source, kiválasztjuk az InfluxDB-t és beállítjuk így:
InfluxDB felhasználó/jelszó: root/root
És mentünk.
Majd Grafana -> Plusz jel -> Import, és ha az ITT található 10482
ID-t adjuk meg, akkor néhány adat nem jelenik meg egyáltalán, de, ha letöltöd az itt található JSON file-t és beimportálod, akkor az adatok már helyesen jelennek meg!
https://github.com/szpeti40/ups_nut_grafana.