Está en la página 1de 5

Open NMS PORTADA

Monitorizacin de grandes Sistemas y Redes

OJO AVIZOR
Si necesitamos monitorizar redes muy grandes, necesitaremos un software muy potente. OpenNMS nos ofrece estas capacidades de monitorizacin dedicadas en paquetes de cdigo abierto. POR KURT SEIFRIED

Tracy Hebden - 123RF.com

pesar de los grandes esfuerzos que realizan los administradores de sistemas, las redes, los servidores y los servicios estn destinados a fallar en algn momento. A veces el fallo es obvio (se estropea un ventilador o una excavadora rompe algn cable de la red), pero otras veces es sutil (un cambio en un DNS que provoca que el correo no llegue al servidor). Resolver estos problemas puede ser fcil si se conoce la raz que los genera, pero esto no suele ser lo habitual, adems la tarea adquiere rdenes de magnitud enormes si se tienen que gestionar miles de mquinas. En estos casos, OpenNMS [1] puede ser la ayuda esperada. Cuando necesitamos monitorizar redes muy grandes, especialmente si se encuentran geogrficamente distribuidas y son redes heterogneas (Windows, Linux, Solaris, AIX, etc), har falta algn software potente de monitorizacin. Los principales productos comerciales, como Tivoli de IBM o Systems Manager de HP funcionan bien,

pero no son de cdigo abierto. Por ello, se presentarn problemas a la hora de personalizarlos, y el seguimiento del soporte apropiado puede ser difcil.

Instalacin de OpenNMS
OpenNMS posee varios componentes principales: una base de datos (PostgreSQL), un motor basado en Java que realiza todo el trabajo pesado (monitorizacin, alertas, etc) y una interfaz web basada en Java para la administracin y la gestin del sistema, el visionado de los informes, etc. No vamos a tratar todos los detalles de la instalacin, ya que OpenNMS dispone de una gua de instalacin muy completa [2] que cubre el proceso en profundidad. El procedimiento de instalacin bsico consiste en instalar PostgreSQL, Java y luego OpenNMS, configurndose todo para que se ejecute en el proceso de arranque del ordenador, y eso es todo. La primera decisin que debemos tomar es qu versin de OpenNMS deseamos ejecutar. Hay cuatro opciones disponibles: la estable, la inestable, la de prueba y la instantnea. La estable es, por supuesto, la ltima versin estable, mientras que la inestable es la ltima versin oficial en desarrollo de

Qu Es OpenNMS?
Al principio pensaba que OpenNMS iba a ser la tpica herramienta de monitorizacin de red como Nagios. Crea que slo haba que ejecutarla, indicarle lo que tena que observar y esperar a que sonara el mvil en el caso de que fallase algo. OpenNMS lo har, pero tambin sirve para hacer mucho ms, ya que est diseada para monitorizar redes enormes (por ejemplo, con cientos de miles de mquinas) con muchos tipos de dispositivos diferentes. Con este objetivo, OpenNMS es una plataforma sobre la que se puede construir prcticamente lo que al administrador se le ocurra. Tambin viene con una solucin de monitorizacin completamente precompilada, de modo que no haya que partir prcticamente de cero para poder utilizarla.

WWW.LINUX- MAGAZINE.ES

Nmero 70

31

PORTADA Open NMS

OpenNMS. La versin de pruebas es la ltima versin disponible que se va a lanzar como estable, y la instantnea la ltima versin en desarrollo (si le gusta el riesgo, sta ser su eleccin). Tambin existen diversas posibilidades a la hora de obtener OpenNMS. Se pueden descargar los ficheros fuente e instalarlos desde cero; descargar los paquetes RPM, DPKG (para Debian y Ubuntu) o Solaris; o bien instalarlo en un Mac OS X por medio de Fink. O se puede obtener el fichero jar para instalarlo en Windows. Para un sistema basado en RPM, el mtodo ms sencillo consiste en obtener e instalar el stub RPM que contiene la informacin del repositorio:
Figura 1: Mis pruebas no resultaron muy satisfactorias.

