Base de datos de Oracle

La integración de la base de datos de Oracle recopila métricas y registros de bases de datos de Oracle. Las métricas se recopilan mediante consultas a vistas de supervisión relevantes. Esta integración escribe registros de seguimiento estructurados.

Para obtener más información sobre base de datos de Oracle, consulta la documentación de la base de datos de Oracle.

Requisitos previos

Para recopilar la telemetría de la base de datos de Oracle, debes instalar el agente de operaciones versión 2.22.0 o posterior.

Esta integración admite las versiones 12.2, 18c, 19c y 21c de la base de datos de Oracle.

Configura tu instancia de base de datos de Oracle

Para recopilar métricas, un usuario de supervisión requiere acceso SELECT a las vistas relevantes. La siguiente secuencia de comandos sql debe crear un usuario de supervisión y otorgarle los permisos adecuados si lo ejecuta un usuario con permisos suficientes conectados a la instancia de la base de datos de Oracle como SYSDBA o SYSOPER.

-- Create the monitoring user "otel"
CREATE USER otel IDENTIFIED BY ;

-- Grant the "otel" user the required permissions
GRANT CONNECT TO otel;
GRANT SELECT ON SYS.GV_$DATABASE to otel;
GRANT SELECT ON SYS.GV_$INSTANCE to otel;
GRANT SELECT ON SYS.GV_$PROCESS to otel;
GRANT SELECT ON SYS.GV_$RESOURCE_LIMIT to otel;
GRANT SELECT ON SYS.GV_$SYSMETRIC to otel;
GRANT SELECT ON SYS.GV_$SYSSTAT to otel;
GRANT SELECT ON SYS.GV_$SYSTEM_EVENT to otel;
GRANT SELECT ON SYS.V_$RMAN_BACKUP_JOB_DETAILS to otel;
GRANT SELECT ON SYS.V_$SORT_SEGMENT to otel;
GRANT SELECT ON SYS.V_$TABLESPACE to otel;
GRANT SELECT ON SYS.V_$TEMPFILE to otel;
GRANT SELECT ON SYS.DBA_DATA_FILES to otel;
GRANT SELECT ON SYS.DBA_FREE_SPACE to otel;
GRANT SELECT ON SYS.DBA_TABLESPACE_USAGE_METRICS to otel;
GRANT SELECT ON SYS.DBA_TABLESPACES to otel;
GRANT SELECT ON SYS.GLOBAL_NAME to otel;

Configura el agente de operaciones para la base de datos de Oracle

Mediante la guía Configura el Agente de operaciones, agrega los elementos necesarios para recopilar telemetría de las instancias de la base de datos de Oracle y reinicia el agente.

Configuración de ejemplo

Los siguientes comandos crean la configuración para recopilar y transferir la telemetría de la base de datos de Oracle y reinicia el agente de operaciones.

# Configures Ops Agent to collect telemetry from the app and restart Ops Agent.

set -e

# Create a back up of the existing file so existing configurations are not lost.
sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak

# Configure the Ops Agent.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
logging:
  receivers:
    oracledb_audit:
      type: oracledb_audit
      oracle_home: /opt/oracle
    oracledb_alert:
      type: oracledb_alert
      oracle_home: /opt/oracle
  service:
    pipelines:
      oracledb:
        receivers:
          - oracledb_audit
          - oracledb_alert
metrics:
  receivers:
    oracledb:
      type: oracledb
      username: otel
      password: ora19c
      sid: ORCLCDB
      service_name: ORCLCDB
  service:
    log_level: debug
    pipelines:
      oracledb:
        receivers:
          - oracledb
EOF

sudo service google-cloud-ops-agent restart

Configura la recopilación de registros

A fin de transferir registros desde la base de datos de Oracle, debes crear receptores para los registros que produce la base de datos de Oracle y, luego, crear una canalización para los receptores nuevos.

A fin de configurar un receptor para tus registros oracledb_audit, especifica los siguientes campos:

