Difference between revisions of "Install a UPS (nut)"

From NAS-Central Buffalo - The Linkstation Wiki
Jump to: navigation, search
m (Prerequisites)
(Power outage detection)
Line 144: Line 144:
 
Aug 10 16:04:39 LinkStation upsmon[1613]: UPS myups@localhost on line power
 
Aug 10 16:04:39 LinkStation upsmon[1613]: UPS myups@localhost on line power
  
 +
=== Powering other computers from the UPS ===
 +
So far it should work before proceeding further -the LS will shut down when the power supply is off and the battery is low. The real power of NUT is that it can turn off lots of PCs including WinXX which are anywhere on your LAN even if they are only connected to "dumb" UPSes.
 +
 +
We need to set up a slave user, allow access from the LAN for it and then set up the clients.
 +
 +
A slave user should shutdown before a master user.
 +
 +
Some changes on the LS (assumed upsd server):
 +
Modify upsd.users to add the slave user:
 +
[monslave]
 +
        password  = blah2
 +
        allowfrom = mynet
 +
        upsmon slave
 +
 +
Edit the upsd.conf to define the "mynet" group of IP addresses to have a bit as per:
 +
ACL localhost 127.0.0.1/32
 +
ACL mynet 192.168.1.0/24
 +
ACL all 0.0.0.0/0
 +
 +
ACCEPT localhost mynet
 +
REJECT all
 +
 +