http://yum.opennms.org/U repofiles/opennms-repo-snapshotU -fc12.noarch.rpm

Para la versin estable de Fedora 11 sera opennms-repo-stable-fc11.noarch.rpm y del mismo modo para el resto. Una vez realizado este paso, simplemente hay que ejecutar yum install opennms y seguir con el proceso de configuracin.

Una Breve Aclaracin sobre el Rendimiento


Habl con los desarrolladores de OpenNMS acerca del rendimiento del sistema y les pregunt cuntos sistemas de monitorizacin eran necesarios para poder monitorizar un gran nmero de mquinas (por ejemplo, miles). La respuesta fue que un servidor relativamente normal (bsicamente cualquiera moderno con la suficiente RAM como para ejecutar aplicaciones Java y albergar la base de datos) sera suficiente. De modo que para la mayora de las instalaciones, con uno o dos servidores estar bien (probablemente ser mejor tener dos servidores por si uno de ellos fallase o tuviese que desconectarse de la red). Tambin se pueden instalar agentes remotos; pero de esto hablaremos ms adelante en este artculo.

Configuracin de OpenNMS
Una vez que tenga instalado OpenNMS, puede acceder a la aplicacin por medio de la interfaz web en el puerto 8980. Es preciso cambiar la contrasea del administrador, y luego puede seleccionar Admin y pulsar Configure Discovery, donde podr introducir los servicios

individuales y las URLs o los bloques de red que se deseen analizar y monitorizar. Por otro lado, puede editar el fichero discovery-configuration.xml a mano o generar un script de uso propio si conoce los bloques de red y las IPs. OpenNMS tambin soporta rangos de exclusin, de modo que podemos evitar la monitorizacin de los equipos que no nos pertenezcan. Una vez introducida la informacin en la interfaz web, slo hay que pulsar en Save and Restart Discovery. OpenNMS analizar entonces todos los equipos que se hayan especificado, para averiguar qu servicios tienen en comn (DNS, HTTP, recursos compartidos, etc), y los aadir a la base de datos. OpenNMS tambin tiene soporte para SNMP e intentar conectarse a los dispositivos usando este protocolo, que puede proporcionar informacin sobre el estado de los mismos. Tngase en cuenta que si un nodo soporta SNMP y se permite el acceso de lectura de forma pblica, OpenNMS lo identificar por el nombre con el que se haya configurado en vez de por el nombre asignado por el DNS o la direccin IP (suponiendo que falle la resolucin DNS inversa). Una vez que tenga una lista de nodos descubiertos por OpenNMS, puede comenzar a clasificarlos: Son utilizados en produccin, para desarrollo o para pruebas? Es un router, un switch o un servidor? Se pueden aadir nuevas categoras (servidores de procesamiento financiero o servidores de bases de datos), y un nodo puede pertenecer a ms de una categora (por ejemplo con-

tabilidad y produccin o recursos humanos y base de datos). Por otro lado, se puede abrir una categora (Admin | Category | Show) y ver la lista de todos los equipos disponibles. Deberemos rellenar la informacin correspondiente; por defecto, el nmero de serie, el nmero del equipo, el sistema operativo, la localizacin, el ID del rack, la informacin del fabricante, la informacin de autenticacin y los comentarios. Afortunadamente, una vez introducida esta informacin, no habr que volver a hacerlo. Slo hay que guardarla y exportar los datos para su posterior uso.

Monitorizacin
Por defecto, OpenNMS ejecuta un anlisis cada cinco minutos para determinar la disponibilidad (por ejemplo, comprobar los nodos, los servicios, etc. ; vase la Figura 1). La razn de esta planificacin es sencilla: el 99,9% de uptime significa que tiene 4,32 minutos (de media) de apagn al mes, as que cualquier valor por encima de 5 minutos habr estropeado la estadstica. Cuando se detecta un apagn, OpenNMS comienza un ciclo en el cual cada 30 segundos se consulta el servicio durante un perodo de 5 minutos; una vez que este proceso se haya completado, se supondr que el apagn es significativo, y OpenNMS pasar a un ciclo donde las comprobaciones se harn cada 5 minutos durante un perodo de 12 horas. Si transcurridas las 12 horas el servicio no se ha recuperado, OpenNMS pasar a realizar las comprobaciones

