Usando Nagios para Monitorizar Redes

Artículo traducido de: http://www.debian-administration.org/articles/299

Nagios es un potente y modular sistema de monitorización de red que puede ser usado para monitorizar algunos servicios de red como smtp, http y dns en hosts remotos. También tiene soporte para snmp que permite chequear cosas como la carga del procesador en routers y servidores. No puedo cubrir todas las cosa que nagios puede hacer en este artículo, así que sólo hablaré de lo básico para instalarlo y ponerlo a funcionar.

# apt-get install nagios-text

Primero necesitamos definir la gente que será notificada, y definir como serán notificados. En el ejemplo de abajo, defino dos usuarios, joe y paul. Joe es el guru de la red y se encarga de los routers y los switches. Paul es el chico de sistemas, y se encarga de los servidores. Los dos serán notificados via email y via pager. Nótese que si va a monitorizar su servidor de correo, quizás quiera usar un metodo de notificación alternativo al email. Si su servidor de correo cae, no podrá mandar emails a nadie para notificarles! :) En ese caso quizás quiera utilizar un servidor pager para enviar mensajes de texto a un teléfono o un pager, o instalar un segundo monitor nagios que use otro servidor de correo diferente para enviar emails.

Edite /etc/nagios/contacts.cfg y añada los siguientes usuarios:

define contact{
contact_name                    joe
alias                           Joe Blow
service_notification_period     24x7
host_notification_period        24x7
service_notification_options    w,u,c,r
host_notification_options       d,u,r
service_notification_commands   notify-by-email,notify-by-pager
host_notification_commands      host-notify-by-email,host-notify-by-epager
email                           joe@yourdomain.com
pager                           5555555@pager.yourdomain.com
}

define contact{
contact_name                    paul
alias                           Paul Shiznit
service_notification_period     24x7
host_notification_period        24x7
service_notification_options    w,u,c,r
host_notification_options       d,u,r
service_notification_commands   notify-by-email,notify-by-epager
host_notification_commands      host-notify-by-email,host-notify-by-epager
email                           paul@yourdomain.com
pager                           5556666@pager.yourdomain.com
}

Ahora añada los usuarios a los grupos.
En /etc/nagios/contactgroups.cfg añada lo siguiente:

define contactgroup{
contactgroup_name   router_admin
alias               Network Administrators
members             joe
}

define contactgroup{
contactgroup_name   server_admin
alias               Systems Administrators
members             paul
}

Puede añadir múltiples miembros a un grupo de contacto separándolos mediante comas.

Ahora defina algunos hosts para monitorizar. Para mi ejemplo, he definido dos máquinas, un servidor de correo y un router.

Edite /etc/nagios/hosts.cfg y añada:

define host{
use                     generic-host
host_name               gw1.yourdomain.com
alias                   Gateway Router
address                 10.0.0.1
check_command           check-host-alive
max_check_attempts      20
notification_interval   240
notification_period     24x7
notification_options    d,u,r
}

define host{
use                     generic-host
host_name               mail.yourdomain.com
alias                   Mail Server
address                 10.0.0.100
check_command           check-host-alive
max_check_attempts      20
notification_interval   240
notification_period     24x7
notification_options    d,u,r
}

Ahora añadimos los hosts a grupos. He definido grupos llamados ‘routers’ y ’servers’ y añadido el router y el servidor de correo respectivamente.

Edite /etc/nagios/hostgroups.cfg

define hostgroup{
hostgroup_name  routers
alias           Routers
contact_groups  router_admin
members         gw1.yourdomain.com
}

define hostgroup{
hostgroup_name  servers
alias           Servers
contact_groups  server_admin
members         mail.yourdomain.com
}

Otra vez, para múltiples miembros, simplemente sepárelos con comas.

Lo siguiente es definir que servicios hay que monitorizar en cada host. Nagios viene con múltiples plugins para monitorización. En un sistema debian sarge, se encuentran en /usr/lib/nagios/plugins. En este caso queremos monitorizar el servicio smtp en el servidor de correo, y el chequear el ping en el router.

