Puedes configurar el agente de Google Cloudpara cargas de trabajo de Compute en el host junto con tu base de datos de Oracle para recoger métricas y monitorizar tus cargas de trabajo de Oracle Database.
En este documento se explica cómo instalar, configurar y verificar el agente para cargas de trabajo de Compute en instancias de Compute Engine que ejecutan cargas de trabajo de Oracle Database.
El agente recoge varias métricas de Oracle consultando las vistas de rendimiento de Oracle Database (como V$DATABASE
, V$INSTANCE
y V$DATAGUARD_STATS
) y las vistas del diccionario de datos (como DBA_DATA_FILES
y DBA_FREE_SPACE
). Estas métricas se envían a Cloud Monitoring, donde se pueden visualizar y analizar. Consulta las métricas admitidas.
Requisitos del sistema
Sistemas operativos | Versiones de Oracle | Ediciones de Oracle |
---|---|---|
|
|
|
Requisitos previos
Antes de instalar Agent for Compute Workloads para monitorizar tus cargas de trabajo de Oracle Database, asegúrate de que se cumplen los siguientes requisitos previos:
Crea una instancia de Compute Engine si aún no tienes una. Configura los ámbitos de acceso de
cloud-platform
.Configura el acceso de superusuario en la instancia de Compute Engine.
Habilita la conectividad a los endpoints de las APIs mediante el acceso a la red pública o privada. Google Cloud
Si quieres habilitar la recogida de métricas, crea un secreto en Secret Manager para almacenar la contraseña del usuario de la base de datos que se creará más adelante en esta guía.
En los ejemplos de esta guía, se presupone que es
wlmagent-password
.Concede roles de Gestión de Identidades y Accesos (IAM) a la cuenta de servicio.
El agente deGoogle Cloudpara cargas de trabajo de Compute usa la cuenta de servicio de Gestión de Identidades y Accesos (IAM) Google Cloud asociada a la VM para autenticarse y para tener permiso para acceder a los recursos de Google Cloud . Usa una cuenta de servicio que incluya los siguientes roles de gestión de identidades y accesos:
- Lector de Compute (roles/compute.viewer)
- Editor de las métricas de monitorización (roles/monitoring.metricWriter)
Lector de recursos de Secret Manager (roles/secretmanager.secretAccessor)
Para seguir el principio de privilegio mínimo, te recomendamos que asignes el rol
Secret Manager Secret Accessor
a nivel de secreto en lugar de a nivel de proyecto. De esta forma, solo se puede acceder a los secretos específicos que necesita la cuenta de servicio.
Para saber cómo conceder un rol, consulta el artículo Gestionar el acceso a cuentas de servicio.
Habilita el acceso a las APIs. Google Cloud
Para habilitar el acceso a las APIs de Google Cloud , consulta el artículo sobre cómo crear una VM y adjuntar la cuenta de servicio.
Te recomendamos que configures tus instancias de VM para acceder a las APIs Google Cloud y que gestiones el control de acceso mediante los permisos de gestión de identidades y accesos asignados a la cuenta de servicio. Consulta Cuenta de servicio gestionada por el usuario y Autorización.
Si ejecutas Oracle Database en una instancia de VM que no tiene una dirección IP externa, habilita Acceso privado de Google en la subred de la VM para que el agente de cargas de trabajo de Compute pueda acceder a las APIs y los servicios deGoogle Cloud . Para habilitar Acceso privado de Google en una subred, consulta Configurar Acceso privado de Google.
Instalar el agente
Para instalar el agente para cargas de trabajo de Compute, haz lo siguiente:
Crea un archivo de configuración de repositorio.
sudo tee /etc/yum.repos.d/google-cloud-workload-agent.repo << EOM [google-cloud-workload-agent] name=Google Cloud Workload Agent baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-workload-agent-\$basearch enabled=1 gpgcheck=0 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOM
Actualiza los metadatos del gestor de paquetes.
sudo yum makecache
Instala el paquete rpm
google-cloud-workload-agent
.sudo yum install google-cloud-workload-agent
Después de instalar el agente para Oracle, verifica la instalación del agente.
Verificar la instalación del agente
Para verificar que el agente se está ejecutando, selecciona tu sistema operativo y sigue estos pasos:
- Usa SSH para conectarte a tu instancia de VM.
Ejecuta el siguiente comando:
systemctl status google-cloud-workload-agent
Si el agente funciona correctamente, el resultado contiene
active (running)
. Por ejemplo:google-cloud-workload-agent.service - Google Cloud Workload Agent Loaded: loaded (/usr/lib/systemd/system/google-cloud-workload-agent.service; enabled; preset: disabled) Active: active (running) since Tue 2024-09-03 22:29:57 UTC; 3s ago Main PID: 274972 (google_cloud_wo) Tasks: 10 (limit: 100440) Memory: 51.2M (max: 1.0G limit: 1.0G available: 972.7M) CPU: 625ms CGroup: /system.slice/google-cloud-workload-agent.service └─274972 /usr/bin/google_cloud_workload_agent startdaemon Sep 03 22:29:57 my_gce_instance systemd[1]: Started Google Cloud Workload Agent.
Si el agente no se está ejecutando, prueba a reiniciarlo.
Configurar el agente
Después de instalar el agente para cargas de trabajo de Compute, puedes habilitar otras funciones del agente actualizando su archivo de configuración. Para ver una lista de los parámetros que puedes configurar para las cargas de trabajo de Oracle Database, consulta Parámetros de configuración.
Después de configurar el agente, puedes volver a verificar la instalación para asegurarte de que el agente se ha configurado correctamente.
Parámetros de configuración
Agent for Compute Workloads admite los siguientes parámetros de configuración para Oracle:
Parámetro | Descripción | |
---|---|---|
log_level |
INFO .
|
|
log_to_cloud |
Para redirigir los registros del agente a Cloud Logging,
especifica |
|
oracle_configuration.enabled |
Opcional. Determina si el servicio de Oracle está activo. Si se le asigna el valor
|
|
Los siguientes parámetros secundarios solo se aplican cuando especifica oracle_configuration.enabled: true . |
||
oracle_configuration.oracle_discovery.enabled |
Opcional. Determina si Oracle Discovery está activo. El valor predeterminado es |
|
oracle_configuration.oracle_discovery.update_frequency |
Opcional. Especifica el intervalo de muestreo, en segundos, que determina la frecuencia con la que el agente de cargas de trabajo de Compute ejecuta el proceso de descubrimiento. El valor predeterminado es de 3600 segundos (1 hora). Asegúrate de que el valor termine con una "s" en minúscula para indicar los segundos. Por ejemplo: |
|
oracle_configuration.oracle_metrics.enabled |
Opcional. Para que Agent for Compute Workloads pueda recoger las métricas de monitorización de Oracle, especifica |
|
Los siguientes parámetros secundarios solo se aplican cuando especifica |
||
oracle_configuration.oracle_metrics.collection_frequency |
Opcional. Especifica el intervalo de muestreo, en segundos, que determina la frecuencia con la que el agente de cargas de trabajo de Compute consulta tus instancias de base de datos de Oracle para recoger las métricas de monitorización de Oracle. El valor predeterminado es 60 segundos. Asegúrate de que el valor termine con una "s" en minúscula para indicar los segundos. Por ejemplo: |
|
oracle_configuration.oracle_metrics.query_timeout |
Opcional. Especifica el tiempo de espera de cada consulta realizada a las instancias de la base de datos de Oracle. El valor predeterminado es 10 segundos. Asegúrate de que el valor termine con una "s" en minúscula para indicar los segundos. Por ejemplo: |
|
oracle_configuration.oracle_metrics.connection_parameters.username |
Especifica la cuenta de usuario que se utiliza para consultar la instancia de Oracle Database. Asegúrate de que este usuario tenga los permisos necesarios para leer las vistas de rendimiento de tu base de datos Oracle. |
|
oracle_configuration.oracle_metrics.connection_parameters.host |
Especifica el identificador del equipo local que aloja la instancia de la base de datos. |
|
oracle_configuration.oracle_metrics.connection_parameters.port |
Especifica el puerto en el que tu instancia de Oracle Database acepta consultas. |
|
oracle_configuration.oracle_metrics.connection_parameters.service_name |
Especifica el nombre del servicio de la instancia de Oracle Database que quieres que monitorice el agente. |
|
oracle_configuration.oracle_metrics.connection_parameters.secret.project_id |
Especifica el ID del proyecto de Secret Manager para obtener la contraseña del usuario que hace consultas en la base de datos. |
|
oracle_configuration.oracle_metrics.connection_parameters.secret.secret_name |
Especifica el nombre del secreto de Secret Manager que almacena la contraseña de la cuenta de usuario. |
Recoger y ver métricas de Oracle
Puede habilitar la recogida de métricas de cargas de trabajo de Oracle Database. Consulta las métricas admitidas.
Habilitar la recogida de métricas
Para habilitar la recogida de métricas de Oracle mediante el agente para cargas de trabajo de Compute, haz lo siguiente:
Usa SSH para conectarte a tu instancia de VM.
Como usuario del SO de Oracle, ejecuta la herramienta
oraenv
para definir las variables de entorno. Suponemos que ya has definido el usuariooracle
y elORACLE_SID
en el archivo/etc/oratab
.sudo su - oracle export PATH=$PATH:/usr/local/bin . oraenv sqlplus / as sysdba
Como usuario
SYSDBA
oSYSOPER
en Oracle Database, crea un usuario para la monitorización con una contraseña que coincida con el secreto que has creado en la sección Requisitos.CREATE USER wlmagent IDENTIFIED BY password;
Como usuario
SYSDBA
oSYSOPER
, concede los siguientes permisos al usuario de monitorización para consultar las vistas de rendimiento:SESSION
SELECT_CATALOG_ROLE
SYSDG
GRANT CREATE SESSION,SELECT_CATALOG_ROLE,SYSDG TO wlmagent;
Cierra la sesión de
sqlplus
y del usuariooracle
.Como usuario raíz, edita el archivo de configuración del agente con el editor que prefieras.
sudo nano /etc/google-cloud-workload-agent/configuration.json
En el archivo de configuración, edita la sección
oracle_metrics
para hacer los siguientes cambios:- Asigna el valor
true
al parámetroenabled
. - Defina el parámetro
service_name
para especificar el nombre del servicio de la instancia de Oracle que quiera que monitorice el agente. - Especifica el nombre de usuario de Oracle para que el agente se conecte a tu base de datos.
- Define los parámetros
host
yport
para que el agente se conecte a tu base de datos. - Define el parámetro
secret
para que el agente recupere la contraseña del nombre de usuario:project_id
: ID del proyecto que contiene los datos de Secret Manager.secret_name
: nombre del secreto en Secret Manager.
A continuación, se muestra un ejemplo de archivo de configuración:
{ "log_level": "INFO", "common_discovery": {"collection_frequency": "3600s" }, "oracle_configuration": { "enabled": true, "oracle_metrics": { "enabled": true, "collection_frequency": "30s", "connection_parameters": [ { "host": "localhost", "port": 1521, "service_name": "orcl", "username": "wlmagent", "secret": { "project_id": "my-project", "secret_name": "wlmagent_password" } } ] } } }
- Asigna el valor
Guarda el archivo de configuración.
Reinicia el agente para que se apliquen los nuevos ajustes.
Ver las métricas
Puede ver las métricas recogidas y monitorizar el rendimiento y el estado de Oracle mediante el explorador de métricas o importando un panel de control personalizado.
Ver métricas en el explorador de métricas
Para ver las métricas de Oracle en el explorador de métricas, haz lo siguiente:
- En la Google Cloud consola, ve a Monitorización.
- Haga clic en Explorador de métricas.
- En Find resource type and metric (Buscar tipo de recurso y métrica), haz lo siguiente:
- En Tipo de recurso, selecciona Instancia de VM.
- En Métrica, seleccione las métricas de Oracle que quiera ver.
Puede ver datos históricos y en tiempo real de las métricas de Oracle seleccionadas, así como usar filtros y agregaciones según sea necesario.
Importar un panel de control personalizado
Para ver las métricas de Oracle recogidas por el agente, puede crear paneles de control personalizados de Cloud Monitoring siguiendo las instrucciones que se indican en el artículo Crear y gestionar paneles de control personalizados.
Proporcionamos un panel de control de ejemplo oracle-status-overview.json
e instrucciones
para importarlo. El panel de control oracle-status-overview.json
muestra los siguientes gráficos de métricas de Oracle:
- Desglose del tiempo de la base de datos
- Uso de memoria de la base de datos
- Promedio de sesiones activas por clase de espera
- E/S de disco
- Uso de CPU
- Tráfico de red
Para importar el panel de control oracle-status-overview.json
, siga estos pasos:
Verifica que la herramienta de línea de comandos gcloud esté instalada y actualizada. Para ver las instrucciones, consulta Instalar gcloud CLI.
En el repositorio de GitHub de Agent for Compute Workloads, descarga el panel de control
oracle-status-overview.json
:$ curl -H "Accept: application/vnd.github.v3.raw" -o oracle-status-overview.json https://api.github.com/repos/GoogleCloudPlatform/workloadagent/contents/observability/dashboards/oracle-status-overview.json
Ejecuta el siguiente comando para importar el panel de control:
gcloud alpha monitoring dashboards create --config-from-file=oracle-status-overview.json
Una vez que se haya ejecutado el comando, el panel de control personalizado se creará en Cloud Monitoring. Para saber cómo ver un panel de control, consulta el artículo Buscar y ver un panel de control.
Métricas admitidas
Todas las métricas de Oracle recogidas por el agente de cargas de trabajo de Compute están disponibles en la ruta workload.googleapis.com/oracle
.
A continuación, se muestra una lista de las métricas de Oracle admitidas y sus rutas de Cloud Monitoring correspondientes:
-
Memoria de proceso (PGA) en uso, en bytes.
process/pga_memory/total_used_size
Memoria de proceso (PGA) asignada, en bytes
process/pga_memory/total_allocated_size
-
Tamaño del elemento de memoria compartida (SGA), expresado en bytes
process/sga_memory/size
-
Número total de esperas de una clase de espera registrada.
sys_wait/count
Tiempo total dedicado a esta clase de espera, en segundos.
sys_wait/time
Tiempo total de espera en primer plano en esta clase de espera.
sys_wait/foreground/count
Tiempo de espera en primer plano agregado de esta clase de espera, en segundos.
sys_wait/foreground/time
Tiempo transcurrido del sistema
Tiempo transcurrido dedicado a realizar llamadas a nivel de usuario de la base de datos, en segundos.
sys_time/db_time
Tiempo de CPU dedicado a llamadas a nivel de usuario de la base de datos, en segundos.
sys_time/db_cpu
Cantidad de tiempo transcurrido durante la ejecución de las instrucciones SQL.
sys_time/sql_execute_elapsed_time
Cantidad de tiempo transcurrido durante el análisis de instrucciones SQL.
sys_time/parse_time_elapsed
Cantidad de tiempo transcurrido durante la ejecución del intérprete de PL/SQL.
sys_time/pl_sql_execution_elapsed_time
Tiempo transcurrido consumido por los procesos en segundo plano de la base de datos, en segundos.
sys_time/background_elapsed_time
-
Número total de operaciones de lectura (pequeñas y grandes)
iostat/read_ops_count
Número total de operaciones de escritura (pequeñas y grandes)
iostat/write_ops_count
Número total de bytes leídos
iostat/read_bytes_count
Número total de bytes escritos
iostat/write_bytes_count
Latencia media por operación de E/S
iostat/average_latency_seconds
-
Tamaño asignado del archivo de datos, en bytes
data_files/total_bytes
Espacio de archivos de datos en uso, en bytes
data_files/bytes_used
Espacio libre del archivo de datos, en bytes
data_files/available_bytes
Límite de extensión automática de archivos de datos, en bytes
data_files/max_bytes
Porcentaje del archivo de datos usado
data_files/percent_used
-
Tiempo de actividad de la instancia en segundos.
instance/uptime
Estado de la instancia
instance/status
Esta métrica puede tener los siguientes valores:
UNKNOWN
0
STARTED
1
MOUNTED
2
OPEN
3
OPEN MIGRATE
4
Modo Abierto
instance/db_open_mode
Esta métrica puede tener los siguientes valores:
UNKNOWN
0
MOUNTED
1
READ WRITE
2
READ ONLY
3
READ ONLY WITH APPLY
4
-
Retraso de aplicación de rehacer (en segundos)
dataguard/apply_lag
Retraso de transporte de rehacer, en segundos
dataguard/transport_lag
Gestionar el agente
Reiniciar el agente
Si Agent for Compute Workloads deja de funcionar o actualiza su configuración, reinicie el agente.
- Usa SSH para conectarte a la instancia de VM.
Ejecuta el siguiente comando:
sudo systemctl restart google-cloud-workload-agent
Comprobar la versión del agente
Para comprobar la versión de tu agente, sigue estos pasos:
- Usa SSH para conectarte a la instancia de VM.
Ejecuta el siguiente comando:
yum info google-cloud-workload-agent
Buscar actualizaciones
- Usa SSH para conectarte a la instancia de VM.
Ejecuta el siguiente comando:
sudo yum check-update google-cloud-workload-agent
Actualizar el agente
Para asegurarte de que tienes la versión más reciente del agente, comprueba si hay actualizaciones periódicamente y actualiza el agente:
- Usa SSH para conectarte a la instancia de VM.
Ejecuta el siguiente comando:
sudo yum --nogpgcheck update google-cloud-workload-agent
Ver registros del agente
Los registros de Agent for Compute Workloads están disponibles en /var/log/google-cloud-workload-agent.log
.
La verbosidad de los registros se controla mediante el parámetro log_level
. El ajuste DEBUG
de nivel de registro
incluye información adicional para solucionar problemas específicos, pero genera
registros mucho más grandes.
De forma predeterminada, los registros de Agente para cargas de trabajo de Compute se redirigen desde tus instancias de VM a Cloud Logging.
Para ver los registros del agente en Logging, sigue estos pasos:
En la Google Cloud consola, ve a la página Explorador de registros.
Ve al panel Consulta.
En el menú desplegable Recursos, selecciona Global y, a continuación, haz clic en Aplicar.
En el editor de consultas, escribe
google-cloud-workload-agent
.Haz clic en Realizar una consulta.
Puedes ver los registros generados por el agente que se ejecuta en todas tus instancias de VM. Puede filtrar los registros de una instancia específica.
Configurar los registros del agente en Cloud Logging
Para inhabilitar la redirección predeterminada de los registros del agente a Cloud Logging, sigue estos pasos:
Usa SSH para conectarte a tu instancia de VM.
Abre el archivo de configuración del agente:
/etc/google-cloud-workload-agent/configuration.json
En la propiedad
log_to_cloud
, actualiza el valor afalse
.Guarda el archivo de configuración.
Reinicia el agente para que se aplique este cambio.
Solución de problemas
En las siguientes secciones se proporciona información sobre los problemas habituales relacionados con el uso del agente para cargas de trabajo de Oracle Database, sus causas y cómo solucionarlos.
Permisos de gestión de identidades y accesos insuficientes
Problema: los registros del agente de cargas de trabajo de Compute muestran un error de permisos de IAM insuficientes.
googleapi: Error 403: The client is not authorized to make this request.
Causa: La cuenta de servicio que usa el agente no tiene los permisos de IAM necesarios para acceder a las APIs de Google Cloud o una contraseña para el usuario de Oracle en Secret Manager.
Solución: Para solucionar este problema, asegúrate de que la cuenta de servicio de la VM tenga los roles y permisos de gestión de identidades y accesos que se mencionan en Requisitos previos.
Ámbitos de autenticación insuficientes
Problema: Los registros del agente de cargas de trabajo de Compute muestran ámbitos de autenticación insuficientes.
googleapi: Error 403: Request had insufficient authentication scopes.
Causa: La cuenta de servicio que usa el agente no tiene el ámbito de acceso necesario.
Resolución: Para solucionar este problema, configura los ámbitos de acceso de la máquina virtual en cloud-platform
.
Las métricas no se muestran en Cloud Monitoring
Problema: Las métricas del agente de cargas de trabajo de Compute no se ven en Cloud Monitoring.
Causa:
Estas son las posibles causas de este problema:
- La cuenta de servicio que usa el agente de cargas de trabajo de Compute no tiene los permisos de gestión de identidades y accesos necesarios.
- El usuario de Oracle que utiliza el agente no tiene suficientes privilegios para consultar vistas de rendimiento.
- Hay errores en la configuración del agente.
Resolución:
Para solucionar el problema de permisos insuficientes de la cuenta de servicio, haz lo siguiente:
- En la Google Cloud consola, ve a la página Detalles de la instancia de VM y anota la cuenta de servicio que usa la instancia que ejecuta el agente.
- Ve a la página IAM y administración y asegúrate de que la cuenta de servicio tenga todos los roles y permisos necesarios que se mencionan en los requisitos. Asigna a la cuenta de servicio cualquiera de los roles que faltan.
Para solucionar el problema de permisos insuficientes del usuario de Oracle, haz lo siguiente:
Verifica que el usuario de Oracle tenga los siguientes permisos necesarios para consultar vistas de rendimiento:
SESSION
SELECT_CATALOG_ROLE
SYSDG
Concede los permisos que falten ejecutando el siguiente comando SQL:
-- Grant the "wlmagent" user the required permissions GRANT CREATE SESSION,SELECT_CATALOG_ROLE,SYSDG TO USERNAME;
Para solucionar el problema de configuración incorrecta del agente, haz lo siguiente:
- Usa SSH para conectarte a tu instancia de VM.
Revisa los registros del agente para identificar los errores o problemas que impidan la recogida de métricas. Puedes encontrar los registros en
/var/log/google-cloud-workload-agent.log
.Busca errores de permisos, errores de configuración o problemas de conectividad.
Resuelve los errores.
Reinicia el agente y comprueba si se inicia la recogida de métricas.
No se ha podido cargar el archivo de configuración
Problema: si el archivo de configuración tiene valores no válidos, aparece el siguiente error.
"Failed to load configuration","pid":3524,"error":"proto: (line 19:42): unknown field "{field_name}"
Resolución: para solucionar este problema, actualice el archivo de configuración con los detalles que se indican en Parámetros de configuración.
No se ha podido inicializar la recogida de datos
Problema: después de instalar el agente, si el archivo de configuración no se actualiza, aparece el siguiente error:
"Failed to initialize guest collection","pid":2112,"error":"invalid value for "user_name" "secret_name"
Solución: para solucionar este problema, inicialice la configuración de las credenciales con los parámetros de configuración.