Campo Predeterminada Descripción
exclude_paths [] Una lista de patrones de ruta de acceso del sistema de archivos que se excluirán del conjunto que coincide con include_paths.
include_paths Una lista de rutas de acceso del sistema de archivos que se leerán a través de la visualización del final de cada archivo. Se puede usar un comodín (*) en las rutas. No se puede proporcionar con el campo oracle_home.
oracle_home Ubicación de ORACLE_HOME para el entorno. Cuando se proporciona, establece include_paths en $ORACLE_HOME/admin/*/adump/*.aud. No se puede proporcionar con el campo include_paths.
record_log_file_path false Si se configura como true, la ruta al archivo específico desde el que se obtuvo el registro aparece en la entrada de registro de salida como el valor de la etiqueta agent.googleapis.com/log_file_path. Cuando se usa un comodín, solo se registra la ruta de acceso del archivo del que se obtuvo el registro.
type El valor debe ser oracledb_audit.
wildcard_refresh_interval 60s El intervalo en el que se actualizan las rutas de acceso de archivos comodín en include_paths. Se proporciona como una duración de tiempo que se puede analizar a través de time.ParseDuration, por ejemplo, 30s o 2m. Esta propiedad puede ser útil en el caso de una capacidad de procesamiento de registro alta en la que los archivos de registro se rotan más rápido que el intervalo predeterminado.

Para configurar un receptor para tus registros oracledb_alert, especifica los siguientes campos:

Campo Predeterminada Descripción
exclude_paths [] Una lista de patrones de ruta de acceso del sistema de archivos que se excluirán del conjunto que coincide con include_paths.
include_paths Una lista de rutas de acceso del sistema de archivos que se leerán a través de la visualización del final de cada archivo. Se puede usar un comodín (*) en las rutas. No se puede proporcionar con el campo oracle_home.
oracle_home Ubicación del ORACLE_HOME para el entorno. Cuando se proporciona, establece include_paths en $ORACLE_HOME/diag/rdbms/*/*/trace/alert_*.log. No se puede proporcionar con el campo include_paths.
record_log_file_path false Si se configura como true, la ruta al archivo específico desde el que se obtuvo el registro aparece en la entrada de registro de salida como el valor de la etiqueta agent.googleapis.com/log_file_path. Cuando se usa un comodín, solo se registra la ruta de acceso del archivo del que se obtuvo el registro.
type El valor debe ser oracledb_alert.
wildcard_refresh_interval 60s El intervalo en el que se actualizan las rutas de acceso de archivos comodín en include_paths. Se proporciona como una duración de tiempo que se puede analizar a través de time.ParseDuration, por ejemplo, 30s o 2m. Esta propiedad puede ser útil en el caso de una capacidad de procesamiento de registro alta en la que los archivos de registro se rotan más rápido que el intervalo predeterminado.

¿Qué se registra?

logName se deriva de los ID de receptor especificados en la configuración. Los campos detallados dentro de LogEntry son los siguientes.

Los registros oracledb_alert contienen los siguientes campos en LogEntry:

Campo Tipo Descripción
jsonPayload.message string Mensaje del registro
severity string (LogSeverity) Nivel de entrada de registro (traducido)

Los registros oracledb_audit contienen los siguientes campos en LogEntry:

Campo Tipo Descripción
jsonPayload.action string Acción que se registra en el registro de auditoría
jsonPayload.action_number número Número que identifica el tipo de acción que se registra
jsonPayload.client_terminal string Identificador de la terminal del cliente en la que se originó la acción
jsonPayload.client_user string Usuario cliente de la acción auditada
jsonPayload.database_user string Usuario de la base de datos de la acción auditada
jsonPayload.dbid número Identificador de la base de datos
jsonPayload.length número Longitud de la string que representa la acción que se registra
jsonPayload.privilege string Privilegio de la base de datos con el que se ejecutó la acción
jsonPayload.sessionid número Identificador de la sesión
jsonPayload.status string Estado de la acción
jsonPayload.user_host string Host en el que se originó la acción auditada
severity string (LogSeverity) Nivel de entrada de registro (traducido)

Configura la recopilación de métricas

Para transferir métricas desde la base de datos de Oracle, debes crear un receptor para las métricas que produce la base de datos de Oracle y, luego, crear una canalización para el receptor nuevo.

Este receptor no admite el uso de varias instancias en la configuración, por ejemplo, para supervisar varios extremos. Todas estas instancias escriben en las mismas series temporales, y Cloud Monitoring no tiene forma de distinguirlas.

Para configurar un receptor para las métricas de oracledb, especifica los siguientes campos:

Campo Predeterminada Descripción
collection_interval 60s Un valor de duración de tiempo, como 30s o 5m.
endpoint localhost:1521 El extremo usado para conectarse a la instancia de la base de datos de Oracle. Este campo admite host:port o una ruta de socket Unix.
insecure true Establece si se debe usar o no una conexión TLS segura. Si se configura como false, TLS está habilitado.
insecure_skip_verify false Establece si se debe omitir la verificación del certificado. Si insecure se configura como true, no se usa el valor insecure_skip_verify.
password La contraseña usada para conectarse a la instancia.
service_name El nombre del servicio de la base de datos de Oracle que se supervisa. Usa este campo o el campo sid según corresponda.
sid El SID de la base de datos de Oracle que se supervisa. Usa este campo o el campo service_name según corresponda.
type Este valor debe ser oracledb.
username El nombre de usuario usado para conectarse a la instancia.
wallet Ruta de acceso al directorio que contiene el contenedor Oracle Wallet que se usa opcionalmente para la autenticación y proteger las conexiones.