Edite /etc/nagios/services.cfg

define service{
use                     generic-service
host_name               mail.yourdomain.com
service_description     SMTP
is_volatile             0
check_period            24x7
max_check_attempts      3
normal_check_interval   5
retry_check_interval    1
contact_groups          server_admin
notification_interval   240
notification_period     24x7
notification_options    w,u,c,r
check_command           check_smtp
}

define service{
use                     generic-service
host_name               gw1.yourdomain.com
service_description     PING
is_volatile             0
check_period            24x7
max_check_attempts      3
normal_check_interval   5
retry_check_interval    1
contact_groups          router_admin
notification_interval   240
notification_period     24x7
notification_options    w,u,c,r
check_command           check_ping!100.0,20%!500.0,60%
}

Y eso es todo. Para probar su configuración puede ejecutar

# nagios -v /etc/nagios/nagios.cfg

Si todo va bien podemos reiniciar nagios y moverlo al sitio de apache para obtener la vista visual del monitor.

# /etc/init.d/nagios restart

Asumiendo que tiene un apache instalado y funcionando, puede añadir el fichero apache.conf que viene incluido en el paquete nagios para hacer funcionar la interfaz de administración cgi de nagios. La interfaz web no es obligatoria para correr nagios, pero es altamente recomendable. La forma más fácil de tenerla funcionando es copiar el fichero proporcionado sobre su instalación de apache. En mi sistema, tengo corriendo apache2. Los sistemas con apache 1.3.xx tendrán pequeñas diferencias.

# cp /etc/nagios/apache.conf /etc/apache2/sites-enabled/nagios

Por supuesto querrá configurarlo como un servidor virtual, pero dejo esto como ejercicio para el lector. Ahora queremos configurar un usuario con permisos para ver la interfaz cgi. Por defecto, nagios proporciona acceso administrativo completo al usuario nagiosadmin. Nagios usa el estilo de autenticación apache htpasswd. Así que añadimos un usuario y contraseña al fichero htpasswd por defecto de nagios. Aquí añado el usuario nagiosadmin con contraseña mypassword al fichero htpasswd de nagios.

# htpasswd2 -nb nagiosadmin mypassword >> /etc/nagios/htpasswd.users

Ahora puede reiniciar apache y logearse en

http://tu.servidor.nagios/nagios

Nagios es una herramienta muy potente para monitorizar redes. Sólo he tocado lo básico aquí, pero lo suficiente para tenerlo instalado y funcionando. Posiblemente, una vez que lo tenga, empezará a experimentar con las increíbles características y plugins que hay disponibles. La documentación incluida con la interfaz cgi es muy buena y detallada.

Comparte y disfruta:
  • Digg
  • del.icio.us
  • feedmelinks
  • Furl
  • Ma.gnolia
  • Reddit
  • Technorati
  • YahooMyWeb
  • Meneame
  • Facebook

