Pandora FMS IBM-I plugin

Con “Control for i” se puede monitorear una partición IBM i , con este plugin podremos ver todos los datos de esta herramienta en la consola de PandoraFMS.

Los comandos se pueden listar en un fichero, obteniendo la posibilidad de ejecutar varios a la vez.

Introducción

Ver. 09-08-2022

Con el plugin Pandora_IBM-I en colaboración con “Control for i” se puede monitorear una partición IBM i y obtener diferentes métricas de forma sencilla y configurable. 

Los comandos a ejecutar se definirán en un fichero de configuración, obteniendo la posibilidad de definir plantillas de monitorización ejecutando varios de estos  a la vez contra la partición configurada.

Tipo: Plug-in de servidor / también se puede configurar como plug-in de agente.

Matriz de compatibilidad

 

Sistemas donde se ha probado

CentOS 7 / RHEL 8 / RockyLinux 8

Sistemas donde debería funcionar

Cualquier sistema linux 

 

Pre requisitos

Parámetros

Parámetro Descripción
-c, --chckpath Ruta de check_Control4i (Obligatorio)
-H,--host Dirección IP del host IBM i en el que se va a ejecutar el comando (Obligatorio)
-C, --conf Path del archivo conf con los comandos (obligatorio)
-p,--port Si el puerto por defecto 7357 no puede ser utilizado, es posible indicar qué puerto se utilizará.
-t,--timeout Especifica la duración (en número de segundos) que el plugin espera una respuesta del host antes de indicar un error. El valor por defecto es de 10 segundos.
-v,--version Especifique la versión del modo de comunicación que se utilizará entre el plugin y la partición
o V01 (valor por defecto) puede utilizarse para la gran mayoría de los comandos
o V02 (disponible a partir de febrero de 2022) transmite la hora del servidor de monitorización, además de
el comando. Este parámetro debe especificarse para el comando CTCHKTIM.
-a, --agent_alias Para ponerle un nombre al agente que contendrá los módulos de las custom querys.
-m, --module_prefix Prefijo para los módulos generados por el plugin (opcional) por defecto: 'IBM-i_'
--tentacle_address Ip del servidor tentacle al que mandar los datos (opcional)
--tentacle_port  Puerto de tentacle.Por defecto 41121 (opcional)
-A, --use_alias_as_name Usar el agent alias como nombre de agente. (flag)
-g,--group Grupo de destino de Pandora FMS (opcional)
--data_dir Directorio de datos de Pandora FMS. Por defecto es /var/spool/pandora/data_in/ (opcional)
--as_agent_plugin Es opcional, si quieres que el plugin sea de agente y te meta los módulos en el agente de pandora, ejecuta esto con un 1 (opcional)

 

pandora_ibmi.conf

En este archivo se introducirán los comandos que se quieren ejecutar con check_Control4i y que devolverán los datos que veremos en la consola de PandoraFMS. Se deberá introducir un comando por línea.

Ejemplo de archivo conf:

#Configuration file example with control4i built in commands

#check if control4i is running
ctchksbs control4i
#The CTCHKCFGST command checks that a configuration item (line, controller or device) is in the expected state. 
CTCHKCFGST *ALL *LIN *ACTIVE
#The CTCHKCPU command checks power usage by the system, all the jobs in a list of subsystems or by one or  several jobs. 
CTCHKCPU
#The CTCHKCPU command checks power usage by the control4i SBS.
CTCHKCPU *SBS 2 80 90 control4i
#The CTCHKDSK command is used to monitor system ASP disk space usage, A Warning alert will be generated if the disk % used has increased by 5% over a period of 24 hours. A Critical Alert will be generated if the disk % used has increased by 8% over a period of 24 hours. 
CTCHKDSK ASP(*SYSBAS) EVOL_W(5) EVOL_C(8) EVOL_TIME(24)
#The CTCHKJOB command is used to check whether a job is active or inactive, check for CTAUTO Job
CTCHKJOB CTAUTO *ANY
#The CTCHKLOG command is used to count the number of error messages in a specific time.
CTCHKLOG 12
#The CTCHKPING command is used to check that a corresponding server is available (via the PING command) from the IBM i partition.
CTCHKPING '127.0.0.1'
#The CTCHKPRB command is used to generate an alert when a system problem is detected. System problems are visible with the WRKPRB command.
CTCHKPRB
#The CTCHKSAV command is used to check that the backups were made correctly.
CTCHKSAV

 

Ejecución manual

 

pandora_ibmi.py [-h] -H HOST -C CONF [-c CHCKPATH] [-p PORT] [-t TIMEOUT] [-v VERSION] [-a AGENT_ALIAS] [-g GROUP] [-m MODULE_PREFIX] [-A] [--data_dir DATA_DIR] [--tentacle_port TENTACLE_PORT] [--tentacle_address TENTACLE_ADDRESS] [--as_agent_plugin AS_AGENT_PLUGIN]

