Hier noch zwei Anleitungen für die weitere Einrichtung des oben erwähnten Systems:
1) NUT (USV Anbindung per USB an Proxmox). Ich habe eine USV von APC. Diese habe ich per USB mit dem Ugreen verbunden. An der USV hängt noch ein weiterer Rechner auf dem ebenfalls Proxmox installiert ist. Ich möchte erreichen, dass die beiden Hosts automatisch runtergefahren werden, sobald der Akku der USV den Stand "low" erreicht.
Zunächst prüfen ob die USV per USB vom Proxmox Host (wo die USV angesteckt ist) korrekt erkannt wird:
root@pve03:~# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
dann nut installieren:
apt update && apt upgrade -y
apt install nut
man muss nun ein paar der config Dateien anpassen. Ich habe nur die notwendigen Änderungen erwähnt, den Rest einfach lassen wie es war:
nano /etc/nut/nut.conf:
MODE=netserver
nano /etc/nut/ups.conf:
[usv]
driver = usbhid-ups
port = auto
desc = "APC Back-UPS"
nano /etc/nut/upsd.conf:
LISTEN 127.0.0.1
LISTEN <IP Adresse des Proxmox Host>
nano /etc/nut/upsd.users:
[testuser]
password = meingeheimespasswort
upsmon master
nano /etc/nut/upsmon.conf:
MONITOR usv@localhost 1 testuser meingeheimespasswort master
zum Schluss systemd Dienste neu starten oder einfach Reboot:
systemctl restart nut-server.service
systemctl restart nut-driver@usv.service
Testen:
root@pve03:~# upsc usv
Init SSL without certificate database
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50
battery.date: 2001/09/25
battery.mfr.date: 2015/02/03
battery.runtime: 4825
battery.runtime.low: 120
battery.type: PbAc
battery.voltage: 27.3
battery.voltage.nominal: 24.0
device.mfr: American Power Conversion
device.model: Back-UPS RS 900G
device.serial: 3B1506X03015
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.synchronous: auto
driver.version: 2.8.0
driver.version.data: APC HID 0.98
driver.version.internal: 0.47
driver.version.usb: libusb-1.0.26 (API: 0x1000109)
input.sensitivity: medium
input.transfer.high: 294
input.transfer.low: 176
input.voltage: 230.0
input.voltage.nominal: 230
ups.beeper.status: disabled
ups.delay.shutdown: 20
ups.firmware: 879.L4 .I
ups.firmware.aux: L4
ups.load: 13
ups.mfr: American Power Conversion
ups.mfr.date: 2015/02/03
ups.model: Back-UPS RS 900G
ups.productid: 0002
ups.realpower.nominal: 540
ups.serial: 3B1506X03015
ups.status: OL
ups.test.result: No test initiated
ups.timer.reboot: 0
ups.timer.shutdown: -1
ups.vendorid: 051d
Wenn man eine ähnliche Ausgabe kriegt, kann man mit dem zweiten Proxmox Host das Gleiche machen. Die Zeilen MODE=netclient und MONITOR usv@<IP des NUT Master> usw. müssen entsprechend an die Rolle als NUT Client angepasst werden müssen. Es gibt viele gute Dokus wie z.B. diese--> https://www.bjoerns-techblog.de/2024/04/nut-server-einrichten-eine-usv-muss-her/ Bei dem Link ist auch nochmal genau die Einrichtung eines NUT Clients speziell für Proxmox beschrieben.
Mit dieser App (kostet etwas) kann man auch ein MacOS Gerät auf einen NUT Server lauschen lassen --> UPS Power Monitor Leider ist die App nicht grade günstig aber dafür sehr praktisch um die USV von einem Arbeitsplatzclient zu überwachen oder einen Tomedoserver, der auf einem Mac Gerät läuft, via USV Signal runterzufahren.

2) lm-sensors für Temperaturüberwachung
ggf zunächst installieren per:
apt install lm-sensors
Sensoren erkennen und persistent machen:
sensors-detect
hier immer Enter drücken bis zur Zeile:
Do you want to add these lines automatically to /etc/modules? (yes/NO)yes
hier yes statt NO eintippen (s.o.) und mit Enter bestätigen. Nun die Kernelmodule für die Sensoren entweder direkt laden oder einen Reboot ausführen.
/etc/init.d/kmod start
dann sollte man beim Auslesen der Sensoren mittels sensors ungefähr so eine Ausgabe bekommen:
root@pve03:~# sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +56.0°C (high = +100.0°C, crit = +100.0°C)
Core 0: +56.0°C (high = +100.0°C, crit = +100.0°C)
Core 4: +46.0°C (high = +100.0°C, crit = +100.0°C)
Core 8: +53.0°C (high = +100.0°C, crit = +100.0°C)
Core 9: +53.0°C (high = +100.0°C, crit = +100.0°C)
Core 10: +53.0°C (high = +100.0°C, crit = +100.0°C)
Core 11: +53.0°C (high = +100.0°C, crit = +100.0°C)
Core 12: +49.0°C (high = +100.0°C, crit = +100.0°C)
Core 13: +49.0°C (high = +100.0°C, crit = +100.0°C)
Core 14: +49.0°C (high = +100.0°C, crit = +100.0°C)
Core 15: +49.0°C (high = +100.0°C, crit = +100.0°C)
enp88s0-pci-5800
Adapter: PCI adapter
PHY Temperature: +59.0°C
MAC Temperature: +59.0°C
nvme-pci-5600
Adapter: PCI adapter
Composite: +45.9°C (low = -273.1°C, high = +84.8°C)
(crit = +84.8°C)
Sensor 1: +45.9°C (low = -273.1°C, high = +65261.8°C)
Sensor 2: +43.9°C (low = -273.1°C, high = +65261.8°C)
acpitz-acpi-0
Adapter: ACPI interface
temp1: +27.8°C
enp89s0-pci-5900
Adapter: PCI adapter
PHY Temperature: +56.0°C
MAC Temperature: +56.0°C
nvme-pci-5700
Adapter: PCI adapter
Composite: +39.9°C (low = -20.1°C, high = +69.8°C)
(crit = +79.8°C)
ERROR: Can't get value of subfeature temp2_min: I/O error
ERROR: Can't get value of subfeature temp2_max: I/O error
Sensor 1: +55.9°C (low = +0.0°C, high = +0.0°C)
nvme-pci-0100
Adapter: PCI adapter
Composite: +44.9°C (low = -273.1°C, high = +84.8°C)
(crit = +84.8°C)
Sensor 1: +44.9°C (low = -273.1°C, high = +65261.8°C)
Sensor 2: +44.9°C (low = -273.1°C, high = +65261.8°C)
wenn man das nun kontinuierlich in Echtzeit beobachten will kann man zusätzlich watch verwenden:
watch sensors
die Abfrage wird so alle 2sek von watch wiederholt und auf dem Bildschirm ausgegeben. Man kann die Intervalle der Abfragen auch anpassen:
watch -n 30 sensors
das wäre z.B. eine Abfrage alle 30 Sekunden.