Download sistema de monitorización – introducción
Document related concepts
Transcript
Luis Caballero Cruz Ingeniería Técnica Informática de Sistemas Universidad de Sevilla SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 1.1- INTRODUCCIÓN AL PROBLEMA: En el sector empresarial, en concreto en el mundo de las telecomunicaciones, es necesario contar con redes de alta disponibilidad, ya que están cada día más ligadas a los resultados comerciales que se obtienen. Causas ajenas o externas a la propia empresa como son los graves desastres naturales como incendios, terremotos o inundaciones que conllevan que multitud de usuarios se vean afectados. Pero además, existen causas internas, como por ejemplo, caídas de la red o comunicaciones, errores de operación, errores de software, errores de disco, errores de procesador o incluso un simple mantenimiento preventivo. Por lo tanto, es un factor de vital importancia poder reaccionar ante adversidades y tener prevista una estrategia de respuesta diseñada ante cambios inesperados o inapropiados en nuestro sistema. Esto requiere una gestión de disponibilidad o plan de contingencias en los servicios del sistema, donde poder identificar y prevenir de forma rápida las posibles incidencias. Para ello, es necesario tener algún mecanismo o herramienta que nos sirva de ayuda o guía hacia las especificaciones válidas preestablecidas, evaluando así de manera crítica el buen comportamiento de nuestro sistema. Esto es posible afrontarlo mediante los sistemas de monitorización de redes, los cuales nos permiten supervisar y asegurar de forma permanente que nuestro proceder de nuestras acciones está encaminado de forma adecuada y eficazmente hacia nuestro objetivo o resultado final, evitando o corrigiendo las posibles desviaciones que pudieran presentarse. Ilustración 1 – Situación práctica de un sistema de monitorización. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 1 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Actualmente, existen estudios sobre la alta disponibilidad donde se afirma que una de cada cinco empresas de las más grandes del mundo desaparecería si sus sistemas se detuviesen más de 48 horas. Cada minuto de downtime (tiempo inactividad) no sólo tiene un impacto económico en las pérdidas y también en la reputación sobre la empresa, sino que además supone una amenaza para la existencia del propio negocio. La aspiración de las organizaciones es intentar hacer realidad los cinco 9, mantener el 99,999% del tiempo operativo sus servicios, ya que esto reduce considerablemente el tiempo de inactividad. Porcentaje de disponibilidad Aproximación de tiempo en inactividad por año 95% 18 días 99% 4 días 99,9% 9 horas 99,99% 1 hora 99,999% 5 minutos Estos minutos de inactividad pueden significar una violación de una empresa en su nivel de servicio (SLA). Hay varios tipos de motivos o causas que lo provocan, la improductividad es provocada en la mayoría de las ocasiones por las personas o por procesos problemáticos. Sólo una quinta parte del tiempo de inactividad surge de fallos en la tecnología o desastres. Aquí podemos incluir fallos de hardware en servidores o componentes de red, sistema operativo, etc. Y también incluimos las inundaciones, incendios, tormentas, etc. Mientras que dos quintas partes surge de errores de aplicación o problemas de rendimiento. Y las últimas dos quintas partes lo provocan los usuarios y errores de operador, tales como no realizar una tarea requerida o ejecución de tareas de forma incorrecta. En la siguiente ilustración podemos ver representado en porcentajes o porciones las causas que suponen tiempos de inactividad no planeados en una empresa. Y las Estrategias de Inversión que se aconsejan tomar a las empresas para esos sucesos. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 2 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Ilustración 2 – Gráfico de causas de tiempos de inactividad en una empresa. Por ello se recomienda en toda empresa, el uso de medidas al respecto para cada una de las categorías. En el caso del 20% menor debido a los factores ya nombrados: - Monitorizar los componentes para su disponibilidad: “La identificación de un fallo es el primer paso hacia su resolución”. Contratar servicios de proveedores que reducen el tiempo de reparación. Implementar la redundancia en el sistema para asegurar la capacidad de procesamiento en caso de fallo. Por ejemplo: copias exactas de conjuntos de datos (mirror), uso de cluster (muchas máquinas en lugar de una sola) y en caso de energía, generadores diesel (fuente de alimentación de emergencia). Para el 40% debido a los fallos de aplicación, se aconseja inversión en mejora y reingeniería en procesos IT (Tecnologías de la Información). Por ejemplo: una gestión de cambios, identificación del problema, gestión de configuración y rendimiento, etc. Y por tanto, esto implica personal cualificado que lo lleve a cabo. Para el último 40% de tiempos de inactividad producidos por errores de operador se recomienda realizar un enfoque de IT más orientado a los procesos y documentarlo, realizar y ofrecer formación para los operadores en este enfoque y automatizar procesos utilizando herramientas de gestión de eventos para reducir la probabilidad de errores. Fuentes: http://www.cientec.com/negocios_alta.html http://campusvirtual.unex.es/cala/epistemowikia/index.php?title=Arquitectura_alta_disponibilidad http://www.swgreenhouse.com/Productos/Vision/DefHighAval.html http://www.tarrani.net/mike/docs/HiAvailModel4SAP.pdf (Informe Gartner) SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 3 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 1.2- SOLUCIÓN PLANTEADA: En colaboración con la empresa Ártica Soluciones Tecnológicas con base en Madrid, fundadora del software libre llamado Pandora FMS v4.0, propondremos una solución que permita analizar y vigilar mediante un autómata, prácticamente en tiempo real, todo tipo de aplicaciones y sistemas. Nuestra solución propuesta, es una herramienta de software libre OpenSource (código abierto) con licencia GPL versión 2 (GNU Public License) la cual está orientada a proteger la libre distribución y modificación de software libre. También existe una versión con una licencia comercial, Pandora FMS Enterprise que proporciona numerosas características adicionales, aunque el 90% del código es similar a la versión OpenSource y se puede obtener por un precio proporcional al número de agentes o nodos instalados. Esta versión incluye además soporte profesional, actualizaciones y mantenimiento mediante el sistema Open Update Manager. Esta aplicación de monitorización sirve para vigilar y analizar de forma visual todo tipo de sistemas y aplicaciones, utilizando una interfaz o entorno web a través de nuestro navegador. Es una herramienta modular y flexible y está orientada datos. Puede supervisar todo tipo de parámetros o servicios, incluso hasta su Sistema Operativo mediante agentes específicos que recolectan información. Trabaja y puede implementarse sobre cualquier distribución Windows (2000, XP, 2003, 2008, Vista, 7), GNU/Linux, MAC, Solaris, AIX, HPUX, BSD/IPSO y OpenWRT. Bajo los servicios más comunes, puede monitorizar la carga del procesador, espacio libre en disco, uso de memoria, procesos que están corriendo en el sistema. Además, puede detectar si una interfaz de red se ha caído, un ataque de “defacement” en una web incluso un movimiento de un valor en NASDAQ (bolsa de valores automatizada electrónica de EEUU). Puede monitorizar también mediante SNMP (protocolo de intercambio de información entre dispositivos de red) y pruebas de red (TCP/ICMP) y comprobar cualquier sistema hardware con conectividad TCP/IP (protocolo de transmisión y de internet), como por ejemplo, cortafuegos, proxies, bases de datos, VPN (red privada virtual), balanceadores de carga, routers, switches, impresoras, etc. Todo esto controlado mediante notificaciones, las cuales son enviadas mediante correo electrónico o SMS cuando cualquier parámetro establezca un valor incorrecto o por encima del umbral establecido. Trabaja bajo una base de datos, actualmente MySQL es el único formato soportado, y es donde almacena todos los datos recibidos por los módulos de los agentes, por lo tanto es el componente más vital de la arquitectura de nuestra herramienta. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 4 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Estos datos se gestionan automáticamente y no requiere ningún tipo de administración de base de datos ni proceso manual. Se realiza periódicamente una compactación de los datos con una determinada antigüedad. Gracias a esta base de datos, puede generar estadísticas, gráficas y niveles de adecuación de servicio (SLA – Service Level Agreement). También puede generar informes, los cuales pueden ser programados en la versión comercial para ser enviados a un correo electrónico de forma recurrente, es decir, de forma diaria o cada semana, cada mes, etc. El formato del informe es el estándar PDF. Cabe mencionar que Pandora FMS no es un sistema de monitorización de entornos críticos, ya que su monitorización no es completamente en tiempo real (+5 segundos). Tampoco es una herramienta de correlación y análisis de logs o eventos. Puede recolectarlos y procesarlos pero no es su función principal. Las iniciales en el nombre de Pandora FMS vienen de Flexible Monitoring System, y de acuerdo con ello, es una herramienta extremadamente flexible, modular y descentralizada. Consta de diversos elementos en su arquitectura, entre ellos, los servidores, que se encargan de recolectar y procesar los datos e introducirlos en la base de datos (todos los servidores acceden a la BD). Son los encargados de realizar las comprobaciones y comparaciones existentes y verifican, de forma constante, si algún elemento tiene algún problema y cambian el estado de los mismos según los resultados obtenidos. Por tanto, son los que avisan mediante alertas para el control del estado de los datos. A continuación, pondrían en ejecución la acción definida en la alerta, como por ejemplo, mandar la notificación o ejecutar un script personalizado. Existen una totalidad de 10 servidores diferentes y especializados en diferentes tareas, de los cuales 7 existen en la versión OpenSource y hay 3 sólo para la versión Enterprise. Todos están integrados en una aplicación, llamada de forma genérica “Pandora Server”, la cual es una aplicación multihilo o multiproceso que ejecuta en diferentes subprocesos cada instancia especializada. Cada uno de ellos puede ser monitorizado desde la Consola Web, en la sección de ‘estado de servidores’, observando así su estado. A continuación, describiremos brevemente cada uno de ellos. Servidor de datos (Data Server): Recolectan información de los agentes Software que envían datos XML por diferentes protocolos de forma segura como SSH, FTP o Tentacle y el servidor verifica periódicamente si hay nueva información para procesar. Se ejecuta como demonio o servicio y es uno de los elementos críticos del sistema. No realiza ningún tipo de comprobación remota, ya que sólo trabaja con la información que recibe de los agentes. Servidor de red (Network Server): Ejecuta tareas de monitorización remota a través de la red, como por ejemplo: icmp Ping, tiempos de latencia, peticiones TCP y SNMP. Para poder establecer funcionalidad a estos servicios es necesario que exista “visibilidad de red” entre los equipos, es decir, que sea accesible y que ambos estén conectados a la red. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 5 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Servidor de SNMP (SNMP Console): Mediante el demonio snmptradp del sistema realiza la recolección de traps. Al recibirlos, el servidor SNMP de Pandora los procesa y almacena. También puede lanzar las alertas asignadas en la consola. Servidor de VMI (VMI Server): Recoge datos de sistemas operativos y aplicaciones de entornos Windows de forma remota y sin ningún tipo de agente, mediante el estándar de VMI de Microsoft. Servidor de reconocimiento (Recon Server): Explora periódicamente la red y detecta nuevos sistemas en funcionamiento. Puede aplicarse una plantilla de configuración para aquellos sistemas detectados recientemente para que se pueda monitorizar inmediatamente. Es capaz de identificar sistemas por su Sistema Operativo mediante las aplicaciones de sistemas nmap, xprobe y traceroute. Servidor de complementos (Plugin Server): Ejecuta pruebas complejas definidas por el usuario desarrolladas en cualquier lenguaje e integrados en la interfaz de Pandora FMS de forma centralizada. Servidor de predicción (Prediction Server): Es un componente de Inteligencia Artificial que implementa de forma estadística una previsión de datos a partir de datos antiguos (hasta 30 días) y conocer si un dato actual es anómalo respecto a su historial. Los siguientes 3 servidores son los que incluye, además de los anteriores, la versión comercial Enterprise de Pandora FMS, a diferencia de la versión OpenSource. Servidor de pruebas WEB (Goliat Server): Sirve para realizar pruebas de carga. Se utiliza para pruebas de comprobación (funciona o no) y para obtener tiempos de latencia de experiencia completa de navegación. Servidor de exportación (Export Server): Permite exportar datos de un dispositivo monitorizado de una instalación de Pandora FMS a otra, y así replicar los datos. Esto es especialmente útil cuando se tiene un gran despliegue con varias instalaciones de Pandora FMS, y se quiere tener cierta información crítica centralizada en uno sólo. Servidor de inventario (Inventory Server): Obtiene y visualiza información de inventario de los sistemas: Software instalado, parches, chips de memoria en el hardware, discos duros, servicios corriendo en el sistema, etc. Puede obtener esta información tanto de forma remota, como a través de los agentes software. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 6 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Ilustración 3 – Esquema de arquitectura de Pandora FMS También existen los agentes, que son aplicaciones que corren en los sistemas y recolectan información para enviárselas a los servidores. Podemos diferenciar tres tipos diferentes: Agente: Es un elemento organizativo creado por la consola web y que se asocia a un grupo de elementos monitorizados. Puede contener módulos de tipo remoto o tipo local. Los de tipo remoto, son por ejemplo: - Comprobación de si una máquina está conectada o en línea (PING) - Comprobación de si un puerto abierto o cerrado. - Comprobación de si una web alojada en un cierto equipo, responde correctamente. - Comprobaciones hardware a través de SNMP - Comprobación del tiempo de latencia entre el equipo y servidores de Pandora FMS. Mientras que los de tipo local, son los definidos en los Agente Software. Agente Software: Son instalados en las máquinas remotas a monitorizar y en su ejecución obtienen información local. Realiza el intercambio de información con el servidor de Pandora FMS mediante una API definido por un XML, también llamados paquete de datos. El proceso de copia de datos al servidor de realiza de forma síncrona, es decir, cada x tiempo, el cual se puede modificar. El intervalo predefinido es de 300 segundos, que equivale a 5 minutos. La transferencia de paquetes se realiza con el protocolo Tentacle. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 7 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Están basados en lenguajes nativos de cada plataforma: ShellScripting para Unix, así como IPSO de Nokia (cortafuegos Check Point). Para Windows se desarrollan en C++. Agente físico: Está montado sobre un router Asus con características inalámbricas y un autómata Arduino. Junto con los sensores calibrables consigue monitorizar características ambientales como: humedad, temperatura, luz ambiental, presencia. Además, posee como entorno de usuario una Consola Web, que permite la administración y control total de nuestra herramienta con diferentes privilegios según el usuario. Se encarga de visualizar los datos presentes en la base de datos. Está programada en PHP y no requiere la instalación de ningún software adicional: ni Java, ni ActiveX. No obstante, las gráficas están disponibles en FLASH y para poder verlas en este formato será necesario este complemento para el navegador. Ilustración 4 – Interfaz o consola web de usuario de Pandora FMS Fuentes: http://openideas.info/wiki/index.php?title=Pandora_3.0:Documentation SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 8 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 1.3- ESTUDIO DEL ARTE: En esta sección analizaremos las herramientas o softwares más populares y utilizados que existen en la actualidad. Todos ellos tienen en común su objetivo: la monitorización de servicios, pero la llevan a cabo por diferentes caminos y de forma diferente. Destacaremos una serie de ítems o apartados interesantes de cada uno, como por ejemplo: versión actual, quién lo ha fabricado y quién lo mantiene, qué licencia tiene, las tecnologías utilizadas, qué plataformas soporta, su arquitectura y características principales, si tiene interfaz web y qué funciones desempeña y una serie de ventajas e inconvenientes. Diferenciaremos dos grandes grupos de comparativa: herramientas de Software Libre y herramientas Comerciales. Software Libre: Son las herramientas con una distribución libre y generalmente con disponibilidad gratuita, aunque no siempre se cumple esto último. Aun así, el autor establece una licencia para el producto, puesto que no significa que sea de dominio público. Su principal ventaja es su bajo coste de adquisición y la innovación y corrección de errores por parte de cualquier usuario. De este tipo de herramientas, analizaremos las siguientes: › Nagios › Hyperic › Zabbix › Zenoss › Ganglia › OpenNMS › Cacti › Munin Software Comercial: Es también conocido como software propietario o privativo y son las herramientas donde el usuario tiene limitaciones en su uso, modificación y redistribución. La persona o compañía que posee los derechos de autor restringe los derechos de usuario y lo utiliza como fuente de productividad constituyendo un acuerdo o contrato con el cliente. De este tipo de herramientas, analizaremos las siguientes: › BMC Patrol › HP OpenView OVO › IBM Trivoli SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 9 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN El principal competidor de nuestra solución planteada es Nagios Core Versión 3.x. Es una herramienta de software libre Open Source y está diseñado y mantenido por Ethan Galstad, autor de dicho software, junto con un grupo de desarrolladores que mantienen varios plugins. Según su propio autor, el significado de su nombre, N.A.G.I.O.S es un acrónimo recursivo: “Nagios Ain´t Gonna Insist On Sainthood”. Es una referencia a la encarnación original del software bajo el nombre de Netsaint. Está licenciado bajo la GNU General Public License Version 2 publicada por Free Software Fundation. También posee una licencia comercial Nagios PoweredTM la cual pone a disposición de sus clientes dos softwares: Nagios XI y OpMon. El primero de ellos, se puede obtener basándose en el volumen de nuestro sistema: entre 50 a 100 nodos o para nodos ilimitados, y representa la versión de Nagios comercial. El segundo, es una solución de gobierno IT y gestión de procesos empresariales y es compatible con Nagios. En cuanto a su arquitectura y definición, es un sistema de monitorización monolítico y orientado a eventos que vigila los equipos, tanto su hardware como software, alertando cuando el comportamiento de los mismos no es el adecuado. Puede monitorizar servicios de red, recursos hosts y puede programar plugins específicos para nuevos sistemas. El control remoto es manejado a través de túneles SSH o SSL cifrado. Fue diseñado para sistemas GNU/Linux pero también funciona en variantes Unix. Está basado en una estructura maestro-esclavo donde el maestro es el servidor dedicado para Nagios y los esclavos las máquinas a monitorizar. En cada uno de los esclavos o clientes a monitorizar se configuran los plugins o scripts que serán ejecutados para chequear un determinado servicio. Dichos scripts pueden estar desarrollados en diferentes lenguajes o tecnologías: Perl, C/C++/C#, Expect/TCL, Bash, Ruby, Python, o PHP. Aunque Nagios posee opcionalmente un intérprete embebido de Perl que acelera la ejecución de estos scripts. En el maestro se ejecuta una herramienta de conexión remota, la más habitual es el demonio NRPE, con la cual el servidor accede a los plugins o scripts de medición disponibles y configurados en las máquinas remotas o esclavos. Ilustración 5 – Esquema de ejecución entre maestro-esclavo. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 10 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Algunas de sus principales características o funciones pueden ser: - Supervisión de los servicios red (SMTP, POP3, HTTP, NNTP, PING,etc). Monitorización de los recursos (carga de procesador, espacio en disco,etc). Capacidad para definir una jerarquía de servidores en la red, lo que permite la detección de hosts ‘down’ o inalcanzables. Notificación de errores cuando existen problemas y cuando son resueltos mediante correo electrónico, buscapersonas, SMS, etc. Registro automático de rotación de logs. Interfaz web para visualizar el estado actual de la red con la posibilidad de generar informes y gráficas. Su interfaz web nos permite la visualización de los servidores y el estado de los servicios. Podemos organizar las máquinas o esclavos monitorizados, si realizamos la configuración oportuna, por Grupos y por Servicios. Para el primero, por ejemplo, si pertenecen a una misma familia o estación. Mientras que para el segundo, agruparlos referente a un servicio determinado, por ejemplo, para aplicaciones web el servicio HTTP. Posee la integración de diferentes CGIs (Computer-generated imagery) que son imágenes o gráficos generados por ordenador mediante escenas estáticas o dinámicas. También utiliza la herramienta RRDtool (Round Robin Database Tool) que es una herramienta que trabaja con una base de datos para la creación de gráficas, cuyo funcionamiento es ir actualizando los valores y sobreescirbiendo los antiguos, los cuales se conservan como un historial. Ilustración 6 – Interfaz Web de Nagios. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 11 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Ventajas: - - Es un software popularmente conocido y consolidado, ya que posee una arquitectura de plugins de la comunidad para extender sus funcionalidades a través de innumerables sitios webs, que incluso son facilitados en su manual oficial. Permite diferenciar entre hosts caídos o inaccesibles. Inconvenientes: - - - La instalación, configuración y los complementos (plugins) está basada en texto, lo cual implica una dificultad media y requiere un grado de conocimiento técnico. Además puede resultar algo tedioso. Cualquier modificación requiere un reinicio completo del sistema. Su interfaz web sólo sirve para visualizar los acontecimientos. Cualquier cambio debe realizarse manualmente desde el servidor de Nagios. Posee una apariencia pobre en el sistema de mapas, gráficas y estadísticas de la interfaz web. No está disponible o no funciona en todos los sistemas operativos, por ejemplo, en sistemas Microsoft Windows, es decir, sólo está disponible para sistemas GNU Linux y otros unicode. Necesita una herramienta auxiliar para monitorizar estos sistemas que sirva de proxy o intermediario, por ejemplo, NSClient++. En comparativa en concreto con Pandora FMS, el soporte técnico que podríamos recibir sería en castellano, ya que la empresa fundadora es de nacionalidad española, mientras que con Nagios el soporte sería en inglés. Fuentes: http://es.wikipedia.org/wiki/RRDtool http://en.wikipedia.org/wiki/Computer-generated_imagery SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 12 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Otra herramienta de monitorización de redes disponible y potente es Hyperic HQ Versión 4.6. Es una distribución OpenSource desarrollada por un equipo formado por: Javier Soltero, Charles Lee, Jonathan Cobb y Doug MacEachem (autor de Mod perl). Está disponible bajo la licencia GPL versión 2 (GNU Public License) publicado por la Free Software Foundation. También dispone de una versión comercial VMWare vFabric Hyperic HQ|Enterprise disponible como parte de una vFabric Cloud Application (aplicación nube). Está diseñada para compañías con infraestructuras de gran escala. Proporciona soporte y mantenimiento y presenta funciones avanzadas de automatización y control respecto a la versión OpenSource. Por ejemplo: permite definir diferentes niveles o estados de alerta mediante roles o grupos. Además, permite una predicción de estadísticas basado en lo almacenado o existente en la base de datos. Se puede obtener gratuitamente con una caducidad entre 30 y 45 días o con una contribución económica obteniendo así la licencia del producto con un soporte básico o productivo. Estas dos opciones hacen varíar el precio del producto casi un 10% más, y duración de 1 o 3 años por valores de 436$ y 553$ respectivamente. Volviendo a la versión OpenSource, es una aplicación diseñada para la monitorización y rendimiento de infraestructuras. Visualiza los datos en tiempo real mediante métricas. Es capaz de realizar continuamente 50.000 mediciones a través de más de 75 tecnologías webs. Autodescubre todos los recursos del sistema incluyendo hardware, sistemas operativos, virtualización, base de datos, aplicaciones y servicios de red (SMTP, POP3, HTTP, etc). Alerta cuando hay degradación en el rendimiento o existe la no disponibilidad de un servicio, notificando o realizando procesos definidos personalizados por el usuario. Los componentes de Hyperic HQ son Servidor Hyperic, Agentes Hyperic y base de datos. Ejecuta un agente en cada equipo que se desee administrar, los cuales recolectan tanto información del sistema operativo, como su proveedor o versión y también específicos del hardware, como la memoria RAM, velocidad CPU, dirección IP y nombres de domino. Revisan la disponibilidad del sistema y permiten llevar a cabo funciones de control, tales como iniciar o detener servidores. Envían los datos de inventario a un servidor central Hyperic y este lo almacena en la base de datos. Además, el servidor Hyperic detecta cuando se disparan las alertas y realiza las notificaciones o procesos de escalación definidos por el usuario. Es una distribución de aplicaciones J2EE que se ejecuta sobre el servidor de código abierto JBoss. Está escrito en Java y pequeñas porciones de códigos portable en C, para funciones que Java no alcanza todavía. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 13 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Es una herramienta multiplataforma en cliente, es decir, está disponible en todas las plataformas más populares incluyendo OS X, Unix, Linux, Windows, Solaris, AIX, HPUX, VMWare, AppEngine Google y Amazon Web Services. Para el servidor de Hyperic puede implementarse en Linux, Solaris 10 o superior, Mac OS X y Windows Server 2003 o superior de 32 bits. Entre sus principales características podemos destacar: - - Utilización de plugins de fácil aplicación por parte del usuario mantenidos por la comunidad Hyperic. Permiten descubrir productos software ejecutados sobre una plataforma, tales como servidores web, servidor de aplicaciones, bases de datos, etc. Puede utilizar lenguajes como XML, J2EE, Bash, C++/C#, Perl, Ruby, Python, PHP,etc. Seguimiento y correlación de eventos. Puede controlar logs y archivos de configuración. Es un sistema Live Data, se ejecuta, muestra los datos y ofrece vistas en tiempo real en cualquier plataforma. Incluye una interfaz web conocida también como Portal Hyperic extensible y configurable a nivel de usuario y está desarrollado mediante las tecnologías Java y AJAX. Permite el seguimiento y análisis de los equipos monitorizados y la visualización de los recursos mediante gráficos detallados. Además, permite iniciar las acciones de control de recursos, es decir, procesos a ejecutar en caso de alerta. Un caso práctico sería por ejemplo, para un servidor de aplicaciones, puede comenzar la detención y recolección de basura, mientras que para un servidor de base de datos, puede realizar funciones de análisis y limpieza. Incluye además, vistas especiales o específicas para determinados recursos, por ejemplo, para vSphere para gestiones vCenter y GemFire para componentes de la distribución vFabric GemFire. Posee un despliegue por parte de la comunidad conocido como HQU con el objetivo de la creación y despliegue de APIs para extender el Portal Hyperic, así como su integración con otros sistemas, por ejemplo con OpenNMS. El marco se basa en HQU Groovy, un lenguaje parecido a Java y que se ejecuta en la máquina virtual Java. Intenta mejorarlo con nuevas vistas y plugins en XML y JavaScript. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 14 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Ilustración 7 – Interfaz Web de Hyperic. Ventajas: - - Detección automática mediante los agentes de nuevas máquinas virtuales o clientes. Permite pasar de la instalación de un nuevo nodo a su monitorización en menos de 60 segundos. Soporta base de datos en MySQL, Oracle y PostgreSQL. Control total de la aplicación desde el portal o interfaz web. Framework de la comunidad HQU para la mejora del Portal Hyperic. Inconvenientes: - - Necesita unos requisitos de sistema superiores en comparación con el resto de herramientas para el servidor. Consideramos que consume más recursos en la máquina. No diferencia claramente entre las funcionalidades de sus productos libres y comerciales en la documentación oficial. Intenta dar una vista consumidora de su producto hacia el cliente. Fuentes: http://hyperic-hq.software.informer.com/wiki/ http://www.springsource.com/products/systems-management/compare http://support.hyperic.com/display/DOC/HQ+Documentation SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 15 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Otra solución disponible OpenSource es Zabbix Versión 1.8.8. Fue creada por Alexei Vladishev, propietario del producto y de la compañía que lo soporta y mantiene Zabbix SIA. Es una empresa de código abierto y que se centra en el desarrollo de software para la monitorización de redes y aplicaciones. Está licenciado bajo la GNU General Public License Version 2 y publicada por la Free Software Fundation. Actualmente están en continuo desarrollo y progresión hacia su versión 2.0. El único aspecto comercial de la empresa es el soporte que ofrece a diferentes niveles, el cual incluye implementación, integración, desarrollo personalizado y servicios de consultoría, así como programas de formación. Ilustración 8 – Niveles de soporte comercial de ZABBIX. Ofrecen una licencia comercial Zabbix Comercial Licence dirigida a los OEMs (Fabricante de equipamiento original), ISVs (Proveedor de software independiente), VARs y para organizaciones que debido a los secretos comerciales, patentes u otros motivos de propiedad, combinan y distribuyen la licencia de software libre Zabbix con sus productos. Es un software de monitorización avanzada que controla los parámetros de la red y su salud e integridad. Esta versión incorpora algunas mejoras respecto a las anteriores, como por ejemplo: soporte completo para plataformas Unicode/UTF-8, mejoras en la utilización de gráficos y mapas. En resumen, ofrece un control centralizado, disponibilidad de hasta 1000 nodos, multiplataforma de soporte en clientes y eficiente para Linux y Win32, autenticación de usuarios segura, sistema de notificaciones flexible para e-mail o SMS basado en cualquier evento, incluido también XMPP (Protocolo extensible de mensajería y comunicación de presencia) (anteriormente llamado Jabber), que se pone en funcionamiento tanto cuando ocurre un problema como cuando se resuelve. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 16 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Permite la monitorización de recursos hardware: procesos de carga, actividad en la red, actividad en disco, parámetros del sistema operativo, servicios de red (SMTP, HTTP), soporte para la monitorización remota o sin agentes a través de: SNMP, ICMP, TCP, IPMI, SSH y Telnet. Genera informes y estadísticas y la posible visualización de los datos a través de su interfaz web, la cual está desarrollada en PHP y Javascript. Ilustración 9 – Interfaz o Consola Web de Zabbix. Sus principales elementos o componentes son: una base de datos, que soporta MySQL, PostgreSQL, SQLite, Oracle o IBM DB2 para almacenar los datos. Su servidor Zabbix y sus agentes Zabbix, los cuales están desarrollados en lenguaje C. Incluye algunas características destacadas: - Auto detección de dispositivos y servicios monitorizados. Monitorización en tiempo real: rendimiento, disponibilidad, integridad, registro de logs, etc. Servicios IT jerárquicos. Ventajas: - Promueven el software libre y OpenSource por encima del comercial, ya que no ofrecen diferencias entre productos delimitados entre una y otra licencia. Ofrecen una web en castellano muy bien organizada: www.zabbix.com/es/ Tienen en mente el crecimiento de la comunidad Zabbix, poniendo a disponibilidad una wiki en construcción. Inconvenientes: - La potencia o capacidad del software es menor que la de alguno de los mencionados anteriormente. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 17 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Otra plataforma de gestión de red y servidores OpenSource es Zenoss Core Versión 3.2.1. El proyecto de creación de Zenoss comenzó en 2005 y fue iniciado por Erik Dahl y Bill Karpovich, los cuales formaron la compañía Zennos, Inc. Esta empresa es patrocinadora del núcleo Zenoss y proporciona apoyo, mantenimiento y desarrollo de productos. Destacan que es una empresa donde tienen el código y el control de la evolución del mismo y también su indemnización, a diferencias de otras empresas como puede ser el caso de Hyperic, que viene de un fondo comercial y hace que una parte de su código sea OpenSource. Es un producto licenciado bajo la GNU General Public License Version 2.0 y publicada por la Free Software Fundation. También dispone de dos versiones comerciales, basada en la versión básica, llamadas Zenoss Service Dynamics Enterprise y Zennos Profesional que incluye funcionalidades adicionales como transacciones sintéticas (supervisión en tiempo real de acciones programadas en aplicaciones web, bases de datos o e-mail) umbrales de predicción, gestión completa de VMWare VI3, paneles de controles globales, etc. Esta versión además proporciona soporte y mantenimiento a sus clientes y puede descargarse una versión de pruebas. Zenoss Core es un producto de vigilancia y seguimiento para una red informática y de supervisión de infraestructuras IT. Puede gestionar la configuración, salud, rendimiento de dispositivos, servidores y aplicaciones. Todo esto a través de un único paquete de integrado de software. Ofrece monitorización de dispositivos y servicios en la red (SNMP, HTTP, POP3, etc.), recursos hardware y detecta automáticamente nuevos recursos en la red y cambios en su configuración. Realiza notificaciones y alertas basados en un conjunto de reglas. Es un producto multiplataforma para soporte en clientes, incluyendo: Windows Server (2000, 2003, 2008), XP, Vista, 7. GNU/Linux. Tomcat y servidores Java/JMX. Para ser instalado como servidor soporta distribuciones: Linux: Red Hat Enterprise Linux 4, 5. CentOS 4, 5. Fedora Core 12, 13. Debian 5. Ubuntu Server 8.04, 10.04. openSUSE 10.3, 11.1. SUSE Linux Enterprise Server 10, 11. Mac OS X v10.5 y v10.6 Windows (Requiere VMWare Player y la aplicación virtual Zenoss). Para la consola o interfaz web necesita: Firefox 3.6.x, 4, 5 o Internet Explorer 7, 8, 9. Adobe Flash Player. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 18 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Zenoss utiliza una tecnología sin agentes (SNMP, SSH, Telnet y WMI) y se inicia con una CMBD (Base de datos de la Gestión de Configuración), la cual contiene detalles relevantes de cada elemento, generando a partir de esta la administración de fallos, notificaciones, alertas y tareas de remediación a fallos. Y además con un amplio inventario de cada recurso. Una vez que se descubre la infraestructura, comienza a monitorizar el rendimiento de cada dispositivo. Posteriormente, ofrece la gestión de eventos, automatización de alarmas e informes. Por tanto, los principales niveles o áreas del núcleo sistema son: Descubrimiento y Configuración Rendimiento y Disponibilidad Fallos y gestión de Eventos Alertas y remedios Generación de Informes La arquitectura del sistema viene separada y escalonada en cuatro partes principales, tal y como se puede observar en la siguiente ilustración: Ilustración 10 – Arquitectura del sistema de Zenoss. La capa de usuario está construido alrededor de la interfaz o aplicación web e interactúa con la capa de datos para traducir la información y mostrarla al usuario. Dicha capa de datos, recopila la información y configuración y la almacena en tres bases de datos separadas: - ZenRRD: Utiliza la herramienta RRDtool. ZenModel: Es el modelo de configuración del núcleo, que comprende los dispositivos, sus componentes, grupos y lugares. ZenEvents: Almacena los datos de eventos en una base de datos MySQL. La capa de procesos gestiona la comunicación entre la capa de datos y la capa de colección y ejecuta periódicamente trabajos generados por el usuario (ZenActions y ZenJobs). Utiliza la herramienta Twisted PB para las comunicaciones. Por último, la capa de colección está formada por servicios o demonios que llevan a cabo funciones como la recopilación de información en máquinas remotas, disponibilidad (fallos de PING) y rendimiento (infracciones en los umbrales), los cuales son devueltos a través de ZenHub al sistema de eventos. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 19 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Combina programación propia y tecnologías de código abierto, con las cuales consigue integrar su software al completo. Por ejemplo, en el núcleo del sistema realiza tareas como el Modelado del Sistema, que le permite entender el entorno en el que opera, basado en el concepto de herencia de lenguajes de programación. Podemos citar algunas de las tecnologías utilizadas, como por ejemplo: - - - - Zope: Aplicación web orientado a objetos. Está escrito en el lenguaje de programación Python. Es utilizado para la edición de contenidos, personalizaciones básicas y aporta ventajas respecto a lugares web compuestos por archivos de texto plano. Python: Lenguaje de programación de alto nivel diseñado en 1991 por Guido van Rossum. Es un lenguaje multiparadigma (permite crear programas con más de un estilo de programación), ya que soporta programación orientado a objetos, programación imperativa (basado en estados y sentencias, variables globales, como en la programación o implementación hardware de las Máquinas de Turing) y en menor medida, programación funcional (basado en funciones aritméticas: Entrada -> Subrutina -> Salida). Es un lenguaje interpretado (ejecutado por un intérprete que convierte el lenguaje fuente en código máquina), utiliza tipado dinámico y es multiplataforma. Net-SNMP: Protocolo de monitorización que recolecta información sobre el estado de los sistemas. RRDtool: Es una herramienta ya mencionada y utilizada por otros productos de monitorización. Trabaja y tiene como objetivo la creación de gráficas y guarda registros temporales de datos. MySQL: Motor y gestor de base de datos relacional multihilo y multiusuario popularmente conocido. Twisted PB: Es un framework de red para la programación dirigida por eventos escrito en Python. Soporta varias arquitecturas (TCP, UDP, SSL, IP, etc.) y protocolos (HTTP, XMPP, NNTP, SSH, etc.) Los usuarios pueden escribir pequeños callbacks (retrollamadas) para realizar tareas complejas. Posee una comunidad Zenoss Core Comunnity la cual dispone de un repositorio de plugins llamado ZenPacks, con los cuales los miembros de la comunidad pueden extender las funcionalidades de Zennos Core. Además, el software soporta el formato de plugins de Nagios. Para la visualización y control total de la aplicación aporta una interfaz o Consola Web, la cual nos permite manejar el estado y situación de la infraestructura. Puede personalizarse por distintos roles para usuario y se puede integrar con Google Maps para visualizar problemas geográficamente. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 20 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Ilustración 11 – Interfaz o Consola Web de Zenoss. Ventajas: - Fácil instalación de extensiones o paquetes ZenPacks desde la consola web. Inconvenientes: - - - - Al no utilizar tecnología con agentes en los clientes, requiere una configuración previa en su instalación del protocolo SNMP en cada uno de las máquinas a monitorizar y siguiendo un procedimiento distinto según la versión o tipo de sistema operativo. Necesita la instalación de paquetes ZenPacks para monitorización de servicios básicos como HTTP o FTP, información del sistema operativo y algunos recursos hardware como obtener información de la CPU. La instalación de la herramienta en el equipo host es rápida, pero no cada configuración del cliente desde la consola web. Por ejemplo, hay que asignarle una plantilla o template adecuada o personalizada para que monitorice lo que necesitamos de dicho dispositivo. Necesita de la aplicación externa VMplayer para funcionar en sistemas operativos de Microsoft Windows. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 21 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Ganglia Web Release Versión 2.1.8 es otra herramienta OpenSource distribuida y escalable para la monitorización de redes o sistemas de computación de alto rendimiento como son los clusters y grids. Es un proyecto que surgió en la Universidad de California Berkeley con el nombre de Millenium Project, que fue inicialmente financiado, en gran parte, por la NPACI (National Partnership for Advanced Computational Infraestructure) y National Science Foundation RI. Es una fundación que intenta lograr avances en la ciencia mediante la creación de una generalizada infraestructura de cálculo: el Grid. El apoyo actual al producto proviene de Planet Lab, la cual es una plataforma abierta para el desarrollo, despliegue y acceso a los servicios de escala planetaria. Es un producto licenciado bajo la BSD-Licenced, es una licencia permisiva, con lo cual posee requisitos mínimos de cómo se puede redistribuir el software. Fue escrita originalmente en la Universidad de California. Existen nuevas variantes de dicha licencia New BSD License/Modified BSD License y Simplified BSD License/FreeBSD License, las cuales han sido compatibles con la GPL por la Free Software Fundation. El término de Grid Computing se refiere a la combinación de recursos para alcanzar un objetivo común, en este caso, es la combinación de dominios administrativos para componer una “supercomputadora virtual” para realizar tareas muy grandes. Utiliza el software Middleware para dividir y repartir las piezas de un programa entre varios ordenadores. El cual, es un software esencial para tecnologías de información (IT) basadas en XML, SOAP, servicios Web y arquitecturas orientadas a servicios. Se ejecuta en una capa intermedia entre la aplicación, por ejemplo una base de datos, y la infraestructura o sistema operativo y permite a los procesos que se ejecutan en una o más máquinas interactuar y transferir datos entre ellos. Es un producto cuyos principales proveedores son IBM, Red Hat y Oracle Corporation. En resumen, los Grids son sistemas que se utilizan y se han utilizado para intensivos problemas científicos y matemáticos computacionales y en empresas comerciales para aplicaciones diversas, como el descubrimiento de fármacos, previsiones económicas o análisis sísmicos. Los clusters son grupos de computadoras, conectadas normalmente en redes de área local, que trabajan y colaboran juntas formando un solo equipo. Son desplegados para mejorar el rendimiento, disponibilidad y rentabilidad de un solo equipo con características similares. Volviendo al software libre inicial, Ganglia se basa en un diseño jerárquico y permite al usuario visualizar de forma remota y en tiempo real estadísticas o históricos sobre recursos de las máquinas que están siendo monitorizadas, como por ejemplo, promedios de carga de CPU o la utilización de la red. Puede escalarse para manejar hasta 2000 nodos, y está presente en más de 500 grupos de todo el mundo. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 22 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Es una herramienta con direccionamiento multicast, el cual es un método de transmisión one-to-many (de uno a muchos receptores). Su funcionamiento es el siguiente: el emisor envía desde su dirección unicast un datagrama a la dirección multicast, las cuales están reservadas desde la 224.0.0.0 a la 239.255.255.255, según la IANA (Internet Assigned Numbers Authority), que se encarga de asignar direcciones IPv4 para nuevos protocolos. Una vez enviado el datagrama, el router se encarga de hacer copias y enviarlas a todos los receptores que hayan informado de su interés por dichos datos. Se utilizan protocolos como UDP (User Datagram Protocol) y PGM (Pragmatic General Multicast), el cual corrige fallos del anterior e incluye mejoras en la distribución, como la detección de pérdida de datos o mensajes entregados fuera de orden. Es un método de transmisión utilizado principalmente en empresas para el intercambio de datos multimedia, como aplicaciones IPTV, enseñanza a distancia o encuentros televisados. En otros ámbitos ha tenido poco éxito, puesto que requiere un gran ancho de banda y que este sistema a gran escala puede venir acompañado de fallos, debido a ataques de denegación de servicio (DoS), los cuales sobrecargan el servidor de solicitudes. Utiliza tecnologías como XML, para la representación de datos, XDR para el transporte compacto y portátil de los datos y RRDtool para el almacenamiento y visualización de los mismos. Para su interfaz web utiliza PHP4 y algunos otros pequeños programas de utilidad. Está compuesto únicamente por dos demonios: - - Gmond: Demonio multi-hilo que se ejecuta en cada nodo a supervisar. Su instalación no requiere ningún sistema de archivos común NFS ni una base de datos. Tampoco necesita mantenimiento de los archivos de configuración. Transmite los datos mediante mensajes de formato UDP. Posee cuatro funciones principales: 1- Monitorizar los cambios en el servidor anfitrión. 2- Anunciar cambios relevantes. 3- Escuchar el estado del resto de nodos a través de un canal unicast/multicast. 4- Responder a las solicitudes para obtener una descripción XML del estado del cluster. Gmetad: Ganglia diseña una conexión punto a punto, mediante un árbol de conexiones, entre los nodos del cluster para controlar el estado de todos. En cada nodo del árbol, este demonio sondea periódicamente una recopilación de datos de las fuentes hijas y analiza el XML de datos recibido de los gmonds, guardando parámetros numéricos. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 23 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN Su interfaz web dinámica proporciona una vista de la información obtenida y muestra datos de manera significativa para los administradores y usuarios del sistema. Puede visualizar datos históricos como el uso de la CPU durante la última hora, día, semana, mes o año. Muestra gráficas similares para el uso de memoria, disco, red, procesos en ejecución, etc. Estos datos son recogidos por el demonio gmetad, que es el encargado de enviar el árbol XML al puerto 8651 por defecto, que es donde estará escuchando la web. Ilustración 12– Interfaz Web de Ganglia. Ventajas: - Es una herramienta cuyo origen proviene de estudiantes universitarios. Inconvenientes: - - Aunque es una herramienta de monitorización, no se ajusta al perfil de los anteriores, es un software destinado a otros propósitos diferentes, en comparación por ejemplo, con nuestra solución propuesta Pandora FMS. Tiene una capacidad o potencial inferior a alguna de las herramientas anteriores (monitoriza 2000 nodos). Su interfaz web es una simple aplicación de visualización de datos y dispone pocas funcionalidades. Existe poca documentación y no disponen de entorno web ni comercial propio del producto. Tienen una licencia propia, cuyas nuevas versiones no se ajusta o no es aprobada completamente por la Free Software Fundation. Fuentes: http://en.wikipedia.org/wiki/Grid_computing http://en.wikipedia.org/wiki/BSD_license http://es.wikipedia.org/wiki/IP_Multicast SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 24 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 25 SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 1.4- OBJETIVOS Y MOTIVACIONES PERSONALES: La principal causa del proyecto fin de carrera es la adquisición de aptitudes para afrontar la práctica de la profesión y culminar el proceso de estudio de la carrera. Una de las causas para desarrollar y llevar a cabo este proyecto viene de la idea personal por investigar o indagar en algo nuevo para y desarrollar conocimientos poco o nada expuestos en la carrera o diplomatura. Esto significa afrontar un reto personal hacia un mundo parcialmente desconocido y fundamentar nuevos conocimientos acerca de las nuevas tecnologías. La idea vino especialmente motivada tras el comienzo de prácticas de empresas en el sector o área de Sistemas, el cual me ha servido para adquirir expectativas profesionales para el futuro. Por tanto, considero que el proyecto elegido es ideal por su enfoque en el puesto de Administrador de Sistemas. Un sector a veces minoritario frente a los desarrolladores, pero que no es menos importante para la consecución de objetivos en una empresa. Este proyecto me permitirá analizar y adquirir conocimientos sobre la herramienta OpenSource y de Software Libre planteada como solución Pandora FMS: - Instalación, requisitos y funcionamiento interno de dicha herramienta. Administrar y obtener la capacidad de manejar la herramienta. Desarrollo e implementación de nuevos plugins. Evaluar, defender y exponer la calidad del producto y de otras herramientas con los mismos objetivos. Y también sobre distintas tecnologías relacionadas con los sistemas de monitorización, como por ejemplo: - Tecnología de la Información y Comunicación (TICs). Redes informáticas (tipos, protocolos, tecnologías, seguridad, etc). Gestión de procesos ITIL y buenas prácticas, estrategias de servicio, perspectivas de negocio, etc. Telecomunicaciones. Conocimientos en nuevos lenguajes de programación (conceptos, estructuras, funciones, etc). Considero que es una idea innovadora desarrollada sobre un tema complejo, lo cual supondrá una gran experiencia personal para el futuro. SISTEMA DE MONITORIZACIÓN – INTRODUCCIÓN 26