# Pandora FMS IBM-I plugin # 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 - Una instancia de **PandoraFMS enterprise** - Tener el **Data Server** de Pandora FMS habilitado - Tener el **Plugin Server** de Pandora FMS habilitado - Contar con una instalación del software **control4i** en la particion IBM-i a monitorizar - Contar con el cliente de **control4i** para usar en conjunto con este plugin. # Parámetros
**Parámetro****Descripción**
-c, --chckpathRuta de check\_Control4i (Obligatorio)
-H,--hostDirección IP del host IBM i en el que se va a ejecutar el comando (Obligatorio)
-C, --confPath del archivo conf con los comandos (obligatorio)
-p,--portSi el puerto por defecto 7357 no puede ser utilizado, es posible indicar qué puerto se utilizará.
-t,--timeoutEspecifica 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,--versionEspecifique 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\_aliasPara ponerle un nombre al agente que contendrá los módulos de las custom querys.
-m, --module\_prefixPrefijo para los módulos generados por el plugin (opcional) por defecto: 'IBM-i\_'
--tentacle\_addressIp del servidor tentacle al que mandar los datos (opcional)
--tentacle\_port Puerto de tentacle.Por defecto 41121 (opcional)
-A, --use\_alias\_as\_nameUsar el agent alias como nombre de agente. (flag)
-g,--groupGrupo de destino de Pandora FMS (opcional)
--data\_dirDirectorio de datos de Pandora FMS. **Por defecto** es /var/spool/pandora/data\_in/ (opcional)
--as\_agent\_pluginEs 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: ```bash #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](https://pandorafms.com/guides/public/uploads/images/gallery/2022-09/scaled-1680-/image-1663750650485.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-09/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/](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. ![](https://lh5.googleusercontent.com/r1KoWcOfdAM2LuWOs-v73Sxy1RvZ7sTXz_TAUexTKhnPepMW2Q7ONs-IRUSm2MkNEJBh7hlLYHvuhk2EzG5DUkYahtfWMtcr_hSBNX7zLQNhQNQn3M0RT4xTa3Q-MYQ0C3y2h5D2uZ9PJeu0jY9W0EMO37VANucKFQlKlh4kCTcZv4EwqJ0EXEd61Q) 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. ![](https://lh3.googleusercontent.com/v3uKA26nApG9-fsdQLKc4JFu-4X7MYlfw2zCNnhVmNu68Uvr64nQq76uRs34M1WpAoJIEs3QhIQCWnIzDM_uhVP6lwpIBceYP2D-qMURr4qC9jnPbnLqkx-K44Orqbt3wHw7pGRtvYBL2ljrk1mfydFNwXCSj4-WlchvG4sl5mHlohdl9XEtPVg_GQ) ### 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: ![](https://lh4.googleusercontent.com/3zUzLiqZcWGpFIlCx7Pl0--1OwePXiZyxcWs1DWTSWKnkYswjJWCgRBBzp86qJBBbMrtdmsHowAI1V01y72efuUZJ305k20QUOOBX08cj2FMOkTCm1sN9eCFMoUzCeBZZJiKpzcCvqv6LWdawZnlBrdbn6f7cwiMW7G6RELolDRwb26TqX9juzGJOw) ### 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**. ![](https://lh5.googleusercontent.com/9itcHUXDeUAX-a5u1xXt5NTlYA0MGuF4v4vFyGgAXss1oe316156CoQ-ipPbxgzbfJnZ-bP19W01bxxmMqRr74v_atCkAg60vV4RjLhlEEeCdU9ODqN1TeEcDVMUrqlQyqAqylZKAVXXg56OudSGXhLodNxDTcp3JK9k9pSd0Nkb7nSoTONc7gKpCg) ![](https://lh4.googleusercontent.com/9XhZwhWDy1iaN2WeOPhj5pU2lDR7vTtRChpvMMwuac4Ucfncmlx-nN7LccA-zkFzVxtW2B-JcZwFoWts_VNbB6OWtGwvx8U_QnrlBWU-hBgham9jI8Ts1F-73KZFByoR2xyT5ujGbPy9gGR6D0kq5i14n6pgNq0Bqd8l3fSEBdoMKxkc7_JCo8mSJQ) ![](https://lh5.googleusercontent.com/u9crBC-iqYmJYVX4u2DzPzw1fHOCAOX3jdmGm7S0OrsE6SQ4AmSOMRekIIXnnjaf3F98OjfF7wJMQQcxTWUOOayMUfRGVLT6pNnuoRa--uywclOa3h_KVa30iRV4vhFARghHxXCvqDa8ltxooylnqBULJV3p_vIrYF1ZOLagjeuMQOYaojnXmt8Gmg) ### 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. ![](https://lh6.googleusercontent.com/0mtImcaBKGV6_n0XuydGEZzSXpBotH-gUNgtYaQTP-guxSkvgT6I3rDBCv_QIM9jLRvAkxfDnVoFzpd-uxuwKNK3gXxOZ5o155_5bxtXGFCBCQhGwW6JFRY1e7Sal56ZGhYsz-GCDHt3lK0ksBIj3vmjqj4t61zL4EXy9m_cbIogF93FMlQsDtX2kw) 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. ![](https://lh5.googleusercontent.com/PcUnvR_TOAAtKhyJUo7CByrFKBKN2NqmKuUkWWHatjFFbwmZy1rseHOiIZ55haTqAx5DCA5xp9_jAPkVe3l8_KCG99ze761E-UN-hjbNvIeWKLaMiRKjxohYQmFLpoX96wFlTWB7XoCbWJq5vnWgngMq1O87V07rZSyQte3uQpVNsSLOFv9zxbChug) 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](https://pandorafms.com/manual/es/documentation/08_technical_reference/05_anexo_server_plugins_development?s%5B%5D=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. ![](https://lh5.googleusercontent.com/PJYyjWRcL42rF2thMQqqAxxlTDiGxFRoVbWv5IOLjSWEb4Acc_eJxPFV-miq3ZYrXiDGvEWJiSGtKKAImuGtqJdfu_yYS4WOjwX4bdUvK_evERCC4jq051Vt3eC2qzA5bj14Ou10pqaQ_3wNR_Kn48LUd-dBKVCPaJId-zPteQILtvmXu0EecfMn3w) 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](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. ![](https://lh5.googleusercontent.com/028nh511o7s7Y_i4nIthuMb7Wm3b_tVNmOQM0cnU4ps219kkU0rxp24_CXdvernVMwSy9leIcKjYcCebCpuMA2JSDnl8_06XaJPvnqVRqqoZ1b78Qqr03k-tRXirVIP5bsvArbtipt6EXueKfwGZH5XKIxpygiHZy6NnlHQAoGWaGSGWlzehozq-cw) 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. ![](https://lh6.googleusercontent.com/8t1rCCXK3EyAQlbaYBV_pR1IdZZE4QGapD3TKo4vWsh0GGgy7qCuiChM2bxliRQ1uy_ipsFwYuRk8OnRFdv2oiQoFUCubThTbKWKm2ZHxdXNrKlilhfz7v6Dqnun8CziMGa7s4rvoq68oXMflBlB9mBO1hpOvYbMjtWAM2jwS-OIoaXfcva6hc8bTg) 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. ![](https://lh6.googleusercontent.com/TI8ELR_NIhVtbuHBJJvBmDKlFijP9pb41UgDR6aAb-Ew_b8kzDQ3FySRMbtH8SpPZNsyXgDVs1TcCrKzZm0BjLQ4jBNs5CrQAcUndadjNhbrtw_Fa1gagZYXbgwAP22ZmXhpUY0TssP1RebCkXFpjMmXXBCMIZj7TgYuavUBCmDOQ7NYmNkyyT8MXA) Seleccione el plugin pandora\_ibmi que definimos antes ![](https://lh6.googleusercontent.com/-vCtmPeSxXqzs9g1b3F7wnBm75qminRqZBlvAJ-DKdPaqLSxNp6mUwb0sFgRl1qwRaT8d4Y6RXE0HD1Iahngt6PdGj6kadnYuo1WJoVtNAoE0vzhDZCpeJ0jbIttHIFijlMPMjKwxcZ5IIoaCz40eYunkMTNXS2AKsjU7XQakb9VCtKlXQx9jFp0EA) 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. ![](https://lh5.googleusercontent.com/-to7A1Znx-TInajKhoBPs1RXEY7peUu3fIIYp4C5lsaB7N15FskclFQeOZQ4YOv4_yoov_mdUEv6ysmmZ78SxjIgzOB_vRpYtEg84iZ9UPZhR2Y8rBm6LiLzKbNkIapLTFFY0c3R3y7aVF2c9cv9dZWCSQ7JL4sFqlROp9wZ_d7t2qMh5TxD8o-DQg) 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: ![](https://lh5.googleusercontent.com/GQxvmukRkx2eIltiZiKFdT4rgfgX7p3gJfgn792ANe0fchAofjNWBj-Mi2Ebq_G7wCpXe1u5ikR3f4N-fsbRfs-LGfLmEzw6Q7WI5E8FyodgguSPyVJWzIMiaMy-1TJUQJLuupnLE_abGlY1JtLgZfnXL68BIpFSGkHg_o1XK20411FOVEPukRjGDA) 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.