Qué se supervisa

En la siguiente tabla, se proporciona una lista de métricas que el agente de operaciones recopila de la instancia de la base de datos de Oracle.

Tipo de métrica
Categoría, tipo
Recursos supervisados
Etiquetas
workload.googleapis.com/oracle.backup.latest
CUMULATIVEINT64
gce_instance
database_id
db_system
global_name
workload.googleapis.com/oracle.buffer.cache.ratio
GAUGEDOUBLE
gce_instance
database_id
db_system
global_name
instance_id
workload.googleapis.com/oracle.cursor.count
CUMULATIVEINT64
gce_instance
database_id
db_system
global_name
instance_id
workload.googleapis.com/oracle.cursor.current
GAUGEINT64
gce_instance
database_id
db_system
global_name
instance_id
workload.googleapis.com/oracle.disk.operation.count
CUMULATIVEINT64
gce_instance
database_id
db_system
direction
global_name
instance_id
workload.googleapis.com/oracle.disk.operation.size
CUMULATIVEINT64
gce_instance
database_id
db_system
direction
global_name
instance_id
workload.googleapis.com/oracle.logon.count
CUMULATIVEINT64
gce_instance
database_id
db_system
global_name
instance_id
workload.googleapis.com/oracle.logon.current
GAUGEINT64
gce_instance
database_id
db_system
global_name
instance_id
workload.googleapis.com/oracle.network.data
CUMULATIVEINT64
gce_instance
database_id
db_system
direction
global_name
instance_id
target
workload.googleapis.com/oracle.process.count
GAUGEINT64
gce_instance
database_id
db_system
global_name
instance_id
workload.googleapis.com/oracle.process.limit
GAUGEINT64
gce_instance
database_id
db_system
global_name
instance_id
workload.googleapis.com/oracle.process.pga_memory.size
GAUGEINT64
gce_instance
database_id
db_system
global_name
instance_id
program
state
workload.googleapis.com/oracle.row.cache.ratio
GAUGEDOUBLE
gce_instance
database_id
db_system
global_name
instance_id
workload.googleapis.com/oracle.service.response_time
GAUGEDOUBLE
gce_instance
database_id
db_system
global_name
instance_id
workload.googleapis.com/oracle.session.count
GAUGEINT64
gce_instance
database_id
db_system
global_name
instance_id
workload.googleapis.com/oracle.session.limit
GAUGEINT64
gce_instance
database_id
db_system
global_name
instance_id
workload.googleapis.com/oracle.sort.count
CUMULATIVEINT64
gce_instance
database_id
db_system
global_name
instance_id
type
workload.googleapis.com/oracle.sort.row.count
CUMULATIVEINT64
gce_instance
database_id
db_system
global_name
instance_id
workload.googleapis.com/oracle.tablespace.count
GAUGEINT64
gce_instance
contents
database_id
db_system
global_name
status
workload.googleapis.com/oracle.tablespace.size
GAUGEINT64
gce_instance
contents
database_id
db_system
global_name
state
tablespace_name
workload.googleapis.com/oracle.user.calls
CUMULATIVEINT64
gce_instance
database_id
db_system
global_name
instance_id
workload.googleapis.com/oracle.user.commits
CUMULATIVEINT64
gce_instance
database_id
db_system
global_name
instance_id
workload.googleapis.com/oracle.user.rollbacks
CUMULATIVEINT64
gce_instance
database_id
db_system
global_name
instance_id
workload.googleapis.com/oracle.wait.count
CUMULATIVEINT64
gce_instance
database_id
db_system
global_name
instance_id
type
wait_class
workload.googleapis.com/oracle.wait.time
CUMULATIVEINT64
gce_instance
database_id
db_system
global_name
instance_id
type
wait_class
workload.googleapis.com/oracle.wait.timeouts
CUMULATIVEINT64
gce_instance
database_id
db_system
global_name
instance_id
type
wait_class

Verifica la configuración

En esta sección, se describe cómo verificar que hayas configurado correctamente el receptor de Oracle DB. El agente de operaciones puede tardar uno o dos minutos en comenzar a recopilar telemetría.