Now for the client machines, which can be linux boxes with NUT installed or a WinXX box with WinNUT ( http://www.csociety.org/~delpha/winnut/ )
 +
 +
Upsmon is only needed so you only need to edit upsmon.conf (through the WinNUT Config tool):
 +
MONITOR myups@linkstationip 1 monslave blah2 slave
 +
 +
For a linux box (well debian at least) you'll need to only start the upsmon daemon via /etc/default/nut :
 +
# start upsd
 +
START_UPSD=no
 +
# start upsmon
 +
START_UPSMON=yes
  
 
== References ==
 
== References ==

Revision as of 23:39, 25 August 2006

180px-UPSFrontView.jpg

Contents

Connecting a UPS to your Linkstation (USB models)

Installing Network UPS Tools (nut)

NUT is a powerful tool for safely shutting down computers in a power cut. It can make a LS (or other embedded computer) attached to a usb UPS to be as effective as a full server UPS and shut down everything on your LAN if needed.

Prerequisites

Install the 2.6 kernel to get the new USB HID modules http://linkstationwiki.net/index.php?title=Category:Kernel

Setup your system to accept packages from the unstable branch (follow instructions for everything except the last step to "apt-get -t install xyz" ) http://www.linkstationwiki.net/index.php?title=Get_access_to_packages_from_the_Debian_unstable_branch#Unstable_Packages

Fix your localhost entry if applicable. This is a current bug with freelink 1.11 HG:

Modify /etc/hosts This line:

127.0.0.1 Linkstation

to

127.0.0.1 Linkstation localhost

if there was "127.0.0.1 localhost", this is good already, no need to change it.

Installing

apt-get -t unstable install nut nut-usb

which will also add the appropriate lib-usb. and install nut & nut-usb 2.0.4-2 or better

Config files setup

Now that you've installed nut, you must set it up. Follow instructions under /usr/share/doc/nut/README.Debian or use this quick and dry way:

cd /etc/nut/
cp  /usr/share/doc/nut/examples/ups.conf .
cp  /usr/share/doc/nut/examples/upsd.conf .
cp  /usr/share/doc/nut/examples/upsmon.conf .
cp  /usr/share/doc/nut/examples/upsd.users .
chown nut:nut *
chmod 600 *

ups.conf sets up the nut server and which driver to talk from the linkstation to the UPS by usb. upsd.conf defines the IP address access groups e.g. localhost only or your LAN network. upsd.users defines the user level (e.g. monuser,monmaster,admin) their passwords, IP address access and allowed actions to read or write to the UPS. upsmon.conf gives the client program (upsmon) the login user, pass and shutdown behaviour for the particular machine.

Edit ups.conf

Add this anywhere inside the file:

[myups]
       driver = newhidups
       port = auto
       pollinterval = 10
       desc = "My APC 1000 UPS":

Edit upsd.users

Add this anywhere inside the file:

[monuser]
       password  = blah
       allowfrom = localhost
       actions   = SET
       upsmon master

blah is the password you wish to use. Make sure you use the same one in upsmon.conf


Edit upsmon.conf

Add this line:

MONITOR myups@localhost 1 monuser blah master

blah is the password you wish to use. Make sure you use the same one in upsd.users


Edit /etc/default/nut

Modify the first few lines to:

# start upsd
START_UPSD=yes
# start upsmon
START_UPSMON=yes


Again: upsd is the server daemon which runs on the computer directly connected to the UPS. upsmon is the client which polls the server's upsd program to check status and shutdown the pc if needed. In this description server and client are both on the LS -which shuts itself down.

Issue a reboot

to load the newhisups driver, upsd and upsmon

reboot

Verify UPS connectivity

Basic connectivity

newhidups -u root -D -D -a apc

You should see your UPS information showing up.

tail -1000 /var/log/syslog |grep ups

You should see something like this: Aug 11 15:31:38 LinkStation newhidups[1606]: Startup successful Aug 11 15:31:38 LinkStation upsd[1607]: Connected to UPS [myups]: newhidups-auto Aug 11 15:31:38 LinkStation upsd[1608]: Startup successful Aug 11 15:31:38 LinkStation upsmon[1610]: Startup successful Aug 11 15:31:38 LinkStation upsd[1608]: Connection from 127.0.0.1 Aug 11 15:31:38 LinkStation upsd[1608]: Client monuser@127.0.0.1 logged into UPS [myups]

Disabling the Beeper or changing UPS variables

Wish to disable that beeper that wakes you up at night ?

upsrw myups@localhost

The ups.beeper.status variable is likely Enabled.

upsrw -s ups.beeper.status  myups@localhost
Username (root): monuser
Password: blah
Enter new value for  ups.beeper.status: 1
upsrw myups@localhost

Verify that ups.beeper.status now shows up as disabled Follow same method for changing other variables.

Power outage detection

If this all works, try removing power from your UPS to verify id the Linkstation will detect it. You should see this in your syslogs, again using

tail -1000 /var/log/syslog |grep ups

Aug 10 15:59:28 LinkStation upsmon[1613]: UPS myups@localhost on battery

Aug 10 16:04:39 LinkStation upsmon[1613]: UPS myups@localhost on line power

Powering other computers from the UPS

So far it should work before proceeding further -the LS will shut down when the power supply is off and the battery is low. The real power of NUT is that it can turn off lots of PCs including WinXX which are anywhere on your LAN even if they are only connected to "dumb" UPSes.

We need to set up a slave user, allow access from the LAN for it and then set up the clients.

A slave user should shutdown before a master user.

Some changes on the LS (assumed upsd server): Modify upsd.users to add the slave user:

[monslave]
        password  = blah2
        allowfrom = mynet
        upsmon slave

Edit the upsd.conf to define the "mynet" group of IP addresses to have a bit as per:

ACL localhost 127.0.0.1/32
ACL mynet 192.168.1.0/24
ACL all 0.0.0.0/0
ACCEPT localhost mynet
REJECT all

Now for the client machines, which can be linux boxes with NUT installed or a WinXX box with WinNUT ( http://www.csociety.org/~delpha/winnut/ )

Upsmon is only needed so you only need to edit upsmon.conf (through the WinNUT Config tool):

MONITOR myups@linkstationip 1 monslave blah2 slave

For a linux box (well debian at least) you'll need to only start the upsmon daemon via /etc/default/nut :

# start upsd
START_UPSD=no
# start upsmon
START_UPSMON=yes

References

Peter Selinger: Linux and the APC Back-UPS ES http://www.mathstat.dal.ca/~selinger/ups/backups.html

Network UPS Tools (nut) http://www.networkupstools.org