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
- Matriz de compatibilidad
- Pre requisitos
- Parámetros
- Ejecución manual
- Configuración en PandoraFMS
- Módulos generados por el 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.
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, --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]
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.
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:
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:
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.
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:
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.