SAI | Sistema de alimentacion ininterrumpida

Monitorizar un SAI desde Linux

Roberto Lodeiro

Hoy explico como he integrado al fin el SAI que tengo en el servidor, para poder monitorizar de una forma sencilla su estado, y que este apague el servidor en caso de un corte de luz prolongado.

Después de pasar la época de exámenes y desconectar unos días celebrando con compañeros, amigos y familia, tocaba hacer la ultima entrada del ano, y de paso conseguir que si se va la luz durante las campanadas, mi Raspberry Pi me avise!

En principio es para cualquier SAI o UPS (Uninterrupted Power System) de la marca APC, el mio en concreto es un BACK-UPS 700VA conectado por USB. Yo lo he configurado en Raspbian, así que si tu sistema es Debian o derivado, adelante!


Instalar y configurar apcupsd

  • Instalar el demonio
$ sudo apt install apcupsd
  • Configurar el SAI
$ sudo nano /etc/apcupsd/apcupsd.conf

Buscamos y modificamos los siguientes parámetros:

UPSNAME homeups1
UPSCABLE usb
## establecer tipo de UPS como usb, DEVICE en blanco ##
UPSTYPE usb
DEVICE
## estos vienen por defecto, modifícalos si quieres ##
ONBATTERYDELAY 6
BATTERYLEVEL 5
MINUTES 3
TIMEOUT 0
  • Indicar que la configuración esta realizada
$ sudo nano /etc/default/apcupsd

Buscar el parámetro ISCONFIGURED y modificarlo

ISCONFIGURED=yes

Controlar el servicio

Podemos arrancar, parar y reiniciar el servicio con los siguientes comandos

$ sudo /etc/init.d/apcupsd start
$ sudo /etc/init.d/apcupsd stop
$ sudo /etc/init.d/apcupsd restart

Ver estado actual del UPS

$ apcaccess 

Esto nos mostrara por pantalla algo similar a lo siguiente

APC : xxxXXXxxx
DATE : fecha hora 
HOSTNAME : hostname
VERSION : 3.14.14 (31 May 2016) debian
UPSNAME : nombreUPS
CABLE : USB Cable
DRIVER : USB UPS Driver
UPSMODE : Stand Alone
STARTTIME: fecha hora 
MODEL : Back-UPS XS 700U 
STATUS : ONLINE 
LINEV : 228.0 Volts
LOADPCT : 7.0 Percent
BCHARGE : 100.0 Percent
TIMELEFT : 71.3 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME : 0 Seconds
SENSE : Medium
LOTRANS : 140.0 Volts
HITRANS : 300.0 Volts
ALARMDEL : 30 Seconds
BATTV : 13.5 Volts
LASTXFER : lastxfer
NUMXFERS : 1
XONBATT : fecha hora 
TONBATT : 0 Seconds
CUMONBATT: 78 Seconds
XOFFBATT : fecha hora
SELFTEST : NO
STATFLAG : xxxXXXxxx
SERIALNO : XXxxxXXxx 
BATTDATE : fecha
NOMINV : 230 Volts
NOMBATTV : 12.0 Volts
NOMPOWER : 390 Watts
FIRMWARE : firmware
END APC : fecha hora

Según cual sea tu modelo de SAI, el listado anterior puede variar.

Una vez hecho esto, el SAI ya queda completamente integrado en el sistema. Pero como siempre, podemos seguir complicando la cosa.

En mi caso, he programado una regla en mi sistema de domótica, que ejecuta apcaccess cada pocos segundos, y parsea las lineas que nos devuelve el comando a valores independientes, para así controlar los parámetros que me interesan (por ejemplo si se va la corriente y no estoy en casa que me avise, entre otras features). Queda para otra.

Mucha mierda para 2019, no bebáis mucho terrícolas!


Espero que sea útil, ¡gracias por leerme!