Llegamos a ustedes gracias a:



Reportajes y análisis

Monitoreo de red

4 herramientas de código abierto que vale la pena mirar

[25/02/2015] El monitoreo de red es un componente clave para asegurar que su red corre suavemente. Sin embargo, es importante distinguir entre el monitoreo de red y la gestión de red. Para la mayor parte, las herramientas de monitoreo de red reportan problemas y hallazgos, pero -como regla- no ofrecen forma de tomar acción para resolver los problemas informados.

Para esta reseña, probamos cuatro producto de código abierto: Cacti, Icinga, Zabbix y Observium. Fueron seleccionados por su uso ampliamente difundido y disponibilidad, su madurez, estabilidad y el hecho de que tienen actualmente versiones con mantenimiento. Nos enfocamos principalmente en la instalación/configuración, gestión del día a día e informes.

Encontramos a los cuatro productos capaces de manejar herramientas de monitoreo de red que se desempeñaron bien en nuestras tareas básicas de monitoreo, como la revisión de la disponibilidad de host y la medición del uso de ancho de banda. Más allá de lo básico, hubieron unas cuantas diferencias en términos de características, granularidad y opciones de configuración.

* En general nos gustó Zabbix, la cual fue fácil de instalar, tiene una interfaz intuitiva y suficiente granularidad para desempeñar la mayoría de tareas de monitoreo de red.

* Cacti es genial para lo que hace, tiene excelentes capacidades gráficas y es relativamente fácil de configurar y usar. Pero Cacti es algo limitada en características. No ofrece un panel de control con estado e infraestructura, ni tampoco tiene la capacidad de ofrecer alertas.

* Observium es otro producto capaz, pero no nos gustó tener que mapear todo para los nombres de host, sin la capacidad de usar la dirección IP directamente. Sin embargo, tiene una interfaz moderna y, al igual que Cacti, ofrece capacidades gráficas que ofrecen buena información de un solo vistazo.

Todos los productos ofrecieron monitoreo básico de red, usando protocolos comunes como ping, sin requerir agentes. Profundizar más requirió agentes o SNMP, los cuales deben ser instalados y/o configurados en los dispositivos a ser monitoreados. Zabbix ofrece opciones de configuración tanto con agente como sin agente. Debido a que todos los servidores hosts corren en Linux, para mantener el nivel de campo de juego usamos una instalación fresca de Ubuntu 14.04 LTS antes de instalar cada producto. El hardware era un servidor quad-core, 64 bits, 8GB de RAM, con almacenamiento adecuado. Estas son las reseñas individuales:

Observium

Observium es un producto basado en Linux con líneas de comando, con una interfaz de monitoreo basado en web. Lanzado bajo la licencia QPL Open Source, Observium está actualmente en la versión 0.14. El producto está disponible tanto en edición de comunidad -la cual probamos- como en edición profesional. Observium utiliza la RRDTool para ciertas funciones, como almacenamiento de buffer y capacidades gráficas. Ofrece auto descubrimiento de una amplia variedad de dispositivos desde servidores y switches hasta impresoras y dispositivos de energía.

Observium es instalado y configurado a través de un conjunto de entradas de líneas de comando. Los prerrequisitos incluyen MySQL, PHP y Apache. Encontramos una guía de instalación paso a paso en el sitio web del producto, la cual nos ahorró tiempo en desplegar la instalación. Después de la instalación, el servidor es accesible desde un navegador.

Monitoreo de red, herramientas código abierto, Observium

Después de completar la instalación básica, cargamos la interfaz Web, la cual mostró un mapa grande de Google en blanco y un resumen de dispositivos, puertos y sensores, todos mostrando valores en cero. Decidimos agregar un nuevo dispositivo desde la interfaz Web ingresando el nombre del host y el nombre de la comunidad SNMP. Esto no brindó ningún resultado.

Después de algunas búsquedas en línea nos dimos cuenta que necesitábamos agregar nuestros dispositivos al archivo 'hosts' para que Observium resolviera correctamente los nombres de hosts. No estábamos corriendo DNS en nuestra red de pruebas y no se podía agregar dispositivos usando direcciones IP. Debido a que Observium está configurado usando un archivo de configuración, la interfaz Web ofrece esencialmente una vista general de solo lectura de la infraestructura. Agregamos nuestro primer dispositivo con un simple comando desde la línea de comandos, y luego nos logueamos de nuevo en la interfaz web, donde pudimos ver nuestro recién agregado host Windows. Los mapas estaban llenos de una ubicación algo distante de la actual, pero atribuimos esto al uso de subredes.