32

Nmero 70

WWW.LINUX- MAGAZINE.ES

Open NMS PORTADA

cada 10 minutos durante 5 das. Tras este punto, OpenNMS marca el servicio como forced unmanaged y deja de comprobarlo. Si se desea otra configuracin con respecto a los diferentes niveles de servicio (por ejemplo, slo el 99% de uptime o el 99.999%), se puede modificar fcilmente el fichero poller-configuration.xml para que se ajuste a los requerimientos. OpenNMS puede monitorizar casi cualquier cosa: por supuesto SNMP, pings ICMP y soporte para la mayora de los servicios comunes (SSH, DNS, HTTP, etc). Se pueden solicitar pginas web (y comprobar el contenido de las pginas en busca de elementos tales como precios o mensajes de estados), escribir pruebas personalizadas, usar directamente el plugin de Nagios y acceder a Windows Management Instrumentation (WMI). Tambin se pueden obtener tiempos de respuesta (Figuras 2 y 3).

Notificaciones
El seguimiento de los apagones no est nada mal, pero sera mucho mejor que se le notificaran al administrador cuando se produjeran. OpenNMS usa el concepto de Destination paths, que es esencialmente una lista de uno o ms mtodos de alerta que se utilizan en turnos hasta que se haya reconocido el evento de la notificacin (indicando que ya hay alguien trabajando en el problema). Esta solucin permite que se pueda contactar con diversas personas en una secuencia dada utilizando diversos mtodos (incluyendo el correo electrnico, IRC, XMPP, mensajes de telfono o de busca, as como el envo de una peticin HTTP o la ejecucin de algn programa externo). Por lo tanto, se puede comenzar enviando un mensaje instantneo al administrador y pasar luego a la realizacin de llamadas telefnicas a su casa. El servidor de notificaciones es bastante simple. Cuando OpenNMS se percata de un evento, se genera un evento SNMP que se gestiona internamente; por defecto, la mayora de estos eventos ya han sido agrupados en eventos de notificacin genricos, como nodeDown (cada de un nodo) y nodeLostService (prdida de un servicio en un nodo). Evidentemente, podemos crear nuevos eventos (por ejemplo, monitorizacin de 3Com o Cisco).

Figura 2: Trfico de una impresora (sin mucha actividad).

Monitorizacin Remota
Si la monitorizacin centralizada no funciona (por ejemplo, se tienen diversas oficinas situadas detrs de cortafuegos), OpenNMS soporta la monitorizacin remota. Estos agentes de software se pueden ejecutar en sistemas remotos y comprobar el estado de las mquinas y las redes, enviando los resultados a los servidores centrales de OpenNMS. Esta solucin permite asegurarse, de forma remota, de que los servicios se encuentran disponibles y permiten la deteccin de fallos este escenario tam-

bin se conoce como si funciona para m, entonces debe ser tu lado el que falla.

Rutas Crticas y Fallos


Entonces, qu es lo que ocurre cuando cae un router, desapareciendo tras l una red entera? Se recibirn miles de notificaciones de apagones, inundando el sistema de alerta (espero que no tenga una pgina para cada una) y generalmente ocultando el evento importante. OpenNMS tiene una solucin para este problema.

Figura 3: Este informe muestra una ruta crtica con un nico servidor fallando.

WWW.LINUX- MAGAZINE.ES

Nmero 70

33

PORTADA Open NMS

