Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
Una herramienta clave de medir en forma activa la disponibilidad de dispositivos y servicios Posiblemente el software de fuente abierto para gestin y monitoreo de redes mas usado Tiene un interfaz web
Instalacin
En Debian/Ubuntu # apt-get install nagios3 Archivos se instalan en estos directorios:
/etc/nagios3 /etc/nagios3/conf.d /etc/nagios-plugins/conf /usr/share/nagios3/htdocs/images/logos /usr/sbin/nagios3 /usr/sbin/nagios3stats
Vista General
Carlos Buenao P.
Detalle de Servicios
Carlos Buenao P.
Detalle de Dispositivos
Carlos Buenao P.
Carlos Buenao P.
Carlos Buenao P.
Carlos Buenao P.
Carlos Buenao P.
Carlos Buenao P.
Caractersticas
La verificacin de disponibilidad se delega en plugins
La arquitectura es muy simple, por lo que es fcil escribir plugins (en cualquier lenguaje) Existen docenas de plugins, muchos contribuidos por terceros
Caractersticas
Programacin de chequeos inteligente. Busca una distribucin equitativa de la carga de la mquina que ejecuta Nagios, y la mquina siendo chequeada Configuraciones (en archivos de texto) muy detalladas y basadas en plantillas Lea su configuracin al nivel de directorio. Tu decides como definir los archivos.
Carlos Buenao P.
Y mas Caractersticas
Utiliza informacin topolgica para determinar dependencias Diferenciacin entre lo que est 'cado' y lo que est 'inalcanzable' as no se tratar de hacer chequeos de las maquinas no 'inalcanzable' Permite definir polticas de notificacin, basadas en combinaciones de: Contactos y listas de contactos Dispositivos y grupos de dispositivos Servicios y grupos de servicios. Horarios definidos por grupos o personas. El estado de servicio:
Carlos Buenao P.
Carlos Buenao P.
Caractersticas y ms Caractersticas
Mantiene estadsticas de disponibilidad Detecta flappings y suprime las notificaciones Permite mltiples mtodos de notificacin va comandos
Mecnica de chequeos
Uno nodo o dispositivo (host) consta de uno o ms servicios a chequear (PING, HTTP, MYSQL, SSH, etc) Nagios chequea peridicamente cada servicio de cada nodo y determina si ha habido algn cambio de estado:
CRITICAL WARNING UNKNOWN Opciones de notificacin (como vimos antes) Operaciones de manejo de eventos (event handlers)
Carlos Buenao P.
Mecnica de chequeos
Parmetros
Intervalo de chequeo normal Intervalo de re-chequeo Nmero mximo de chequeos Perodo de chequeo
Los chequeos de nodo (host) slo se ejecutan cuando ninguno de los servicios responde
Carlos Buenao P.
Mecnica de chequeos
As se puede demorar hasta que un host cambia su estado a down (no disponible o alcanzable) por el hecho de que Nagios hace un chequeo de servicios primero, despus se hace el chequeo de nodo Por defecto Nagios hace un chequeo de nodo 3 veces antes que se cambia el estado de un nodo. Naturalmente, se puede cambiar todo esto.
Carlos Buenao P.
Concepto de Parents
Nodos pueden tener parents
Por ejemplo, el parent de un pc conectado a un switch seria el switch. Nos permite especificar los dependencias que hayan en la red entre maquinas, switches, routers, etc. Evita que Nagios mande alarmas si un parent ya no responde. Un nodo puede tener mltiples parents.
Carlos Buenao P.
Donde queda tu servidor de Nagios en la red va a cambiar como vea y monitore nodos y servicios. Nagios apoya el concepto de servidores en paralelo que corren en otras partes de la red. As, probablemente mejor que el servidor corre cerca el borde de tu red y no adentro.
Carlos Buenao P.
Carlos Buenao P.
Archivos de Configuracin
Carlos Buenao P.
Archivos de Configuracin
Ubicado in /etc/nagios3/ Archivos importantes
cgi.cfg Controla el interfaz de Web y los opciones de seguridad. commands.cfg Los comandos que usa Nagios para notificaciones. nagios.cfg El archive principal de configuracin conf.d/* El resto de los archivos de configuracin por servicios, grupos, nodos, etc.
Carlos Buenao P.
Archivos de Configuracin
Bajo conf.d/* (solo muestra)
contacts_nagios2.cfg usuarios y grupos generic-host_nagios2.cfg plantilla host (defecto) generic-service_nagios2.cfg plantilla servicio (defecto) hostgroups_nagios2.cfg definiciones de grupos de hosts services_nagios2.cfg que servicios chequear timeperiods_nagios2.cfg cuando chequear, como y a quien notificar
Carlos Buenao P.
Archivos de Configuracin
Bajo conf.d otros archivos opcionales: host-gateway_nagios3.cfg definicin de ruta por defecto extinfo.cfg informacin extra por nodos servicegroups.cfig grupos de maquinas y servicios localhost.cfg definicin de monitoreo por el servidor de Nagios (localhost) pcs.cfg definicin de un grupos de nodos switches.cfg definicin de un grupo de switches routers.cfg definicin de un grupo de routers
Carlos Buenao P.
check_ifoperstatus check_mysql_query
check_disk_smb check_jabber check_nt check_ldap check_ntp check_ldaps check_load check_ntp_peer check_ntp_time check_nwstat
check_file_age check_linux_raid
Configuracin Principal
Parmetros que afectan al programa globalmente File: /etc/nagios3/nagios.cfg
Importante ajustar para asegurar un buen desempeo en instalaciones con cientos de servicios monitorizados
Configuracin de CGI
/etc/nagios3/cgi.cfg
Activar autenticacin en Apache va .htpasswd (o Radius/Ldap) Listar los nombres de usuario en las variables de autorizacin: authorized_for_system_information authorized_for_configuration_information authorized_for_system_commands authorized_for_all_services authorized_for_all_hosts authorized_for_all_service_commands authorized_for_all_host_commands
Carlos Buenao P.
Configuracin de Perodos
Definir perodos bsicos que controlarn los chequeos, notificaciones, etc.
Carlos Buenao P.
Ubicado en /etc/nagios-plugins/config, despus ajuste en /etc/nagios3/conf.d/services_nagios2.cfg Nagios se lo refiere a estos chequeos de service y/o host como commands
Carlos Buenao P.
Comandos de notificacin
Permite utilizar cualquier comando que se quiera. Puedes usar esto para generar tickets en RT
# 'notify-by-email' command definition define command{ command_name notify-by-email command_line /usr/bin/printf "%b" "Service: $SERVICEDESC$\nHost: $HOSTNAME$\nIn: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nInfo: $SERVICEOUTPUT$\nDate: $SHORTDATETIME$" | /bin/mail -s '$NOTIFICATIONTYPE$: $HOSTNAME$/$SERVICEDESC$ is $SERVICESTATE$' $CONTACTEMAIL$ } From: nagios@nms.localdomain To: router_group@localdomain Subject: Host DOWN alert for TLD1-RTR! Date: Thu, 29 Jun 2006 15:13:30 -0700 Host: TLD1-RTR In: Core_Routers State: DOWN Address: 111.222.333.444 Date/Time: 06-29-2006 15:13:30 Info: CRITICAL - Plugin timed out after 6 seconds
Carlos Buenao P.
define host{ define host{ name generic-host name generic-host notifications_enabled 11 notifications_enabled event_handler_enabled 11 event_handler_enabled flap_detection_enabled 11 flap_detection_enabled process_perf_data 11 process_perf_data retain_status_information 11 retain_status_information retain_nonstatus_information 11 retain_nonstatus_information check_command check-host-alive check_command check-host-alive max_check_attempts 55 max_check_attempts notification_interval 60 notification_interval 60 notification_period 24x7 notification_period 24x7 notification_options d,r notification_options d,r contact_groups nobody contact_groups nobody register 00 register }}
Carlos Buenao P.
define host{ define host{ use use host_name host_name alias alias address address contact_groups contact_groups }}
generic-host generic-host gw-rtr gw-rtr Ruteador principal de la Red Ruteador principal de la Red 10.10.10.1 10.10.10.1 router_group router_group
Carlos Buenao P.
define service{ define service{ name name active_checks_enabled active_checks_enabled passive_checks_enabled passive_checks_enabled parallelize_check parallelize_check obsess_over_service obsess_over_service check_freshness check_freshness notifications_enabled notifications_enabled event_handler_enabled event_handler_enabled flap_detection_enabled flap_detection_enabled process_perf_data process_perf_data retain_status_information retain_status_information retain_nonstatus_information retain_nonstatus_information is_volatile is_volatile check_period check_period max_check_attempts max_check_attempts normal_check_interval normal_check_interval retry_check_interval retry_check_interval notification_interval notification_interval notification_period notification_period notification_options notification_options register } register }
Carlos Buenao P.
Configuracin de Servicio
define service{ define service{ host_name host_name use use service_description service_description check_command check_command max_check_attempts max_check_attempts normal_check_interval normal_check_interval notification_options notification_options contact_groups contact_groups } }
gw-rtr gw-rtr generic-service generic-service PING PING check-host-alive check-host-alive 5 5 5 5 c,r,f c,r,f router_group router_group
Carlos Buenao P.
La descripcin de servicio es importante si planea de crear Grupos de Servicios. Ah una muestra de un Definicin de Grupo de Servicio:
define servicegroup{ define servicegroup{ servicegroup_name Webmail servicegroup_name Webmail alias web-mta-storage-auth alias web-mta-storage-auth members srvr1,HTTP,srvr1,SMTP,srvr1,POP,srvr1,IMAP, members srvr1,HTTP,srvr1,SMTP,srvr1,POP,srvr1,IMAP, srvr1,RAID,srvr1,LDAP, srvr2,HTTP,srvr2,SMTP, srvr1,RAID,srvr1,LDAP, srvr2,HTTP,srvr2,SMTP, srvr2,POP,srvr2,IMAP,srvr2,RAID,srvr2,LDAP srvr2,POP,srvr2,IMAP,srvr2,RAID,srvr2,LDAP } } Carlos Buenao P.
Mensajes a Beepers/SMS
Utilizar un mdem y una lnea telefnica Pueden utilizarse paquetes como sendpage o qpage
Carlos Buenao P.
Referencias
Nagios System and Network Monitoring, by Wolfgang Barth. Good book about Nagios. Unofficial Nagios plugin site
http://www.nagiosexchange.org/