Cómo añadir un sensor/sonda/módulo a un agente (equipo, dispositivo) desde otro equipo externo mediante broker agent en el sistema de monitorización Pandora FMS. Esto nos permitirá, por ejemplo, monitorizar determinados módulos desde un equipo y aplicarlos a un agente diferente. Por ejemplo, en este estudio de caso monitorizaremos el estado de un sitio web desde un equipo externo a la red LAN (Internet) y aplicaremos dicho módulo/sensor/sonda en el propio agente servidor web.

Requisitos para monitorizar módulo/sensor/sonda en equipo externo para otro agente en Pandora FMS

A continuación, enumeramos los requisitos para añadir una sonda/sensor a un agente (equipo) desde otro equipo externo.

Equipo con Pandora FMS Server

Necesitaremos disponer del sistema de monitorización Pandora FMS. En los siguientes artículos explicamos cómo desplegarlo (en docker o en equipo Linux):

Agente receptor del módulo/sonda/sensor en equipo con Pandora FMS Server

Por otro lado, en el sistema de monitorización Pandora FMS, tendremos añadido el agente (equipo, dispositivo) al que aplicaremos el módulo (sensor, sonda) que crearemos en otro equipo de fuera de la red. En este estudio de caso, usaremos el agente «srvproyectoa». Muy importante anotar el nombre exacto del agente en Pandora FMS Server, que será el que usemos en el fichero de configuración para añadirle el módulo (lo explicaremos más adelante). En este caso se trata de un servidor web con Nginx.

En dicho agente, tendremos monitorizados los módulos (sensores, sondas) habituales: uso de RAM, uso de CPU, uso de disco, ping, conexiones TCP, uso de RAM de proceso ngix, uso de RAM de BD MariaDB, etc.:

El objetivo de este tutorial será añadir un nuevo módulo a este agente: Estado_Web. Añadiremos este módulo desde otro equipo externo (lo explicaremos más adelante).

Añadir regla de acceso en cortafuegos y regla de NAT en router o cortafuegos

En este caso, dado que el equipo que obtendrá el módulo/sonda/sensor Estado_Web estará fuera de la red LAN de la organización, si disponemos de cortafuegos y router, tendremos que crear una regla para permitir el acceso a nuestra IP pública (proporcionada por nuestro proveedor de servicios de Internet) por el puerto 41121 (el puerto estándar de tentacle, que es el servicio que usa Pandora FMS para el envío de los datos).

Por lo tanto, en el cortafuegos, crearemos una regla de acceso para permitir el tráfico desde la IP pública del equipo externo (muy recomendable por seguridad limitar el acceso únicamente a una IP pública), para el puerto de Pandora (41121 o el que hayamos establecido) y la IP pública de nuestra organización asignada para el servicio de Pandora:

Probablemente, también necesitaremos disponer de un regla de NAT (sea en el router o en el cortafuegos, según la arquitectura de red de nuestra organización), mapeando el tráfico que vaya a la IP pública de la organización (o la asignada para Pandora), por el puerto 41121, hacia la dirección IP interna del equipo con Pandora FMS Server:

El el caso de que el equipo «externo» esté en la misma red que el equipo con Pandora FMS Server, no necesitaremos crear reglas de acceso ni de NAT.

Instalar Pandora Agent en equipo externo

En el equipo que usaremos para crear el módulo de Estado_Web, deberemos instalar Pandora FMS Agent. Si es un equipo Linux, seguiremos estos pasos:

Si es un equipo Windows, seguiremos estos pasos:

Añadir módulo/sonda/sensor de Sitio Web Activo con Pandora FMS desde equipo externo a la red LAN

Una vez cumplidos todos los requisitos anteriores, accederemos al equipo externo que tenga instalado Pandora FMS Agent. En este equipo,

Lo editaremos con cualquier editor de ficheros de texto plano (vi, nano para Linux, notepad para Windows) y estableceremos los siguientes valores:

En el ejemplo anterior, asignaremos los siguientes parámetros (indicamos los más importantes):

  • server_ip: muy importante establecer aquí la dirección IP pública asignada a Pandora en nuestra organización. Salvo que el equipo esté en la misma red, en cuyo caso asignaremos la IP interna del servidor de Pandora FMS Server.
  • agent_name: muy importante que el nombre del agente coincida con el nombre del agente al que queremos añadir el módulo/sensor/sonda, en nuestro caso «srvproyectoa».
  • address: aunque no es un parámetro obligatorio en este caso, si lo añadimos, introduciremos la dirección IP del equipo srvproyectoa (equipo servidor web con Nginx), la dirección IP interna de la red.