Se puede definir una ruta crtica (una direccin IP y un servicio) que se ver afectado por este fallo de modo que, cuando un router que proporciona acceso a una subred caiga, OpenNMS no perder el control. Desafortunadamente, en la actualidad ICMP es el nico servicio soportado directamente para la ruta crtica, todava no se encuentran disponibles las rutas crticas de niveles de servicios (Figura 4). Se puede encontrar una solucin potencial en el soporte de Drools [3] Business Logic Integration Platform (Plataforma de Integracin de la Lgica de Negocio), el cual permite expresar reglas en formato XML y tomar acciones basadas en ellas (se carece de documentacin). Para usar Drools de forma adecuada tambin habr que imaginarse todos los escenarios de fallos posibles de los equipos y expresarlos como un conjunto de reglas; si esto fuera posible, los administradores no tendran que pasar mucho tiempo monitorizando y solucionando problemas.

Figura 4: Se muestra una ruta crtica con un nico servidor fallando.

Monitorizando Windows
Windows Management Instrumentation (WMI) [4] es una tecnologa de Microsoft de la que probablemente nunca haya odo, pero si tiene que administrar sistemas Windows, su ayuda es inestimable. Bsicamente, WMI permite escribir scripts o aplicaciones que automaticen tareas en ordenadores remotos (del tipo cfengine o puppet en el mundo Unix), y puede usarse para suministrar datos de mantenimiento (por ejemplo, sistemas y aplicaciones de control de estado). Usando WMI se puede acceder al estado interno de una mquina Windows (incluso consultar la BIOS), y suponiendo que la aplicacin se haya escrito con soporte WMI, tambin comprobar los valores de la misma. Este mtodo permite asegurarnos de que la aplicacin se encuentra en ejecucin y no se ha parado o ralentizado por alguna razn. En la wiki de OpenNMS [5] se encuentra informacin detallada acerca de la configuracin WMI.

tros sistemas. Sin embargo, si poseemos aplicaciones comerciales o de cdigo cerrado, stas no informarn de su estado por medio de SNMP ni de WMI, aunque an no est todo perdido. Si se examinan los plugins existentes en el directorio netmgt/pollers/monitors/, veremos que escribir un plugin personalizado es una tarea relativamente simple. Estos plugins bsicamente comprueban de diversas formas un servicio y devuelven un cdigo serviceStatus que indica si el servicio es inalcanzable, sin respuesta o disponible, registrando posteriormente el mensaje (por ejemplo, sin ruta al host o Tiempo de espera agotado para la conexin TCP). La mayora de los plugins constan de 200-300 lneas de cdigo Java. Por otro lado, se puede utilizar el General Purpose Poller, el cual nos deja invocar a un script o programa externo para comprobar el servicio. Esta tcnica permite la escritura y uso de scripts de comprobacin escritos en cualquier lenguaje soportado por el sistema operativo y la utilizacin de herramientas de la lnea de comandos que vienen con las aplicaciones para comprobar el estado del sistema (bsquese en la wiki GeneralPurposePoller).

tambin pueden ser planificados y enviarse por correo electrnico de forma automtica, o bien ser creados bajo demanda (a su jefe le encantar esta posibilidad). OpenNMS tambin incluye algunas opciones visualmente atractivas especficamente, la opcin de mapeado siendo posible generar mapas internos o usar servicios externos como Google maps. Una de las mejores caractersticas es la posibilidad de mostrar mapas usando Adobe SVG a pantalla completa con la opcin de auto actualizacin. Si se muestra un mapa en un pantalla central, puede vigilarse fcilmente la red entera.

Soporte y Documentacin
OpenNMS es una herramienta de monitorizacin llena de funcionalidades que puede hacer prcticamente de todo, lo que es a su vez uno de sus principales retos. Sin embargo, posee una comunidad de soporte muy activa. La wiki de documentacin [5] es muy completa, la lista de correo es de gran ayuda, y el canal de IRC en FreeNode tiene muchos usuarios y son corteses (adems algunos de los autores de OpenNMS pasan parte de su tiempo all). Todas estas caractersticas llevan directamente a OpenNMS Group, la entidad comercial responsable de OpenNMS. El OpenNMS Group gana dinero personalizando, implementando y enseando. Y como ellos escriben el software, son los que proporcionan el ltimo escalafn en lo que se refiere a soporte y servicio.

