Monitoreo UPS · 10 min read · Oct 16, 2025
Monitoreo del estado de energía del UPS utilizando Network UPS Tools (NUT) 2.2.0 en múltiples servidores OpenSuSE 10.3
Monitoreo del estado de energía del UPS utilizando Network UPS Tools (NUT) 2.2.0 en múltiples servidores OpenSuSE 10.3
Network UPS Tools es una colección de programas que proporcionan una interfaz común para monitorear y administrar hardware de UPS.
El objetivo principal del proyecto Network UPS Tools (NUT) es proporcionar un monitoreo confiable del hardware de UPS y garantizar apagados seguros de los sistemas que están conectados.
Este es un proyecto en desarrollo para monitorear una gran variedad de hardware de UPS. Muchos modelos tienen puertos en la parte posterior para permitir que otros dispositivos verifiquen el estado. Si proporciona información básica sobre el estado de energía y batería, probablemente se pueda soportar sin demasiada dificultad. También se admiten características más avanzadas en los modelos de gama alta para permitir el seguimiento de valores a lo largo del tiempo, como temperatura y voltaje.
Se utilizan comunicaciones de red para que múltiples sistemas puedan monitorear un solo UPS físico y apagarse juntos si es necesario, sin ningún “hardware de compartición” especial en el propio UPS.
Preinstalación
Antes de que tengas todo funcionando en el servidor, conecta el UPS a una toma de corriente y conecta el cable de señal (serie o USB) al servidor que ejecutará upsd. No conectes ningún cable de alimentación del servidor a la toma del UPS hasta que sientas que estás seguro con el funcionamiento de NUT y cómo se comporta con tu hardware. A menudo se aconseja que utilices una carga ficticia, como una lámpara, al probar el UPS. Esto también te mostrará cuándo el UPS entrega energía y cuándo está apagado, dándote la oportunidad de experimentar de manera segura y ganar confianza con los comandos de una manera que no puedes hacer una vez que conectas un servidor de producción al UPS.
Instalación
Instala el paquete RPM nut. Si usas YaST2, los paquetes requeridos se agregarán automáticamente. Desde la línea de comandos, puedes usar
yast2 -i nutcomo root.
En OpenSuSE 10.3, obtendrás nut 2.2.0 instalado.
Esto colocará todos los binarios necesarios en tu ruta y un conjunto de archivos de configuración de esqueleto. Tendrás que editar los archivos como root para definir tu hardware de UPS.
Configuración
Configuración de un UPS conectado localmente
Abre una shell de root, o usa por ejemplo
sudo vipara editar los archivos de configuración.
En el archivo /etc/ups/ups.conf tienes una sección ficticia con valores predeterminados que se ve así:
[myups]
driver = undefined
port = /dev/undefined
desc = "Local UPS"Edita el archivo y establece el controlador para apuntar al controlador correcto para tu UPS, el puerto donde conectaste el cable de señal y agrega una descripción. Consulta /usr/share/nut/driver.list para obtener una lista de marcas y modelos compatibles.
Aquí está mi entrada para un APC SmartUPS 1400 conectado al puerto serie.
[apc_smartups_1400]
driver = apcsmart
port = /dev/ttyS0
desc = "APC SmartUPS 1400"Tienes que modificar el archivo /etc/ups/upsd.users para configurar usuarios y permisos. Las contraseñas se generan automáticamente durante la instalación, así que puedes dejarlas configuradas con estos valores aleatorios si lo deseas. Si quieres usar una contraseña que puedas recordar, edita el archivo. Hay dos entradas en el archivo predeterminado, yo también añadí un usuario administrador para poder calibrar y probar el UPS desde la línea de comandos.
Ten en cuenta que estos usuarios solo pueden conectarse desde localhost, así que por ahora la seguridad no es un gran problema aquí. Con esclavos remotos, deberías usar una contraseña más avanzada que la que tengo en estos ejemplos.
Aquí están los tres usuarios definidos en el archivo /etc/ups/upsd.users.
[upsmaster]
password = masterpass123
allowfrom = localhost
upsmon master
[upsslave]
password = slavepass123
allowfrom = localhost
upsmon slave
[upsadmin]
password = upspass
allowfrom = localhost
actions = SET
instcmds = ALLEl demonio upsd solo sondea el UPS, necesitas otros programas para verificar el estado de upsd. Edita sus archivos de configuración para reflejar el nuevo nombre del UPS y el inicio de sesión y la contraseña.
/etc/ups/upsmon.conf# MONITOR myups@localhost 1 upsmaster 67fc9377aa master
MONITOR apc_smartups_1400@localhost 1 upsmaster masterpass123 masterTambién prefiero recibir un aviso de “wall” cuando se restaura la energía en caso de que trabaje de forma remota y haya un breve corte de energía. Cambia la línea:
NOTIFYFLAG ONLINE SYSLOGa
NOTIFYFLAG ONLINE SYSLOG+WALLen el archivo /etc/ups/upsmon.conf.
/etc/ups/hosts.conf es solo para los programas CGI incluidos, pero también puedes agregar la información correcta aquí.
/etc/ups/hosts.conf# MONITOR myups@localhost "Local UPS"
MONITOR apc_smartups_1400@localhost "APC SmartUPS 1400"Ahora finalmente podemos iniciar todos estos programas:
rcupsd startlinux:~ # rcupsd start
Starting NUT UPS drivers done
Starting NUT UPS server done
Starting NUT UPS monitor done
Verifica que estés en funcionamiento y que puedas leer los valores almacenados del UPS. Primero lista los dispositivos disponibles con
upsc -l… luego lee todos los valores con:
upsc linux:~ # upsc -l
apc_smartups_1400
linux:~ # upsc apc_smartups_1400
battery.alarm.threshold: 0
battery.charge: 100.0
battery.charge.restart: 00
[…]
Pruebas
Antes de conectar tu servidor a la energía, prueba un corte de energía real desenchufando el cable de alimentación de la unidad UPS. Debería cambiar a batería y recibirás un mensaje de advertencia. Si estás conectado y ejecutando KDE, recibirás un popup de KWrited con un mensaje como:
Broadcast Message from upsd@linux
(somewhere) at 22:51
UPS apc_smartups_1400@localhost on battery
Vuelve a enchufar el cable y observa los mensajes tranquilizadores de que la energía ha sido restaurada.
Broadcast Message from upsd@linux
(somewhere) at 22:51
UPS apc_smartups_1400@localhost on line power
Si esto funciona, puedes apagar tu servidor y conectar el cable de alimentación al UPS. En caso de un corte de energía, recibirás los mensajes que viste durante la prueba. Una vez que la carga de la batería esté tan baja que el UPS envíe una señal de “batería baja”, NUT apagará el servidor. Puede que puedas establecer este umbral en los registros del UPS, o tendrás que scriptar algo que haga un
shutdown -h -t(parada del sistema después de
shutdown -c(cancelar apagado) cuando el UPS esté de vuelta en energía de línea. Sin embargo, no todos los dispositivos UPS enviarán este mensaje de “restaurado”. Aquí es donde solo tienes que probar y personalizar.
Ejecutando tu equipo en UPS
Así que tu servidor ahora está funcionando con energía de batería hasta que las baterías se agoten. Puede que quieras ejecutar el servidor hasta que las baterías fallen, solo para tener una idea de cuánto tiempo de batería tienes. La mayoría de los dispositivos UPS pueden mostrarte la carga y un porcentaje de carga de batería. Los UPS son geniales cuando estás trabajando en algo realmente importante y hay un breve aumento de energía o bajón, y en caso de un apagón prolongado, puedes hacer que la máquina se suspenda, hiberne o se apague cuando las baterías estén bajas.
Si configuras tu BIOS para que inicie la máquina automáticamente cuando comience a recibir energía, se iniciará automáticamente cuando se restaure la energía. En caso de cortes de energía recurrentes, no querrás mantener un servidor funcionando y agotar las baterías. Solo piensa en un UPS como una unidad que te protege de aumentos y picos de energía, y que puede proporcionarte un apagado limpio en caso de un corte de energía. No ejecutes un servidor con batería solo porque puedes. Las baterías en un UPS no están destinadas a ser agotadas, y cuando se restaura la energía, normalmente tardan unas horas en restaurar la carga completa. No querrás ejecutar los servidores sin una red de seguridad justo después de un apagón: apaga los servidores con mucha energía de batería restante y guárdala para el período difícil justo después de la restauración de energía, cuando todos los aparatos de toda la ciudad se encienden simultáneamente y comienzan a consumir energía. Por la misma razón, limita lo que mantienes en UPS a servidores importantes. No olvides agregar el hardware de soporte necesario, como equipos de red, KVM y monitores necesarios para operar los servidores durante un corte de energía. Evita ejecutar impresoras y la mayoría de las estaciones de trabajo con energía de UPS. Mantén una luz de emergencia en la sala del servidor para que puedas trabajar allí cuando las luces normales estén apagadas. Si mantienes los servidores funcionando un tiempo con tu propia fuente de energía (como un generador), incluso puedes querer mantener el HVAC en la misma energía para evitar el sobrecalentamiento de la sala.
También recuerda que cuando todo el equipo comienza a consumir energía a la vez: servidores y estaciones de trabajo se inician simultáneamente, todos los monitores y luces se encienden y las impresoras láser comienzan a calentarse, debes esperar que se queme un fusible o dos. Lo que luego prolonga tu apagón. Asegúrate de que todo el equipo no crítico esté apagado durante los cortes de energía y se vuelva a encender manualmente después.
Clientes remotos
Permitiendo clientes remotos
Ahora que sabes que el UPS local está funcionando como debería: manteniendo el servidor funcionando con energía y notificando al sistema operativo a través del puerto serie o USB, puede que quieras conectar más servidores a las demás tomas de corriente. Sin embargo, solo hay un cable USB o serie. Aquí es cuando necesitas el demonio upsd de NUT en la máquina con el cable serie para notificar a los otros servidores a través de la red.
Comienza editando el /etc/ups/upsd.conf para permitir clientes. Aquí se permite toda la subred, puede que quieras hacerlo más detallado e incluir solo IPs específicas.
ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32
ACL upsnet 192.168.1.0/24
ACCEPT localhost
ACCEPT upsnet
REJECT allAhora permite que el esclavo se conecte desde esta red en /etc/ups/upsd.users:
[upsslave]
password = slavepass123
allowfrom = localhost upsnet
upsmon slaveReinicia el demonio upsd nuevamente para recoger los cambios.
rcupsd restartlinux:~ # rcupsd restart
Shutting down NUT UPS monitor done
Shutting down NUT UPS server done
Shutting down NUT UPS drivers. done
Starting NUT UPS drivers done
Starting NUT UPS server done
Starting NUT UPS monitor done
O mejor, recarga la configuración, esto es mucho más rápido que reiniciar los demonios cuando solo necesitas reconfigurar cualquier ajuste excepto por los ajustes del controlador que requieren un reinicio del servicio como se mencionó anteriormente.
rcupsd reloadlinux:~ # rcupsd reload
Reload service NUT UPS (excluding upsdrvctl) done
Y permite a los clientes a través del firewall (OpenSuSE por defecto ejecuta un firewall iptables llamado SuSEfirewall). upsd escucha en el puerto TCP 3493, y por defecto escucha en todas las interfaces.
Crea una definición de servicio SuSEfirewall2, ya que el RPM no incluyó una. Haz un nuevo archivo llamado /etc/sysconfig/SuSEfirewall2.d/services/upsd. con este contenido:
# Descripción del servicio para upsd, el demonio UPS de NUT
# (Network UPS Tools)
#
## Nombre: NUT upsd
## Descripción: Permite la monitorización remota del estado de energía del UPS
# lista separada por espacios de puertos TCP permitidos
TCP="3493"
# lista separada por espacios de puertos UDP permitidos
UDP=""
# lista separada por espacios de servicios RPC permitidos
RPC=""
# lista separada por espacios de protocolos IP permitidos
IP=""
# lista separada por espacios de puertos de difusión UDP permitidos
BROADCAST=""Ahora inicia
YaSTcomo root y elige “Seguridad y Usuarios” -> “Firewall”. Selecciona la red correcta y elige NUT upsd en la lista desplegable. Agrega el servicio y haz clic en el botón Siguiente. Esto agrega upsd a la lista de servicios permitidos en la variable FW_CONFIGURATIONS_EXT en el script de configuración /etc/sysconfig/SuSEfirewall2. El puerto 3493 ahora está permitido a través del firewall iptables.
Configurando clientes remotos
Instala nut en una máquina remota, esta se llama linux64.
Comenta todo en /etc/ups/ups.conf ya que no tenemos un UPS local conectado:
#[myups]
# driver = undefined
# port = /dev/undefined
# desc = "Local UPS"Edita /etc/ups/upsmon.conf para monitorear el servidor donde está conectado el UPS:
#MONITOR myups@localhost 1 upsmaster 04fb251a3f master
MONITOR apc_smartups_1400@linux 1 upsslave slavepass123 slaveAgrega el servidor UPS a /etc/ups/hosts.conf:
#MONITOR myups@localhost "Local UPS"
MONITOR apc_smartups_1400@linux "APC SmartUPS 1400"Ahora inicia el servicio upsd, que ignorará el upsd real y el controlador UPS ya que no están configurados, y solo iniciará upsmon.
rcupsd startlinux64:~ # rcupsd start
Starting NUT UPS monitor done
Verifica que la conexión esté funcionando y que puedas leer los valores de estado del servidor UPS remoto.
upsc apc_smartups_1400@linuxlinux64:~ # upsc apc_smartups_1400@linux
battery.alarm.threshold: 0
battery.charge: 094.0
battery.charge.restart: 00
[…]
Prueba el UPS nuevamente y verifica que el nuevo cliente también reciba el mensaje
Broadcast Message from upsd@linux64
(somewhere) at 0:13 …
UPS apc_smartups_1400@linux on battery
Conecta el cable de alimentación de este servidor al UPS, y ahora tienes dos servidores protegidos de apagones y ambos están monitoreando el estado de energía.
Referencias
- La página de inicio de Network UPS Tools (NUT)
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.