Observium utiliza varios protocolos como CDP, FDP, EDP, y LLDP para descubrir nuevos dispositivos. Cuando encuentra un nuevo dispositivo, intentará contactarlo en un nombre de comunidad SNMP provisto en el archivo de configuración. Una vez que uno o varios dispositivos han sido agregados, la información para cada dispositivo necesita ser agregada usando los comandos de descubrimiento y votación desde la línea de comandos.

La tarea puede ser automatizada creando un archivo 'crontab' Linux que es llamado a intervalos de conjuntos. La mayoría de cambios en la configuración son completados a través de la edición del archivo de configuración. Encontramos esto un poco incómodo al comienzo, pero una vez que las configuraciones iniciales y los inevitables ajustes se habían completado no hubo necesidad de volver a ver este archivo de manera diaria. El archivo de configuración de contenido está disponible para solo lectura desde el enlace de configuración global, el cual es de ayuda para tener una vista de pájaro de los ajustes.

Con nuestros nuevos dispositivos configurados y añadidos, volvimos a cargar la interfaz Observium Web nuevamente. La lista de dispositivos mostró nuestros tres hosts con alguna información básica acerca de cada plataforma, tipo de sistema operativo y tiempo de actualización. Al pasar el mouse sobre cada dispositivo muestra pre visualizaciones de diversos gráficos de rendimiento como el uso de procesador y memoria. Para profundizar en más detalles, se puede hacer clic en cualquier dispositivo que muestre una pantalla secundaria con información adicional acerca del dispositivo, y la capacidad de ver datos recolectados de diferentes maneras como información general, una vista gráfica que incluye un montón de datos de rendimiento, además de una vista de la bitácora de eventos del sistema.

Observium no tiene exportación directa o capacidades de informes, lo cual sería una buena adición para documentar el rendimiento o los datos de uso de las salidas a un registro externo. Sin embargo, el reporte en pantalla es muy bueno y hay a disposición numerosos filtros para vistas personalizadas. A pesar de que no ayuda mucho en las tareas de configuración, la interfaz web tiene un display moderno, fácil de leer, y la navegación es intuitiva con un menú horizontal en estilo desplegable en toda la parte superior. También nos gustó la vista general de la página de inicio con la capacidad de pasar el mouse sobre diversos elementos para ver los gráficos para ese punto.

La edición profesional de Observium está disponible en tarifa de suscripción anual, y ofrece a los usuarios actualizaciones en tiempo real y diversas opciones de soporte. La versión profesional también ha añadido funciones como alerta de umbral y contabilidad de tráfico, lo cual puede ser útil para organizaciones como ISPs que necesitan calcular y facturar el uso de ancho de banda a los clientes.

Cacti

Al igual que otros productos, Cacti es una aplicación basada en web que corre sobre PHP/Apache con una base de datos MySQL en el backend. Actualmente en la versión 0.8.8, ofrece una GUI de front-end personalizada para la RRDTool, una herramienta de base de datos multifuncional. Recolecta datos vía SNMP y también tiene una selección de scripts de colección de datos disponible para descarga desde el sitio web de Cacti.

Aunque el servidor de Cacti puede ser instalado en Windows, requiere software principalmente asociado con Linux, como PHP, Apache (aunque puedes usar IIS) y MySQL. Este puede ser completado usando el servidor WAMP o configurando cada componente individualmente, a través de la guía de instalación Cacti.

Monitoreo de red, herramientas código abierto, Cacti

Independientemente del tipo de sistema operativo, hay una cantidad de requisitos de configuración y Cacti asume que el instalador está bastante familiarizado con los componentes antes mencionado. El manual de usuario ofrece guías generales para la instalación, pero no ofrece especificaciones para nuestro entorno en particular. Como suele ser el caso, encontramos una fuente de terceros en línea que tenía una buena guía paso a paso para nuestro sistema operativo (Ubuntu).