image-1663750650485.png

Configuración en PandoraFMS

Instalar el plugin en el servidor de PandoraFMS

El procedimiento operativo que se describe a continuación está basado en el uso de PandoraFMS enterprise.

Las operaciones que se indican a continuación deben realizarse cuando se instala Control For i por primera vez en una solución de PandoraFMS ya operativa.

Busque el nombre del directorio que contiene los plugins

En PandoraFMS por defecto la ruta para los plugins del servidor es /usr/share/pandora_server/util/plugin pero se puede utilizar una ruta personalizada, en esta guía vamos a utilizar la que viene por defecto y crearemos un directorio llamado pandora_ibm por ejemplo para poner allí todos los ficheros necesarios.

 

mkdir /usr/share/pandora_server/util/plugin/pandora_ibm

Transferir el plugin al servidor de PandoraFMS

La instalación del producto Control For i ha creado el directorio "/Ctl4i" que contiene el plugin y el fichero de configuración para instalar en el servidor de PandoraFMS.

Transfiera el plugin y el fichero de configuración desde el directorio "/Ctl4i" de la partición IBM i al directorio que contiene los plugins en PandoraFMS. En nuestro ejemplo: "/usr/share/pandora_server/util/plugin/pandora_ibm".

Si descargamos el paquete de la librería de PandoraFMS, se proporcionará una versión actualizada del cliente de Control4i en el mismo paquete, por lo que podremos evitar la transferencia de datos desde la partición de IBM i al servidor de PandoraFMS.

