Nagios es la herramienta Open Source de monitorización de sistemas Unix/Linux más conocida. Nagios puede también monitorizar sistemas Windows mediante la instalación de un agente en la máquina a monitorizar, aunque la parte servidor de Nagios debe residir en un servidor Unix/Linux. En este artículo vamos realizar una introducción a la funcionalidad que ofrece, con un ejemplo práctico.

Instalación 

Vamos a realizar la instalación sobre un servidor virtual con sistema operativo Centos 5, aunque los pasos a seguir son muy similares para otros sistemas operativos Unix/Linux.

Descargamos el código fuente de la versión estable de nagios desde http://www.nagios.org/. El fichero se llama nagios-3.0.6.tar.gz, y ocupa 2.67 MB.

También descargamos los plug-ins. El fichero se llama nagios-plugins-1.4.11.tar.gz,y ocupa 1,7 MB.

Instalamos la librería gd:

# yum install gd gd-devel
  Preparamos la configuración: 
# ./configure --with-command-group=nagcmd
 Cuando finaliza su ejecución, el comando configure presenta un resumen de configuración: 
*** Configuration summary for nagios 3.0.6 12-01-2008 ***:
 General Options:
 -------------------------
        Nagios executable:  nagios
        Nagios user/group:  nagios,nagios
       Command user/group:  nagios,nagcmd
            Embedded Perl:  no
             Event Broker:  yes
        Install ${prefix}:  /usr/local/nagios
                Lock file:  ${prefix}/var/nagios.lock
   Check result directory:  ${prefix}/var/spool/checkresults
           Init directory:  /etc/rc.d/init.d
  Apache conf.d directory:  /etc/httpd/conf.d
             Mail program:  //bin/mail
                  Host OS:  linux-gnu
 Web Interface Options:
 ------------------------
                 HTML URL:  http://localhost/nagios/
                  CGI URL:  http://localhost/nagios/cgi-bin/
 Traceroute (used by WAP):  //bin/traceroute
 
 
Review the options above for accuracy.  If they look okay,
type 'make all' to compile the main program and CGIs.
 
#
 

Compilamos e instalamos nagios con los comandos:

make all
make install
make install-init
make install-config
make install-commandmode

Llegados a este punto, ya se han copiado algunos ficheros de configuración de ejemplo en el directorio usr/local/nagios/etc. Para empezar a usar nagios con estos ficheros, es necesario editar /usr/local/nagios/etc/objects/contacts.cfg  para indicar la dirección de correo de notificaciones correspondiente al contacto nagiosadmin.

A continuación, instalamos la configuración del servidor web:

# make install-webconf

Esto crea un fichero ‘nagios.conf’ en el directorio ‘/etc/httpd/conf.d’. La instalación da por supuesto que en el fichero de configuración del servidor web Apache habrá una directriz de la forma:

Include conf.d/*.conf

Si no es así, deberemos editar el fichero httpd.conf para incluir dicha línea, o una similar, de modo que se incorporen las directrices de nagios.conf a la configuración de Apache.

En nuestro caso, incluimos la directriz:

Include conf.d/nagios.conf

Después, creamos un usuario nagiosadmin para la validación de apache, y reiniciamos el servidor web:

        # htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
        # /etc/init.d/httpd restart
 

Con esto, ya podemos acceder al interfaz web de nagios, mediante la url http://servidor/nagios. La pantalla inicial que aparece es:

En realidad, aunque veamos esta pantalla, nagios todavía no se está ejecutando en nuestro servidor, por lo que si intentamos acceder a cualquiera de las opciones del menú de la izquierda, obtendremos un mensaje de error.
Ahora, tenemos que instalar los plug-ins:

# tar xzf nagios-plugins-1.4.11.tar.gz
# cd nagios-plugins-1.4.11
#./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make
# make install

Con esto, ya podemos configurar el servicio para que se ejecute en el arranque del servidor, y comenzar su ejecución:

# chkconfig --add nagios
# chkconfig nagios on
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nagios 3.0.6
Copyright (c) 1999-2008 Ethan Galstad (http://www.nagios.org/)
Last Modified: 12-01-2008
License: GPL
Reading configuration data...
Running pre-flight check on configuration data...
Checking services...
        Checked 8 services.
Checking hosts...
        Checked 1 hosts.
Checking host groups...
        Checked 1 host groups.
Checking service groups...
        Checked 0 service groups.
Checking contacts...
        Checked 1 contacts.
Checking contact groups...
        Checked 1 contact groups.
Checking service escalations...
        Checked 0 service escalations.
Checking service dependencies...
        Checked 0 service dependencies.
Checking host escalations...
        Checked 0 host escalations.
Checking host dependencies...
        Checked 0 host dependencies.
Checking commands...
        Checked 24 commands.
Checking time periods...
        Checked 5 time periods.
Checking for circular paths between hosts...
Checking for circular host and service dependencies...
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...
Total Warnings: 0
Total Errors:   0
Things look okay - No serious problems were detected during the pre-flight check
#  service nagios start
Starting nagios: done.
#

 

Si ahora regresamos al navegador web, y seleccionamos la opción “Tactical Overview” del menú de la izquierda, llegamos a la siguiente pantalla: 

En ella podemos ver que uno de los agentes que vienen en la instalación por defecto de Nagios ha detectado un error crítico. Haciendo click sobre la caja de fondo rojo, accedemos al detalle del problema detectado:

Nagios está informando de un problema con el area de swap, porque hay 0 MB libres. En realidad, lo que ocurre es que estamos instalando Nagios sobre un servidor virtual Virtuozzo, y este software de virtualización no asigna swap a cada 'Contenedor', sino que lo gestiona de modo global.

Se trata de un falso positivo, pero nos ha permitido ver la manera en que Nagios presenta los problemas que pueden surgir.

Por cierto, que accediendo al buzón de correo que configuramos para recibir alertas, comprobamos que también nos ha llegado un mensaje indicando el problema:

asunto ** PROBLEM Service Alert: localhost/Swap Usage is CRITICAL **
***** Nagios *****
Notification Type: PROBLEM
Service: Swap Usage
Host: localhost
Address: 127.0.0.1
State: CRITICAL
Date/Time: Wed Jun 10 13:42:27 CEST 2009
- Ocultar texto citado -
Additional Info:
SWAP CRITICAL - 100% free (0 MB out of 0 MB)