La Salida
Bueno, con todas estas herramientas, cmo se puede obtener un resumen rpido y conciso del estado del sistema? Por medio de los informes y las grficas, cmo no. OpenNMS incluye diversos informes por defecto (disponibilidad completa de servicios, servidores de correo, etc), permitiendo adems la creacin de otros nuevos. Los informes

Plugins de Monitorizacin Personalizados


Entre el conjunto de plugins que vienen por defecto y la posibilidad de monitorizar SNMP y WMI, OpenNMS puede proporcionar una visin detallada de nues-

Qu Falla en OpenNMS?
OpenNMS no es perfecto, por lo que podemos encontrarnos con algunos pro-

34

Nmero 70

WWW.LINUX- MAGAZINE.ES

blemas. El soporte IPv6 es actualmente escaso. Algunos plugins, como el servicio de comprobacin HTTP, soportan IPv6 porque la librera Java subyacente lo soporta; sin embargo, esto no se da en el resto de servicios. Ms importante an, todava no se pueden realizar descubrimientos basados en IPv6, de modo que habr que aadir los equipos de forma manual (o importar los datos; la creacin del fichero a importar no es una tarea complicada). Por otro lado, an queda para que se produzca el despliegue generalizado de IPv6, as que el grupo de OpenNMS dispone de algn tiempo. Tambin, el hecho de que OpenNMS se base en PostgreSQL y que todava no se pueda utilizar con otras bases de datos, puede ser algo molesto si no estamos familiarizados con esta base de datos. Sin embargo, las buenas noticias son que la mayora de los sistemas operativos poseen una versin de PostgreSQL o tienen un paquete fcilmente instalable. Y, por supuesto, en la documentacin se puede encontrar cualquier aspecto relacionado con la configuracin.

Conclusin
Debemos comprar OpenNMS? O, ya que se encuentra disponible gratuitamente, debemos pasar el tiempo instalndolo y configurndolo correctamente? S. Antes utilizaba Nagios [6] para monitorizar redes, pero encontr problemas cuando monitorizaba un nmero elevado de hosts porque Nagios utiliza el comando ping cuando tiene que mandar un paquete ICMP a un equipo para ver si sigue en funcionamiento; esto no supone ninguna dificultad para OpenNMS. Tambin me gusta la forma en la que OpenNMS gestiona las alertas y sus diversos mtodos de contacto. Y lo fcil que es configurarlo. Para una instalacin sencilla, podemos aadir bsicamente un bloque de red a la pgina de descubrimientos, poner la direccin de correo electrnico en la cadena de notificaciones y listo. Tambin, OpenNMS ha estado bajo desarrollo activo durante 10 aos, de modo que puede competir perfectamente con las principales ofertas comerciales. Como OpenNMS es de cdigo abierto (licencia GPL) verdadero, no nos encontraremos en una situacin en la que nos venden gato por liebre, con una versin gratuita, pero mutilada, que nos obligue a comprar una versin completa despus. Si tenemos que monitorizar una red, especialmente una formada por mquinas Unix, Windows y dispositivos compatibles con SNMP, OpenNMS es definitivamente la I solucin que andamos buscando.

RECURSOS
[1] OpenNMS: http://www.opennms.org/ [2] Gua de instalacin de OpenNMS: http://www.opennms. org/documentation/installguide.html [3] Drools: http://www.jboss.org/drools [4] Windows Management Instrumentation: http://msdn. microsoft.com/en-us/library/aa394582%28VS.85%29.aspx [5] Wiki de documentacin OpenNMS: http://www.opennms. org/wiki/ [6] Rootdev: OpenNMS vs. Nagios: http://www.rootdev.com/ tech/opennms-vs-nagios

También podría gustarte