Configuración y disfrute de un SAI: NUT en Debian

Esta receta explica cómo instalar y configurar la herramienta NUT para aprovechar al máximo las posibilidades de un SAI en un sistema Debian GNU/Linux. Concretamente, los pasos son para un MGE Pulsar Extreme 1500C

Introducción

Instalar un software de control para un SAI sólo tiene sentido si podemos hablar con él para obtener datos de su estado y funcionamiento. Si el SAI no tiene ningún tipo de conexión de datos (tal como serie o USB) esta receta no te sirve. En cualquier caso, un SAI que no dice nada sobre su estado es de muy poca utilidad. Si estás pensado en comprar un SAI, elige uno con el que puedas hablar. En la página de nut hay una lista de las marcas y modelos compatibles.

Instalación

Si tienes una distro compatible Debian, instalar el paquete nut es así de fácil:

# apt-get install nut

Descripción


Este software tiene una arquitectura cliente/servidor. Esta configuración permite que varios equipos alimentados por un único SAI (y que ejecutan un cliente) puedan hablar, a través de la red, con el equipo que tiene la conexión de datos del SAI (y que ejecuta el servidor). De este modo, ante un corte de corriente, todos los equipos quedan informados y pueden actuar en consecuencia.

Por este motivo, aunque el SAI dé servicio a una sola máquina, será necesario instalar un servidor y un cliente.

Funcionalidad


Lógicamente, la función de un SAI o UPS (mantener la alimentación durante cortes de luz) es insuficiente para un servidor, ya que es muy probable que no haya nadie para apagar el equipo durante el tiempo de duración de las baterías. El software nut ofrece servicios mucho más interesantes:

  • Fijar un umbral de bateria, por debajo del cual el equipo conectado al SAI se apaga automáticamente.
  • Desconexión del SAI. De este modo las baterías no se agotan inútilmente, pues ya no hay nada que alimentar.
  • Fijar umbrales de carga máxima.
  • Monitorización y configuración remota (por medio de CGI).

Con esa configuración, ante un corte de luz, ocurre lo siguiente:

  • El SAI pasa a modo batería.
  • Al bajar el nivel de carga de la batería al umbral fijado, el driver que corre en el servidor lo detecta e informa a todos los clientes.
  • Los clientes inician el proceso de apagado de cada equipo.
  • Justo antes de apagarse, el servidor envía al SAI el comando de desconexión.
  • El SAI recibe el comando, espera un tiempo prefijado y después se apaga.

Al volver la corriente:

  • El SAI enciende automáticamente.
  • Cuando la fuente de alimentación del PC detecta voltaje (procedente del SAI) arranca el equipo. Para esto es necesario configurar el BIOS Setup de cada ordenador.

No todos los SAIs pueden hacer todo lo que se índica. Tendrás más o menos posibilidades dependiendo de la gama y precio del SAI.

Configuración

Configuración común

Lo primero, y antes de que se nos olvide, será cambiar los permisos del puerto serie (/dev/ttyS0 o /dev/ttyS1), pues nos debe dejar leer y escribir en él como root. En Debian, los puertos serie suelen pertenecer al grupo dialout, así que la manera más fácil de conseguir permiso es:

# addgrp nut dialout

En /etc/nut/ups.conf habrá que realizar algunos cambios (tanto en cliente como en servidor). Aquí es donde se añade el driver (cada familia de SAIs tiene su propio driver):

[id]
   driver = (driver)
   port = (port)
   (options)

Por ejemplo, para un SAI “MGE Pulsar Extreme” será:

[mge]
   driver = mge-utalk
   port = /dev/ttyS0
   LowBatt = 90

Configuración del servidor

Edita el fichero /etc/default/nut modificando la línea “START_UPSD=no” por “START_UPSD=yes”

En el fichero /etc/nut/upsd.conf tienes que crear la lista de control de acceso (ACL). Para ello incluye (si no existe ya):

ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32                  # host actual
ACL [NombreMáquina] 192.168.0.0/24    # toda la red
 
ACCESS grant login localhost [password]
ACCESS grant monitor localhost [password]
 
ACCESS grant login [NombreMaquina] [password]
ACCESS grant monitor [NombreMáquina] [password]
ACCESS deny all all

Por último, edita el fichero /etc/nut/upsd.users para dar acceso a los usuarios. Para ello, añade las líneas:

[monuser]
        password = [password]
        allowfrom = localhost 192.168.0.0/24     # tu red

Configuración del cliente

Edita el fichero /etc/default/nut modificando la línea “START_UPSMON=no” por “START_UPSMON=yes”

Lo siguiente será /etc/nut/upsmon.conf. Éste es el fichero de configuración del cliente. La línea obligatoria a añadir es la del monitor:

MONITOR [id]@[ip] 1 [password] slave|master

Lo normal para el equipo que tiene la conexión de datos al SAI es que funcione en modo “master”. Eso significa que debe esperar a que los “slaves” apaguen antes de hacerlo él. Así que quedará algo como esto:

MONITOR mge@192.168.0.1 1 [password] master

Ahora debes reniciar el servicio de la forma habitual:

# /etc/init.d/nut restart

Consejos

Lo mejor es que la primera vez se arranque todo a mano, pues el script descrito en la sección anterior redirige todos los errores a /dev/null. Para ello se hará:

# upsdrvctl start
Network UPS Tools – UPS driver controller 1.2.1
Network UPS Tools – MGE UPS SYSTEMS/U-Talk driver 0.51.0 (1.2.1)
#
# upsd
Network UPS Tools upsd 1.2.1
#
# upsmon
UPS: mge@192.168.0.1 (slave) (power value 1)
Using power down flag file /etc/killpower
#

Puedes ver que la monitorización funciona adecuadamente con el comando upsc:

# upsc mge
UPS: localhost
MFR: MGE UPS SYSTEMS
STATUS: OL CHRG
UPSIDENT: EXtreme 1500C 15
MODEL: EXtreme 1500C
FIRMREV: 15
UTILITY: 230.0
BATTPCT: 100.0
BATT_RUNTIME: 01890
ACFREQ: 50.00
LOADPCT: 026.0
WAKEDELAY: 001
GRACEDELAY: 120
SLFTSTINT: 10080
OUTVOLT: 230.5
BATTVOLT: 054.6
LOBATTPCT: 90
NOMBATVLT: 048.0
CURRENT: 001.2

Y eso es todo.

Referencias

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Pequeño ajuste...

Hola qué tal, bastante bueno tu minitutorial, sólo escribo para comentar que te equivocas en la configuración del cliente (/etc/nut/upsmon.conf), lo común no es que sea SLAVE, pues el equipo esclavo es aquel que NO tiene el cable de conexión directa al SAI (USB o serie normal). Lo común es MASTER, que es el equipo que está conectado al SAI tanto para energía eléctrica como para monitorización (siendo quisquillosos, los equipos slave también pueden monitorear, pero bueno, eso es otra cuestión). Saludos.

Imagen de david.villa

Tienes toda la razón

arreglado.

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.