Instalacja:
apt install nut
Zabezpieczamy konfigurację domyślną:
mkdir /etc/nut/bak
cp /etc/nut/*.conf /etc/nut/bak/
Podłączamy UPSa do komputera za pomocą portu USB. Szukamy portu i generujemy konfigurację:
# nut-scanner -U
Scanning USB bus.
[nutdev1]
driver = "nutdrv_qx"
port = "auto"
vendorid = "0001"
productid = "0000"
product = "MEC0003"
vendor = "MEC"
bus = "002"
Jeśli niczego nie znajdzie to sprawdzamy czy system widzi urządzenie USB:
# lsusb
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0001:0000 Fry's Electronics MEC0003
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
W moim przypadku jest to pozycja 4.
Wygenerowaną konfigurację wklejamy na koniec pliku: /etc/nut/ups.conf. W pliku: /etc/nut/nut.conf ustawiamy:
...
MODE=standalone
...
Dopisujemy użytkownika autoryzacji na końcu pliku: /etc/nut/upsd.users:
[monitor-master]
password = tajnehaslo222
upsmon master
Uruchamiamy usługę serwera UPS:
systemctl enable nut-server
service nut-server start
Sprawdzamy czy NUT widzi naszego UPSa:
# upsc nutdev1
Init SSL without certificate database
battery.voltage: 13.80
device.type: ups
driver.name: nutdrv_qx
driver.parameter.bus: 002
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.product: MEC0003
driver.parameter.productid: 0000
driver.parameter.synchronous: auto
driver.parameter.vendor: MEC
driver.parameter.vendorid: 0001
driver.version: 2.8.0
driver.version.data: Q1 0.07
driver.version.internal: 0.32
driver.version.usb: libusb-1.0.26 (API: 0x1000109)
input.frequency: 49.9
input.voltage: 238.5
input.voltage.fault: 257.9
output.voltage: 238.5
ups.beeper.status: enabled
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 8
ups.productid: 0000
ups.status: OL
ups.type: offline / line interactive
ups.vendorid: 0001
Jeśli widzi to konfigurujemy monitorowanie. Edytujemy plik: /etc/nut/upsmon.conf i ustawiamy w nim:
...
#SHUTDOWNCMD "/sbin/shutdown -h +0"
...
NOTIFYCMD /usr/bin/upsnotifyme.sh
...
NOTIFYMSG ONLINE "UPS: przywrocono zasilanie."
NOTIFYMSG ONBATT "UPS: brak zasilania."
NOTIFYMSG LOWBATT "UPS: bateria na wyczerpaniu."
...
NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
...
MONITOR netdev1@localhost 1 monitor-master tajnehaslo222 master
Tworzymy plik: /usr/bin/upsnotifyme.sh z zawartością:
#!/bin/bash
# Email settings
EMAIL_SUBJECT="UPS!!!"
EMAIL_RECIPIENT="admin@domain.ltd"
# UPS event data
UPSEVENT=$1
# Compose email message
MESSAGE="$UPSEVENT"
# Send email using mail command
echo -e "$MESSAGE" | mail -s "$EMAIL_SUBJECT" "$EMAIL_RECIPIENT"
Nadajemy prawa do pliku:
chown :nut /usr/bin/upsnotifyme.sh
chmod 774 /usr/bin/upsnotifyme.sh
Uruchamiamy monitoring UPSa:
systemctl enable nut-client
service nut-client start
Posiłkowałem się:
https://programnet.eu/nut-debian/
https://blog.filegarden.net/2024/03/22/nut-email-notifications-proxmox/
https://networkupstools.org/ddl/index.html#_supported_devices