Está en la página 1de 41

NAGIOS

Carlos Buenao Pesntez Mail: cbuenano@live.espoch.edu.ec

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

Usa CGIs escrito en C para responder mas rpido y apoyar el crecimiento

Apoya hasta miles de dispositivos y servicios.


Carlos Buenao P.

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

Interfaz de la Web de Nagios esta aqu:


http://localhost/nagios3/
Carlos Buenao P.

Vista General

Carlos Buenao P.

Detalle de Servicios

Carlos Buenao P.

Detalle de Dispositivos

Carlos Buenao P.

Resumen de Servicios por Grupos de Maquinas

Carlos Buenao P.

Resumen de Grupos de Servicios

Carlos Buenao P.

Mapa de estatus de rbol colapsado

Carlos Buenao P.

Mapa de estatus circular y con comentario

Carlos Buenao P.

Mas muestras de mens de Nagios

Ms muestras de pantallas de Nagios estn disponible aqu:


http://www.nagios.org/about/scree nshots

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

Chequeos en paralelo (usando forking) - En la Versin 3 se hace mejores chequeos en paralelo


Carlos Buenao P.

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.

Y, aun mas ...


Estado de Servicio: Cuando uno configura un servicio tiene los siguiente opciones: d: DOWN: El servicio esta cado (no disponible) u: UNREACHABLE: Dispositivo no esta visible r: RECOVERY: (OK) Dispositivo recuperando f: FLAPPING: La primera vez con un dispositivo sube, bajo o esta en un estado indeterminado n: NONE: No manda ninguna notificacin
Carlos Buenao P.

Carlos Buenao P.

Caractersticas y ms Caractersticas

Permite acusar recibo de eventos (acknowledge)

El usuario puede agregar comentarios Por dispositivo o grupo de dispositivos

Permite definir perodos de mantenimiento

Mantiene estadsticas de disponibilidad Detecta flappings y suprime las notificaciones Permite mltiples mtodos de notificacin va comandos

e-mail, pager, SMS, winpopup, audio, etc...

Permite definir niveles de escalamiento de notificaciones


Carlos Buenao P.

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.

A cada cambio de estado, se le puede asignar:


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

Uno nodo (host) puede estar: DOWN UNREACHABLE

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.

Concepto de Punto de Vista

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.

Concepto de Punto de Vista

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.

Plugins instalados en Ubuntu


check_bgpstatecheck_hpjd check_ssmtp check_pgsql check_ide_smart check_cluster check_procs check_nagios check_imap check_disk check_wave check_sensors check_spop check_simap check_smtp check_snmp check_mailq check_overcr check_icmp check_time check_ifstatus check_dig check_users check_rpc check_breeze check_swap check_mysql check_udp check_radius check_nntp check_ircd check_dns check_dummy check_flexlm check_http check_mrtg check_by_ssh check_pop check_dhcp check_ups check_nntps check_real check_clamd

check_mrtgtraf check_ping check_tcp

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

Indicar la ubicacin de los dems archivos de configuracin Comportamiento de Nagios en general

Importante ajustar para asegurar un buen desempeo en instalaciones con cientos de servicios monitorizados

Ver: Tunning Nagios for Maximum Performance http://nagios.sourceforge.net/docs/2_0/tuning.html


Carlos Buenao P.

Configuracin de CGI
/etc/nagios3/cgi.cfg

Configurar directorio de CGIs Autenticacin y Autorizacin


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.

24 horas, 7 das a la semana Horario de trabajo Horario fuera de trabajo


# '24x7' # '24x7' define timeperiod{ define timeperiod_name 24x7 timeperiod{ timeperiod_name24 Hours A Day, 7 Days A Week 24x7 alias alias 24 Hours A sunday 00:00-24:00 Day, 7 Days A Week sunday 00:00-24:00 monday 00:00-24:00 monday 00:00-24:00 tuesday 00:00-24:00 tuesday 00:00-24:00 wednesday 00:00-24:00 wednesday 00:00-24:00 thursday 00:00-24:00 thursday 00:00-24:00 friday 00:00-24:00 friday 00:00-24:00 saturday 00:00-24:00 saturday 00:00-24:00 } }

Carlos Buenao P.

Configurando chequeo de Servicios/Hosts

Definicin de host alive


# 'check-host-alive' command definition define command{ command_name check-host-alive command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 2000.0,60% -c 5000.0,100% -p 1 -t 5 }

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.

Configuracin de nodos y servicios


Mtodo basado en plantillas (templates)

Ahorra mucho trabajo repetitivo Similar a programacin OO

Crear plantillas con todos los parmetros por defecto


nodo genrico servicio genrico contacto genrico


Carlos Buenao P.

Configuracin de nodo genrico - plantilla

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.

Configuracin de nodo individual

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.

Configuracin de Servicio (genrico)

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 }

generic-service 1generic-service 11 11 11 01 10 11 11 11 11 11 01 24x7 0 524x7 55 5 1 1 60 60 24x7 24x7 c,r 0c,r 0

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.

Configuracin de Grupo de Servicio


# check that ssh services are running # check that ssh services are running define service { define service { hostgroup_name ssh-servers hostgroup_name ssh-servers service_description SSH service_description SSH check_command check_ssh check_command check_ssh use generic-service use generic-service notification_interval 0 ; set > 0 if you want to be renotified notification_interval 0 ; set > 0 if you want to be renotified } }

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

Importante integrar Nagios con un sistema de mensajes a beepers

Los problemas tambin ocurren fuera del horario de trabajo

El sistema de envo a beepers debe ser independiente de la red


Utilizar un mdem y una lnea telefnica Pueden utilizarse paquetes como sendpage o qpage
Carlos Buenao P.

Referencias

Nagios web site


http://www.nagios.org/

Nagios plugins site


http://sourceforge.net/projects/nagiosplug/

Nagios System and Network Monitoring, by Wolfgang Barth. Good book about Nagios. Unofficial Nagios plugin site
http://www.nagiosexchange.org/

A Debian tutorial on Nagios


http://www.debianhelp.co.uk/nagios.htm

Commercial Nagios support


http://www.nagios.com/
Carlos Buenao P.

También podría gustarte