Informix remoto

Plugin para sacar datos de métricas de informix de manera remota.

Introducción

Ver. 09-01-2023

Plugin para sacar datos de métricas de informix de manera remota.

Tipo: Plug-in de servidor

Matriz de compatibilidad

Sistemas donde se ha probado

CentOS 7, Fedora, rocky linux

Sistemas donde debería funcionar

Cualquier sistema linux 

 

Pre requisitos

Habilitar puerto DRDA para la conexión

1.  Edite el archivo sqlhosts especificado en la variable de entorno $INFORMIXSQLHOSTS (o $SQLHOSTS), por ejemplo /opt/informix/etc/sqlhosts , y agregue una línea para DRDA (drsoctcp):

#dbservername    nettype       hostname      servicename      options
informixfullgx   onsoctcp   172.16.0.205   informix
informix_drda    drsoctcp   172.16.0.205   informix_drda

2. Edite el archivo de configuración del servidor Informix ubicado en el directorio etc para incluir la nueva definición de la base de datos como un alias. Puede usar la variable de entorno $ONCONFIG para acceder a este archivo, es decir, $INFORMIXDIR/etc/$ONCONFIG por ejemplo /opt/informix/etc/onconfig :

DBSERVERNAME    informixfullgx
DBSERVERALIASES informix_drda

3. Edite /etc/services y especifique el puerto:

informix        9088/tcp # Informix server
informix_drda   9094/tcp # Informix server drda

4. Reinicie Informix Server para que estos cambios surtan efecto. Y establezca la propiedad Puerto TCP/IP del servidor en DataStore con el valor 9094.

Nota: Si la aplicación arroja el error: ERROR 08001 IBM SQL30081N Se ha detectado un error de comunicación. Protocolo de comunicación utilizado: "TCP/IP". API de comunicación que se está utilizando: "SOCKETS". Ubicación donde se detectó el error: "172.16.0.205". Función de comunicación que detecta el error: "conectar". Códigos de error específicos del protocolo: "10060", "*", "*". SQLSTATE=08001  Asegúrese de que el firewall en Linux permita el puerto utilizado por DRDA. En el ejemplo 9094.

Ejemplo de configuración del firewall para permitir el puerto 9094:

root@fullgxinformix12 ~# firewall-cmd --list-ports
9088/tcp
root@fullgxinformix12 ~# firewall-cmd --add-port 9094/tcp
success
root@fullgxinformix12 ~# firewall-cmd --list-ports
9088/tcp 9094/tcp
root@fullgxinformix12 ~# firewall-cmd --permanent --add-port 9088/tcp
Warning: ALREADY_ENABLED: 9088:tcp
success
root@fullgxinformix12 ~# systemctl stop firewalld
root@fullgxinformix12 ~# systemctl start firewalld
root@fullgxinformix12 ~# firewall-cmd --list-ports
9088/tcp 9094/tcp

Parámetros

Parámetros 

--database Nombre de la base de datos.
--hostname Ip del host.
--agent_name Nombre del agente.
--agent_alias Alias del agente
--use_alias_as_name Usar el alias del agente como nombre
--module_prefix Se utiliza para ponerle un prefijo a los módulos
--port Por defecto 9089
--uid Nombre de usuario
--password Password
--database Nombre de la base de datos

Parámetros configuración pandora

--tentacle_port Puerto de tentacle.Por defecto 41121(opcional)
--tentacle_address Ip del servidor tentacle al que mandar los datos(opcional)
-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)

Ejecución manual

 

python3 pandora_informix.py --hostname <host> --port <port> --uid <user> --database <database> --password <password> --as_agent_plugin 1

Configuración en PandoraFMS

Como plugin de servidor

Instalación manual

Iremos a servidores > plugins:

image-1629974405286.png

Pinchamos en añadir:

image-1629974430627.png

Le ponemos en nombre y la descripción que se prefiera.

Metemos como comando la ejecución con la ruta del plugin:

/path_pandora_informix.py

Recuerda que la ruta recomendada para el uso de los plugins de servidor es: /usr/share/pandora_server/util/plugin/

Y en parámetros del plugin introduciremos estos seguidos de la macro "_field<N>_", son obligatorios los parámetros de conexion, --hostname, --uid, --database  y --password. El puerto por defecto es 9089 pero se puede cambiar.

Recuerda que puedes ponerle un nombre personalizado a los agentes con el parámetro --agent_name

 

Una vez hecho esto, daremos a "crear".

Una vez hecho esto, solo queda llamarlo por lo que iremos a la vista de algún agente y crearemos un módulo de complementos:

image-1646741530197.png

Le daremos un nombre y en el apartado "plugin" pondremos el que acabamos de configurar.

Una vez hecho esto, damos a crear.

Si el modulo se muestra con 1, quiere decir que se esta ejecutando correctamente.

Módulos generados por el plugin

El plugin creara un agente, con el nombre personalizado y los siguientes módulos:

 

Dbspace I/O
fname
dreads
dwrites
Dbspace usage
nchunks
total
used
pct_used
Checking tables I/O
tabnames
diskreads
diskwrites
Session statistics
hostname
logint_time
s_state
Session profile
access
locksheld
seqscans
total_sorts
dsksorts