Monitorización web de un SAI con NUT
Jan 21, 08 by Juan Lebrijo about blog, SAI
En un artículo anterior vimos como instalar NUT para administrar un SAI. Ahora veremos como montar su monitorización através de un servidor Apache. Sobre un Debian Etch. Instalamos el paquete cgi:
elite:/etc/nut# apt-get install nut-cgi
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Se instalarán los siguientes paquetes extras:
  defoma fontconfig-config libfontconfig1 libfreetype6 libgd2-xpm libjpeg62 libpng12-0 libx11-6 libx11-data libxau6 libxdmcp6 libxpm4
  ttf-dejavu x11-common
Paquetes sugeridos:
  defoma-doc psfontmgr x-ttcidfont-conf dfontmgr libfreetype6-dev libgd-tools
Paquetes recomendados
  libft-perl
Se instalarán los siguientes paquetes NUEVOS:
  defoma fontconfig-config libfontconfig1 libfreetype6 libgd2-xpm libjpeg62 libpng12-0 libx11-6 libx11-data libxau6 libxdmcp6 libxpm4
  nut-cgi ttf-dejavu x11-common
0 actualizados, 15 se instalarán, 0 para eliminar y 1 no actualizados.
Se necesita descargar 99,9kB/5973kB de archivos.
Se utilizarán 13,8MB de espacio de disco adicional después de desempaquetar.
El cgi se pone en el directorio /usr/lib/cgi-bin/nut/upsstats.cgi, por lo que apache lo tendrá que encontrar en su host virtual. Esto se vé en /etc/apache2/sites-available/default:
<VirtualHost *>
        ServerName www.tudominio.com

        ScriptAlias /sai/ "/usr/lib/cgi-bin/nut/"
        <Directory "/usr/lib/cgi-bin/nut">
                AllowOverride None
                Options +ExecCGI
                Order allow,deny
                Allow from all
        </Directory>

</VirtualHost>
En el fichero de hosts de nut: cp /usr/share/doc/nut-cgi/examples/hosts.conf /etc/nut/, hay que añadir la línea:
MONITOR misai@localhost "UPS ELITE"
El nombre "misai" es el configurado en el fichero de configuración /etc/nut/ups.conf. Copiamos las páginas de visualización:
cp /usr/share/doc/nut-cgi/examples/upsstats.html /etc/nut/
cp /usr/share/doc/nut-cgi/examples/upsstats-single.html /etc/nut/
Podemos visualizar en: http://www.tudominio.com/sai/
Web monitoring of an UPS with NUT
Jan 21, 08 by Juan Lebrijo about blog, SAI
In a previouspost we saw how to install NUT to administer an UPS. Now we will see how monitoring the function through Apache server. Over Debian Etch. Install cgi package:
elite:/etc/nut# apt-get install nut-cgi
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Se instalarán los siguientes paquetes extras:
  defoma fontconfig-config libfontconfig1 libfreetype6 libgd2-xpm libjpeg62 libpng12-0 libx11-6 libx11-data libxau6 libxdmcp6 libxpm4
  ttf-dejavu x11-common
Paquetes sugeridos:
  defoma-doc psfontmgr x-ttcidfont-conf dfontmgr libfreetype6-dev libgd-tools
Paquetes recomendados
  libft-perl
Se instalarán los siguientes paquetes NUEVOS:
  defoma fontconfig-config libfontconfig1 libfreetype6 libgd2-xpm libjpeg62 libpng12-0 libx11-6 libx11-data libxau6 libxdmcp6 libxpm4
  nut-cgi ttf-dejavu x11-common
0 actualizados, 15 se instalarán, 0 para eliminar y 1 no actualizados.
Se necesita descargar 99,9kB/5973kB de archivos.
Se utilizarán 13,8MB de espacio de disco adicional después de desempaquetar.
The cgi copy in the directory /usr/lib/cgi-bin/nut/upsstats.cgi, then Apache must find this in its Virtual hosts. We can se hosts in /etc/apache2/sites-available/default:
<VirtualHost *>
        ServerName www.yourdomain.com

        ScriptAlias /sai/ "/usr/lib/cgi-bin/nut/"
        <Directory "/usr/lib/cgi-bin/nut">
                AllowOverride None
                Options +ExecCGI
                Order allow,deny
                Allow from all
        </Directory>

