Oracle. Chequeo de Grupos de discos ASM con Nagios.

Existen numerosos plugins en Nagiosexchange para distintos chequeos de Oracle. Una de las necesidades más importantes a controlar en las instalaciones de Oracle con ASM es el espacio en los discos. Añadir discos ASM en una instalación de Oracle RAC con discos Multipath es una tarea que lleva su tiempo y necesita realizarse con sumo cuidado. No es cuestión de enterarnos que no hay espacio por los usuarios y tener que realizar una ampliación de urgencia o peor aún, no tenerlo previsto y no tener disco disponible.

Mediante este plugin podemos tener controlado con nuestro Nagios el espacio en los Grupos de Discos ASM. Lo realizaremos haciendo la consulta directamente desde el servidor de Nagios para lo que necesitaremos tener instalado en este el Instantclient de Oracle y las librerías Perl.
Le hemos añadido al plugin original algunas cosillas como:

  • Devuelve datos de rendimiento (perfomance data). Muy util para nuestra gráfica PNP4Nagios p.e.
  • Posibilidad de conexión como usuario sin privilegios de sysdba.
  • Usuario, password y modo de conexión de usuario, añadidos como parámetros.

El plugin lo tienes disponible en la sección de plugins de Eldespistado y en Nagiosexchange.

Usuario de Oracle.

Lo primero que necesitaremos será, si aún no lo tenemos, crear un usuario específico en Oracle que pueda hacer exclusivamente las consultas necesarias. Aunque el Plugin funciona con un usuario sysdba, no me parece apropiado usarlo de esta forma más que para realizar las pruebas iniciales. Crearemos nuestro usuario con sqlplus o nuestra herramienta habitual dándole permisos para conectarse y para hacer un select en la vista que usar el plugin. Por ejemplo:

CREATE USER nagios IDENTIFIED BY "pass_nagios" DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
GRANT CREATE SESSION to nagios;
GRANT SELECT ON v_$asm_diskgroup TO nagios;

 Pruebas de funcionamiento.

Antes de configurarlo en Nagios lo podemos probar tanto con el usuario “nagios” creado o, si tenemos problemas, salir de dudas probándolo con un usuario “as sysdba”. La sintaxis podemos verla en la página del plugin. Ejemplos:
Como usuario Nagios (u otro).

./check_ASM_disk_groups.pl --sid DB11G --ora_home /usr/lib/oracle/11.2/client64 --user nagios --password pass_nagios --threshold ASMDATA=85
USED SPACE: [ASMDATA: 47.47%] | ASMDATA=47.47%;;85

Como usuario “as sysdba”.

./check_ASM_disk_groups.pl --sid DB11G --ora_home /usr/lib/oracle/11.2/client64 --user sys --password pass_sys --threshold ASMDATA=85 --user_mode=sysdba

Configuración en Nagios.

Una vez que hemos probado nuestro plugin desde la shell solo nos quedaría configurarlo en Nagios.

Objetos command

Consideraciones:

  • Nagios por defecto usa su perl embebido y este plugin no está preparado para ello por lo que no funcionaría adecuadamente. Por eso se fuerza a usar perl del sistema dándole la ruta (/usr/bin/perl $USER1$/check_ASM_disk_groups_v2.pl).
  • Se definen dos comandos: uno para recibir como parámetros solo un grupo de discos y otro para recibir dos grupos de discos como parámetros.
  • Uno de los parámetros se opta por dejar el valor definido en la variable del propio plugin por comodidad ya que no cambiará nunca en nuestro sistema (línea -> my $ora_home = ‘/usr/lib/oracle/12.1/client64’;). Nuestro ORACLE_HOME vamos…
  • Recuerda que este artículo está basado en la instalación realizada mediante se explica en este artículo.
define command{
 command_name check_oracle_asm_v2_1diskgroups
 command_line /usr/bin/perl $USER1$/check_ASM_disk_groups_v2.pl --sid $ARG1$ --user $ARG2$ --password $ARG3$ --threshold $ARG4$=$ARG5$
 }

define command{
 command_name check_oracle_asm_v2_2diskgroups
 command_line /usr/bin/perl $USER1$/check_ASM_disk_groups_v2.pl --sid $ARG1$ --user $ARG2$ --password $ARG3$ --threshold $ARG4$=$ARG5$ --threshold $ARG6$=$ARG7$
 }

Objetos service

Consideraciones:

  • Debemos definir la password de nuestro usuario Nagios para acceder a Oracle en nuestro fichero de configuración de Nagios: resource.cfg (variable $USER20$=pass) . Si tienes dudas de porqué echa un ojo al artículo de “Macros globales en Nagios“.
  • Dos definiciones, una que pasa dos Grupos de discos ASM como argumento y otra solo un Grupo. Usa la que necesites.
define service{
 use generic-service
 host_name oraclesrv
 service_description Oracle ASM Diskgroups v2 -espacio usado-
 check_command check_oracle_asm_v2_1diskgroups!NUESTRO_SID!nagios!$USER20$!DATA01!85
 }
define service{
 use generic-service
 host_name oraclesrv
 service_description Oracle ASM Diskgroups v2 -espacio usado2-
 check_command check_oracle_asm_v2_1diskgroups!NUESTRO_SID!nagios!$USER20$!DATA01!85$!FRA!85
 }

Si tienes check_mk instalado o bien tienes omd/omddistro (con check_mk) y te interesa monitorizar Oracle no puedes perderte estos artículos:

 

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Comment moderation is enabled. Your comment may take some time to appear.