Este documento describe la monitorización de sistemas Oracle en entornos Unix utilizando el plugin Pandora FMS. El plugin monitorea parámetros clave de rendimiento y estado de Oracle de forma predeterminada, pero también permite monitorizar instancias específicas y agregar consultas SQL personalizadas. El plugin se integra con las herramientas existentes de Oracle sin necesidad de instalar software adicional.
3. 1 HISTÓRICO DE CAMBIOS
Fecha Autor Cambio Versión
29/09/11 Juanma Primera versión v1r1
13/12/11 Juanma Nueva funcionalidad v1r4
22/12/11 Juanma Nueva funcionalidad v1r5
13/03/12 Juanma Nueva funcionalidad v1r7
18/06/12 Juanma Nuevos módulos v2r1
25/07/12 Juanma Nueva funcionalidad v2r2
17/09/13 Mario P Cambio en código v2r3
Page 3
4. 2 INTRODUCCIÓN
Este documento tiene como objetivo la descripción de la monitorización de sistemas Oracle basados
en Unix. Se han elegido una serie de módulos “base” en base a nuestra experiencia en
monitorización de sistemas y las necesidades de algunos de nuestros clientes. También se han
añadido todas las especificaciones recogidas en diferentes entornos de producción real, tomando
especificaciones reales de administradores de bases de datos.
Para la extracción de la información se utiliza:
• Un fichero de configuración externo donde se define toda la parametrización del plugin.
Este fichero de configuración puede hacer llamadas (includes) a otros ficheros.
• Un fichero de variables de entorno parametrizado por instacia. Este fichero se encuentra en
el directorio $ORACLE_HOME/dbs/orauser_$SID.
• Se utiliza el software ya instalado en el sistema (SQLplus, lsnrctl, ficheros de alertas de
Oracle, etc), para la monitorización realizada por el plugin sin tener que instalar librerías o
utilidades de terceros. Opcionalmente se podrá usar el fichero ORATAB si no se configuran
las instancias a monitorizar directamente en el fichero de configuración del plugin.
• Se utiliza un parser de log existente (el de pandora) para procesar los logs de alertas de
Oracle. El patrón a buscar se podrá parametrizar mediante un token en el fichero de
configuración del plugin. La detección de los ficheros de log de alertas será automática para
cada instancia.
• Se realiza una autodetección de SID, instancias y tablespaces en el sistema, aunque se puede
suprimir, y/o forzar SID concretos por parte del administrador, configurando diferentes
tokens en el fichero de configuración del plugin.
• Se realizan una serie de chequeos básicos “por defecto”, aunque se pueden suprimir o
personalizar.
• Se dispone de una interfaz “abierta” para especificar consultas SQL libres, permitiendo
modelar todo tipo de consultas SQL que se realizan con otras herramientas o de forma
manual por los administradores. Se proveen algunas consultas habitualmente usadas por
administradores en todo el mundo, y que ofrecen información importante de rendimiento.
• El sistema se integra con el agente Unix y con la capacidad de distribuir colecciones de
ficheros, de forma que se puede distribuir el plugin por un lado y las colecciones de ficheros
de forma individual por agente y/o por política.
Cabe destacar que como el resto de monitorización con Pandora FMS, el plugin de monitorización
Oracle se puede usar para recoger información de tipo “cadena de texto” (para tratarlo como
Page 4
7. 5 MÓDULOS DEL PLUGIN
El plugin monitoriza “por defecto” los siguientes puntos:
• Escaneo de tablespace para obtener espacio libre.
• Escaneo de tablespace para obtener estado .
• Escaneo de filesystems de Oracle montados sobre el sistema (en base a un prefijo y al
nombre de la instancia (SID).
• Verificación de conexión a la BD (mediante una query (Select) y obteniendo una fecha).
• Verificación de servicios dado un listener (solo a nivel de instancia).
• Verificación de proceso Pmon de cada SID .
• Verificación del estado general del listener (para todas las instancias).
• Parseo de errores buscando una expresión regular en el log de alertas. El log de alertas
depende de cada instancia, y su ubicación exacta se autodetecta. Se necesita el plugin para
parser logs de Pandora para procesar estos logs.
Adicionalmente también monitoriza los siguientes parámetros de rendimiento, tal como
recomiendan muchos administradores expertos de Oracle para diferentes tipos de entornos:
• Dictionary Cache Hit Ratio
• Library Cache Hit Ratio
• DB Block Buffer Cache Hit Ratio
• Latch Hit Ratio
• Disk Sort Ratio
• Rollback Segment Waits
• Dispatcher Workload
• Active sessions
• Concurrent parallel sessions
• Redo log write time
• Redo log buffer space wait
Page 7
8. • Enqueue waits
• Free buffer waits
NOTA: Conviene destacar que si la base de datos a monitorizar no tiene configurada alguna de las
estadísticas antes mencionadas entonces los módulos correspondientes figurarán como no
inicializados en la consola de Pandora FMS.
Ninguno de los parámetros de rendimiento tiene asociada por defecto ningún tipo de evento, y se
pueden asignar umbrales para asignarles alertas.
Todos esos módulos vienen parametrizados en el fichero “oracle.conf” que viene en el paquete del
plugin. Esos módulos son SQL, que se puede consultar en el fichero y que pueden ser eliminados,
modificados o ampliados por un administrador de Oracle.
Se puede encontrar más información acerca de estas queries y otras, recomendadas por diversas
comunidades de administradores de Oracle en el siguiente enlace:
http://www.hoopoes.com/cs/oracle_tune.shtml
5.1. Monitorización multiinstancia
El plugin además de realizar una monitorización a nivel general de todas las instancias permite
monitorizar varias instancias de una forma más específica.
De esta forma el plugin permite una configuración más flexible:
• Monitorización a nivel general: Por una parte se realizarán la monitorización por defecto,
explicada en el punto anterior.
• Monitorización a nivel instancia: Además se podrá configurar la monitorización por
instancia específica.
NOTA: Cabe destacar que la monitorización a nivel instancia tiene prioridad sobre la
monitorización general ya que se considera que es más específica. Esto evitará que se generen
módulos duplicados en el caso de que se configure la misma instancia para chequeos generales y en un
bloque de configuración de instancia (ver en el punto siguiente) del fichero de configuración.
Para que los módulos de los distintas instancias no se machaquen la notación que utilizarán los
módulos será:
ORA_{SID}_{Comprobación}
5.2. Precondiciones automáticas a la monitorización
Para evitar que se generen módulos de error duplicados se han establecido unas condiciones que
deben ser satisfechas antes de proceder a los chequeos. Si estas condiciones no se satisfacen se
Page 8
9. abortará la monitorización. Estas condiciones son a dos niveles:
• A nivel general: Se verificará acceso al fichero de configuración, que el binario de SQLplus
está disponible, el estado del listener (si no está deshabilitada la verificación del listener) y
el proceso pmon está corriendo (si no está deshabilitado).
• A nivel de instancia: Se verificará si existe un script que condicione la monitorización de la
instancia correspondiente, se verifica el proceso pmon para dicha instancia (si no está
deshabilitado), se verifica el estado del listener y sus servicios (si no está deshabilitada la
verificación del listener).
5.3. Parametrización del plugin
El plugin se utiliza mediante la configuración en un fichero externo de configuración.
NOTA: Es extremadamente importante tener en cuenta que los archivos de configuración pensados para
el plugin en UNIX deben estar editados y almacenados con retornos de carro tipo “UNIX” y que si se
usan retornos de carro tipo “WINDOWS” el plugin no funcionará adecuadamente.
Existen algunos chequeos específicos que tienen sus propios “tokens” de configuración, que se
describen a continuación:
5.3.1. Localización del fichero oratab
En caso de utilizarse. Recordemos que el fichero oratab guarda la información de las instancias y
el directorio home de dicha instancia. Por defecto el script asume que el fichero oratab está ubicado
en:
/var/opt/oracle/oratab
Si el fichero oratab no estuviera en dicha ubicación, se puede especificar una alternativa en el
fichero de configuración.
oratab /etc/oratab
Esto hará que busque el fichero oratab en una ubicación alternativa. En este ejemplo el directorio
/etc.
5.3.2. Log de información y errores.
Todas las acciones realizadas por el plugin se registrarán en un fichero de log cuyo nombre estará
parametrizado de la siguiente forma:
/tmp/pandora_ora_{SID}
Page 9
10. 5.3.3. “Saltar” comprobaciones por defecto.
Se pueden "saltar" las comprobaciones por defecto usando el token de configuración adecuado:
skip_listener_status
skip_tablespace_free
skip_tablespace_status
skip_oracle_fs
skip_connect_check
skip_alert_log
skip_pmon
Estos tokens se aplicarán a nivel general o a nivel de instancia. Esto permitirá hacer flexible la
monitorización. Por ejemplo, supongamos que en oratab tenemos configurada la instancia
“hpsacert” y en un bloque de configuración de instancia (ver a continuación) también. Si queremos
realizar un parseo específico sobre la log de alertas de esta instancia y no sobre las demás entonces
deberemos de omitir el token skip_alert_log (ver a continuación) en el bloque de configuración de
instancias. Como se dijo anteriormente la monitorización a nivel de instancia tiene prioridad sobre
la general por lo que se ejecutará un parseo específico para esta instancia.
5.3.4. Bloque de configuración de una instancia.
Para realizar la configuración específica de una instancia se debe de utilizar los tokens siguientes:
instance_begin
instance_name xxxxxx
<tokens de configuración>
instance_end
Sobre este bloque se pueden utilizar los tokens explicados anteriormente y de esta forma elegir si el
chequeo correspondiente se realizará o no.
Además se podrán utilizar solo dentro de este bloque los siguientes tokens:
5.3.4.1. Configuración del listener y servicios
Para que el plugin monitorice el estado de los servicios a través del listener, hay que configurar
ambos valores, el nombre del listener y el nombre de cada uno de los servicios. Para ello
utilizaremos la siguiente sintaxis de configuración:
listener_name LISTENER_RHGE0208
Page 10
18. 6 REQUISITOS
Los requisitos para que funcione correctamente esta monitorización son los siguientes:
• Instalar el agente de Pandora FMS.
• Tener un Oracle instalado en la máquina donde se va a monitorizar, con las herramientas
básicas (SQLplus, lsnrctl).
• Especificar el nombre del listener de Oracle que se quiera monitorizar así como el nombre
de cada servicio que se quiera monitorizar en el listener por cada una de las instancias
reflejadas en el fichero de configuración. Imprescindibles ambas cosas para monitorizar el
listener a nivel instancia.
• Es necesario que el usuario con el que se ejecuta el agente de Pandora FMS, que es el
usuario que ejecutará el plugin, tenga acceso a los siguientes recursos de Oracle:
◦ SQLplus
◦ lsnrctl (correctamente configurado)
◦ Todas las variables de entorno del DBA exportadas para el usuario que ejecuta el
plugin. Este usuario también es necesario que pertenezca al grupo de sistema de
Oracle.
◦ Ficheros log de alertas (obtenidos dinámicamente para cada instancia).
◦ El PATH a los binarios SQLplus y lsnrctl debe estar disponible para el plugin:
▪ Si se realiza una monitorización sobre una única instancia se puede exportar
como variable de entorno.
▪ El plugin buscará esta variable en el fichero de variables de entorno
$ORACLE_HOME/dbs/orauser_$ORACLE_SID y en caso de encontrarlas las
cargarás.
◦ Las variables $ORACLE_HOME y $ORACLE_SID deben estar disponibles para el
plugin. En caso de utilización del fichero ORATAB se extraerán de este fichero. En
caso de que no se use este fichero se podrá indicar explícitamente en el fichero de
configuración del plugin o por último estar cargadas como variables de entorno en
el caso de monitorización monoinstancia.
• Para realizar la monitorización el plugin llamará a SQLplus para hacer diversas queries SQL
obteniendo la información.
• El plugin debe poder escribir ficheros temporales en el path /tmp
• Habrá que suministrar la lista de volúmenes de disco a monitorizar y en caso de realizarse la
monitorización de listeners la lista de listeners y servicios asociados.
Page 18