Una vez que la instalación y la configuración inicial han sido completadas, se tiene acceso a la GUI Web de Cacti desde un navegador web. Encontramos la interfaz limpia y bastante fácil de navegar una vez que nos familiarizamos con el diseño general. Lo más resaltante de Cacti son sus capacidades gráficas, y brinda a los usuarios herramientas para crear gráficos personalizados para diversos dispositivos y su rendimiento utilizando SNMP. El rango de los dispositivos puede ir desde servidores y routers hasta impresoras, esencialmente cualquier dispositivo en red con una dirección IP.

Para configurar un nuevo dispositivo e indicar qué valores debe monitorear, se debe seguir un pequeño proceso de tipo asistente (wizard) en el que primero se especifica lo básico, como la dirección IP y el tipo de dispositivo. Para determinar si el dispositivo está disponible, Cacti puede usar un comando Ping simple o una combinación de Ping y SNMP.

Una vez que el dispositivo ha sido creado, es tiempo de crear los gráficos que se desea monitorear para este dispositivo particular. La configuración gráfica utiliza un conjunto de opciones basadas en el tipo de dispositivo a ser configurado. Se puede seleccionar elementos como el tráfico de interfaz y uso de memoria, hasta utilización de CPU o el número de usuarios logueados. Creamos una cantidad de gráficos para un par de dispositivos y una vez que un gráfico es grabado, puede tomar un rato antes de que los datos se muestren, pero encontramos que generalmente dentro de unos minutos comenzaba a mostrar la información. Lo que encontramos útil al crear los gráficos es que Cacti le informará de inmediato si una consulta de datos se responde con ciertos datos antes de proceder. De esa manera no terminará con un montón de gráficos en blanco.

Cacti utiliza tres tipos de plantillas XML para propósitos de configuración, datos, gráficos y plantillas de host. Estos permiten a los administradores crear configuraciones personalizadas que pueden ser reutilizadas en múltiples dispositivos. Las plantillas pueden ser aplicadas cuando se crea un nuevo dispositivo, gráfico o host. Las configuraciones pueden incluir valores como ajustes de display para un gráfico o información acerca de cómo los datos son recolectados para cierto tipo de host.

Monitoreo de red, herramientas código abierto, Cacti

Aunque Cacti no requiere de un agente para ser instalado en un dispositivo, el SNMP necesita ser instalado y configurado para poder aprovechar todas las características disponibles en Cacti. Como ocurre frecuentemente con el software de código abierto, Cacti ofrece más opciones para Linux/Unix sin la necesidad de instalar plantillas adicionales. Con el fin de monitorear mejor los servidores Windows, necesitamos instalar plantillas adicionales. Algunos de los tutoriales de terceros en línea son muy buenos, pero hay que anotar que estas no son operaciones de un solo clic y se requiere de mano firme para configurar todo adecuadamente.

Desde la consola de gráficos se puede llamar a cualquier gráfico filtrando por dispositivo, personalizando el rango de fecha y hora, o se puede inclusive hacer una búsqueda. Encontramos esta interfaz muy flexible ya que esencialmente puede mostrar cualquier cosa, desde un gráfico personalizado hasta literalmente miles, sin embargo, mostrar muchos gráficos por página ralentizará el tiempo de carga. El rango de fecha/hora es muy flexible con desplegables que permiten selecciones granulares desde 'los últimos 30 minutos' hasta 'este año'. Se puede hacer zoom en cualquier gráfico así como exportar los valores gráficos a un archivo CSV.

Una característica comúnmente utilizada por los ISP es la medición del ancho de banda, especialmente el uso al 95%, lo cual es como menudo se mide y factura el ancho de banda.

Cacti ofrece gestión de usuario personalizada que permite a los administradores determinar qué información pueden ver los usuarios y también qué acciones pueden tomar desde la consola. Estos elementos incluyen la capacidad de importar/exportar datos, cambiar plantillas y varios ajustes de gráficos. Encontramos que la granularidad es lo suficientemente flexible sin ofrecer muchos ajustes que la vuelvan abarrotada.

