jueves, 3 de junio de 2010

Configurar Nagios en Ubuntu

En un post anterior publiqué un completo manual para instalar Nagios en Ubuntu. En este caso, partiendo de que Nagios ya este instalado, voy a explicar como configurar Nagios en Ubuntu.

Inicialmente Nagios sólo monitoriza la máquina local. Sin embargo, es obvio que lo que queremos es monitorizar otros dispositivos.
Lo primero es conocer la estructura de carpetas de Nagios. Nagios está instalado en "/usr/local/nagios". Dentro de esta carpeta está la siguiente estructura:
  • bin: Están los ejecutables de Nagios
  • etc: Contiene los archivos de configuración
    • objects: Archivos de configuración para los distintos dispositivos a monitorizar
  • libexec: Son los scripts para monitorizar
El archivo de configuración general está en "/usr/local/nagios/etc/nagios.cfg". Es es este archivo donde definimos todos los archivos de configuración que se van a incluir aparte de otras configuraciones, de manera que debemos descomentar aquellos que vayamos a usar.



Ahora vamos a centrarnos en los archivos de configuración dentro de la carpeta "/usr/local/nagios/etc/objects". En cada archivo de configuración se define lo que se quiere mirar de cada tipo de dispositivo (router, switch, servidores windows, etc.).

En el fichero commands.cfg se definen los comandos a utilizar. Por ejemplo, podemos definir que nos manden los emails de aviso en un formato de correo específico. La variable $USER1$ (usada en commnands.cfg) indica donde están los script de nagios.

Los scritps como ya he dicho antes están en la carpeta libexec. Para saber como usar los scripts ponemos el nombre del script seguido de -h para ver la ayuda:

check_smtp -h


En el archivo contacts.cfg están los contactos. Por ejemplo, está la dirección de email que introducimos para enviar los emails de aviso en el post instalar Nagios en Ubuntu.

En el archivo template.cfg hay plantillas para crear nuevos archivos de configuración. Hay plantillas para hosts, contactos, etc.

Aparte, están los archivos localhost.cfg, switch.cfg, windows.cfg en los que definiremos nuevos dispositivos y servicios a monitorizar.

Sigue leyendo para ver como configurar Nagios en Ubuntu.



Añadir un nuevo Host

Vamos al archivo windows.cfg porque vamos a añadir un servidor Windows. Copiamos el ejemplo de host que aparece y cambiamos los parámetros, además vamos a meterlo en el grupo "windows-servers":

define host{

use windows-server

host_name win2K3

alias Servidor DGSC

address 172.17.110.203

hostgroups windows-servers

}


Añadir un nuevo Servicio

Ahora vamos añadir un servicio para el nuevo Host que acabamos de definir. Para ello al final del archivo windows.cfg veremos algunos ejemplos de servicios. En este caso vamos a monitorizar HTTP.

define service{

use generic-service

host_name Win2K3

service_description HTTP Win2K3

check_command check_http

}


Los servicios en Nagios tienen 4 estados diferentes:
  • OK: Todo en orden
  • WARNING: Se ha alcanzado el umbral de alerta, pero no se ha llegado al umbral de crítico
  • CRITICAL: Se ha superado el umbral crítico o el plugin interrumpe el test después de un tiempo
  • UNKNOWN: Ha ocurrido un error en el plugin. Por ejemplo, se ha utilizado un parámetro erróneo

Antes de definir un servicio podemos probar el script manualmente mediante línea de comandos.

root@nagios:/usr/local/nagios/libexec# ./check_dns -s 172.17.14.1 -H www.google.com


Si el resultado es correcto y tenemos que definir muchos servicios con el mismo script y parámetro similares podemos crear un comando en el archivo commands.cfg.

