Pode configurar o agente do Google Cloud para cargas de trabalho de computação no anfitrião juntamente com a sua base de dados Oracle para recolher métricas e monitorizar as cargas de trabalho da base de dados Oracle. Google Cloud
Este documento mostra como instalar, configurar e validar o agente para cargas de trabalho do Compute em instâncias do Compute Engine que executam cargas de trabalho da base de dados Oracle.
O agente recolhe várias métricas da Oracle consultando as vistas de desempenho da base de dados Oracle (como V$DATABASE
, V$INSTANCE
e V$DATAGUARD_STATS
) e as vistas do dicionário de dados (como DBA_DATA_FILES
e DBA_FREE_SPACE
). Em seguida, estas métricas são enviadas para o Cloud Monitoring, onde podem ser visualizadas e analisadas. Consulte as métricas suportadas.
Requisitos de sistema
Sistemas operativos | Versões do Oracle | Edições Oracle |
---|---|---|
|
|
|
Pré-requisitos
Antes de instalar o agente para cargas de trabalho de computação para monitorizar as cargas de trabalho da base de dados Oracle, certifique-se de que os seguintes pré-requisitos são cumpridos:
Crie uma instância do Compute Engine, se ainda não tiver uma. Configure os âmbitos de acesso para
cloud-platform
.Ative a conetividade aos Google Cloud pontos finais da API, através do acesso à rede pública ou do acesso à rede privada.
Se quiser ativar a recolha de métricas, crie um segredo no Secret Manager para armazenar a palavra-passe da base de dados do utilizador da base de dados que vai ser criado mais tarde neste guia.
Para os exemplos neste guia, assumimos que é
wlmagent-password
.Conceda funções de gestão de identidade e de acesso (IAM) à conta de serviço.
Google Cloudusa a conta de serviço do serviço de gestão de identidade e de acesso (IAM) anexada à VM para autenticação com Google Cloud e para permissão de acesso a recursos Google Cloud . Use uma nova conta de serviço que inclua as seguintes funções do IAM:
- Visitante de computação (roles/compute.viewer)
- Monitoring Metric Writer (roles/monitoring.metricWriter)
Secret Manager Secret Accessor (roles/secretmanager.secretAccessor)
Para seguir o princípio do menor privilégio, recomendamos que conceda a função
Secret Manager Secret Accessor
ao nível do segredo e não ao nível do projeto. Isto limita o acesso apenas aos segredos específicos de que a conta de serviço precisa.
Para saber como conceder uma função, consulte o artigo Faça a gestão do acesso às contas de serviço.
Ative o acesso às Google Cloud APIs.
Para ativar o acesso às Google Cloud APIs, consulte Crie uma VM e anexe a conta de serviço.
Recomendamos que configure as suas instâncias de VM para aceder a Google Cloud APIs e gerir o controlo de acesso através das autorizações da IAM atribuídas à conta de serviço. Consulte Conta de serviço gerida pelo utilizador e Autorização.
Se estiver a executar a base de dados Oracle numa instância de VM que não tenha um endereço IP externo, ative o acesso privado à Google na sub-rede da VM para que o agente para cargas de trabalho de computação possa aceder àsGoogle Cloud APIs e aos serviços. Para ativar o acesso privado à Google numa sub-rede, consulte o artigo Configure o acesso privado à Google.
Instale o agente
Para instalar o agente para cargas de trabalho de computação, faça o seguinte:
Crie um ficheiro de configuração do repositório.
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
Atualize os metadados do gestor de pacotes.
sudo yum makecache
Instale o pacote rpm
google-cloud-workload-agent
.sudo yum install google-cloud-workload-agent
Depois de instalar o agente para o Oracle, valide a instalação do agente.
Valide a instalação do agente
Para verificar se o agente está em execução, selecione o seu sistema operativo e, em seguida, siga os passos:
- Use o SSH para estabelecer ligação à instância de VM.
Execute o seguinte comando:
systemctl status google-cloud-workload-agent
Se o agente estiver a funcionar corretamente, o resultado contém
active (running)
. Por exemplo: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 o agente não estiver em execução, experimente reiniciá-lo.
Configure o agente
Depois de instalar o agente para cargas de trabalho de computação, opcionalmente, pode ativar outras funcionalidades do agente atualizando o ficheiro de configuração do agente. Para ver uma lista dos parâmetros que pode configurar para cargas de trabalho da base de dados Oracle, consulte os Parâmetros de configuração.
Depois de configurar o agente, pode verificar novamente a instalação para se certificar de que o agente está configurado corretamente.
Parâmetros de configuração
O agente para cargas de trabalho de computação suporta os seguintes parâmetros de configuração para o Oracle:
Parâmetro | Descrição | |
---|---|---|
log_level |
INFO .
|
|
log_to_cloud |
Para redirecionar os registos do agente para o Cloud Logging,
especifique |
|
oracle_configuration.enabled |
Opcional. Determina se o serviço Oracle está ativo. Quando definida como
|
|
Os seguintes parâmetros secundários só são aplicáveis quando
especifica oracle_configuration.enabled: true . |
||
oracle_configuration.oracle_discovery.enabled |
Opcional. Determina se o Oracle Discovery está ativo. O valor predefinido é |
|
oracle_configuration.oracle_discovery.update_frequency |
Opcional. Especifique o intervalo de amostragem, em segundos, que determina a frequência com que o agente para cargas de trabalho de computação executa o processo de deteção. O valor predefinido é 3600 segundos (1 hora). Certifique-se de que o valor termina com um "s" em minúsculas para indicar segundos. Por exemplo: |
|
oracle_configuration.oracle_metrics.enabled |
Opcional. Para permitir que o agente para cargas de trabalho do Compute recolha as métricas de monitorização da Oracle, especifique |
|
Os seguintes parâmetros secundários só são aplicáveis quando especifica
|
||
oracle_configuration.oracle_metrics.collection_frequency |
Opcional. Especifique o intervalo de amostragem, em segundos, que determina a frequência com que o agente para cargas de trabalho de computação consulta as suas instâncias da base de dados Oracle para recolher as métricas de monitorização da Oracle. O valor predefinido é 60 segundos. Certifique-se de que o valor termina com um "s" em minúsculas para indicar segundos. Por exemplo: |
|
oracle_configuration.oracle_metrics.query_timeout |
Opcional. Especifique o limite de tempo para cada consulta feita às instâncias da base de dados Oracle. O valor predefinido é 10 segundos. Certifique-se de que o valor termina com um "s" em minúsculas para indicar segundos. Por exemplo: |
|
oracle_configuration.oracle_metrics.connection_parameters.username |
Especifica a conta de utilizador que é usada para consultar a instância da base de dados Oracle. Certifique-se de que este utilizador tem as autorizações necessárias para ler as visualizações de desempenho na sua base de dados Oracle. |
|
oracle_configuration.oracle_metrics.connection_parameters.host |
Especifica o identificador da máquina local que aloja a instância da base de dados. |
|
oracle_configuration.oracle_metrics.connection_parameters.port |
Especifica a porta na qual a sua instância da base de dados Oracle aceita consultas. |
|
oracle_configuration.oracle_metrics.connection_parameters.service_name |
Especifica o nome do serviço para a instância da base de dados Oracle que quer que o agente monitorize. |
|
oracle_configuration.oracle_metrics.connection_parameters.secret.project_id |
Especifica o ID do projeto do Secret Manager para obter a palavra-passe do utilizador que faz consultas à base de dados. |
|
oracle_configuration.oracle_metrics.connection_parameters.secret.secret_name |
Especifica o nome do segredo no Secret Manager que armazena a palavra-passe da conta de utilizador. |
Recolha e veja métricas da Oracle
Pode ativar a recolha de métricas para cargas de trabalho da base de dados do Oracle. Consulte as métricas suportadas.
Ative a recolha de métricas
Para ativar a recolha de métricas da Oracle através do agente para cargas de trabalho de computação, faça o seguinte:
Use o SSH para estabelecer ligação à instância de VM.
Como utilizador do SO Oracle, execute a ferramenta
oraenv
para definir as variáveis de ambiente. Partimos do princípio de que já definiu o utilizadororacle
e oORACLE_SID
no ficheiro/etc/oratab
.sudo su - oracle export PATH=$PATH:/usr/local/bin . oraenv sqlplus / as sysdba
Como utilizador
SYSDBA
ouSYSOPER
, na base de dados Oracle, crie um utilizador para a monitorização com uma palavra-passe correspondente ao segredo que criou nos pré-requisitos.CREATE USER wlmagent IDENTIFIED BY password;
Como utilizador
SYSDBA
ouSYSOPER
, conceda as seguintes autorizações ao utilizador de monitorização para consultar as vistas de desempenho:SESSION
SELECT_CATALOG_ROLE
SYSDG
GRANT CREATE SESSION,SELECT_CATALOG_ROLE,SYSDG TO wlmagent;
Saia do utilizador
sqlplus
e do utilizadororacle
.Como utilizador raiz, edite o ficheiro de configuração do agente através do seu editor preferido.
sudo nano /etc/google-cloud-workload-agent/configuration.json
No ficheiro de configuração, edite a secção
oracle_metrics
para fazer as seguintes atualizações:- Defina o parâmetro
enabled
comotrue
. - Defina o parâmetro
service_name
para especificar o nome do serviço da instância do Oracle que quer que o agente monitorize. - Especifique o nome de utilizador do Oracle para o agente estabelecer ligação à sua base de dados.
- Defina os parâmetros
host
eport
para que o agente se ligue à sua base de dados. - Defina o parâmetro
secret
para o agente obter uma palavra-passe para o nome de utilizador:project_id
: o ID do projeto que contém os dados do Secret Manager.secret_name
: o nome do segredo no Secret Manager.
Segue-se um exemplo de um ficheiro de configuração:
{ "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" } } ] } } }
- Defina o parâmetro
Guarde o ficheiro de configuração.
Reinicie o agente para que as novas definições entrem em vigor.
Veja as métricas
Pode ver as métricas recolhidas e monitorizar o desempenho e o estado do Oracle através do Explorador de métricas ou importando um painel de controlo personalizado.
Veja métricas no Explorador de métricas
Para ver as métricas da Oracle no explorador de métricas, faça o seguinte:
- Na Google Cloud consola, aceda a Monitorização.
- Clique em Explorador de métricas.
- Em Encontre o tipo de recurso e a métrica, faça o seguinte:
- Para Tipo de recurso, selecione Instância de VM.
- Para Métrica, selecione as métricas da Oracle que quer ver.
Pode ver dados em tempo real e do histórico para as métricas da Oracle selecionadas, usando filtros e agregação, conforme necessário.
Importe um painel de controlo personalizado
Para ver as métricas da Oracle recolhidas pelo agente, pode criar painéis de controlo do Cloud Monitoring personalizados seguindo as instruções em Crie e faça a gestão de painéis de controlo personalizados.
Disponibilizamos um exemplo de painel de controlo oracle-status-overview.json
e instruções
sobre como importá-lo. O painel de controlo oracle-status-overview.json
mostra os seguintes gráficos de métricas da Oracle:
- Análise detalhada do tempo da base de dados
- Utilização de memória da base de dados
- Média de sessões ativas por classe de espera
- E/S de disco
- Utilização da CPU
- Tráfego de rede
Para importar o painel de controlo oracle-status-overview.json
, faça o seguinte:
Verifique se a CLI gcloud está instalada e atualizada. Para ver instruções, consulte o artigo Instale a CLI gcloud.
No repositório do GitHub do agente para cargas de trabalho de computação, transfira o painel de controlo
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
Execute o seguinte comando para importar o painel de controlo:
gcloud alpha monitoring dashboards create --config-from-file=oracle-status-overview.json
Depois de executar o comando, o painel de controlo personalizado é criado no Cloud Monitoring. Para saber como ver um painel de controlo, consulte o artigo Encontre e veja um painel de controlo.
Métricas compatíveis
Todas as métricas da Oracle recolhidas pelo agente para cargas de trabalho de computação estão disponíveis no caminho workload.googleapis.com/oracle
.
Segue-se uma lista das métricas da Oracle suportadas e os respetivos caminhos do Cloud Monitoring:
-
Memória do processo (PGA) em utilização, em bytes.
process/pga_memory/total_used_size
Memória do processo (PGA) alocada, em bytes
process/pga_memory/total_allocated_size
-
Tamanho do item de memória partilhada (SGA), em bytes
process/sga_memory/size
-
Número total de esperas por uma classe de espera registada
sys_wait/count
Tempo agregado gasto nesta classe de espera, em segundos
sys_wait/time
Total de esperas em primeiro plano nesta classe de espera
sys_wait/foreground/count
Tempo de espera em primeiro plano agregado para esta classe de espera, em segundos
sys_wait/foreground/time
-
Tempo decorrido gasto a fazer chamadas ao nível do utilizador da base de dados, em segundos
sys_time/db_time
Tempo da CPU gasto em chamadas ao nível do utilizador da base de dados, em segundos
sys_time/db_cpu
Quantidade de tempo decorrido durante a execução das declarações SQL
sys_time/sql_execute_elapsed_time
Quantidade de tempo decorrido gasto a analisar declarações SQL
sys_time/parse_time_elapsed
Quantidade de tempo decorrido gasto na execução do intérprete PL/SQL
sys_time/pl_sql_execution_elapsed_time
Tempo decorrido consumido por processos em segundo plano da base de dados, em segundos
sys_time/background_elapsed_time
-
Contagem total de operações de leitura (pequenas + grandes)
iostat/read_ops_count
Contagem total de operações de escrita (pequenas + grandes)
iostat/write_ops_count
Número total de bytes lidos
iostat/read_bytes_count
Número total de bytes escritos
iostat/write_bytes_count
Latência média por operação de E/S
iostat/average_latency_seconds
-
Tamanho alocado do ficheiro de dados, em bytes
data_files/total_bytes
Espaço do ficheiro de dados em utilização, em bytes
data_files/bytes_used
Espaço livre do ficheiro de dados, em bytes
data_files/available_bytes
Limite de extensão automática do ficheiro de dados, em bytes
data_files/max_bytes
Percentagem do ficheiro de dados usado
data_files/percent_used
-
Tempo de atividade da instância, em segundos
instance/uptime
Estado da instância
instance/status
Esta métrica pode ter os seguintes valores:
UNKNOWN
0
STARTED
1
MOUNTED
2
OPEN
3
OPEN MIGRATE
4
Modo aberto
instance/db_open_mode
Esta métrica pode ter os seguintes valores:
UNKNOWN
0
MOUNTED
1
READ WRITE
2
READ ONLY
3
READ ONLY WITH APPLY
4
-
Tempo até à aplicação da ação Refazer (em segundos)
dataguard/apply_lag
Redo transport delay, in seconds
dataguard/transport_lag
Faça a gestão do agente
Reinicie o agente
Se o agente para cargas de trabalho de computação parar de funcionar ou atualizar a respetiva configuração, reinicie o agente.
- Use o SSH para estabelecer ligação à instância de VM.
Execute o seguinte comando:
sudo systemctl restart google-cloud-workload-agent
Verifique a versão do agente
Para verificar a versão do seu agente, conclua os seguintes passos:
- Use o SSH para estabelecer ligação à instância de VM.
Execute o seguinte comando:
yum info google-cloud-workload-agent
Procure atualizações
- Use o SSH para estabelecer ligação à instância de VM.
Execute o seguinte comando:
sudo yum check-update google-cloud-workload-agent
Atualize o agente
Para se certificar de que tem a versão mais recente do agente, verifique se existem atualizações periodicamente e atualize o agente:
- Use o SSH para estabelecer ligação à instância de VM.
Execute o seguinte comando:
sudo yum --nogpgcheck update google-cloud-workload-agent
Veja os registos do agente
Os registos do agente para cargas de trabalho de computação estão disponíveis em
/var/log/google-cloud-workload-agent.log
.
O nível de detalhe do registo é controlado pelo parâmetro log_level
. A definição do DEBUG
nível de registo
inclui informações adicionais para resolver problemas específicos, mas produz
registos significativamente maiores.
Por predefinição, os registos do agente para cargas de trabalho de computação são redirecionados das instâncias de VM para o Cloud Logging.
Para ver os registos do agente no Logging, siga estes passos:
Na Google Cloud consola, aceda à página Explorador de registos.
Aceda ao painel Consulta.
No menu pendente Recursos, selecione Global e, de seguida, clique em Aplicar.
No editor de consultas, introduza
google-cloud-workload-agent
.Clique em Executar consulta.
Pode ver os registos gerados pelo agente em execução em todas as suas instâncias de VM. Pode filtrar os registos para uma instância específica.
Configure os registos do agente no Cloud Logging
Para desativar o redirecionamento predefinido dos registos do agente para o Cloud Logging, siga estes passos:
Use o SSH para estabelecer ligação à instância de VM.
Abra o ficheiro de configuração do agente:
/etc/google-cloud-workload-agent/configuration.json
Para a propriedade
log_to_cloud
, atualize o valor parafalse
.Guarde o ficheiro de configuração.
Reinicie o agente para que esta alteração entre em vigor.
Resolução de problemas
As secções seguintes fornecem informações sobre problemas comuns relacionados com a utilização do agente para cargas de trabalho da base de dados Oracle, as respetivas causas e resolução.
Autorizações de IAM insuficientes
Problema: os registos do agente para cargas de trabalho de computação mostram um erro de permissões do IAM insuficientes.
googleapi: Error 403: The client is not authorized to make this request.
Causa: a conta de serviço usada pelo agente não tem as autorizações do IAM necessárias para aceder às APIs ou a uma palavra-passe para o utilizador do Oracle no Secret Manager. Google Cloud
Resolução: para resolver este problema, certifique-se de que a conta de serviço da VM tem as funções e as autorizações do IAM mencionadas nos pré-requisitos.
Âmbitos de autenticação insuficientes
Problema: os registos do agente para cargas de trabalho de computação mostram âmbitos de autenticação insuficientes.
googleapi: Error 403: Request had insufficient authentication scopes.
Causa: a conta de serviço usada pelo agente não tem o âmbito de acesso necessário.
Resolução: para resolver este problema, configure os
âmbitos de acesso da
VM para cloud-platform
.
As métricas não são apresentadas no Cloud Monitoring
Problema: as métricas do agente para cargas de trabalho de computação não estão visíveis no Cloud Monitoring.
Causa:
Seguem-se as possíveis causas deste problema:
- A conta de serviço usada pelo agente para cargas de trabalho do Compute não tem as autorizações de IAM necessárias.
- O utilizador do Oracle usado pelo agente não tem privilégios suficientes para consultar as visualizações de desempenho.
- Existem erros na configuração do agente.
Resolução:
Para resolver o problema com as autorizações insuficientes para a conta de serviço, faça o seguinte:
- Na Google Cloud consola, aceda à página Detalhes da instância de VM e tome nota da conta de serviço que está a ser usada pela instância que executa o agente.
- Aceda à página IAM e administrador e certifique-se de que a conta de serviço tem todas as funções e autorizações necessárias mencionadas nos Pré-requisitos. Conceda qualquer uma das funções em falta necessárias à conta de serviço.
Para resolver o problema com as autorizações insuficientes para o utilizador do Oracle, faça o seguinte:
Verifique se o utilizador do Oracle tem as seguintes autorizações necessárias para consultar as visualizações de desempenho:
SESSION
SELECT_CATALOG_ROLE
SYSDG
Conceda qualquer uma das autorizações em falta executando o seguinte comando SQL:
-- Grant the "wlmagent" user the required permissions GRANT CREATE SESSION,SELECT_CATALOG_ROLE,SYSDG TO USERNAME;
Para resolver o problema com a configuração incorreta do agente, faça o seguinte:
- Use o SSH para estabelecer ligação à instância de VM.
Reveja os registos do agente para identificar erros ou problemas que impeçam a recolha de métricas. Pode encontrar os registos em
/var/log/google-cloud-workload-agent.log
.Procure erros de autorização, erros de configuração ou problemas de conetividade.
Resolva os erros.
Reinicie o agente e verifique se a recolha de métricas é iniciada.
Falha ao carregar o ficheiro de configuração
Problema: se o ficheiro de configuração tiver valores inválidos, é apresentado o seguinte erro.
"Failed to load configuration","pid":3524,"error":"proto: (line 19:42): unknown field "{field_name}"
Resolução: para resolver este problema, atualize o ficheiro de configuração com os detalhes em Parâmetros de configuração.
Falha ao inicializar a recolha de dados
Problema: após a instalação do agente, se o ficheiro de configuração não for atualizado, é apresentado o seguinte erro:
"Failed to initialize guest collection","pid":2112,"error":"invalid value for "user_name" "secret_name"
Resolução: para resolver este problema, inicialize a configuração das credenciais com os parâmetros de configuração.