En comparación a otros productos que probamos, Cacti es de alguna manera limitado en características. No ofrece un panel de control con estado de infraestructura y alertas, ni tampoco tiene la capacidad de ofrecer alertas. Sin embargo, eso no debería impedirle tomar en consideración a Cacti; pues lo que hace, lo hace bien. La interfaz es eficiente y rápida de navegar, no se necesita esperar minutos para que carguen las páginas. También, sin ningún agente a ser desplegado en los hosts, es un producto de monitoreo que no obstruye y que da a los administradores una buena visibilidad de la topología de la red con poca sobrecarga.

Zabbix

Zabbix es una solución de gestión de red de código abierto lanzada bajo la licencia GPL2 y actualmente está en la versión 2.4. Ofrece una interfaz web para monitorear y almacenar los datos recolectados a una de varias bases de datos comunes como MySQL, Oracle, SQLite o PostgreSQL. El servidor Zabbix por sí mismo corre solo sobre Linux/Unix y no en Windows; sin embargo, hay disponibles agentes Zabbix para la mayoría de servidores Windows y Linux/UNIX, así como sistemas operativos de escritorio.

Monitoreo de red, herramientas código abierto, Zabbix

Instalamos Zabbix usando uno de los muchos paquetes de instalación disponibles. El producto también puede ser instalado compilando el código fuente o descargando un appliance virtual en formatos como VirtualBox, Hyper-V, ISO y VMWare. Además de la instalación regular, también le dimos un vistazo a la VM disponible, una buena opción para aquellos que buscan evaluar Zabbix. La instalación fue sencilla y directa usando las instrucciones disponibles desde el sitio web de Zabbix. En especial nos gustó el paquete de instalación condensada, que requiere solo unos cuantos ingresos de línea de comando, e incluye configuración Apache/PHP/MySQL en la instalación principal, sin necesidad de separar la configuración, a menos que haya circunstancias especiales a considerar.

Cuando se carga la interfaz web por primera vez, hay un pequeño asistente que confirma que los prerrequisitos y la conexión de la base de datos están configurados adecuadamente antes de cargar el panel de control principal. La primera pantalla es el panel de control personal, el cual ofrece una vista general de la infraestructura de TI con una lista de hosts, sistemas y estados de hosts. En una nueva instalación esta pantalla está totalmente en blanco con la excepción de la información relacionada al servidor Zabbix en sí. Este panel de control es personalizable; se puede agregar gráficos preferidos, mapas y pantallas mientras se configura.

Zabbix recolecta datos en tres diferentes formas; al instalar agentes en un host Windows/Linux o al usar una variedad de protocolos como SNMP, ICMP, TCPy SSH. La información básica de la salud de la red también puede ser recogida sobre HTTP y SMTP. Zabbix puede utilizar dispositivos de red de autodescubrimiento, y también tiene la capacidad de ejecutar descubrimiento de bajo nivel. Comenzamos configurando una regla de descubrimiento para mapear nuestra red de prueba. La granularidad de esta configuración es muy buena y se puede especificar rangos IP, protocolos y otros criterios para determinar cómo está mapeada una red. Después de unos cuantos minutos comenzamos a ver una lista de dispositivos, que van desde routers e impresoras hasta servidores y escritorios. El descubrimiento ofrece una vista general de la red, pero no ofrece ninguna información en profundidad hasta que se agrega el host/device individual a la interfaz web. Agregamos varios hosts usando tanto el agente Zabbix para Linux y Windows, juntos con unos cuantos utilizando SNMP.

Instalamos los agentes usando un comando sencillo en nuestros hosts Linux. Hay algunas opciones de configuración que pueden ser ajustadas en el archivo de configuración 'zabbix_agentd.conf', como el servidor IP y el nombre de servidor junto con otras opciones personalizadas. Los agentes pueden ejecutar revisiones pasivas, cuando determinados datos (uso de memoria, espacio en disco, ancho de banda) son sondeados esencialmente desde el servidor Zabbix; pero también se pueden ejecutar revisiones activas, cuando el agente retorna una lista de tareas desde el servidor y envía datos actualizados al servidor periódicamente. El servicio de instalación como Windows también es bastante directo, usando un ejecutable y haciendo algunos ajustes a un archivo de configuración para permitir a Windows conocer dónde reside el servidor Zabbix.

