Cargando



Monitoreo de infraestructura de TI con Nagios

Aprende con este manual en castellano a instalar y configurar Nagios para poder monitorizar tu infraestructura TI.


mar 21 2016 20:15
Profesional
mar 21 2016 20:24

Configuración Nagios

 

El instalador copió los archivos de configuración ejemplo en /usr/local/nagios/etc/ y haciendo una lectura del archivo de configuración principal nagios.cfg vemos el orden de lectura del resto de los archivos.

 

commands.cfg
Comandos que se ejecutarán en cada uno de los chequeos
contacts.cfg
Contactos disponibles para informar o enviar alertas
localhost.cfg
Información del servidor Nagios
timeperiods.cfg
Franjas horarias para alarmas y chequeos
printer.cfg, switch.cfg, templates.cfg, windows.cfg
Archivos de configuración de los objetos a chequear.

 

En esta versión de Nagios, están agrupados por tipo de dispositivo: impresoras, switches, servidores Windows, etc. La sintaxis es la misma para todos, con pequeñas variantes.

 

1. Cambio de destinatario

Cambio de destinatario para recepción de las alarmas vía e-mail. Lo que deberemos hacer es modificar el archivo /usr/local/nagios/etc/objects/contacts.cfg de la siguiente manera:

 

[color=#a9a9a9]Pulsa en la imagen para ampliarla[/color]

 

Donde dice nagios@localhost lo reemplazaremos por la dirección de correo del administrador de monitoreo.

 

2. Variables y macros en comandos

Si bien para la configuración inicial es poco probable que necesitemos cambiar los comandos ejecutados para los chequeos. Cada comando tiene definido un nombre y una instrucción, a la cual podremos pasarle variables y macros.

 

Daremos un breve ejemplo de cómo funciona la ejecución de comandos destinados a un cliente Nagios para Windows.

# 'check_nt' command definition
define command{
	    command_name    check_nt
	    command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
	    }
check_nt
Es el nombre del comando, cada vez que queramos usarlo deberemos hacer referencia univoca a ese nombre

 

-H $HOSTADDRESS$
Es una macro propia de Nagios que será reemplazada por la dirección IP o nombre del host a chequear

 

-p 12489
Significa que el comando define el puerto 12489 para la comunicación (puerto por defecto de los clientes Nagios)

 

-v $ARG1$ $ARG2$
Son argumentos que el comando espera

 

Otro ejemplo. Deseamos ejecutar un script personalizado que nos dirá cuántas actualizaciones faltan en un sistema, entonces definimos el comando:

# Ejecución de script personalizado
define command{
	    command_name    check_actualizaciones
	    command_line    $USER1$/check_actualizaciones.py -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$
	    }
check_actualizaciones.py es mi script ejecutable, para este ejemplo hagamos de cuenta que es una caja cerrada.

 

-H $HOSTADDRESS$
Como en el chequeo anterior, es una macro donde se le pasa al comando la IP del servidor a chequear

 

-w y –c
Son parámetros que espera el script como umbrales de advertencia (warning) y estado crítico (critical)

 

3. Definición de franjas horarias

Porque no todo lo que deseamos verificar debe ser ejecutado constantemente, nos es posible definir franjas horarias en el archivo timeperiods.cfg el cual es muy intuitivo.

 

nagios-timeperiods.jpg

[color=#a9a9a9]Pulsa en la imagen para ampliarla[/color]

 

Como se observa en la imagen, hay una franja horaria llamada 24x7 y a continuación los días y horarios que esta franja representa. Podría ser utilizada para chequeos o notificaciones a usuarios que necesitan ser tenidos en cuenta las 24 hs los 7 días de la semana. Como por ejemplo: verificación de espacio en disco, consumo de CPU, disponibilidad (uptime) de un sistema.

 

Ahora bien, podríamos definir una franja horaria personalizada para nuestro chequeo de actualizaciones de sistema (porque no necesitamos que corra 24x7).

# 'fin de semana' 
define timeperiod{
	    timeperiod_name weekend
	    alias		   Fin de semana
	    saturday		  00:00-24:00
	    sunday		 00:00-24:00
		 }
Por último, definimos lo más importante, el objeto a chequear. Aquí es donde se hace referencia a los anteriores archivos de configuración. Tomaremos como ejemplo el archivo windows.cfg (donde podemos agrupar los servidores homónimos).

 

Definimos el objeto, en este caso un servidor.

define host{
   use			 windows-server  ; Tomará valores de una plantilla
	    host_name	   ServidorExchange	   ; El nombre al que se hará referencia EN NAGIOS
   alias		   Servidor Exchange DAG	   ; Nombre descriptivo
	    address		 192.168.1.2	 ; Dirección IP del host
	    }
Y servicios que deseamos monitorearle.
define service{
use				   generic-service
host_name			 ServidorExchange ;Servidor que deseamos chequear
service_description   Espacio en disco C:\ ;Descripción del chequeo
check_command		 check_nt!USEDDISKSPACE!-l c -w 80 -c 90 ;Aquí se invoca el comando que definimos en el archive checkcommands.cfg
check_period	  	  24x7 ; franja horaria definida en archivo timeperiods.cfg
notification_period	 24x7
contact_groups		  administradoresexchange,admins ;grupos de contactos definidos en 				 contacts.cfg
	    }

define service{
    use					 generic-service
    host_name			   ServidorExchange
    service_description	 Actualizaciones de Windows
    check_command		   check_actualizaciones | 1 | 2 ;Los argumentos a pasar se separan con pipe
check_period	  		    weekend
notification_period	        24x7
contacts					 nagiosadmin ;contacto definido en contacts.cfg
	    }

Por supuesto, también es posible verificar varios servidores al mismo tiempo o un grupo previamente definidos…
define service{
	    use					 generic-service
	    host_name			   servidor1,servidor2,servidor3
	    service_description	 Carga de CPU
	    check_command		   check_nt!CPULOAD!-l 5,80,90
	    }
Hay infinidad de opciones para estos archivos que nos otorgan flexibilidad a la hora de configurar qué y cómo queremos monitorear. Para mayor información del tema, es recomendable la lectura en esta zona de la web Nagios.

 

Pasado y presente

Es una herramienta que ha estado disponible para monitoreo de infraestructura informática desde 1999, aunque en aquel entonces bajo el nombre NetSaint. Para evitar futuros problemas de marcas registradas un tiempo después fue renombrado a Nagios (“Nagios Ain’t Gonna Insist On Sainthood”).

 

Siempre bajo el licenciamiento GPL, durante 10 años supo tener una comunidad creciente de desarrolladores que aportaron código e ideas para mejorar el producto, aunque en 2009 debido a diferencias relacionadas a la administración del proyecto tanto desde lo conceptual como informático miembros del equipo comenzaron un fork (bifurcación) llamado Icinga. Este nuevo proyecto mantiene compatibilidad 100% desde y hacia Nagios, con código más pulido y funcionalidades que eran requeridas por la comunidad y se hacían oídos sordos (según informan sus desarrolladores).

 

Actualmente hay muchas herramientas de monitoreo bajo la licencia GPL de donde elegir y al mismo tiempo algunas de ellas (Icinga, Op5, Ninja, Shinken, Naemon y otras) tomaron como base Nagios con sus defectos y virtudes pero ésta se jacta por noveno año consecutivo tener la mención de “Network Monitoring Application of the Year”.

 

Sitios recomendados:


¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X