La historia de Pandora FMS

Desde nuestros humildes inicios, Pandora FMS ha superado desafíos que nos han fortalecido y guiado hacia el crecimiento. Cada obstáculo se convirtió en una oportunidad para innovar, y hoy, gracias a nuestro esfuerzo y dedicación, seguimos avanzando con la misma pasión que nos inspiró desde el comienzo.

Un relato por Sancho Lerena

CEO y founder de Pandora FMS

Sancho Lerena

Corría el año 2001. Yo tenía veinticinco años y era un fanático de Linux.

Trabajaba en AOL Spain como técnico de producción en el departamento de comunicaciones y seguridad, aunque mi experiencia era sobre todo con firewalls Checkpoint, también aprendí mucho de networking puro con equipos de Cabletron y Cisco.

Mi trabajo en aquel entonces consistía en configurar y gestionar todo el entorno de red de producción. Era un CPD entero, con cientos de equipos Unix, Windows y equipos de red de alta gama. A pesar de que el equipo de operación utilizaba HPOpenview, era imposible tener una foto ni un «mapa» de todo.

Gracias a mi background en seguridad y en entornos Linux, me hice un hueco en el equipo por mi habilidad de explorar redes, entrar en sistemas y mapear lo que había de forma lógica.

En esa época descubrí que no había ninguna herramienta decente para monitorizar entornos heterogéneos con una topología de red compleja

Gestioné varios pilotos de implantación de herramientas de recolección y centralización de eventos (SEM, SIEM).
De esa experiencia aprendí mucho.

Utilicé mucho MRTG y elaboré scripts con RRDTool, con los que pintaba gráficas de los principales sistemas de comunicaciones (routers, equipos RAS de alta gama, conectividad entre VPN, firewalls, etc), cosas que OVO no hacía o no quería hacer ya que parecía complicadísimo hacer cualquier cambio.

Luego entré a trabajar en BBVA. Allí mis labores estaban más ligadas al mundo de la seguridad en sistemas y tomé contacto serio con AIX y Solaris. Las herramientas que se usaban para monitorizar de forma corporativa eran todas las de las Big4: tenían de todo, pero era un entorno muy fragmentado. La división de departamentos estaba orientada a un binomio de sistemas o comunicaciones y cada equipo de trabajo estaba orientado de forma diferente, por lo que usaban herramientas diferentes y metodologías diferentes.

Desde seguridad, tampoco tenía acceso a ninguna de esas herramientas por lo que para monitorizar mis sistemas (Firewalls, IDS, entornos Unix, entornos Windows, etc.) no me quedó mas remedio que explorar nuevas vías.

Pandora FMS History

Me hice especialista en técnicas de firewall piercing que luego me sirvieron para entender cómo superar los problemas de topologías de red complejas, aplicándolos a lo que hoy son partes del diseño de la arquitectura de Pandora FMS

RRDTool approach

Necesitaba gráficas potentes y poder agregar datos de diferentes fuentes en informes. Era vital relacionar cosas y poder compararlas, establecer umbrales y generar alertas.

Intenté implantar Nagios, pero la debilidad de sus agentes y lo rígido de su concepción de la monitorización no me encajaba. En esa época para nosotros era más importante obtener datos de rendimiento que no únicamente estados. Necesitaba poder ejecutar pruebas complejas -ya que ningún entorno era estándar- y poder recoger información desde los sistemas. La gran mayoría de las veces no había acceso directo a la maquina que monitorizaba, así que tenia que instalar agentes que contactaran «a ciegas» conmigo u otro sistema intermedio.

Por mi experiencia en herramientas de colección de logs y eventos había visto que todos los sistemas basados en agentes se estrellaban debido a sus rígidos requisitos; basados en máquinas Java recientes o distribución de paquetes binarios. En muchos entornos de producción, era imposible actualizar versiones, instalar paquetes en el sistema o instalar cosas como superusuario. Nagios ni siquiera se acercaba a lo que necesitaba. Desde entonces me volví a encontrar muchos sistemas con uptimes de varios años a los cuales nadie quería o podía meterles mano.

El padre de Pandora FMS:

ARENA

El primer concepto de software que integró nuestras necesidades lo llamamos «Arena» y era un entorno que recogía datos que enviaban unos precarios agentes escritos en KSH.

Esos datos ni siquiera estaban normalizados, se enviaban en texto claro separados por líneas punteadas «—-«. El servidor era un desarrollo en Perl que hizo un compañero del departamento de seguridad lógica (Juan H.) y el frontal en PHP que desarrollé yo fue mi primer código PHP.

Yo conocía algo de programación web de trabajos anteriores, aunque mi experiencia era muy escasa y con paradigmas muy antiguos (Programación en CGI en C y HTML rudimentario en servidores Netscape). También fue mi primer contacto con MySQL, ya que mi único background en bases de datos era Sybase.

El nacimiento de Pandora FMS

Las necesidades fueron creciendo y la arquitectura y diseño no cuadraban. Por otro lado mi compañero Juan H. se desvinculó del proyecto Arena y me planteé rehacerlo de cero con otro diseño.