Para verificar que los registros de Oracle DB se envíen a Cloud Logging, haz lo siguiente:

  1. En el panel de navegación de la consola de Google Cloud, selecciona Logging y, luego, Explorador de registros:

    Ir al Explorador de registros

  2. Ingresa la siguiente consulta en el editor y, luego, haz clic en Ejecutar consulta:
    resource.type="gce_instance"
    (log_id("oracledb_alert") OR log_id("oracledb_audit"))
    

Para verificar que las métricas de Oracle DB se envíen a Cloud Monitoring, haz lo siguiente:

  1. En el panel de navegación de la consola de Google Cloud, selecciona Monitoring y, luego,  Explorador de métricas:

    Ir al Explorador de métricas

  2. En la barra de herramientas del panel del compilador de consultas, selecciona el botón cuyo nombre sea  MQL o  PromQL.
  3. Verifica que MQL esté seleccionado en el botón de activación Idioma. El botón de activación de lenguaje se encuentra en la misma barra de herramientas que te permite dar formato a tu consulta.
  4. Ingresa la siguiente consulta en el editor y, luego, haz clic en Ejecutar consulta:
    fetch gce_instance
    | metric 'workload.googleapis.com/oracle.logon.count'
    | every 1m
    

Ver panel

Para ver tus métricas de Oracle DB, debes tener configurado un gráfico o un panel. La integración de Oracle DB incluye uno o más paneles. Cualquier panel se instala de forma automática después de que configuras la integración y de que el agente de operaciones comienza a recopilar datos de métricas.

También puedes ver vistas previas estáticas de los paneles sin instalar la integración.

Para ver un panel instalado, haz lo siguiente:

  1. En el panel de navegación de la consola de Google Cloud, elige Monitoring y, luego,  Paneles:

    Ir a Paneles

  2. Selecciona la pestaña Lista de paneles y, luego, la categoría Integraciones.
  3. Haz clic en el nombre del panel que quiera ver.

Si configuraste una integración, pero el panel no se instaló, verifica que el agente de operaciones se esté ejecutando. Cuando no hay datos de métricas para un gráfico en el panel, la instalación del panel falla. Una vez que el agente de operaciones comienza a recopilar métricas, el panel se instalará por ti.

Para obtener una vista previa estática del panel, haz lo siguiente:

  1. En el panel de navegación de la consola de Google Cloud, elige Monitoring y, luego,  Integraciones:

    Ir a Integraciones

  2. Haz clic en el filtro de la plataforma de implementación Compute Engine.
  3. Ubica la entrada de Oracle DB y haz clic en Ver detalles.
  4. Selecciona la pestaña Paneles para ver una vista previa estática. Si el panel está instalado, haz clic en Ver panel para navegar a él.

Para obtener más información de los paneles en Cloud Monitoring, consulta Paneles y gráficos.

Para obtener más información del uso de la página Integraciones, consulta Administra integraciones.

Instala políticas de alertas

Las políticas de alertas le indican a Cloud Monitoring que te notifique cuando ocurren condiciones especificadas. La integración de Oracle DB incluye una o más políticas de alertas para que uses. Puedes ver e instalar estas políticas de alertas desde la página Integraciones en Monitoring.

Para ver las descripciones de las políticas de alertas disponibles y, luego, instalarlas, haz lo siguiente:

  1. En el panel de navegación de la consola de Google Cloud, elige Monitoring y, luego,  Integraciones:

    Ir a Integraciones

  2. Ubica la entrada de Oracle DB y haz clic en Ver detalles.
  3. Selecciona la pestaña Alertas. En esta pestaña, se proporcionan descripciones de las políticas de alertas disponibles y una interfaz para instalarlas.
  4. Instala las políticas de alertas. Las políticas de alertas deben saber a dónde enviar notificaciones que la alerta se activó, por lo que requieren información de ti para la instalación. Para instalar las políticas de alertas, haz lo siguiente:
    1. En la lista de políticas de alertas disponibles, elige las que deseas instalar.
    2. En la sección Configura notificaciones, elige uno o más canales de notificaciones. Tienes la opción de inhabilitar el uso de los canales de notificación, pero si lo haces, las políticas de alertas se activarán de forma silenciosa. Puedes verificar su estado en Monitoring, pero no recibirás notificaciones.

      Para obtener más información de los canales de notificaciones, consulta Administra canales de notificaciones.

    3. Haz clic en Crear políticas.

Para obtener más información de las políticas de alertas en Cloud Monitoring, consulta Introducción a las alertas.

Para obtener más información del uso de la página Integraciones, consulta Administra integraciones.

¿Qué sigue?

Para obtener una explicación sobre cómo usar Ansible para instalar el agente de operaciones, configurar una aplicación de terceros y, luego, instalar un panel de muestra, consulta el video Instala el agente de operaciones para solucionar problemas de apps de terceros.