14 Respuestas a “Usando Nagios para Monitorizar Redes”


  1. 1 Lorenzo Angel Flores A.

    Instalé nagios, hice correr sin problemas, reinicié nagios no me da ningun error, pero cuando ingreso via WEB me da el siguiente error
    ————————————————————————–
    Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator, root@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.
    Apache/2.0.52 (Fedora) Server at 172.28.2.1 Port 80
    ——————————————————————————
    al revisar los log de http tengo el siguiente error:
    [Thu Sep 07 15:44:33 2006] [error] [client 172.28.2.1] (13)Permission denied: exec of ‘/usr/lib/nagios/cgi/tac.cgi’ failed, referer: http://172.28.2.1/nagios/side.html
    [Thu Sep 07 15:44:33 2006] [error] [client 172.28.2.1] Premature end of script headers: tac.cgi, referer: http://172.28.2.1/nagios/side.html
    [Thu Sep 07 15:44:33 2006] [error] [client 172.28.2.1] File does not exist: /var/www/html/favicon.ico
    [Thu Sep 07 15:45:19 2006] [error] [client 172.28.1.1] File does not exist: /var/www/html/zys
    [Thu Sep 07 15:58:03 2006] [error] [client 194.149.73.250] request failed: error reading the headers
    [Thu Sep 07 16:12:14 2006] [error] [client 172.28.2.1] (13)Permission denied: exec of ‘/usr/lib/nagios/cgi/status.cgi’ failed, referer: http://172.28.2.1/nagios/side.html
    [Thu Sep 07 16:12:14 2006] [error] [client 172.28.2.1] Premature end of script headers: status.cgi, referer: http://172.28.2.1/nagios/side.html
    [Thu Sep 07 16:12:14 2006] [error] [client 172.28.2.1] File does not exist: /var/www/html/favicon.ico
    [Thu Sep 07 16:12:15 2006] [error] [client 172.28.2.1] (13)Permission denied: exec of ‘/usr/lib/nagios/cgi/tac.cgi’ failed, referer: http://172.28.2.1/nagios/side.html
    [Thu Sep 07 16:12:15 2006] [error] [client 172.28.2.1] Premature end of script headers: tac.cgi, referer: http://172.28.2.1/nagios/side.html
    [Thu Sep 07 16:12:15 2006] [error] [client 172.28.2.1] File does not exist: /var/www/html/favicon.ico
    [Thu Sep 07 16:22:06 2006] [error] [client 172.28.1.1] File does not exist: /var/www/html/zys

    Quisiera saber por que ,e da el mensaje… les quedo muy agradecido por su atenciòn.
    ah trabajo con fedora core 3

  2. 2 Javier Cepa

    Mas info de la instalación de FreeBSD Nagios Fruity. espero que os guste.

    http://gnudocs.dyndns.info/?q=node/3

  3. 3 oliver

    Tengo exactamente el mismo problema que Lorenzo, alguna solucion???

  4. 4 eramiro

    Debes darle permisos al usuario que corre apache sobre la carpeta donde se ha instalado el nagios para poder ver la interfaz de Nagios vía web.

  5. 5 eramiro

    Este manual está muy bien
    http://nagios.linuxbaja.org/?q=node/15

  6. 6 dd
  7. 7 Yolanda

    Se configuró Nagios en un servidor y al monitorear la memoria, aparece el mensaje: check_winmem IP COMMUNITY warnlevel criticallevel.
    Que puedo revisar, no conozco bien nagios, es mi primer servidor. gracias.

  8. 8 alex

    me aparece el siguiente menseje:

    Error: Could not register timeperiod (config file ‘/etc/nagios/timeperiods.cfg’, line 61)

  9. 9 Diego

    Muy bueno el tutorial, basico, conciso y de gran ayuda para la iniciarse en las herramientas de monitoreo.

    Muchas Gracias.

    Diego Unkuch G.
    Telcomunicaciones. IT

  10. 10 lrpby

    hay un problema en esto

    pues yo tengo varios administradores
    y diferentes servicio y necesito que cada servicio tenga una direccion electronica unica
    o sea que cada servicio envie correo a cada administrador

    saludos

  11. 11 Mario Chavarria

    A mi me funciona bien y lo instale de la siguiente manera en Debian, en consola escribi: apt-get install nagios2, agregue el usuario como lo planteo Angel arriba y listo, solo me falta configurar algunas cosas pero no hay que complicarse tanto si uno es nuevo en esto asi como yo

  12. 12 guzmen18

    Que tal, todo bien, exepto los mapas 3., que estan copn script cgi, necesitas instalr un plugins para imagenes .gd2…..
    pro bien

  13. 13 Cristian

    yo lo instale y configure en base a los manuales que aparecen en la pagina oficial de nagios http://nagios.sourceforge.net/docs/nagios-3.pdf esta en ingles pero es muy intuitivo…

    espero les sirva

  1. 1 meneame.net
    Dirección Trackback a 26 Ago 2006 @ 6:15 pm

Añade un Comentario