User Tools

Site Tools


software:nut:multisystems

This is an old revision of the document!


nut server providing data on multiple systems

This documents how to set up a specific nut installation. The requirements are:

* Using a Cyberpower UPS with an RMCARD205 installed, giving LAN access to the UPS control, snmp monitoring and other things * One Devuan (Debian) workstation will be set up as the master. It will communicate with the UPS, then other machines will communicate with it * One opnSense firewall/router with the UPS module installed * One FreeBSD NAS

Set up UPS

Log into the UPS via web browser, ssh or telnet and get/set the following: * snmp community name * snmp version (I'm using v1 in a secured environment)

  • If using v2, get username and password

* record the IP address/DNS Name * choose the name you want to give to this UPS

Set up master

first, install the necessary packages. I'm not sure if all of these are needed, but I think they are I chose not to install the webui

apt -y install snmp snmp-mibs-downloader nut nut-client nut-server nut-snmp

Now, set up the master to be a network server

nut.conf
MODE=netserver

This is the nasty part. We need to have ups.conf set up with the correct stanza to read the snmp UPS. Normally we would just point nut-scanner at it, but nut-scanner has some issues, at least on 2.7.4, under Debian where it can not find the snmp libraries. So, autodetect does not work. nut-scanner –snmp_scan –mask_cidr 192.168.100.0/24 –disp_nut_conf returns “SNMP library not found. SNMP search disabled.” even though the snmp libraries are there. It is supposed to be fixed with later versions. If it is working on your system, it will output a stanza that can be directly pasted into ups.conf. Otherwise, we have to do it the hard way.

So, we'll do it the way that is more susceptible to error. Modify the following to match your setup, then put it in ups.conf

ups.conf
maxretry = 3
# the part in the [] ([ups1]) is the name of the UPS, which you will use several places later
[ups1]
   driver = snmp-ups
   # the IP and port of the snmp enabled UPS
   port = 192.168.1.17:161
   # the community name it will respond to, preferably read/only access
   community = public
   # the version of snmp on the UPS
   snmp_version = v1
   # an arbitray description, if you want
   desc = "Primary UPS"

Now, set up where the server (the NUT server on your master) will listen for other machines to make the connection. 0.0.0.0 means “anyplace”, and 3493 is the default port

upsd.conf
LISTEN 0.0.0.0 3493

Set up a user. Here, we're setting up a user names upsmon, with the password 'mypassword' and setting that user to be a master, ie the other machines will talk here, using this user to check status of the UPS. There will be another line in upsmon.conf that will reference this user.

upsd.users
[upsmon]
   password = mypassword
   upsmon master

Finally, set up the monitoring itself with upsmon.conf The first few lines are some defaults with the standard nut install; the main thing we are chaning is the final line.

The final line says Monitor the system (UPS) named ups1 on the local machine (ups1@localhost), with a powervalue of 1 (almost always a 1, not more). Note, if you are stictly monitoring a UPS that you are not attached to, put a 0 here.

upsmon is the username to connect to that server (ups1@localhost), and mypassword is the password.

'master' designates this as a master server; it will NOT shut down immediately when power goes critical. 'slave' in this part will shut down when power goes critical on ups1@localhost

upsmon.conf
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
monitor ups1@localhost 1 upsmon mypassword master

I don't really understand upssched.conf yet, but it is one of the powerhouses of nut. Working on it.

upssched.conf
CMDSCRIPT /bin/upssched-cmd
software/nut/multisystems.1744671089.txt.gz · Last modified: 2025/04/14 17:51 by rodolico