</VirtualHost>
In the hosts NUT file: cp /usr/share/doc/nut-cgi/examples/hosts.conf /etc/nut/, we must add the line:
MONITOR misai@localhost "UPS ELITE"
The name "misai" was declared in the configuration file /etc/nut/ups.conf. Copy the visialization pages:
cp /usr/share/doc/nut-cgi/examples/upsstats.html /etc/nut/
cp /usr/share/doc/nut-cgi/examples/upsstats-single.html /etc/nut/
We can see the monitor in: http://www.yourdomain.com/sai/
Instalación de NUT
Jan 14, 08 by Juan Lebrijo about blog, SAI
NUT (Network UPS Tool) es un conjunto de herramientas para administrar los sistemas de alimentación ininterrumpida que aseguran la alimentación continua de nuestros equipos. En este artículo instalaremos y configuraremos la herramienta en un Debian etch. En mi caso he configurado un SAI BELKIN SurgeMaster de 650 VA de potencia. Pero podeis ver la compatibilidad con el sistema operativo y la aplicación NUT de vustro SAI en la dirección: http://www.networkupstools.org/compat/stable.html. Me baso en mi tabla de referencia: Origen http://www.networkupstools.org/ Repositorio apt Paquete Nut 2.0.4 Documentación (castellano) http://www.servitux.org/view.php/page/sai Documentación (inglés) http://www.networkupstools.org/doc/2.0.1/ Instalamos el paquete:
elite:~# apt-get install nut nut-snmp nut-usb
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Se instalarán los siguientes paquetes extras:
  libsensors3 libsnmp-base libsnmp9 libsysfs2
Paquetes sugeridos:
  lm-sensors nut-cgi nut-dev
Se instalarán los siguientes paquetes NUEVOS:
  libsensors3 libsnmp-base libsnmp9 libsysfs2 nut nut-snmp nut-usb
0 actualizados, 7 se instalarán, 0 para eliminar y 1 no actualizados.
Se necesita descargar 3122kB/4432kB de archivos.
Se utilizarán 9847kB de espacio de disco adicional después de desempaquetar.
Las herramientas snmp para recabar información centralizada de los sistemas, y usb para conectar el hardware mediante puertos USB. En el fichero /etc/default/nut, ponemos las variables para que se inicien los servidores:
# start upsd
START_UPSD=yes

# start upsmon
START_UPSMON=yes
Añadimos el usuario nut al grupo dialout que es el que controla los interfaces serie:
elite:~#  adduser nut dialout
Creamos los ficheros de configuración:
cp /usr/share/doc/nut/examples/ups.conf /etc/nut/
cp /usr/share/doc/nut/examples/upsd.users /etc/nut/
cp /usr/share/doc/nut/examples/upsd.conf /etc/nut/
cp /usr/share/doc/nut/examples/upsmon.conf.gz /etc/nut/
gzip -d /etc/nut/upsmon.conf.gz
En ups.conf:
[misai]
        driver = megatec
          port = /dev/ttyS0
El upsd.conf lo dejamos como está, es la configuración del demonio del servidor. El upsd.users es:
[admin]
        password = upssai
        allowfrom = localhost
        actions = SET
        instcmds = ALL

[control]
        password = upssai
        allowfrom = localhost
        upsmon master

[clientes]
        password = upssai
        allowfrom = negro
        upsmon slave
Aparece "negro" como sistema cliente del sai, es un PC de escritorio que también está enganchado al SAI. Realmente no deseo que "negro" monitorice (entre otras cosas es un Windoze), pero si quiero que antes de que se apague el servidor le mande una orden de apagado. En upsmon.conf añadimos ordenadamente:
MONITOR misai@localhost 1 control upssai master

SHUTDOWNCMD "/etc/nut/apagado_sistema.sh"

NOTIFYCMD /etc/nut/mensaje-ups.sh

NOTIFYMSG ONLINE "UPS %s en estado normal"
NOTIFYMSG ONBATT "Alguien ha quitado el cable del SAI %s"
NOTIFYMSG LOWBATT "Bateria demasiado baja"
NOTIFYMSG FSD "Ha llegado el momento de apagar el SAI"
NOTIFYMSG COMMOK "Fiiiuuu, ya puedo volver a hablar con el SAI"
NOTIFYMSG COMMBAD "Otiiaa, que el SAI no me habla"
NOTIFYMSG SHUTDOWN "Apagando!"
NOTIFYMSG REPLBATT "Macho, ves cambiando la bateria"

NOTIFYFLAG ONLINE SYSLOG+EXEC
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
NOTIFYFLAG FSD SYSLOG+WALL+EXEC
NOTIFYFLAG COMMOK SYSLOG+EXEC
NOTIFYFLAG COMMBAD SYSLOG+EXEC
NOTIFYFLAG SHUTDOWN SYSLOG+EXEC
NOTIFYFLAG REPLBATT SYSLOG+EXEC
Creamos el batch de mensaje de notificación mensaje-ups.sh:
#!/bin/sh

echo "
ATENCION
----------------------

MENSAJE DEL SAI: $NOTIFYTYPE" | mail -s "MENSAJE DEL SAI" admin@lebrijo.com
Creamos el batch con las órdenes de apagado apagado_sistema.sh:
#!/bin/sh

# Apagamos el PC de escritorio (si estuviera encendido)
ssh -i /etc/nut/rsa_ups ups@negro.lebrijo.com "shutdown -s –f"
# Apagamos el servidor elite
/sbin/shutdown -h +0
Cambiamos los permisos de los ficheros ejecutables para que se puedan ejecutar:
chmod 744 /etc/nut/*.sh
En una futura entrada veremos como configurar un sshd en Windows para recibir la orden anterior de apagado.