Cómo activar el modo depuración en un agente de pandora con Pandora FMS Agent instalado. Este método nos será útil cuando algunos de los módulo (sensores/sondas) no devuelva el valor esperado o no devuelva ningún valor. Con la depuración podremos consultar el fichero XML que se envía al servidor con todos los datos de los sensores del cliente.

Escenario inicial, servidor Pandora FMS, agente Pandora

Dispondremos de un servidor de monitorización Pandora FMS y de una serie de clientes, algunos sin agente al tratarse de dispositivos como librerías robóticas, appliances de seguridad (firewall, WAF, …), switches, routers, SAI, .. y otros con el agente de Pandora instalado, como servidores Windows, Linux, etc..

Para el caso de los servidores/equipos que tengan instalado el agente (Pandora FMS Agent), enviarán los datos de los monitores (sensores, sondas, módulos) mediante el protocolo tentacle. El cliente genera un fichero XML con los datos de los sensores y lo envía, mediante tentacle, al servidor.

En principio el cliente (Pandora FMS Agent) enviará los datos al servidor de Pandora FMS «al vuelo», es decir, no se guardarán en el cliente. Se generan y se envían directamente.

En este artículo explicamos cómo activar el modo depuración en un cliente para visualizar y consultar el fichero XML que se envía al servidor. Esto nos servirá para solucionar posibles errores en el envío de datos de algún sensor.

Activar modo debug depuración en cliente Pandora FMS Agent

Desde el equipo que tenga instalado el agente de Pandora FMS, accederemos a la carpeta de instalación del cliente. En el caso de equipos con sistema operativo Windows suele ser:

C:\Program Files\pandora_agent

Y en el caso de equipos con Linux suele ser:

\etc\pandora\

Dentro de esta carpeta existirá el fichero: pandora_agent.conf.

Que es de texto plano sin formato y que podemos abrir con un editor cualquiera, como el notepad en Windows o el vi o el nano en Linux.

Abriremos este fichero pandora_agent.conf:

Activar modo debug depuración en cliente Pandora FMS Agent

Elegiremos la aplicación con la que abriremos el fichero, por ejemplo «Bloc de notas»:

Activar modo debug depuración en cliente Pandora FMS Agent

Buscaremos la línea:

# debug 1

Activar modo debug depuración en cliente Pandora FMS Agent

Que cambiaremos a:

debug 1

Descomentándola, quitándole el símbolo de almohadilla. Guardaremos los cambios y reiniciaremos el servicio de Pandora FMS en el equipo cliente. en el caso de un equipo con Windows, desde la carpeta «scrpits» del agente de Pandora FMS, podemos ejecutar el fichero restart_pandora_agent.bat:

Activar modo debug depuración en cliente Pandora FMS Agent

O bien desde los servicios de Windows, reiniciando el de Pandora FMS:

Activar modo debug depuración en cliente Pandora FMS Agent

Para equipos con Linux, podemos reiniciar el servicio ejecutando el comando:

/etc/init.d/pandora_agent_daemon start

Consultar y revisar fichero XML que se envía al servidor de Pandora FMS desde un equipo con el agente

Una vez activado el modo depuración en un equipo con el agente de Pandora FMS, transcurridos unos minutos, podremos consultar el fichero XML que se envía al servidor, así como otros datos de acciones que se realizan.

Una copia del fichero XML que se envía al servidor mediante tentacle se guardará en la carpeta temp de la instalación del agente de pandora. Cada vez que el agente contacte con el servidor guardará un fichero XML:

Consultar y revisar fichero XML que se envía al servidor de Pandora FMS desde un equipo con el agente

Dichos ficheros pueden abrirse y consultarse con un editor de texto plano como notepad:

Consultar y revisar fichero XML que se envía al servidor de Pandora FMS desde un equipo con el agente

Analizando el fichero anterior, vamos que el agente de Pandora FMS genera un grupo por cada módulo/sensor/sonda, con este formato:

En el formato anterior pueden verse claramente los datos enviados:

Descripción del valorClaveValor
Nombre del módulonameEspacio_Libre_Disco_C
Tipo de datos del módulotypegeneric_data
Descripción del módulodescriptionEspacio libre en disco C: (%)
Valordata80
Umbral para estado crítico mínimomin_critical0
Umbral para estado crítico máximomax_critical10
Umbral para estado warning mínimomin_warning11
Umbral para estado warning máximomax_warning20

Analizando el fichero anterior y buscando el módulo (sensor/sonda) que queramos revisar podremos saber si está generando bien los valores y si el formato de envío es el correcto.

Los datos anteriores que se envían al servidor son generados por los módulos que se establecen en el fichero pandora_agent.conf. El módulo (sensor/sonda) que genera el código XML anterior es:

Fichero pandora_debug.log de depuración de errores en el agente de Pandora FMS Agent

Cuando activamos el modo debug (depuración), además de generarse los ficheros XML anteriores, también se genera el fichero pandora_debug.log, que está en la carpeta de instalación del agente:

Fichero pandora_debug.log de depuración de errores en el agente de Pandora FMS Agent

