martes, 1 de septiembre de 2009

Monitoreo de dispositivos y servicios de red con Nagios3 (Episodio I)

Introducción

Nagios es una herramienta de código abierto que sirve para monitorear dispositivos y servicios de red (SMTP, POP3, HTTP, etc). Gracias a clientes instalables escritos para distintos sistemas operativos se puede vigilar también los recursos de sistemas como la carga de procesadores, uso de memoria, discos, entre otros.

Cuando alguno de las parámetros que se monitorean difiere de los límites establecidos como normales puede generar alarmas por correo electrónico, mensajes SMS o mensajería instantánea vía Jabber al administrador de red o del dispositivo con problemas. Con esto, podemos estar prevenidos de cualquier inconveniente en una red antes de que estallen los teléfonos.

Nagios se distribuye bajo licencia GNU General Public License Version 2. Está escrito en C y fue diseñado para correr en GNU/Linux, aunque puede correr varias plataformas Unix también.

Ethan Galstad, padre de Nagios El proyecto nació bajo el nombre de Netsaint de la mano de Ethan Galstad pero al poco tiempo tuvo que renombrarlo ya que este coincidía con una marca comercial. Así pasó a llamarse Nagios como lo conocemos hasta la fecha.

Según comenta el mismo Ethan en el FAQ oficial, Nagios es un acrónimo recursivo que significa “Nagios Ain't Gonna Insist On Sainthood”, algo así como “Nagios no insistirá con la santidad”. Esto hace referencia al antiguo nombre del proyecto: Netsaint (Saint en inglés, significa Santo).

Un significado alternativo, sugerido por Sam Tilders es “Notices Any Glitch In Our System ” (Avisa cualquier fallo de nuestro sistema).

Algunas personas han sugerido que el nombre podría derivar de la palabra griega "hagios", que significa "sagrado" o "santo". Aunque, como bien aclara en dicho foro Ethan, en griego también significa "maldito", "execrable", "digno de condena", según el diccionario griego- inglés de Henry George Liddell y Robert Scott.

Gracias a todos los santos (ya que hablamos de ellos) la pronunciación de Nagios no es tan indeterminada. En el foro oficial, Ethan Galstad explica como lo pronuncia:



De todas maneras, deja abierta la posibilidad de otras variantes. Una de ellas es la de pronunciar "nachios", que suena como "nachos" (?).


Instalación en Debian Lenny

Soy un poco conservador (sólo en cuanto a la instalción de paquetes de software) así que prefiero utilizar normalmente los paquetes propios de mi distribución, en este caso los de Debian Lenny. La versión de Nagios que incluye Debian Lenny es la 3.0.6 de diciembre 2 de 2008. La instalación, en este caso, se simplifica a ejecutar como root:

# apt-get install nagios3

Esto instalará apache2 (si no estaba instalado previamente) y el resto de paquetes y bibliotecas requeridas.

La otra opción es bajar la última versión desde la página oficial del proyecto y compilarla. Al momento de escribir estas lineas, la última versión era la 3.2.0 del 12 de agosto de 2009. No voy a explicar ese camino, ya que si tienes interés en compilar Nagios entiendo que tienes los suficientes conocimientos como para andar leyendo este tutorial.

En la instalación se nos preguntará, entre otras opciones, por el grupo de trabajo que queremos que se vea la máquina donde estamos instalando Nagios. Esto se debe a que el paquete nagios-plugins-standard requiere del paquete sambaclient y este de samba-common, que es que nos solicita esta información.

Si dudamos de que colocar en la configuración de samba-common, podemos dejar todo por defecto. No es importante esto por el momento.

A futuro, podemos ejecutar:

# dpkg-reconfigure samba-common

para volver a configurarlo.

Una vez instalado Nagios, debemos generar un usuario de acceso a la interface web:

# htpasswd -c /etc/nagios3/htpasswd.users nagiosadmin

El comando htpasswd con la opción -c indica que se cree el archivo /etc/nagios3/htpasswd.users donde se almacenará el usuario nagiosadmin y su clave encriptada. Este comando nos solicitará ingresar una clave para dicho usuario y luego volver a ingresarla a modo de confirmación.

Podemos definir otros usuarios para que puedan acceder con el siguiente comando:

# htpasswd /etc/nagios3/htpasswd.users usuario

donde usuario es el nombre del nuevo usuario requerido para ingresar al interface web.

Noten que el comando ntpasswd va esta vez sin la opción -c ya que el archivo /etc/nagios3/htpasswd.users ya existe (si se incluye nuevamente la opción -c, el archivo previamente creado se pierde)

Ahora, desde un navegador podemos ingresar a http://IP-SERVIDOR/nagios, donde IP-SERVIDOR es la dirección IP de la máquina donde acabamos de instalar Nagios. Si esta dirección IP tiene un nombre de dominio en la red, podemos reemplazarlo por este.

Ingresando el usuario y clave que hemos creado veremos en el navegador algo como lo siguiente:


Esa es la página prinipal de la interface de Nagios.

Como vieron, es muy sencillo instalar Nagios. No ocurre lo mismo con la configuración, la cual va a ser engorrosa. Más aún dependiendo de la complejidad de la red y de que se desea monitorear.

En una futura entrada de este blog pienso explicar la configuración para una red hipotética donde poder aplicar gran parte de los conceptos necesarios para que uds puedan adaptarlos a sus necesidades.