Monitoring UPSa

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


Opublikowano:

Ostatni modyfikacja:

Tagi: