Monitorización de Oracle con Zabbix 6

Hoy os traigo una nueva entrada de Zabbix donde en esta ocasión voy a explicaros como podéis monitorizar vuestras instancias de Oracle utilizando el plugin incluido en Zabbix 6.

Requisitos

  • Según la documentación oficial de Zabbix las versiones de Oracle soportadas por el plugin son las versiones 12c2, 18c y 19c
  • Es necesario tener instalado en el servidor donde se encuentra instalada la instancia de Oracle el agente 2 de Zabbix en su versión 6.2 o superior.

Instalación Instant Client de Oracle

Importante: los siguientes pasos hay que hacerlos en el servidor donde se encuentra instalado Oracle.

En primer lugar nos iremos a la página oficial de Oracle y descargaremos el cliente de Oracle correspondiente a la versión de Oracle que estemos utilizando. Una vez localizada nuestra versión, descargaremos el paquete Basic Package en formato zip y lo guardaremos en nuestro servidor.

A continuación creamos el siguiente directorio:

sudo mkdir -p /opt/oracle

Descomprimimos el fichero zip que hemos descargado previamente en la carpeta /opt/oracle.

sudo unzip nombre_fichero_zip -d /opt/oracle/

Ejecutamos el siguiente comando (modificar instantclient_12_2 por el nombre de vuestra carpeta ya que variará en función de la versión descargada).

sudo sh -c "echo /opt/oracle/instantclient_12_2 > \
      /etc/ld.so.conf.d/oracle-instantclient.conf"

Ahora ejecutamos el siguiente comando:

sudo ldconfig

Creamos un nuevo directorio donde guardaremos un fichero de configuración para nuestro agente de Zabbix:

mkdir -p /etc/systemd/system/zabbix-agent2.service.d

Creamos el fichero de configuración donde almacenaremos la información relativa a las variables de entorno de Oracle:

nano /etc/systemd/system/zabbix-agent2.service.d/oracle-env.conf

El contenido del fichero de configuración será el siguiente (OJO modificar las rutas por las vuestras):

[Service]
Environment="ORACLE_HOME=/opt/oracle/instantclient_12_2"
Environment="LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2:$LD_LIBRARY_PATH"
Environment="PATH=$PATH:$ORACLE_HOME"

Guardamos el fichero.

Reiniciamos el demonio para que coja los cambios que hemos realizado.

systemctl daemon-reload

Reiniciamos el agente de Zabbix.

systemctl restart zabbix-agent2

Creación usuario Zabbix en Oracle

Para continuar necesitaremos crear un usuario de Oracle con suficientes privilegios para obtener los datos relativos a nuestra instancia a monitorizar.

CREATE USER zabbix IDENTIFIED BY tu_contrasena;

GRANT CONNECT, CREATE SESSION TO zabbix;
GRANT SELECT_CATALOG_ROLE to zabbix;
GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS TO zabbix;
GRANT SELECT ON DBA_TABLESPACES TO zabbix;
GRANT SELECT ON DBA_USERS TO zabbix;
GRANT SELECT ON SYS.DBA_DATA_FILES TO zabbix;
GRANT SELECT ON V_$ACTIVE_SESSION_HISTORY TO zabbix;
GRANT SELECT ON V_$ARCHIVE_DEST TO zabbix;
GRANT SELECT ON V_$ASM_DISKGROUP TO zabbix;
GRANT SELECT ON V_$DATABASE TO zabbix;
GRANT SELECT ON V_$DATAFILE TO zabbix;
GRANT SELECT ON V_$INSTANCE TO zabbix;
GRANT SELECT ON V_$LOG TO zabbix;
GRANT SELECT ON V_$OSSTAT TO zabbix;
GRANT SELECT ON V_$PGASTAT TO zabbix;
GRANT SELECT ON V_$PROCESS TO zabbix;
GRANT SELECT ON V_$RECOVERY_FILE_DEST TO zabbix;
GRANT SELECT ON V_$RESTORE_POINT TO zabbix;
GRANT SELECT ON V_$SESSION TO zabbix;
GRANT SELECT ON V_$SGASTAT TO zabbix;
GRANT SELECT ON V_$SYSMETRIC TO zabbix;
GRANT SELECT ON V_$SYSTEM_PARAMETER TO zabbix;

Configuración del servidor de Oracle en Zabbix Server

El primer paso sería conectarnos vía web a nuestra instancia de Zabbix para incluir el servidor de Oracle. Voy a obviar como sería este proceso de agregar un servidor ya que seguramente lo habréis hecho ya en varias ocasiones y me voy a centrar exclusivamente en las configuraciones que hay que realizar para monitorizar nuestra instancia de Oracle.

Una vez tengamos nuestro nuevo host incluido en Zabbix, tenemos que añadir una nueva template incluida en Zabbix llamada Oracle by Zabbix agent2.

En la pestaña de Macros tendremos que crear las siguientes macros:

  • {$ORACLE.PASSWORD}: Aquí tendremos que poner la contraseña del usuario de Oracle que hemos creado anteriormente.
  • {$ORACLE.SERVICE}: Nombre del servicio de Oracle.
  • {$ORACLE.USER}: Usuario de Oracle que creamos para obtener los datos de nuestra instancia.

Guardamos los cambios.

Y listo, pasados unos minutos ya deberíamos a empezar a tener datos de nuestra instancia de Oracle.

Como siempre espero que os haya sido de utilidad.

Entradas relacionadas

2 comentarios en «Monitorización de Oracle con Zabbix 6»

  1. Hola, un saludo desde Chile, te sigo y he aprendido mucho contigo, tengo una duda tienes algun tutorial de como instalar el agente 2 zabbix en solaris??…ojala me puedas ayudar

    Responder
    • Hola Carlos,

      Por ahora no tengo ninguno pero me lo apunto para ver si en un futuro puedo hacer uno.

      Saludos.

      Responder

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.