El resto de parámetros son los estándar y, tras los parámetros. Al final de este fichero añadimos el código necesario para añadir el módulo Web_Activa, para monitorizar el estado del sitio web https:/proyectoa.com. Para realizar la comprobación del estado del sitio web tenemos varias opciones, en función de la opción elegida, añadiremos una cosa u otra al final del fichero anterior. Mostramos las opciones posibles y su código a continuación.

Si optamos por usar el propio comando «curl» que incluye Pandora Agent en su carpeta «util», realizaremos previamente una prueba de que el comando devuelve un valor correcto, ejecutándolo en la línea de comandos del equipo, sea Windows (cmd o símbolo de sistema) o Linux (shell):

Una vez que hayamos generado un comando que funcione correctamente, añadiremos el siguiente código al final del fichero anterior (después de la línea # Definición de módulos/sensores/sondas), para añadir un módulo a Pandora FMS que ejecute el comando anterior:

Como podemos comprobar, estamos indicando a Pandora Agent que ejecute el comando y obtenga el valor devuelto y cree el módulo «Web_Activa».

Pero este comando no nos ha funcionado adecuadamente en un equipo Windows, por ello, recomendamos usar un comando desarrollado por nosotros mismos (lo tenéis disponible en este enlace). Para usar un comando propio para obtener el estado del sitio web, en primer lugar, añadiremos el fichero ejecutable del comando en la carpeta «util» de Pandora FMS Agent, en nuestro caso el fichero EstadoSitioWeb.exe:

Tenéis disponible este fichero ejecutable y su código fuente en Python en el siguiente enlace:

Si optamos por usar un comando propio, como EstadoSitioWeb.exe, añadiremos al fichero anterior, tras la línea # Definición de módulos/sensores/sondas, el siguiente código:

El comando EstadoSitioWeb.exe (también disponible para Linux) ha sido desarrollado para generar, directamente, el código «tentacle» necesario para enviar directamente a Pandora FMS Server. Si lo ejecutamos en la línea de comandos (sea Windows o Linux), nos devolverá el siguiente texto:

Que es el que necesita el módulo module_plugin indicando anteriormente para el fichero de configuración de Pandora FMS Agent. El comando devolverá por consola, al vuelo, el código necesario para crear el módulo, con todos los datos.

Tenéis más información al respecto del comando EstadoSitioWeb.exe (realizado en Python) en el siguiente enlace:

Guardaremos el fichero anterior en la carpeta de instalación de Pandora FMS Agent, que en el caso de Windows, por defecto es:

C:\Program Files\pandora_agent

Y en el caso de Linux, suele ser:

/etc/pandora

Y lo guardaremos con el nombre (es muy importante asignarle el mismo nombre que al parámetro «agent_name» y la extensión .conf. En este caso, lo guardaremos con el nombre: srvproyectoa.conf

El archivo srvproyectoa.conf quedará guardado en la carpeta de instalación de Pandora FMS Agent, en la misma ubicación que el fichero pandora_agent.conf:

Por último, editaremos el fichero existente de configuración de Pandora Agent (pandora_agent.conf) que, como hemos indicado anteriormente, en el caso de equipos con Windows suele estar en:

C:\Program files\pandora_agent

Y en equipos Linux suele estar en:

/etc/pandora

Añadiremos, el siguiente código al fichero pandora_agent.conf, después de la línea «xml_buffer 0»:

El valor «srvproyectoa» debe coincidir con el nombre que le hemos dado al fichero de configuración anterior «srvproyectoa.conf»:

Para comprobar que funciona correctamente el agente de Pandora FMS, podremos reiniciar el servicio, ejecutando el script «restart_pandora_agent.bat» de la carpeta «scripts» de Pandora FMS Agent:

Revisando los datos devueltos por el agente de Pandora FMS externo en el servidor Pandora FMS Server

En un equipo de la red donde tengamos el servidor de Pandora FMS Server, accederemos a su consola de gestión web y accederemos al agente «srvproyectoa». Podremos comprobar que ya aparece un nuevo módulo Web_Activa, con el estado OK si el script devolvió «1» en su comprobación:

Podremos añadir las alarmas que consideremos para que nos avise por mail u otro medio en caso de fallo del sitio web: