Una de las características más interesantes de Nagios (y todos sus forks) es la capacidad de integrar cualquier plugin. Un plugin no es más que un script o aplicación que nos devuelve un resultado en un formato determinado.
Veamos pues que podemos hacer y cómo. Así que vamos por partes:
1. Análisis de necesidad. Lo primero que debemos hacer es analizar la necesidad real de monitorización de un elemento cualquiera. Es muy importante saber si lo que vamos a monitorizar realmente nos aporta algo más que mera información. Añadir elementos a monitorizar por el simple hecho de añadirlos no nos va a solucionar la vida, más bien lo contrario nos puede llegar a dificultar el trabajo del día a día. Por ejemplo: Tenemos una base de datos de Cache Intersystems. Esta base de datos incorpora parte del corazón del negocio. Por otra parte no disponemos en el departamento de un experto en administración de esta plataforma, con lo cual tenemos contratados unos servicios. Como deberemos nosotros abrir incidencias con el proveedor de servicios, y no disponemos de un conocimiento de la plataforma, en este caso si valoramos positivamente monitorizar.
2. Análisis de monitorización. Ahora que tenemos claro la necesidad, vamos a analizar que queremos monitorizar. Lo primero que hay que analizar son las herramientas donde el departamento de TI introduce las incidencias. Solo con este análisis veremos que nos interesa monitorizar. El objetivo es monitorizar los elementos de la plataforma que nos generan incidencias, o que son de vital importancia para el negocio. Seguimos el ejemplo anterior: Para nuestro negocio Cache Intersystems es una pieza angular. Muchos usuarios acceden a esta base de datos, y como dispone de un sistema de licencias, y sabemos que nos movemos en el límite (si no es así es que algo no está bien) monitorizaremos su uso. Por otra parte analizando las incidencias de los últimos meses nos damos cuenta de que muchas veces nos hemos quedado sin espacio, pero no en el disco, si no en la base de datos (tenemos programado un crecimiento manual), este es otro elemento a monitorizar.
3. Cómo vamos a monitorizar. Una vez que sabemos qué vamos a por el cómo. Aquí es de vital importancia conocer la tecnología que vamos a monitorizar. Podemos leer guías, buscar información, ponernos en contacto con proveedores o directamente con el fabricante. Solo si conocemos lo que queremos monitorizar podemos hacerlo correctamente. En nuestro ejemplo: Cache Intersystems dispone de ODBC (y otras formas de conexión a la base de datos), SNMP, incluso XML que nos devuelven el estado de la plataforma. Averiguamos que activar el SNMP una vez la plataforma está en funcionamiento puede requerir su reinicio (algo molesto para el negocio), pero averiguamos que con XML no hace falta detener el servicio (y requiere de menos trabajo para el administrador). Así pues nuestra elección es monitorizar por XML.
4. Busca si ya existe algo. Parece evidente que cuando ya sabemos qué y cómo que busquemos si ya existe algo. A veces hacemos las cosas al revés, primero miramos que hay para luego ver que nos ofrece, y eso es un error, siempre acabaremos monitorizando cosas que no nos sirven y no tendremos lo que necesitamos. Ejemplo: Para Cache Intersystems no existe un plugin que acceda al XML y nos permita recoger valores de espacio de bases de datos o uso de licencias. Queda claro que pasa por hacer algo en este caso.
5. Seleccionamos tecnología para nuestro plugin. Bien, aquí tenemos varias opciones. De entrada explicar que cualquier tecnología nos puede funcionar bien, pues la única condición es que nos devuelva la salida en un determinado formato. Ruby, PHP, Perl, scripting, C, lo que queramos. Pero vamos a tener en cuenta un par de cosas: la primera es que nuestro entorno de instalación será muy probablemente una distribución Linux, con lo que usar ASP por ejemplo no es una muy buena elección. La segunda consideración es que Nagios usa Perl, con lo que en la mayoría de los casos el servidor donde vayamos a instalar el plugin ya lo tendremos preparado. Si nos decidimos por escoger por ejemplo PHP deberemos tener las herramientas para PHP instaladas. En nuestro ejemplo: nos decantamos por Perl, ya que ya lo tendremos instalado en el servidor y además dispone de un tratamiento fácil para XML.
Bueno ahora que tenemos claro lo que necesitamos y como lo necesitamos, solo nos falta ponernos manos a la obra.