Ya os expliqué hace poco la ventajas que tienen las plataformas tipo UNIX para saber en todo momento el estado del sistema. Pues bien, en el artículo de hoy vamos a avanzar un paso más. Vamos a analizar diferentes alternativas de monitorización de plataformas, ya sean GNU/Linux, UNIX u otras, incluso privativas. Pero antes de nada, ¿Qué es la monitorización?
Concepto de monitorización
Ya usemos el término monitoreo o monitorización, nos venimos a referir, generalmente, a saber o ser consciente del estado de un sistema, observando una situación de cambios que se pueda producir con el tiempo. Para detectarlo se precisa un monitor o dispositivo de medición de algún tipo. En nuestro caso, nos vamos a referir a la monitorización de redes, servicios y servidores, englobados todos ellos en lo que se conoce como administración de sistemas informáticos.
Una vez que ha quedado claro este concepto también hay que tener en cuenta, para este artículo, que los productos que se van a mencionar cumplen con un requisito básico: utilizan la filosofía de desarrollo de código abierto, además de licencias de softare libres. Por otra parte, el orden de los productos en la entrada no implica, en ningún caso, ningún tipo de ranking ni nada que se le parezca. El fin del artículo es daros a conocer diferentes alternativas que, en algún momento, os puedan ser de utilidad.
He excluido del artículo productos que, aunque también se pueden considerar de monitorización, no son un producto «total» que incluya monitores, gráficas, envíos de alarmas por correo -o por otro medio- ni otras características. Ejemplos así serían Cacti o Grafana. Mi idea es hablar de ellos, pero en otro artículo. En esta parte sólo hablaré de los productos con los que he trabajado en algún momento. Y siempre se puede enriquecer la entrada con vuestros comentarios.
Al final del apartado de cada plataforma habrá una imagen de muestra, el enlace a la web oficial del producto y un enlace a mi web personal con la serie de artículos que he dedicado al producto en cuestión durante todos estos años.
Nagios
Se trata de un sistema veterano de monitorización de redes y servidores, quizás el más utilizado. Se encarga de vigilar los equipos (hardware) y los servicios (software) que se especifiquen, alertando cuando el comportamiento no es el deseado. Puedo monitorizar la mayoría de servicios, ya sea de correo (SMTP, POP3, IMAP), web (APACHE, NGINX, TOMCAT), los recursos de sistema de hardware (uso de disco, memoria, puertos, procesador, etcétera). Además puede realizar todas estas tareas independientemente del sistema operativo o la mayoría de hardware (servidores físicos, plataformas de virtualización, switches, routers y una larga lista).
Para su funcionamiento utiliza diferentes agentes. Los más destacados son NRPE, NRDP, NSClient++ y NCPA. También utiliza el protocolo de red SNMP.
Utiliza una licencia libre GPL v2. Existen dos versiones, la Core, gratuita, y la Nagios XI, de tipo empresarial, o sea, de pago.
Web oficial de Nagios y artículos al respecto en mi sitio web personal.
Icinga
Se trata de un fork de Nagios iniciado el año 2009 por un grupo de desarrolladores de la comunidad que no estaban satisfechos con el desarrollo del producto. Es un sistema de monitorización que añade más funcionalidades al “viejuno” Nagios, entre las que encontramos una moderna interfaz web, más adaptada a los tiempos. También incorpora conectores adicionales para bases de datos (MySQL, MariaDB, Oracle o PostreSQL). Otra importante mejora es una REST API, para que los desarrolladores puedan crear nuevas extensiones.
Es la plataforma con la que más he trabajado, con permiso de Nagios. Es muy versátil y potente. Además permite monitorizar perfectamente nuevas tecnologías emergentes, como Docker y la ya consolidada virtualización. Incluye un potente módulo llamado “Director” que nos permite realizar la mayoría de tareas desde su interfaz web, una vez ya tenemos la plataforma instalada y configurada. También se integra perfectamente con gran cantidad de sistemas de generación de gráficas, como Grafana, pnp4nagios o Graphite.
Utiliza una licencia GPL v2.
Web oficial de Icinga y artículos al respecto en mi web personal.
Zabbix
Es un sistema de monitorización muy popular para controlar las redes. Está diseñado para controlar los estados de varios servicios de red, servidores y maquinaria (hardware). Entre sus principales características encontramos chequeos simples de sistemas para verificar su disponibilidad y su nivel de respuesta. Permite la instalación de agentes en la mayoría de sistemas. Además, nos ofrece una alternativa a la instalación de agentes, utilizando desde los protocolos SMTP, TCP o ICMP, hasta otros como el clásico Telnet. Incluye mecanismos de notificación en tiempo real como, por ejemplo, XMPP (Jabber).
A nivel funcional destacan: posibilidad de controlar cientos de miles de servicios y dispositivos, auto descubrimiento y servicios de red, monitorización con o sin agentes o distribuida, administración web centralizada, notificación de eventos… y más.
El producto utiliza una licencia GPL v2.
Web oficial de Zabbix y artículos al respecto en mi web personal.
PandoraFMS
Se trata de un sistema pensado para gestionar infraestructuras de IT. Esto incluye equipos de red y servidores, tanto de la familia UNIX como Microsoft Windows, infraestructura virtualizada y todo tipo de aplicaciones, incluyendo algunas populares, como SAP. De hecho, además de poder saber si una interfaz web se ha caído, también nos avisará de un ataque contra una web corporativa, una pérdida de memoria en un servidor de aplicaciones o, incluso, movimientos concretos en el mercado de valores.
Trabaja muy bien con los dispositivos de red, utilizando el lenguaje propio de estos elementos (SNMP). También puede procesar las estadísticas Netflow ofrecidas por los routers. Podemos configurar todos los dispositivos mediante unos pocos clicks.
Web oficial de PandoraFMS y artículos al respecto en mi web personal.
Monit
Se trata de una herramienta para la monitorización de procesos en sistemas UNIX y UNIX-like, como GNU/Linux o *BSD. Con él podemos ver el estado de un sistema ofrecido directamente desde el intérprete de comandos, o vía un frontend web. Si utilizas Ruby on Rails y el servidor web Mongrel es bastante probable que ya hayas trabajado con él. Muchos productos populares como Twitter lo emplean.
Web oficial de Monit y artículos al respecto en mi web personal.
Conclusiones
Desde el campo del software libre y el código abierto existen un sin fin de posibilidades. Sólo debemos encontrar la que nos sea más útil según nuestras necesidades, aunque Colaboratorio siempre recomienda las opciones libres. Todas las plataformas y herramientas que he mencionado son recomendables.
Quizás Monit es la menos potente, pero es genial para controlar proyectos de desarrollo ya que apenas utiliza recursos del sistema. Desde mi experiencia Nagios, el producto más veterano, con más años a sus espaldas, con más documentación en la red y con una gran comunidad de usuarios detrás, es el más completo. Quizá la pega que le veo es que la versión Core está muy limitada, sobre todo si se compara con la versión de pago Nagios XI.
Icinga, desde mi punto de vista, es la más completa, ya que incorpora todo el poder de los plugins de Nagios junto a una intuitiva y potente interfaz web. Sin mencionar la cantidad de plugins gratuitos que aumentan sus funcionalidades. Zabbix, esto es una opinión mía, es ideal para controlar toda la infraestructura de red, pero creo que su configuración es compleja comporada con la de las otras plataformas.
PandoraFMS es un producto con un importante crecimiento, pensado para que sea fácil de gestionar. Además la versión de pago incluye un fabuloso servicio de atención al cliente.
Me gustaría saber vuestra opinión.
Concuerdo contigo, sin duda Nagios es el referente máximo en este campo. En mi caso particular no lo digo por experiencia, no suelo usar estas potentes herramientas; no obstante, cuando busco información sobre el tema, Nagios siempre aparece como la más robusta y solicitada. Las demás mencionadas algunas no están muy por detrás de Nagios.
En un tiempo supe utilizar Netdata (https://github.com/firehol/netdata), no está nada mal esta herramienta, aunque después de un tiempo volví a los clásicos htop y similares. Es mucha información para un simple usuario como yo -y hay que saber analizarla-.
Tendré en cuenta las recomendaciones, saludos.
Buena comparativa. Dudaba entre Nagios y Pandora, pero finalmente nos hemos quedado con Pandora, el soporte es muy bueno y además en Español.
Saludos.