UPS - battery backup

An UPS is basically a big battery capable of powering your critical devices in case the main power goes out. This is very important for self-hosted services as an outage might result in a mess, specially if you are not home to restart / verify that things are back up running.

Running an UPS is not a set and forget task tough… Batteries usually last about 1 year, maximum 2 years for top products, and you need to replace them before they dies on you. Also, even new batteries do not have infinte capacity and you might need to poweroff your systems before they run out in case of a prolonged outage.

Using a good monitoring tool for UPS helps a lot.

Network UPS Tools

Network UPS Tools (NUT) is a very cool project that is capable to manage your UPS, either ones connected via USB or via ethernet (and not only).

For a proper setup follow the great Gentoo WIKI page on NUT.

Installation

It's pretty simple:

emerge --ask sys-power/nut

To detect your UPS devices, assuming it is connected locally or over the network:

/usr/bin/nut-scanner

the output from this command will go into the /etc/nut/ups.conf file.

If your UPS is USB, you need also the following:

usermod -a -G usb nut

Configuration

You need to populate the following files:

nut.conf
MODE=netserver

Here you put the output of the scan command above:

ups.conf
[nutdev1]
        driver = "usbhid-ups"
        port = "auto"
        vendorid = "0463"
        productid = "FFFF"
        product = "Eaton 3S"
        serial = "Blank"
        vendor = "EATON"
        bus = "001"
upsd.conf
LISTEN 127.0.0.1 3493
LISTEN 10.0.0.1 3493
</flie>

<file - upsd.users>
[monmaster]
    password = monmaster
    upsmon master

[monslave]
    password = monslave
    upsmon slave
upsmon.conf
MONITOR nutdev1@127.0.0.1 1 monmaster monmaster master
upssched.conf
AT ONBATT * START-TIMER onbatt 300
AT ONLINE * CANCEL-TIMER onbatt online
AT LOWBATT * EXECUTE onbatt
AT COMMBAD * START-TIMER commbad 30
AT COMMOK * CANCEL-TIMER commbad commok
AT NOCOMM * EXECUTE commbad
AT SHUTDOWN * EXECUTE powerdown
AT REPLBATT * EXECUTE replacebatt

Autostart

Add the following services:

rc-update add upsdrv default
rc-update add upsd default
rc-update add upsmon default 
 
# start now:
rc-service upsdrv start
rc-service upsd start
rc-service upsmon start