Herramientas de Monitoreo con software Libre Areli Octavio Solis Espitia twitter@arocse [email protected] Agenda Descripción de las Herramientas: Nagios ✔ Centreon ✔ Pandorafms ✔ Introducción Herramientas principalmente de monitorización activa de disponibilidad Posiblemente la más utilizada en la categoría de software libre Interfaz Web CGIs escritos en C para mayor velocidad Soporta miles de nodos/servicios Integra muchos plugins Ventajas La verificación de disponibilidad se delega en plugins La arquitectura es muy simple, por lo que es fácil escribir plugins (en cualquier lenguaje) Existen muchos de plugins, muchos contribuidos por terceros Chequeos en paralelo Version 3 se lo hace ya mejor chequeos en paralelo. Programación de chequeos inteligente. Busca una distribución equitativa de la carga de la máquina que ejecuta Nagios, y la máquina siendo chequeada Configuraciones (en archivos de texto) muy detalladas y basadas en plantillas Lea su configuración al nivel de directorio. Tu decides como definir los archivos. Utiliza información topológica para determinar dependencias Diferenciación entre lo que está 'caído' y lo que está 'inalcanzable' – así no se tratar de hacer chequeos de los maquínas no 'inalcanzable' Permite definir políticas de notificación, 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: Estado de Servicio: En la configuración de un servicio la option “notification_options” tiene lo siguiente posibilidades: d: DOWN: El servicio o host esta caido u: UNREACHABLE: Cuando el host no es visible o es inalcanzable r: RECOVERY: (OK) Cuando el host se recupero f: FLAPPING: Cuando el host se inicia o detiene, o el estado es indeterminado. n: NONE: No enviar notificaciones ++ Ventajas Permite acusar recibo de eventos (acknowledge) El usuario puede agregar comentarios Permite definir períodos de mantenimiento Por dispositivo o grupo de dispositivos Mantiene estadísticas de disponibilidad Detecta flappings y suprime las notificaciones Permite múltiples métodos de notificación via comandos e-mail, pager, SMS, winpopup, audio, etc... Permite definir niveles de escalamiento de notificaciones Como Funciona? Mecánica de chequeos Uno nodo o dispositivo (host) consta de uno o más servicios a chequear (PING, HTTP, MYSQL, SSH, etc) Nagios chequea periódicamente cada servicio de cada nodo y determina si ha habido algún cambio de estado: CRITICAL WARNING UNKNOWN A cada cambio de estado, se le puede asignar: Opciones de notificación (como vimos antes) Operaciones de manejo de eventos (event handlers) Parámetros Intervalo de chequeo normal Intervalo de re-chequeo Número máximo de chequeos Período de chequeo Los chequeos de nodo (host) sólo se ejecutan cuando ninguno de los servicios responde Uno nodo (host) puede estar: DOWN UNREACHABLE Así se puede demorar hasta que un host cambia su estado a “down” (no disponible/alcanzable) por el hecho de que Nagios hace un chequeo de servicios primero, después se hace el chequeo de nodo y no se considera que un host esta DOWN hasta que lo hace el chequeo 3 veces (por defecto). Puedes cambiar el numero de chequeos. 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 manda alarmas si un parent ya no responde. Concepto de Punto de Vista Donde queda tu servidor de Monitoreo en la red va a cambiar como vea y monitorea nodos y servicios. Nagios ,Centreon apoya el concepto de servidores en paralelo que corren en otro partes de tu red. Asi, probablemente mejor este cerca el borde de tu red y no adentro. Concepto de Punto de Vista Archivos de Configuración Archivos de Configuración Ubicado in /etc/nagios2/ 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 configuración conf.d/* El resto de los archivos de configuración por servicios, grupos,nodos, etc. Archivos de Configuración conf.d/* contacts_nagios2.cfg usarios y grups 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 servicios chequear timeperiods_nagios2.cfg cuando chequear y como y quien a notificar Archivos de Configuración Extra u opcionales Bajo conf.d/* host-gateway.cfg definición de ruta por defecto extinfo.cfg información extra por nodos servicegroups.cfig grupos de maquínas y servicios definición de monitoreo por el servidor localhost.cfg de Nagios pcs.cfg definición de un grupos de nodos switches.cfg definición de un grupo de switches routers.cfg definición de un grupo de routers Configuración Principal Parámetros que afectan al programa globalmente Archivo: /etc/nagios2/nagios.cfg Indicar la ubicación de los demás archivos de configuración Comportamiento de Nagios en general Importante ajustar para asegurar un buen desempeño en instalaciones con cientos de servicios monitorizados Ver: Tunning Nagios for Maximum Performance http://nagios.sourceforge.net/docs/3_0/tuning.html Configuración de CGI Archivo: /etc/nagios2/cgi.cfg Configurar directorio de CGIs Autenticación y Autorización Activar autenticación en Apache vía .htpasswd (o Radius/Ldap) Listar los nombres de usuario en las variables de autorización: 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 Configuración de Períodos Definir períodos básicos que controlarán los chequeos, notificaciones, etc. 24 horas, 7 días a la semana Horario de trabajo Horario fuera de trabajo # '24x7' # '24x7' define timeperiod{ define timeperiod{ timeperiod_name 24x7 timeperiod_name 24x7 alias 24 Hours A Day, 7 Days A Week alias 24 Hours A Day, 7 Days A Week sunday 00:00-24:00 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 } } Configuración de comandos de chequeo Definir cómo se van a probar los servicios # '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 } Comandos de notificación Permite utilizar cualquier método de notificación, siempre que se pueda ejecutar algún comando para ello: # '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: [email protected] To: grupo-redes@localdomain Subject: Host DOWN alert for switch1! Date: Thu, 29 Jun 2006 15:13:30 -0700 Host: switch1 In: Core_Switches State: DOWN Address: 111.222.333.444 Date/Time: 06-29-2006 15:13:30 Info: CRITICAL - Plugin timed out after 6 seconds Configuración de nodos, servicios, etc Método basado en plantillas (templates) Ahorra mucho trabajo repetitivo Similar a programación OO Crear plantillas con todos los parámetros por defecto nodo genérico servicio genérico contacto genérico Configuración de nodo (genérico) define define host{ host{ name name 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 check_command check_command max_check_attempts max_check_attempts notification_interval notification_interval notification_period notification_period notification_options notification_options contact_groups contact_groups register register }} generic-host generic-host 11 11 11 11 11 11 check-host-alive check-host-alive 55 60 60 24x7 24x7 d,r d,r nobody nobody 00 Configuración de nodo define define host{ host{ use use host_name host_name alias alias address address parents parents contact_groups contact_groups grupo-switches grupo-switches }} generic-host generic-host switch1 switch1 Core_switches Core_switches 192.168.1.2 192.168.1.2 router1 router1 Configuración de Servicio (genérico) 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 generic-service 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 24x7 24x7 5 5 5 5 1 1 60 60 24x7 24x7 c,r c,r 0 0 Configuración de Servicio define define service{ 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 }} switch1 switch1 generic-service generic-service PING PING check-host-alive check-host-alive 55 55 c,r,f c,r,f grupo-switches grupo-switches Automatización Mantener estas configuraciones manualmente se convierte rápidamente en una carga La mejor idea es simplificar y automatizar mediante scripts Integración de Add-ons Tiempo de ida y vuelta usando PNP4Nagios Mensajes a SMS o correo Importante integrar Nagios con un sistema de mensajes Los problemas también ocurren fuera del horario de trabajo El sistema de envío a sms independiente de la red Utilizar un módem o un Servicio (sin costo) Pueden utilizarse paquetes como sendpage o qpage Referencias http://www.nagios.org: Sitio web de Nagios http://sourceforge.net/projects/nagiosplug: Sitio web de los plugins de Nagios Nagios. System and Network Monitoring. Wolfgang Barth. Libro sobre Nagios. Muy completo. http://www.nagiosexchange.org: Sitio web de plugins no-oficiales http://www.debianhelp.co.uk/nagios.htm: Un Tutorial para Debian de Nagios http://www.nagios.com/: Suporte Comercial para Nagios Más Recuros Pagína Principal de Nagios http://www.nagios.org/ Nagios Plugins y Add-Ons Intercambio http://www.nagiosexchange.com/ Dispositivos de Referencia Nagios – Vista General (Tactical Overview) Pantalla de Status Detail Pantalla de Service Detail Tipos de Servicios Muestra de una Mapa de Estatus Vista General de Estatus (Status Overview) Vista Sumaria de Hostgroups Historia o Tendencias de Hosts Histogram de un Host Event Logs Quien Recibe Notificationes Indice: 1. Que es Centreon 2. Instalación 3. Empezando 4. Usuarios y grupos 5. Hosts 6. Servicios 6.1 Ejemplo 7. Pros, contras y valoración personal. ¿Que es? Herramienta que está destinado a la administración y monitorización de redes y dispositivos. ● Centreon es front-end de Nagios, es decir una herramienta que dota al usuario de una interfaz más cómoda y con más servicios que Nagios. ● ● ● Licencia GPL2 Página web: www.centreon.com Instalación Necesita una gran cantidad de programas ajenos y bastantes utilidades. ● Entre otras cosas hay que instalar: Un compilador, un servidor web, PHP5, Servidor de MySQL, Perl, Librerias, herramientas, etc. ● Hay que instalar Nagios y ciertos plugins para este. Etc. ● Por suerte viene todo en http://en.doc.centreon ● Empezando Para empezar a usar centreon debemos acceder desde un navegador web a localhost/centreon. ● Debemos introducir el nombre de usuario y contraseña escogidos durante la instalación ● Empezando. Ventana de Inicio Muestra el estado de los host y servicios. ● Permite, haciendo clic sobre el aviso, ir directamente a ver la incidencia. ● ● Es una interfaz bastante comoda. Empezando. Algunas opciones Centreon y Nagios ya traen por defecto algunas opciones, como por ejemplo: ● - Información de rendimiento Gráficas de Nagios - Información de los procesos - - Mostrar el estado del servidor Algunos ejemplos... Usuarios Esta es la pantalla donde podremos ver los usuarios que hay creados en Centreon: También podemos crear nuevos usuarios o grupos y modificar algunos de sus datos. Creación de un grupo Creación de usuarios En esta ventana deberemos introducir el nombre del usuario, el nombre de usuario, contraseña y escoger al grupo al que pertenece: Creación de usuarios En esta parte hay que introducir que tipo de notificaciones y con que periodicidad se notifica al usuario acerca de host y servicios. ● Grupos. ACL Con las ACL podemos controlar a que podrán acceder los usuarios. Estas ACL van por grupos. ● Host Los host son los dispositivos que hay en la red y que queremos monitorizar desde Centreon. ● Hay que introducirlos a mano... ● Añadir un host ● Deben tener instaladas NSClient++ Añadir un host En esta pestaña se da la opción de añadir el host a algún grupo de estos o relacionarlos con otros. Esto está destinado a los servicios ● ● Lista de host ya configurada: Se detecta el estado de un host (Up o down) mediante el uso del ping Servicios Los servicios son las ordenes que damos para que cada x tiempo se vayan haciendo comprobaciones en los host escogidos. ● Los servicios se pueden aplicar a un host o a un grupo de estos ● Complicados de aprender a usar, principalmente porque se configuran mediante el uso de comandos. Vamos a ver unos ejemplos: ● Ejemplos de configuración de Servicios - Ver el espacio del disco C: ● Importante: ¿De donde sale el comando? La información del comando se obtiene mediante los iconos de información. Los argumentos se separan mediante ! ● En ese caso lo que se introduce '!C:!80!90! $USER2$!1' significa lo siguiente: ● - 80 → Porcentaje a partir del que se considera peligroso - - C: → Nombre del disco 90 → Porcentaje crítico $USER2$ → Una variable que se define en otra parte de Centreon que contiene el valor de la comunidad - 1 → Version de SNMP ● Lo dicho: Para finalizar la configuración del servicio hay que escoger si queremos que pertenezca a algún grupo o no, o si está relacionado con otro host o no. ● ¡¡IMPORTANTE!! SIEMPRE, tras realizar modificaciones hay que reiniciar el servicio Nagios. Para ello simplemente hay que ir a Configuración → Nagios y hacer lo siguiente ● Una vez ejecutado... Pros Herramienta que realmente es muy versátil ● Gratuita en su mayor parte. ● Se le pueden añadir módulos ● Saca más provecho a una aplicación tan conocida como es Nagios. ● Tiene una Wiki que para ciertos casos puede sacar de un buen apuro ● Contras Poca documentación, que además gran parte está en Francés. ● ● Muchos módulos de pago Muy complicado comparándolo con otras aplicaciones (como PacketTRAP). ● Y si el que lo utiliza es un novato como yo, aun más jodido. ● ÍNDICE ¿QUÉ ES? ¿QUIÉN LO USA? VENTAJAS ¿CÓMO FUNCIONA? LICENCIA Y VERSIONES ¿QUÉ MONITORIZA? FORMACIÓN OFICIAL ¿QUÉ ES PANDORA FMS? Pandora FMS es un software de monitorización de propósito general ¿QUÉ HACE? ¿DÓNDE FUNCIONA? Sistemas y aplicaciones Recoge datos de cualquier sistema Comunicaciones y redes Genera alarmas Procesos de negocio Muestra gráficos, informes y mapas de monitorización en Experiencia de usuario en navegación WEB un entorno Web Consumo energético, temperatura, etc. 5 ¿QUÉ ES PANDORA FMS? Es un proyecto OpenSource liderado por Ártica, empresa española fundada en 2005 6 Tiene una activa comunidad de miles de empresas y más de 450.000 descargas* Se utiliza en cinco continentes en más de 75 países diferentes * Fuente: Sourceforge.net, Marzo 2012 Grandes corporaciones como Telefónica eligen Pandora para sustituir otras herramientas de monitorización (BMC Patrol, HP OVO, IMB Tivoli o NetlQ), consiguiendo un importante ahorro de costes. ¿CÓMO FUNCIONA? NOTIFICACIÓN RECOLECCIÓN • Con agente • Sin agente • Detección automática CONSOLIDACIÓN • Normalización de datos • Histórico • Gran capacidad • Notificación al usuario • Acciones correctivas PRESENTACIÓN • Informes, gráficos, tendencias, mapas, cuadros de mando... • Consola de eventos • Inventario • Árboles de servicios 8 ¿QUÉ MONITORIZA? SISTEMAS OPERATIVOS COMUNICACIONES / REDES Linux, Solaris, AIX, HP/UX, Windows, FreeBSD, OpenBSD, NetBSD, MacOS... Todos los fabricantes: Cisco, Juniper, 3com, Teldat, Huawei, DLink. VIRTUALIZACIÓN BASES DE DATOS Vmware, Xen Oracle, DB2, SQL Server, Mysql… APLICACIONES PROTOCOLOS SOPORTADOS SAP, Tomcat, Weblogic, IIS, JBoss, Exchange, WebSphere, Oracle, ERP... SNMP, HTTP, LDAP, Ping, TCP, WMI, RADIUS, DNS, consultas SQL… SENSORES HARDWARE EXPERIENCIA DE USUARIO WEB Temperatura, humedad, inundación, etc. Latencias, chequeos de contenido, login, procesos de compra. 9 VENTAJAS Misma herramienta para distintos entornos y tecnologías Usuarios y clientes que han aportado experiencia y madurez al proyecto. Capacidad para ampliar funciones bajo demanda. Tco muy bajo comparado con otras soluciones similares 10 Escalabilidad extrema. (Miles de servidores) Tiempo de evaluación (time-tovalue) muy rápido (opensource). Gran número de funcionalidades con la mejor relación coste-beneficio. VENTAJAS FRENTE A COMPETIDORES FRENTE A COMPETIDORES CLÁSICOS (HP, IBM, CA, Microsoft) NUEVOS ( OpenCore, OpenSource) Agentes más potentes y multiplataforma Mejor relación coste-beneficio Mayor flexibilidad y capacidad de integración Número de funcionalidades Mayor velocidad de puesta en Soporte internacional marcha Gran comunidad de usuarios 11 LICENCIA Y VERSIONES LICENCIA OPEN SOURCE Gratuita. Sin Soporte. Soportado por la comunidad. Funcionalidades reducidas para grandes entornos. LICENCIA ENTERPRISE Pago anual Licencia en base al número de dispositivos monitorizados Soporte profesional, funcionalidades Enterprise y actualizaciones certificadas. 12
© Copyright 2024