Ahí nació Pandora, a finales del año 2002.

Todavía era un hobby que rellenaba mis horas muertas, que en esa época eran muchas porque todavía no tenía hijos.

Con ayuda de un compañero (Sergio I.) hicimos el primer agente de Windows, basado en Windows Scripting Host y programado en VBScript. Sobra decir que no era ni la sombra de lo que sería años después, de hecho planteaba muchísimos problemas.

Yo mismo desarrollé desde cero el servidor, usando Perl. Nunca había hecho un proyecto serio con Perl, mi experiencia se limitaba a C y Turbo Pascal, donde sí había hecho cosas mas grandes.

Sin embargo, logré desarrollar en Pearl pequeños scripts, muy relacionados con auditoría de sistemas y herramientas de fuerza bruta, escaneo de redes y auditoría. Parte de algunos de esos códigos se integraron luego en Pandora como Goliat, el motor de transacciones sintéticas WEB. Aún así, mi experiencia con Perl en ese momento era bien escasa.

Poco a poco, y con la ayuda de algunos amigos fuimos creando algo, con una documentación para ir tirando, y fui enseñando el proyecto a compañeros de trabajo y conocidos que gracias a su feedback e ideas fueron dándole forma.

Internamente, en el banco empezaba a ser una herramienta útil para tener una foto exacta de algunos sistemas de seguridad, sobre todo firewalls Checkpoint y entornos AIX.

El proyecto inicial se llamaba “Pandoramon”.

line chart
Pie chart

Es importante aclarar que el código de los agentes, la consola y el servidor partieron desde cero, nunca tomé nada prestado de proyectos como Nagios. Algunas personas han dudado de esto último y gracias a que todo el código está publicado desde el origen de los tiempos, se puede ver perfectamente que la arquitectura actual es heredera de esas primeras versiones de Pandora FMS.

Pandora FMS como empresa

En 2002 había intentado montar una empresa basada en un software que habíamos desarrollado para tele vigilancia por internet para guardias (BabyCam), y en 2004 una empresa de consultoría de seguridad (Ip4All) pero ninguna llego a cuajar.

A mediados de 2005 me planteo vivir profesionalmente de Pandora, ofreciendo servicios de auditoría de redes, desarrollo a medida, instalaciones de software de seguridad, etc. En este punto todavía no existe el concepto de “versión Enterprise”.

El modelo de negocio está basado en ofrecer servicios alrededor de dos productos base: Pandora y Babel. Babel era otro software con una filosofía similar, orientado al hardering de sistemas y cuadros de mando de seguridad.

Junto a David Villanueva –un antiguo compañero de trabajo-, decidimos montar Artica. Dejé mi estupendo trabajo como consultor senior especialista en el banco. A partir de este punto todo va cada vez más rápido, Ártica Soluciones Tecnológicas se funda oficialmente en Noviembre de 2005.

Los primeros inicios son duros, y Pandora no deja de ser una anécdota para mis primeros clientes. Me dedico a observar sus necesidades y aprender de los problemas reales en diferentes entornos, siempre ligado al mundo de la seguridad.

Una de las primeras cosas que hicimos fue renombrar el proyecto a Pandora. A finales de 2006 le añadimos la coletilla FMS ya que “Pandora” era excesivamente genérico.

Los primeros años, Pandora tuvo un desarrollo muy lento, ya que no era un software como tal, sino un proyecto puramente “Free” que servía para introducirnos en proyectos de consultoría de seguridad. Conjuntamente desarrollábamos Babel Enterprise y no fue hasta principios de 2006 que ingresó el primer programador profesional en plantilla: Esteban Sánchez. Él empezó a trabajar full-time en Pandora FMS. 

Alguien nos dio un sabio consejo: Free Monitoring System era una manera muy mala de intentar vender (Free=Gratis). Por ello para la F, escogimos la principal cualidad de Pandora y muy relacionada con el logo original (un pulpo): F de Flexible.

Durante los primeros años, Esteban y yo fuimos los primeros programadores, hasta que en Noviembre de 2007 se incorpora Ramon Novoa, que fue junto con Esteban, quienes empezaron a hacer de Pandora un producto de software de verdad. En esta época teníamos colaboraciones de diversas personas, una de las más importantes, Guruevi de Nueva York y otras personas de Sudamérica, Nueva Zelanda y Japón.

Como nota curiosa, todos los proyectos de software libre escogen un animal, el nuestro fue un pulpo. Puedes ver más información sobre la historia del logo en nuestro blog.

Pandora FMS hoy día

Según datos de openhub.net a fecha de Noviembre 2015, Pandora FMS tiene 11,000 commits hechos por más de 50 personas, con un total de 413,000 líneas de código desarrolladas en PHP, Javascript, Perl, C++, C, Shellscript y Java. En Sourceforge hay registrados aproximadamente un millón de descargas.

Han sido muchas versiones, parches y actualizaciones las que en los últimos 12 años han transformado lo que en sus orígenes era un proyecto de un simple técnico para resolver problemas técnicos. Gracias a la colaboración de decenas de programadores, técnicos de sistemas, usuarios y clientes, hoy día Pandora FMS es una herramienta profesional de monitorización y gestión de grandes entornos.