Para descargar el plugin pandora_ibmi, el cliente de Control4i y los ficheros confs vaya a la librería de PandoraFMS: (url: https://pandorafms.com/library/pandorafms-ibm-i-enterprise-plugin/) y haga clic en el enlace del paquete para descargar un fichero zip que incluye los ficheros necesarios.

Luego transfiera estos ficheros al directorio definido en el servidor de PandoraFMS

Cambiar el puerto a utilizar (si se requiere)

Si el puerto 7357 ya está siendo utilizado, se puede cambiar el puerto a utilizar para la comunicación entre el plugin de PandoraFMS y el agente en la partición IBM i.

El puerto por defecto se define en el fichero check_Control4i_Config situado en el mismo directorio que el plugin que se acaba de transferir. 

Edite el contenido de este archivo y cambie el número de puerto. 

También se puede utilizar un puerto específico definiendo en la definición del plugin pandora_ibmi, que llama al plugin check_Control4i pasándole el parámetro -p seguido del número de puerto a utilizar.

 

Compruebe que el cliente check_Control4i funciona correctamente

En la partición IBM i, compruebe que el subsistema CONTROL4I está activo. Si no lo está, inícielo con el comando CTSTRSBS.

En el terminal del servidor de PandoraFMS se puede ejecutar: 

# cd /usr/share/pandora_server/util/plugin/pandora_ibm
# ./check_Control4i -H <IBM i partition ip> -c "ctchksbs control4i"
CTL1015 - The CONTROL4I subsystem is in *RUN state 

 

Asegúrese de que los binarios check_Control4i y pandora_ibmi tienen derechos de ejecución, en caso de no ser así, simplemente ejecútelos:

 

chmod +x check_Control4i
chmod +x pandora_ibmi

 

Si el mensaje devuelto es:

CTL1015 - El subsistema CONTROL4I está en estado *RUN

Se valida la operación del plugin. 

Durante el primer uso, es posible que no reciba respuesta de la partición IBM I. Ejecute el mismo comando 3 veces antes para buscar otra causa. La razón es que cuando el agente se inicia (trabajo CTAGENT) las 3 primeras demandas son rechazadas, por una razón técnica. 

Configurar el archivo conf de pandora_ibmi

 

Para obtener métricas utilizando el plugin pandora_ibmi deberemos modificar el fichero de definición pandora_ibmi.conf, con los comandos que queramos ejecutar en la partición IBM i, para obtener una lista completa de comandos disponibles podríamos dirigirnos al documento IBM i check commands.

 

Para ejecutar un chequeo básico a nuestra partición IBM i definiremos un par de comandos en el archivo de configuración, que se incluye por defecto:

 

Ejecutar pandora_ibmi manualmente

 

Para ejecutar pandora_ibmi manualmente simplemente descargue el archivo zip, descomprímalo en la ruta deseada y muévalo a ella, en nuestro caso /usr/share/pandora_server/util/plugin/pandora_ibm luego ejecute el pandora_ibmi con la ip del host de nuestra partición IBM i y el archivo de definición conf como parámetros.

 

./pandora_ibmi -H 10.10.10.1 --conf pandora_ibmi.conf

 

Recuerda que hay un par de parámetros opcionales que podemos utilizar, como el alias del agente, un puerto personalizado, el prefijo del módulo, etc. Pero los obligatorios son la ip del host y el archivo conf de definición de comandos.

 

Este es un plugin de servidor, así que si no obtenemos ningún error y se devuelve un valor de 1, significa que todo se ejecuta correctamente y el agente (con nombre por defecto en este caso) se ha creado en nuestro servidor de PandoraFMS recuperando los datos de todos los comandos definidos en el fichero conf de definición de comandos.

 

 

 

Configurar la monitorización en la consola web de PandoraFMS

 

Hemos configurado nuestra partición IBM i y comprobado que el pandora_ibmi y el check_Control4i funcionan, por lo que ahora debemos configurar el plugin en la consola web para poder utilizarlo para monitorizar IBM i.

 

Una vez que entramos en la consola web como usuario administrador, el primer paso es acceder a la consola. En la sección de Servidores, accedemos a la pestaña de Plugins.

 

En esta pestaña aparecerán todos los plug-ins del servidor que se instalan por defecto con Pandora FMS.

 

Haga clic en Añadir.

 

 

La siguiente ventana nos servirá para configurar el plugin antes de registrarlo.

El primer apartado son las opciones generales, donde podemos establecer el nombre que queremos dar al plugin, el tipo de plugin, estándar o Nagios, el tiempo máximo de ejecución del plugin y una breve descripción.

 

En el siguiente apartado definimos la ruta donde se encuentra el plugin y una serie de macros, que equivalen a los parámetros de los que se compone el plugin, definiremos el mínimo necesario para este ejemplo y un añadir sólo un parámetro opcional extra como alias de agente.

 

 

Para obtener más información sobre las macros y su funcionamiento, visite la documentación en línea al respecto:

https://pandorafms.com/manual/es/documentation/08_technical_reference/05_anexo_server_plugins_development?s[]=field1#macros_de_plugin

 

Por último, si hemos añadido parámetros de ejecución, esta sección se utilizará para definir estos parámetros mediante macros. También podemos añadir valores por defecto a estas macros, para que se utilicen en caso de que no proporcionemos ningún parámetro.

En este caso, como el único parámetro obligatorio es el parámetro token, los otros dos se configurarán con valores por defecto.

 

 

Una vez que hayamos terminado, pulsamos en Crear. Ahora tenemos nuestro plugin definido y listo para ser desplegado.

 

Despliegue el plugin del servidor en un agente de PandoraFMS.

 

La documentación completa sobre el despliegue de los plugins del servidor se puede encontrar en:https://pandorafms.com/manual/en/documentation/03_monitoring/03_remote_monitoring#monitoring_with_server_remote_plugins

 

Aquí desplegaremos el plugin de servidor configurado anteriormente en un agente de prueba, con el fin de mostrar la configuración básica necesaria para que funcione.

 

El primer paso es acceder a la consola web. En la sección de recursos, accedemos a la pestaña de gestionar agente.

 

Aquí podemos seleccionar el agente para desplegar el plugin o crear uno nuevo, en nuestro caso vamos a crear uno nuevo.

 

Haga clic en crear agente y cumpla con el nombre, el grupo y los campos necesarios, luego haga clic en crear.

 

 

Una vez creado, una barra de herramientas está disponible en la parte superior derecha, vaya a la pestaña de módulos, seleccione el tipo 'crear un nuevo módulo de servidor de plugins', a continuación, haga clic en crear.

 

 

Seleccione el plugin pandora_ibmi que definimos antes

 

 

A continuación, dale un nombre de módulo y rellena los campos configurados en las macros para esta ejecución, haz clic en crear.

 




Eso es todo, el plugin ya está configurado, espere un par de segundos y luego vaya al ojo en la parte superior derecha para ver los resultados de la ejecución.

 

Una vez ejecutado, el plugin genera un nuevo agente con todos los comandos definidos en el fichero conf de definición de comandos:

 

A partir de ahora, podemos utilizar la misma plantilla y definición para apuntar tantas particiones IBMi como queramos, simplemente definiendo un nuevo módulo con diferentes direcciones IP o incluso diferentes archivos conf de definición de comandos para diferentes módulos.

Módulos generados por el plugin

 

El plugin creará un agente con un nombre personalizable con el parámetro --agent_name o con nombre "Pandora_IBM-I" por defecto que contendrá todos los módulos de la ejecución.

Los módulos devueltos dependerán de los comandos descritos en el fichero pandora_ibmi.conf, un solo comando puede devolver desde un módulo hasta seis, dependiendo de los valores devueltos en la ejecución del comando.