Monitoreo de red, herramientas código abierto, Zabbix

La interfaz web es un poco compleja y luce intimidante al comienzo, pero una vez que uno se familiariza más con las diferentes pantallas y la terminología, la encontramos fácil de navegar. También quisiéramos que las fuentes y los gráficos fueran un poco más prominentes, ya que cierta información puede ser difícil de leer. Una de las características que nos gustó es el historial dinámico de enlace que muestra qué sección ha sido usada recientemente, permitiéndole navegar rápidamente de regreso. El manual de usuario en línea es comprehensivo y está actualizado, y el sitio web de Zabbix tiene un montón de información extensa sobre las funciones, instalación y opciones de configuración.

Los administradores pueden usar tanto las plantillas incorporadas o pueden crear sus propios activadores para construir reglas que envíen mensajes o ejecuten comandos cuando se cumplen ciertas condiciones. Por ejemplo, creamos una regla que nos enviaba un mensaje cuando había un problema general con uno de los hosts y también reiniciaba el agente en ese host. Las reglas ofrecen un montón de granularidad y ésta fue una de las pocas áreas en las que deseamos en que el manual en línea tuviera un poco más de detalle acerca de las opciones de configuración.

La mayoría de los reportes son en pantalla con la posibilidad de ser impresos. La opción de impresión esencialmente muestra lo que está en la pantalla, excepto la cabecera de navegación y otra información extraña. Esta no es necesariamente una mala configuración, pero no tiene el diseño más elegante. Nos hubiera gustado ver algo como 'Guardar como PDF' y capacidades de exportación. Dicho esto, los reportes en línea y los gráficos son excelentes, con múltiples opciones de personalización. Como mencionamos anteriormente, los gráficos personalizados y las pantallas pueden ser añadidas al panel de control principal y pueden ser llamados con un simple clic.

Zabbix es completamente código abierto. No hay una versión Enterprise pagada. Esto significa que todo el código fuerte es código abierto y disponible, lo cual debería ser atractivo tanto para pequeñas como para grandes empresas. Aunque Zabbix no ofrece una versión comercial separada, los contratos de soporte comercial están disponibles en cinco diferentes niveles que van desde 'Bronce' hasta 'Empresarial'. Zabbix también ofrece servicios pagados como integración, soluciones llave en mano y consultoría general.

Icinga

Creado inicialmente como una adaptación de Nagios en el 2009, la más reciente versión de Icinga ha sido desarrollada por el fabricante "libre de las limitaciones de una versión adaptada. La versión 2 cuenta con nuevas reglas, formato de configuración basada en objetos. Icinga aún es código abierto bajo GPL y la versión actual incluye versiones Core y Web 1.11.x junto con una versión 2.x. Icinga puede monitorear dispositivos tanto en Linux como en Windows, pero el servidor en sí corre solo en Linux. Debido a que la GUI 2.x Web aún estaba en beta, instalamos la versión de núcleo 2.x y usamos la más reciente versión 1.1x como la GUI Web.

Monitoreo de red, herramientas código abierto, Icinga

Icinga tiene un diseño modular en el que se selecciona el servidor núcleo, la GUI de su elección y se agrega cualquier plug-in deseado, como herramientas de informes y gráficos. Nosotros instalamos el servidor básico usando solo dos comandos. En general, encontramos buena la documentación de Icinga en línea. Sin embargo, una guía de inicio rápido hubiera sido de ayuda, ya que no hay guía de inicio acerca de cuáles de los muchos archivos de configuración deben ser ajustados, incluso para una instalación básica.

Determinamos que necesitábamos una base de datos MySQL o PostgreSQL para correr la interfaz web; además también se requería Apache o NgingX más PHP. Hay unos cuantos pasos implicados en este proceso de instalación y configuración, dependiendo de cuántos archivos incrementales de actualización estén disponibles para el módulo Icinga 2DB IDO y también cómo el servidor web es configurado. Fuimos por la lista de comandos y después de algo de prueba y error pudimos tener acceso a la GUI Web desde un navegador.