# 'check_dns' command definition
define command{
command_name check_dns
command_line $USER1$/check_dns -s $HOSTADDRESS -H www.google.com


De esta forma la definición del servicio será más fácil:

define_service{

use generic-service

host_name DNS_externo

service_description DNS

check_command check_dns

}


Guardar los cambios

Para que los cambios surtan efecto, como ya he dicho antes, hay que descomentar el fichero de configuración de windows (windows.cfg) en el fichero nagios.cfg:
# Definitions for monitoring a Windows machine

cfg_file=/usr/local/nagios/etc/objects/windows.cfg


Antes de poner en marcha las nuevas configuraciones debemos asegurarnos de que los cambios que hemos hechos no provocan errores. Para ello debemos ejecutar el binario nagios con la opción -v.

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg


Reiniciamos Nagios:

sudo /etc/init.d/nagios restart


Al igual que hemos hecho con el servidor de Windows, podemos monitorizar otros dispositivos, como routers y switches vía SNMP. Para ello debemos habilitar el archivo de configuración switch.cfg en nagios.cfg.

Interfaz Web de Nagios

La interfaz web muestra el estado actual de todos los sistemas monitorizados. Podemos ver el estado de los Host. La columna Duration especifica desde cuándo ha sido visto, desde que ha sido añadido o desde que se ha recuperado de una caída.


También podemos ver el estado de los sevicios.



Incluso un mapa con las dependencias entre todos los dispositivos monitorizados.



Por defecto los iconos del mapa no aparecen. Para ello debemos descargarnos dos paquetes de iconos:
Debemos descomprimir los dos paquetes en la carpeta "/usr/local/nagios/share/images/logos". Ahora solo debemos definir para cada host el icono (statusmap_image, icon_image) y quien es el padre del mismo (parents) para que la conexiones en el mapa se muestren adecuadamente.


define host{

use windows-server ; Inherit default values from a template

host_name Nostromo ; The name we're giving to this host

alias Host Nostromo ; A longer name associated with the host

address 172.17.110.203 ; IP address of the host

hostgroups windows-servers

statusmap_image win40.gd2

icon_image win40.gif

parents Default_gateway

}

Con esto ya hemos configurado Nagios en Ubuntu. Ahora podemos seguir incluyendo nuevos dispositivos que queramos monitorizar.

18 comentarios:

  1. Lo bien que me va a venir esto Marta, que me van a hacer instalar uno el Lunes y ya estaba mordiéndome las uñas...

    Si no funciona le diré al jefe la fuente eh?? xD

    ResponderEliminar
  2. Buenas yo tengo que monitorizar varios servidore algunos con linux y otros con win,lo de win no habria problema, pero que pasa si necesito monitorear los linux

    ResponderEliminar
  3. Creo que puedes monitorizar los servidores linux igual que los de windows, simplemente que en vez de meterlos en el fichero de configuración de windows.cfg puedes meterlo en hosts.cfg o crear tu uno nuevo para linux, que sería linux.cfg.
    Pero el funcionamiento en principio es el mismo.

    ResponderEliminar
  4. Hola Marta.
    Te felicito por tan buen tutorial. Te comento lo q tengo instalado ahora q es ubuntu 10.4 y nagios 3.2.1, nagios trabaja perfectamente lo unico q no he logrado conseguir es q envie las notificaciones a mi email, la cual contamos con un exchange server. En dias anteriores cuando instale nagios lo hize con mailx y postfix, pero no sirvio, luego instale sendmail y pude hacer q las notificaciones se crearan en nagios.log, pero por algun motivo no eran enviadas. Por esto volvi a instalar postfix y al momento de instalarlo no me salia la pantalla azul para escoger el tipo de servicio de correo. Alguna idea o q me aconsejas??
    Estoy muy urgido ya q tengo q entregar este proyecto pronto

    De antemano muchas gracias

    ResponderEliminar
  5. Hola Anónimo,
    Prueba con el archivo de configuración de postfix en "/etc/postfix/main.cf" hay podrás cambiar todo lo relativo al programa.
    Espero que te sirva.

    ResponderEliminar
  6. HOLA HOLA
    PUES MIRA, YA TENGO INSTALADO NAGIOS Y HE CARGADO LA PAGINA QUE QUIERO MONITOREAR, EL DETALLE ES QUE DENTRO DE LA MISMA PAGINA ESTA ALMACENADA LA INFORMACION DE UNOS DISPOSITIVOS Y ES LA INFORMACIN QUE NECESITO ESTAR VERIFICAND0O Y HASTA EL MOMENTO NO HE ENCONTRADO COMO HACERLO, PUEDES AYUDARME POR FAVOR?

    DE ANTEMANO GRACIAS.

    ResponderEliminar
  7. hola muchas gracias por el tutorial si que me sirvio de mucho pero me surgio un problema el status de mi service de todos es critical y me sale en status information (Return code of 127 is out of bounds - plugin may be missing) y no se como solucionarlo

    ResponderEliminar
  8. hola como estas bueno queria felicitarte por el tutorial bueno queria tambien perdirte un favor ¿como cambio el status de todos mis service de nagios que se encuentran en critical y tiene como status information es Return code of 127 is out of bounds - plugin may be missing) esto me sale en todo no se como solucionarlo ya he intentado pero no púde

    ResponderEliminar
  9. Buenos dias,

    alguien me podria por favor decir como agregar otra columna en la monitorizacion de nagios para colocar datos estaticos, informacion de los host.
    muchas gracias

    ResponderEliminar
  10. Buenas tardes.

    Ante todo mi admiración por vuestro dominio de NAGIOS.

    Mi necesidad se centra en exportar datos en tiempo real a EXCEL.

    ¿Cómo me reconmendáis hacerlo?

    Gracias.

    ResponderEliminar
  11. Hola mil gracias por este aporte solo una consulta en los iconos mencionas (quien es el padre del mismo (parents)) Aque te refieres con ello.
    Gracias de Antemano

    ResponderEliminar
  12. Hola ¿puedes ayudarme? solo quiero monitorizar el espacio en disco snmp de un servidor que está en la misma red el cual ya tiene corriendo el snmp, pero desde nagios solo me aparece el status desconocido, ya le he editado el commands.cfg y el mismo archivo del host, pero nada. Gracias

    ResponderEliminar
  13. xidoooootee!!! mil gracias experta!!!

    ResponderEliminar
  14. Gracias por este genial explicación y por el detalle que impregnas en cada comentario...

    He tenido un error en la configuración a la ahora de asociar el service DNS en windows.cfg, al realizar la verificación de los ficheros me arroga un error en la linea "define service", alternamente habia ya agregado los datos en commands.cfg

    ResponderEliminar
  15. orale que bien dominas el tema fue de gran ayuda GRACIAS !te felicito¡

    ResponderEliminar
  16. Como estas Marta, queria felicitarte por tus dos tutoriales que segui de NAGIOS (este y el de instalación), muy didácticos, sencillos de seguir y entender. Ahora queremos controlar el ancho de banda utilizado por IP (de las IPs de LAN y del localhost, nuestro FW), hay algun manual que me recomiendes para esto, porque todo lo que vimos es con SNMP y no sabemos si hay otra forma de hacerlo. Desde ya muchas gracias. Ariel

    ResponderEliminar
  17. Alguien sabe como agregar una columna mas a la monitorización de nagios..

    ResponderEliminar

Deja tu opinión realizando un comentario interesante. Cualquier intento de Spam no será admitido.