# Informix remoto # 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 - Tener el **Data Server** de Pandora FMS habilitado - Tener el **Plugin Server** de Pandora FMS habilitado - Tener instalado python3 - tener instalada la librería ibm\_db - Tener configurado y habilitado el puerto DRDA que es el que usara el plugin para conectarse. # 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](https://wiki.genexus.com/commwiki/servlet/wiki?9382,Server+TCP%2FIP+Port+Property) 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**
--databaseNombre de la base de datos.
--hostnameIp del host.
--agent\_nameNombre del agente.
--agent\_aliasAlias del agente
--use\_alias\_as\_nameUsar el alias del agente como nombre
--module\_prefixSe utiliza para ponerle un prefijo a los módulos
--portPor defecto 9089
--uidNombre de usuario
--passwordPassword
--databaseNombre de la base de datos
**Parámetros configuración pandora**
--tentacle\_portPuerto de tentacle.Por defecto 41121(opcional)
--tentacle\_addressIp del servidor tentacle al que mandar los datos(opcional)
-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)
# Ejecución manual ``` python3 pandora_informix.py --hostname --port --uid --database --password --as_agent_plugin 1 ``` # Configuración en PandoraFMS **Como plugin de servidor** **Instalación manual** Iremos a servidores > plugins: [![image-1629974405286.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-08/scaled-1680-/image-1629974405286.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-08/image-1629974405286.png) Pinchamos en añadir: [![image-1629974430627.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-08/scaled-1680-/image-1629974430627.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-08/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](https://pandorafms.com/guides/public/uploads/images/gallery/2022-03/scaled-1680-/image-1646741530197.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-03/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