Después de loguearse, una especie de panel de control general se muestra con la navegación organizada en grupos a la izquierda; Incinga los llama 'cronks' con la parte principal de la pantalla usada para mostrar información. A lo largo de la parte superior hay una sección que ofrece una vista general de la infraestructura usando cuentas de códigos de colores, mostrando los hosts saludables en verde, los de advertencia en amarillo, los problemas críticos en anaranjado y los hosts que no están disponibles, en rojo.

Icinga maximiza el uso de la mayoría de pantallas, e incluso si la primera impresión es un poco desordenada, encontramos que la navegación y organización de los datos es intuitiva. Muchas de las pantallas están basadas en listas, mostrando información acerca de los hosts y los problemas de los hosts ordenados por diversos criterios, como la disponibilidad, duración de la caída o la severidad del problema. Icinga ofrece la capacidad de ordenar cada lista de forma ascendente o descendente en cada columna, algo que nos pareció muy útil. Asimismo, se puede seleccionar qué columnas mostrar para cada lista sobre la marcha, esto ofrece un agradable nivel de personalización.

Icinga aprovecha varios protocolos comunes para monitorear la infraestructura de red, desde comandos simples de PING hasta SNMP, POP3, HTTP y NNTP. La información también puede ser reunida desde otros dispositivos como sensores de temperatura y otros dispositivos accesibles por red. Configurar qué hosts monitorear y qué monitorear se realiza usando los archivos de configuración. La granularidad a la cual se puede configurar es abrumadora. La sección 'Monitoreo básico' del manual de usuario tiene 50 páginas. Felizmente, se pueden usar plantillas y definiciones re-utilizables para ejecutar este proceso.

Monitoreo de red, herramientas código abierto, Icinga

Para nuestro entorno definimos unos cuantos hosts enlazando un nombre a la dirección IP y luego agregando lo que se conoce como 'comandos de revisión'. Estos son esencialmente definiciones de protocolo como PING y HTTP, que instruyen a Icinga qué monitorear para cada host. Luego se puede expandir estas configuraciones para incluir qué tan frecuentemente consultar un host, cuándo elevar las advertencias y cuándo enviar notificaciones de e-mail sobre problemas pendientes.

Los archivos de configuración son el núcleo de Icinga; contamos 14 archivos principales y algunos de ellos incluyen archivos adicionales para configuraciones más específicas. Algunos archivos de configuración pueden ser dejados sin valores por defecto, pero otros deben ser configurados específicamente para el entorno, como los hosts, las direcciones de e-mail para notificaciones y los servicios de activación/desactivación usados para el monitoreo de hosts. Los archivos de configuración pueden ser modificados/creados usando un editor como VI o nano, pero también hay disponibles add-ons de configuración, además de herramientas de terceros tales como Chef y Puppet. En futuras versiones, Icinga agregará la capacidad de configuración vía GUI, API, así como CLI, algo que sería de ayuda para elementos que requieren cambios sobre la marcha, como cambiar las configuraciones de hosts.

Icinga ofrece soporte nativo para Graphite para propósitos gráficos y está disponible un módulo de Informes Icinga; está basado en los Reportes Jasper de código abierto.

No hay disponible una versión pagada de Icinga, pero hay varias organizaciones a nivel mundial que ofrecen soporte pagado en diferentes niveles. Icinga también organiza varios campamentos cada año en los que los usuarios, desarrolladores y patrocinadores se juntan a discutir las mejores prácticas y las metas de desarrollos futuros del producto.

Monitoreo de red, herramientas código abierto
Conclusión

Cuando se seleccionan herramientas de monitoreo es importante tener la meta clara desde el inicio. ¿Se está buscando solo enviar un ping a cada dispositivo cada 15 minutos para asegurarse de que responden? ¿O requiere de información más completa como el uso de la CPU, RAM, disco y ancho de banda? Instalar agentes y configurar SNMP para acceder a funciones más avanzadas debería evaluarse, ya que eso puede ser una tarea que consume tiempo lo cual puede no ser práctico en las organizaciones más grandes. Un enfoque trabajable híbrido podría ser instalar agentes en dispositivos críticos que necesitan monitoreo en profundidad, mientras que se monitorean otros dispositivos en modo sin agente.

Susan Perschke es la CEO de Arc Seven Technology, que ofrece hosting web gestionado y servicios de desarrollo de aplicaciones personalizadas.