Como “Padre” de la criatura, sólo puedo decir: ¡Gracias a todos por traernos hasta aquí!

roadmap-img

Resumen de versiones de Pandora FMS a lo largo de su historia

Null

Primera versión pública: Pandora v0.8.1 (2004)

Hasta Agosto de 2004 no liberamos nuestra primera versión de forma pública, era la versión 0.8. En ese momento el equipo de desarrollo éramos tres personas: Yo, Sergio I. que llevaba parte del agente inicial VBScript para Windows y Raúl M. que ayudaba en diferentes tareas, no relacionadas con código.
En esta época, el proyecto se llamaba “Pandoramon” en Sourceforge (porque Pandora ya estaba cogido).

La primera versión incorporaba únicamente funcionalidades relativas a los agentes (no tenía monitorización remota de ningún tipo) y su interfaz era bastante básica por decir algo. Tampoco tenía ni eventos. Las gráficas eso sí, eran bastante decentes. El modelo de datos quizás es lo que menos cambios ha sufrido de todo aquello, ya que no queda ni rastro del código original.

Hasta la versión 1.0 no empezamos a usar CVS: un sistema de control de versiones. Puede chocar, pero el hecho es que ninguno de los que estábamos vinculados al proyecto veníamos del mundo de desarrollo, sino de redes y sistemas. El hecho es que en este punto el proyecto era totalmente “Amateur”.

Pandora v1.x (2004-2007)

En esta versión “las cosas se estaban poniendo serias”. Esta versión incorpora sistema de ACL’s de usuarios.

Empezamos a usar Subversion para gestionar el código. Primera versión del agente en C++, desarrollada por Esteban S., se descarta el agente que teníamos en VBScript. Se incorpora la monitorización remota y recepción de traps SNMP.

Se incorporan informes, gráficas combinadas, recon server e informes personalizados. Plantillas de módulos y de máquinas, para el recon server. Hay un cambio visual importante, que hace que empiece a ser tomada “en serio”.

Pandora v2.x (2008-2009)

Creamos el protocolo Tentacle. Introducimos el export server. Tentacle (Un protocolo de transferencia de archivos propio con puerto asignado por IANA, 41121/tcp) supuso un antes y un después a la hora de facilitar la vida a la hora de instalar agentes.

En la versión 2.x se intentó hacer una versión del servidor en C pero no llegó a cuajar y continuamos trabajando en la de Perl. Visto con perspectiva, podemos decir que fue una gran decisión. El principal cuello de botella del servidor es la interacción SQL no las operaciones internas.

Pandora v3.x (2010-2011)

Primera versión “Enterprise”. Dispone de edición remota de configuraciones de los agentes, informes PDF y algunas otras funcionalidades. Tenemos clientes monitorizando entornos de unos 2000 agentes.

Pandora v4.x (2012-2013)

Nació el agente para Android® para recoger datos de lo que para entonces era toda una novedad: el Sistema de Posicionamiento Global, mejor conocido por sus siglas GPS para la funcionalidad GIS PFMS. También incursionamos en el almacenamiento de datos en Oracle® y PostgreSQL® aunque MySQL® sigue siendo la opción por defecto. La integración con Pandora ITSM (en aquel entonces Integria IMS) fue incluida en esta versión.

Pandora v5.x (2014-2015)

Pasamos a GIT el proyecto, desde SVN. Introducimos el Satellite server. Gracias al satélite logramos en algunos entornos específicos una tasa de 500 chequeos por segundo, una barbaridad y además de forma distribuida y sin conexión bidireccional, lo que llamamos “headless” monitoring.

Pandora v6.x (2016)

Introducimos el metadirectorio de agentes, control remoto de escritorio integrado (con Pandora RC), gestión remota de servidores y satélites, mejoras en los dashboard, monitorización dinámica y Mejoras en la monitorización predictiva.

Pandora v7.x (2016-2024)

En esta versión apodada New Generation (NG) se introdujo el proceso Rolling Release para brindar a los clientes las actualizaciones de último momento, abandonando así el modelo de entregas denominados Service Pack.

En 2024, la versión 7.X de Pandora FMS supuso un avance significativo, integrando cambios esenciales como el uso exclusivo de MySQL® versión 8 y PHP versión 8. La interfaz de la Consola web fue completamente renovada, acompañada de mejoras internas que refuerzan la monitorización de la seguridad, la gestión de inventarios de hardware y software mediante Pandora ITSM, y la reescritura completa de funcionalidades clave como “Discovery PFMS .disco” y “Remote Monitoring and Management server” (RMM). Estos avances fueron posibles gracias al esfuerzo conjunto de un equipo de desarrollo, pruebas y documentación altamente comprometido, así como al valioso feedback de nuestra amplia base de clientes, atendidos de manera ejemplar por nuestro departamento de soporte. Todo ello ha consolidado a Pandora FMS como una solución profesional, fiable y lista para centralizar operaciones en los entornos de monitorización más exigentes, con el respaldo del Command Center.