Dicho fichero contendrá los posibles errores en la ejecución de los módulos que obtienen los datos de los sensores establecidos en el fichero pandora_agent.conf. Un ejemplo del contenido de este fichero de depuración:

En el contenido del fichero de depuración anterior podremos analizar y revisar posibles errores en la ejecución de los módulos. Vemos que va indicando cada módulo que ejecuta: CPU Load, TCP_Connections, PandoraFMS RAM, Espacio_Libre_Disco_C y los plugins, los distintos ficheros de script de línea de comandos (network.vbs , mem_percent_used.vbs, ps.vbs, …).

Incluso muestra el comando tentacle para el envío del fichero XML al servidor de Pandora FMS:

tentacle_client.exe -a 192.168.1.200 -p 41121 «C:\Program Files\pandora_agent\temp\202581acef36.6088.data

Este fichero nos será muy útil para revisar módulo que den error al ejecutarse, como en el ejemplo el módulo eHorus

Error opening eHorus configuration file C:\Program Files\ehorus_agent\ehorus_agent.conf

Analizar ejecución de módulo/sensor/sonda personalizado en equipo con Pandora FMS Agent

Si queremos revisar si un módulo que hemos agregado de forma manual, ejecutando algún comando en el equipo seguiremos los siguientes pasos.

En primer lugar, a modo de ejemplo, supongamos que queremos monitorizar si un programa (ejecutable) está abierto o no. Por ejemplo, si tenemos un programa que siempre debe estar ejecutado y queremos que Pandora FMS nos avise si no lo está podremos usar uno de los script que incluye el agente de Pandora en la carpeta: C:\Program Files\pandora_agent\util, en concreto el script VBS: ps.vbs. Dicho script tiene el siguiente contenido:

Podremos usar este script o bien modificarlo a nuestro gusto. En nuestro caso lo usaremos de base y lo modificaremos, dejando:

Guardaremos el script con el nombre programa_abierto.vbs en la carpeta de instalación del agente de Pandora FMS, por ejemplo.

Una vez que tengamos el script personalizado a ejecutar, que debe generar los datos en el formato:

Es recomendable probarlo desde una ventana de MS-DOS. En el scaso de un script VBS (Visual Studio Script) lo podremos ejecutar usando cscript.exe. Desde una ventana de MS-DOS ejecutaremos:

cscript.exe /B «%ProgramFiles%\Pandora_Agent\programa_abierto.vbs» BotComunidadBiker.exe

Al fichero cscript.exe le hemos pasado como parámetro la ruta del fichero de script VBS generado anteriormente. A su vez, a este script le hemos pasado como parámetro el nombre del ejecutable que queramos monitorizar que esté abierto, en nuestro caso BotComunidadBiker.exe.

Analizar ejecución de módulo/sensor/sonda personalizado en equipo con Pandora FMS Agent

Revisaremos en la ventana de MS-DOS que devuelve los valores correctamente:

Analizar ejecución de módulo/sensor/sonda personalizado en equipo con Pandora FMS Agent

En este punto depuraremos el comando hasta que veamos que devuelve los datos correctos en formato XML para el envío con tentacle al servidor de Pandora FMS. En el ejemplo anterior vemos que devuelve «1» si el programa ejecutable está abierto y «0» si no lo está. Esto es lo que queremos para que Pandora FMS nos avise con una alerta si el proceso está cerrado.

Ahora agregaremos el módulo en el fichero pandora_agent.conf, agregando la siguiente línea:

module_plugin cscript.exe //B «%ProgramFiles%\Pandora_Agent\programa_abierto.vbs» BotComunidadBiker.exe

Vemos que hemos agreado doble barra // al parámetro B para que lo reconozca correctamente:

Analizar ejecución de módulo/sensor/sonda personalizado en equipo con Pandora FMS Agent

Guardaremos los cambios y reiniciaremos el servicio de Pandora FMS como hemos explicado al principio de este artículo, para que ejecute cuanto antes el nuevo módulo agregado.

Una vez transcurridos unos minutos, con el modo debug activado, comprobaremos tanto el fichero de debug pandora_debug.log que se ha ejecutado correctamente el script:

Analizar ejecución de módulo/sensor/sonda personalizado en equipo con Pandora FMS Agent

Por otro lado, revisaremos el XML de la carpeta temp para asegurarnos de que los datos del módulo se envían correctamente:

Analizar ejecución de módulo/sensor/sonda personalizado en equipo con Pandora FMS Agent

Por último, comprobaremos que el módulo/sensor/sonda aparece correctamente en en servidor de Pandora FMS:

Analizar ejecución de módulo/sensor/sonda personalizado en equipo con Pandora FMS Agent

Una vez que concluyamos con el proceso de depuración y revisión, es muuy recomendable desactivar el modo de depuración, cambiando el valor del parámetro debug a 0:

Analizar ejecución de módulo/sensor/sonda personalizado en equipo con Pandora FMS Agent

Para que se apliquen los cambios, reiniciaremos el servicio de Pandora FMS. Incluso podemos eliminar los ficheros XML generados en la carpeta temp.