NUT nutzen für unterbrechungsfreie Stromversorgung

Hallo,

folgendes Vorhaben: ich möchte NUT (networkupstools.org/) nutzen, um einen UCS Server bei Stromausfall über eine APC UPS gezielt herunterzufahren. NUT habe ich über die “umaintained repositories”-Einstellung gefunden und als metapackage “nut” installiert. Dies hat auch alles soweit gut geklappt.

Als nächsten Schritt habe ich in “/etc/nut/nut.conf” den Modus auf “netclient” gestellt. Die UPS von APC ist physisch mit einem anderen Rechner verbunden. Nebenbemerkung: Auf diesen Rechner greife ich von anderen Debian-Installationen per NUT problemlos zu und fahre diese bei Bedarf sauber herunter, wenn die Kapazität der UPS erschöpft ist.

Als nächsten Schritt habe ich in “/ect/nut/upsmon.conf” die passende Einstellung mit MONITOR vorgenommen:

MONITOR ups@<IP-ADRESSE-UPS-SERVER> 1 slave
Danach habe ich versucht den nut-client zu starten per:

sudo /etc/init.d/nut-client start
Dies schlägt leider fehlt mit:

[FAIL] Starting NUT - power device monitor and shutdown controller: nut-client failed!
Bin etwas ratlos, denn die Einstellungen sind identisch mit einer anderen Installation auf einem anderen Debian-System. Dort hat es problemlos geklappt.

Eingeloggt bin ich immer als user “root”.

Ideen was ich falsch mache?

Besten Dank,
Ernst.

Hallo,

der nut-client Skript (/etc/init.d/nut-client) ist ja ziemlich schweigsam:

      case "$1" in
        start)
          start-stop-daemon -S -q -p $upsmon_pid -x $upsmon \
              -- $UPSMON_OPTIONS >/dev/null 2>&1 && return 0 || return 1

Da kann man nur das /dev/null durch einen Dateinamen ersetzen und sich anschauen warum es nicht geht.

Ansonsten fällt mir spontan noch ein, daß ja ein UCS System einen Firewall mitbringt, in dem man zumindest auf dem betreffenden Server den Listener-Port öffnen muß (standardmäßig 3493/TCP). Wie man das macht, steht in der Entwicklerdoku. Ob der Client-Daemon auch einen Port aufmachen will, hab ich auf die Schnelle nicht herausgefunden.

viele Grüße
Frank Greif

Hallo,

erstmal Danke für die Antwort. Immerhin bin ich einen Schritt weitergekommen. Die Ausgabe von /etc/init.d/nut-client im Fehlerfall habe ich mir in eine Datei umgeleitet. So wird man schon mal schlauer. Bin gar nicht auf die Idee gekommen, dass man Fehlermeldungen in /dev/null umleitet. Naja.

So sieht man jetzt auch, dass folgendes zurückgemeldet wird:

fopen /var/run/nut/upsmon.pid: No such file or directory
/etc/nut/upsmon.conf line 86: invalid directive MONITOR ups@192.168.178.3 1 slave
Using power down flag file /etc/killpower
Network UPS Tools upsmon 2.6.4

Fatal error: insufficient power configured!

Sum of power values........: 0
Minimum value (MINSUPPLIES): 1
Edit your upsmon.conf and change the values.

Ich kann aber keinen Fehler in der MONITOR-Zeile erkennen. Abgesehen davon läuft diese identische Zeile auf anderen Systemen problemlos.

Auf dem UPS-Server habe ich nochmal die ups.conf gecheckt:

pollinterval = 5

[ups]
        driver = usbhid-ups
        port = auto
        #community = name
        #snmp_version = v2c
        #mibs = auto
        #secName = Synology
        #secLevel = noAuthNoPriv
        #authProtocol = MD5
        #authPassword = 111111111111
        #privProtocol = DES
        #privPassword = 222222222222

Auch hier ist nix dramatisch falsch konfiguriertes zu erkennen.

Danach habe ich noch die Theorie geprüft ob es an der Firewall und dem evtl. geblockten Port liegt:

root@opsi:~# nmap 192.168.178.3 -p 3493

Starting Nmap 6.00 ( http://nmap.org ) at 2016-01-17 09:01 CET
Nmap scan report for 192.168.178.3
Host is up (0.00020s latency).
PORT     STATE SERVICE
3493/tcp open  nut
MAC Address: 00:11:32:16:EC:B7 (Synology Incorporated)

Nmap done: 1 IP address (1 host up) scanned in 0.27 seconds

Das scheint aber auch nicht der Fall zu sein. Port wird gesehen auf dem Zielsystem. Sicherheitshalber habe ich doch noch folgende Regel auf dem lokalen System eingerichtet:

security/packetfilter/tcp/3493/all=ACCEPT

Ändert aber auch nix.

Bin immer noch ratlos und für jeden Tipp dankbar…

Gruß,
Ernst.

Hallo,

Im Paket ‘nut-client’ wird eine Beispiel-Config mitgeliefert, und die sagt zum MONITOR Befehl:

# MONITOR <system> <powervalue> <username> <password> ("master"|"slave")
...
# Examples: 
#
# MONITOR myups@bigserver 1 monmaster blah master
# MONITOR su700@server.example.com 1 upsmon secretpass slave
# MONITOR myups@localhost 1 upsmon pass master  (or slave)

daraus ergibt sich für mich, daß nach noch nicht “master” oder “slave” kommen darf, sondern noch Nutzername und Paßwort erforderlich sind. Dann sollten sich die Folgefehler erledigen. (vorausgesetzt auf dem Rechner, an dem die UPS angeschlossen ist, steht der betreffende Nutzer mit diesem Paßwort in der Datei ‘upsd.users’:

# <username> and <password> must match an entry in that system's
# upsd.users.  If your username is "monmaster" and your password is 
# "blah", the upsd.users would look like this:
#
#       [monmaster]
#               password  = blah
#               upsmon master   (or slave)

Das Öffnen des Ports im Firewall ist nur nötig, wenn der Daemon selbst auf Ports hört und andere Computer hierhin verbinden wollen. Das sollte man mit

netstat -ntlp

sehen können. In der Manpage / Configdatei klingt es allerdings nicht, als sei das hier der Fall.

Viele Grüße
Frank Greif.

Ich bumpe diesen alten Thread mal fürs Protokoll, weil ich genau das selbe Problem hatte:

Es müssen zusätzlich die Pakete libnutclient0 und libupsclient-dev installiert werden, dann lässt sich der Daemon starten, und der Client upsc kann sich damit verbinden.

Gruß
Daniel

1 Like
Mastodon