Informix remoto
Plugin para sacar datos de métricas de informix de manera remota.
- Introducción
- Matriz de compatibilidad
- Pre requisitos
- Habilitar puerto DRDA para la conexión
- Parámetros
- Ejecución manual
- Configuración en PandoraFMS
- Módulos generados por el plugin
Introducción
Ver. 09-01-2023
Plugin para sacar datos de métricas de informix de manera remota.
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 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:
Pinchamos en añadir:
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:
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:
fname |
dreads |
dwrites |
nchunks |
total |
used |
pct_used |
tabnames |
diskreads |
diskwrites |
hostname |
logint_time |
s_state |
access |
locksheld
|
seqscans |
total_sorts |
dsksorts |