Puoi configurare l'agente di Google Cloudper i workload di Compute sull'host insieme al tuo database Oracle per raccogliere metriche e monitorare i tuoi workload del database Oracle.
Questo documento mostra come installare, configurare e verificare l'agente per i carichi di lavoro di Compute sulle istanze Compute Engine che eseguono carichi di lavoro Oracle Database.
L'agente raccoglie varie metriche Oracle eseguendo query sulle visualizzazioni delle prestazioni di Oracle Database (ad esempio V$DATABASE
, V$INSTANCE
e V$DATAGUARD_STATS
) e sulle visualizzazioni del dizionario dei dati (ad esempio DBA_DATA_FILES
e DBA_FREE_SPACE
). Queste metriche vengono poi inviate a Cloud Monitoring, dove possono essere visualizzate e analizzate. Vedi Metriche supportate.
Requisiti di sistema
Sistemi operativi | Versioni di Oracle | Versioni Oracle |
---|---|---|
|
|
|
Prerequisiti
Prima di installare Agent for Compute Workloads per monitorare i carichi di lavoro di Oracle Database, assicurati che siano soddisfatti i seguenti prerequisiti:
Crea un'istanza Compute Engine se non ne hai già una. Configura gli ambiti di accesso su
cloud-platform
.Abilita la connettività agli endpoint API Google Cloud , tramite l'accesso alla rete pubblica o alla rete privata.
Se vuoi attivare la raccolta delle metriche, crea un secret in Secret Manager per archiviare la password del database per l'utente del database che verrà creato più avanti in questa guida.
Per gli esempi riportati in questa guida, supponiamo che sia
wlmagent-password
.Concedi i ruoli IAM (Identity and Access Management) al account di servizio.
L'agente diGoogle Cloudper i workload di Compute utilizza il service account Identity and Access Management (IAM) collegato alla VM per l'autenticazione con Google Cloud e per l'autorizzazione di accesso alle risorse Google Cloud . Utilizza un nuovo account di servizio che includa i seguenti ruoli IAM:
- Visualizzatore Compute (roles/compute.viewer)
- Monitoring Metric Writer (roles/monitoring.metricWriter)
Secret Manager Secret Accessor (roles/secretmanager.secretAccessor)
Per seguire il principio del privilegio minimo, ti consigliamo di concedere il ruolo
Secret Manager Secret Accessor
a livello di secret anziché a livello di progetto. In questo modo, l'accesso è limitato solo ai segreti specifici di cui l'account di servizio ha bisogno.
Per scoprire come concedere un ruolo, consulta Gestire l'accesso ai service account.
Attiva l'accesso alle Google Cloud API.
Per attivare l'accesso alle API di Google Cloud , consulta Crea una VM e collega il service account.
Ti consigliamo di configurare le istanze VM per accedere alle API di Google Cloud e gestire controllo dell'accesso#39;accesso utilizzando le autorizzazioni IAM assegnate al account di servizio. Vedi Service account gestito dall'utente e Autorizzazione.
Se esegui Oracle Database su un'istanza VM che non ha un indirizzo IP esterno, abilita l'accesso privato Google nella subnet della VM in modo che l'agente per i workload di Compute possa accedere alle API e ai serviziGoogle Cloud . Per attivare l'accesso privato Google su una subnet, consulta Configurare l'accesso privato Google.
Installa l'agente
Per installare l'agente per i carichi di lavoro di Compute:
Crea un file di configurazione del repository.
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
Aggiorna i metadati del gestore di pacchetti.
sudo yum makecache
Installa il pacchetto rpm
google-cloud-workload-agent
.sudo yum install google-cloud-workload-agent
Dopo aver installato l'agente per Oracle, verifica l'installazione.
Verifica l'installazione dell'agente
Per verificare che l'agente sia in esecuzione, seleziona il tuo sistema operativo e poi segui questi passaggi:
- Utilizza SSH per connetterti alla tua istanza VM.
Esegui questo comando:
systemctl status google-cloud-workload-agent
Se l'agente funziona correttamente, l'output contiene
active (running)
. Ad esempio: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.
Se l'agente non è in esecuzione, prova a riavviarlo.
Configura l'agente
Dopo aver installato l'agente per i workload di Compute, se vuoi, puoi attivare altre funzionalità dell'agente aggiornando il file di configurazione dell'agente. Per un elenco dei parametri che puoi configurare per i carichi di lavoro Oracle Database, consulta Parametri di configurazione.
Dopo aver configurato l'agente, puoi verificare nuovamente l'installazione per assicurarti che sia configurato correttamente.
Parametri di configurazione
Agent for Compute Workloads supporta i seguenti parametri di configurazione per Oracle:
Parametro | Descrizione | |
---|---|---|
log_level |
INFO .
|
|
log_to_cloud |
Per reindirizzare i log dell'agente a Cloud Logging,
specifica |
|
oracle_configuration.enabled |
Facoltativo. Determina se il servizio Oracle è attivo. Se impostato su
|
|
I seguenti parametri secondari sono applicabili solo quando
specifichi oracle_configuration.enabled: true . |
||
oracle_configuration.oracle_discovery.enabled |
Facoltativo. Determina se Oracle Discovery è attivo. Il valore predefinito è |
|
oracle_configuration.oracle_discovery.update_frequency |
Facoltativo. Specifica l'intervallo di campionamento, in secondi, che determina la frequenza con cui l'agente per i carichi di lavoro di Compute esegue il processo di rilevamento. Il valore predefinito è 3600 secondi (1 ora). Assicurati che il valore termini con una "s" minuscola per indicare i secondi. Ad esempio: |
|
oracle_configuration.oracle_metrics.enabled |
Facoltativo. Per consentire ad Agent for Compute Workloads di raccogliere le metriche di monitoraggio di Oracle, specifica |
|
I seguenti parametri secondari sono applicabili solo quando specifichi
|
||
oracle_configuration.oracle_metrics.collection_frequency |
Facoltativo. Specifica l'intervallo di campionamento, in secondi, che determina la frequenza con cui l'agente per i carichi di lavoro di Compute esegue query sulle istanze di Oracle Database per raccogliere le metriche di monitoraggio di Oracle. Il valore predefinito è 60 secondi. Assicurati che il valore termini con una "s" minuscola per indicare i secondi. Ad esempio: |
|
oracle_configuration.oracle_metrics.query_timeout |
Facoltativo. Specifica il timeout per ogni query eseguita sulle istanze del database Oracle. Il valore predefinito è 10 secondi. Assicurati che il valore termini con una "s" minuscola per indicare i secondi. Ad esempio: |
|
oracle_configuration.oracle_metrics.connection_parameters.username |
Specifica l'account utente utilizzato per eseguire query sull'istanza di Oracle Database. Assicurati che questo utente disponga delle autorizzazioni richieste per leggere le viste del rendimento nel tuo database Oracle. |
|
oracle_configuration.oracle_metrics.connection_parameters.host |
Specifica l'identificatore della macchina locale che ospita l'istanza del database. |
|
oracle_configuration.oracle_metrics.connection_parameters.port |
Specifica la porta su cui l'istanza di Oracle Database accetta le query. |
|
oracle_configuration.oracle_metrics.connection_parameters.service_name |
Specifica il nome del servizio per l'istanza del database Oracle che vuoi che l'agente monitori. |
|
oracle_configuration.oracle_metrics.connection_parameters.secret.project_id |
Specifica l'ID progetto di Secret Manager per recuperare la password per l'utente che esegue query sul database. |
|
oracle_configuration.oracle_metrics.connection_parameters.secret.secret_name |
Specifica il nome del secret in Secret Manager che memorizza la password dell'account utente. |
Raccogliere e visualizzare le metriche Oracle
Puoi abilitare la raccolta delle metriche per i carichi di lavoro Oracle Database. Vedi Metriche supportate.
Abilita la raccolta delle metriche
Per abilitare la raccolta delle metriche Oracle utilizzando l'agente per i carichi di lavoro di Compute, esegui le seguenti operazioni:
Utilizza SSH per connetterti alla tua istanza VM.
Come utente del sistema operativo Oracle, esegui lo strumento
oraenv
per impostare le variabili di ambiente. Supponiamo che tu abbia già definito l'utenteoracle
e ilORACLE_SID
nel file/etc/oratab
.sudo su - oracle export PATH=$PATH:/usr/local/bin . oraenv sqlplus / as sysdba
Come utente
SYSDBA
oSYSOPER
, in Oracle Database crea un utente per il monitoraggio con una password corrispondente al secret che hai creato nei Prerequisiti.CREATE USER wlmagent IDENTIFIED BY password;
In qualità di utente
SYSDBA
oSYSOPER
, concedi le seguenti autorizzazioni all'utente di monitoraggio per eseguire query sulle visualizzazioni del rendimento:SESSION
SELECT_CATALOG_ROLE
SYSDG
GRANT CREATE SESSION,SELECT_CATALOG_ROLE,SYSDG TO wlmagent;
Esci da
sqlplus
e dall'utenteoracle
.In qualità di utente root, modifica il file di configurazione dell'agente utilizzando il tuo editor preferito.
sudo nano /etc/google-cloud-workload-agent/configuration.json
Nel file di configurazione, modifica la sezione
oracle_metrics
per apportare i seguenti aggiornamenti:- Imposta il parametro
enabled
sutrue
. - Imposta il parametro
service_name
per specificare il nome del servizio dell'istanza Oracle che vuoi che l'agente monitori. - Specifica il nome utente Oracle per l'agente per connettersi al tuo database.
- Imposta i parametri
host
eport
affinché l'agente si connetta al tuo database. - Imposta il parametro
secret
per l'agente in modo che recuperi una password per il nome utente:project_id
: l'ID del progetto che contiene i dati di Secret Manager.secret_name
: il nome del secret in Secret Manager.
Di seguito è riportato un esempio di file di configurazione:
{ "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" } } ] } } }
- Imposta il parametro
Salva il file di configurazione.
Riavvia l'agente per applicare le nuove impostazioni.
Visualizza le metriche
Puoi visualizzare le metriche raccolte e monitorare le prestazioni e lo stato di Oracle utilizzando Metrics Explorer o importando una dashboard personalizzata.
Visualizzare le metriche in Metrics Explorer
Per visualizzare le metriche Oracle in Metrics Explorer, procedi come segue:
- Nella console Google Cloud , vai a Monitoring.
- Fai clic su Esplora metriche.
- In Trova tipo di risorsa e metrica, segui questi passaggi:
- In Tipo di risorsa, seleziona Istanza VM.
- Per Metrica, seleziona le metriche Oracle che vuoi visualizzare.
Puoi visualizzare i dati storici e in tempo reale per le metriche Oracle selezionate, utilizzando filtri e aggregazione in base alle esigenze.
Importare una dashboard personalizzata
Per visualizzare le metriche Oracle raccolte dall'agente, puoi creare dashboard Cloud Monitoring personalizzate seguendo le istruzioni riportate in Creare e gestire dashboard personalizzate.
Forniamo una dashboard di esempio oracle-status-overview.json
e istruzioni
per importarla. La dashboard oracle-status-overview.json
mostra i seguenti grafici delle metriche Oracle:
- Suddivisione del tempo di database
- Utilizzo memoria database
- Media delle sessioni attive per classe di attesa
- I/O disco
- Utilizzo CPU
- Traffico di rete
Per importare la dashboard oracle-status-overview.json
:
Verifica che gcloud CLI sia installato e aggiornato. Per istruzioni, vedi Installare gcloud CLI.
Dal repository GitHub di Agent for Compute Workloads, scarica la dashboard
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
Esegui questo comando per importare la dashboard:
gcloud alpha monitoring dashboards create --config-from-file=oracle-status-overview.json
Dopo l'esecuzione del comando, la dashboard personalizzata viene creata in Cloud Monitoring. Per scoprire come visualizzare una dashboard, vedi Trovare e visualizzare una dashboard.
Metriche supportate
Tutte le metriche Oracle raccolte da Agent for Compute Workloads sono disponibili nel percorso workload.googleapis.com/oracle
.
Di seguito è riportato un elenco delle metriche Oracle supportate e dei relativi percorsi Cloud Monitoring:
-
Memoria del processo (PGA) in uso, in byte.
process/pga_memory/total_used_size
Memoria del processo (PGA) allocata, in byte
process/pga_memory/total_allocated_size
-
Dimensioni dell'elemento di memoria condivisa (SGA), in byte
process/sga_memory/size
-
Numero totale di attese per una classe di attesa registrata
sys_wait/count
Tempo totale trascorso in questa classe di attesa, in secondi
sys_wait/time
Totale attese in primo piano in questa classe di attesa
sys_wait/foreground/count
Tempo di attesa in primo piano aggregato per questa classe di attesa, in secondi
sys_wait/foreground/time
-
Tempo trascorso a eseguire chiamate a livello di utente del database, in secondi
sys_time/db_time
Tempo della CPU dedicato alle chiamate a livello di utente del database, in secondi
sys_time/db_cpu
Quantità di tempo trascorso durante l'esecuzione delle istruzioni SQL
sys_time/sql_execute_elapsed_time
Quantità di tempo trascorso nell'analisi delle istruzioni SQL
sys_time/parse_time_elapsed
Quantità di tempo trascorso per l'esecuzione dell'interprete PL/SQL
sys_time/pl_sql_execution_elapsed_time
Tempo trascorso consumato dai processi in background del database, in secondi
sys_time/background_elapsed_time
-
Conteggio totale delle operazioni di lettura (piccole + grandi)
iostat/read_ops_count
Conteggio totale delle operazioni di scrittura (piccole + grandi)
iostat/write_ops_count
Numero totale di byte letti
iostat/read_bytes_count
Numero totale di byte scritti
iostat/write_bytes_count
Latenza media per operazione di I/O
iostat/average_latency_seconds
-
Dimensioni allocate del file di dati, in byte
data_files/total_bytes
Spazio del file di dati in uso, in byte
data_files/bytes_used
Spazio libero nel file di dati, in byte
data_files/available_bytes
Limite di estensione automatica dei file di dati, in byte
data_files/max_bytes
Percentuale del file di dati utilizzata
data_files/percent_used
-
Uptime dell'istanza, in secondi
instance/uptime
Stato istanza
instance/status
Questa metrica può avere i seguenti valori:
UNKNOWN
0
STARTED
1
MOUNTED
2
OPEN
3
OPEN MIGRATE
4
Modalità aperta
instance/db_open_mode
Questa metrica può avere i seguenti valori:
UNKNOWN
0
MOUNTED
1
READ WRITE
2
READ ONLY
3
READ ONLY WITH APPLY
4
-
Ritardo di applicazione del rifacimento, in secondi
dataguard/apply_lag
Ripeti ritardo di trasporto, in secondi
dataguard/transport_lag
Gestire l'agente
Riavvia l'agente
Se l'agente per i carichi di lavoro di Compute smette di funzionare o aggiorni la sua configurazione, riavvia l'agente.
- Utilizza SSH per connetterti all'istanza VM.
Esegui questo comando:
sudo systemctl restart google-cloud-workload-agent
Controllare la versione dell'agente
Per controllare la versione dell'agente, completa i seguenti passaggi:
- Utilizza SSH per connetterti all'istanza VM.
Esegui questo comando:
yum info google-cloud-workload-agent
Verifica la disponibilità di aggiornamenti
- Utilizza SSH per connetterti all'istanza VM.
Esegui questo comando:
sudo yum check-update google-cloud-workload-agent
Aggiorna l'agente
Per assicurarti di avere l'ultima versione dell'agente, controlla periodicamente la disponibilità di aggiornamenti e aggiorna l'agente:
- Utilizza SSH per connetterti all'istanza VM.
Esegui questo comando:
sudo yum --nogpgcheck update google-cloud-workload-agent
Visualizza i log dell'agente
I log di Agent for Compute Workloads sono disponibili all'indirizzo
/var/log/google-cloud-workload-agent.log
.
Il livello di dettaglio dei log è controllato dal parametro log_level
. L'impostazione del livello di log DEBUG
include informazioni aggiuntive per la risoluzione di problemi specifici, ma produce
log molto più grandi.
Per impostazione predefinita, i log dell'agente per i workload di Compute vengono reindirizzati dalle istanze VM a Cloud Logging.
Per visualizzare i log dell'agente in Logging:
Nella console Google Cloud , vai alla pagina Esplora log.
Vai al riquadro Query.
Dal menu a discesa Risorse, seleziona Globale e poi fai clic su Applica.
Nell'editor di query, inserisci
google-cloud-workload-agent
.Fai clic su Esegui query.
Puoi visualizzare i log generati dall'agente in esecuzione su tutte le tue istanze VM. Puoi filtrare i log per un'istanza specifica.
Configura i log dell'agente in Cloud Logging
Per disattivare il reindirizzamento predefinito dei log dell'agente a Cloud Logging, segui questi passaggi:
Utilizza SSH per connetterti alla tua istanza VM.
Apri il file di configurazione dell'agente:
/etc/google-cloud-workload-agent/configuration.json
Per la proprietà
log_to_cloud
, aggiorna il valore afalse
.Salva il file di configurazione.
Riavvia l'agente affinché questa modifica abbia effetto.
Risoluzione dei problemi
Le sezioni seguenti forniscono informazioni sui problemi comuni relativi all'utilizzo dell'agente per i carichi di lavoro Oracle Database, sulle relative cause e sulla risoluzione.
Autorizzazioni IAM insufficienti
Problema: i log dell'agente per i carichi di lavoro di Compute mostrano un errore di autorizzazioni IAM insufficienti.
googleapi: Error 403: The client is not authorized to make this request.
Causa: il account di servizio utilizzato dall'agente non dispone delle autorizzazioni IAM richieste per accedere alle API Google Cloud o a una password per l'utente Oracle in Secret Manager.
Risoluzione:per risolvere il problema, assicurati che il account di servizio VM disponga dei ruoli e delle autorizzazioni IAM menzionati nei prerequisiti.
Ambiti di autenticazione insufficienti
Problema: i log di Agent for Compute Workloads mostrano ambiti di autenticazione insufficienti.
googleapi: Error 403: Request had insufficient authentication scopes.
Causa: l'account di servizio utilizzato dall'agente non dispone dell'ambito di accesso richiesto.
Soluzione:per risolvere il problema, configura gli
ambiti di accesso della
VM su cloud-platform
.
Le metriche non vengono visualizzate in Cloud Monitoring
Problema: le metriche dell'agente per i workload di Compute non sono visibili in Cloud Monitoring.
Causa:
Di seguito sono elencate le possibili cause di questo problema:
- Il account di servizio utilizzato dall'agente per i carichi di lavoro di Compute non dispone delle autorizzazioni IAM necessarie.
- L'utente Oracle utilizzato dall'agente non dispone di privilegi sufficienti per eseguire query sulle viste delle prestazioni.
- Sono presenti errori nella configurazione dell'agente.
Risoluzione:
Per risolvere il problema delle autorizzazioni insufficienti per il account di servizio:
- Nella console Google Cloud , vai alla pagina Dettagli istanza VM e annotati ilaccount di serviziot utilizzato dall'istanza che esegue l'agente.
- Vai alla pagina IAM e amministrazione e assicurati che il account di servizio disponga di tutti i ruoli e le autorizzazioni richiesti menzionati nei prerequisiti. Concedi all'account di servizio uno dei ruoli obbligatori mancanti.
Per risolvere il problema delle autorizzazioni insufficienti per l'utente Oracle:
Verifica che l'utente Oracle disponga delle seguenti autorizzazioni richieste per eseguire query sulle viste delle prestazioni:
SESSION
SELECT_CATALOG_ROLE
SYSDG
Concedi le autorizzazioni mancanti eseguendo il seguente comando SQL:
-- Grant the "wlmagent" user the required permissions GRANT CREATE SESSION,SELECT_CATALOG_ROLE,SYSDG TO USERNAME;
Per risolvere il problema di configurazione errata dell'agente:
- Utilizza SSH per connetterti alla tua istanza VM.
Controlla i log dell'agente per identificare eventuali errori o problemi che impediscono la raccolta delle metriche. Puoi trovare i log all'indirizzo
/var/log/google-cloud-workload-agent.log
.Cerca errori di autorizzazione, errori di configurazione o problemi di connettività.
Risolvi eventuali errori.
Riavvia l'agente e controlla se la raccolta delle metriche viene avviata.
Impossibile caricare il file di configurazione
Problema:se il file di configurazione contiene valori non validi, viene visualizzato il seguente errore.
"Failed to load configuration","pid":3524,"error":"proto: (line 19:42): unknown field "{field_name}"
Risoluzione:per risolvere il problema, aggiorna il file di configurazione utilizzando i dettagli in Parametri di configurazione.
Impossibile inizializzare la raccolta dei dati
Problema:dopo l'installazione dell'agente, se il file di configurazione non viene aggiornato, viene visualizzato il seguente errore:
"Failed to initialize guest collection","pid":2112,"error":"invalid value for "user_name" "secret_name"
Soluzione:per risolvere il problema, inizializza la configurazione delle credenziali utilizzando i parametri di configurazione.