A integração com o Oracle DB coleta registros e métricas do Oracle DB. As métricas são coletadas ao consultar visualizações de monitoramento relevantes. Essa integração grava registros de rastreamento estruturados.
Para mais informações sobre o Oracle DB, consulte a documentação do Oracle Database.
Pré-requisitos
Para coletar a telemetria do Oracle DB, é necessário instalar o Agente de operações versão 2.22.0 ou mais recente.
Essa integração é compatível com as versões 12.2, 18c, 19c e 21c do Oracle DB.
Configure a instância do Oracle DB
Para coletar métricas, um usuário de monitoramento exige acesso SELECT
às visualizações relevantes. O script sql a seguir deve criar um usuário de monitoramento e conceder a ele as permissões apropriadas se ele for executado por um usuário com permissões suficientes conectadas à instância do Oracle DB como SYSDBA ou 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;
Configurar o agente de operações para o banco de dados Oracle
Seguindo o guia sobre Como configurar o agente de operações, adicione os elementos necessários para coletar a telemetria das instâncias do banco de dados Oracle e reinicie o agente.
Exemplo de configuração
Os comandos a seguir criam a configuração para coletar e ingerir telemetria para o Oracle DB e reinicia o agente de operações.
Configurar a coleta de registros
Para ingerir registros do Oracle DB, você precisa criar receptores para os registros produzidos pelo Oracle DB e, em seguida, criar um pipeline para os novos receptores.
oracledb_audit
Para configurar um receptor para os registros , especifique os seguintes campos:
Campo | Padrão | Descrição |
---|---|---|
exclude_paths |
[] |
Uma lista de padrões de caminho do sistema de arquivos a serem excluídos do conjunto correspondente a include_paths . |
include_paths |
Uma lista de caminhos do sistema de arquivos a serem lidos acompanhando cada
arquivo. Um caractere curinga (* ) pode ser usado nos caminhos. Não pode ser fornecido com o campo oracle_home . |
|
oracle_home |
Localização do ORACLE_HOME para o ambiente. Quando fornecido, define o include_paths como $ORACLE_HOME/admin/*/adump/*.aud . Não pode ser fornecido com o campo include_paths . |
|
record_log_file_path |
false |
Se definido como true , o caminho para o arquivo específico de que a gravação de registro foi recebida aparecerá na entrada de registro de saída como o valor do rótulo agent.googleapis.com/log_file_path . Ao usar um caractere curinga, apenas o caminho do arquivo de que o registro foi recebido é gravado. |
type |
O valor precisa ser oracledb_audit . |
|
wildcard_refresh_interval |
60s |
O intervalo em que os caminhos de arquivos curinga em include_paths são atualizados. Considerado como uma duração de tempo comparável por time.ParseDuration , por exemplo, 30s ou 2m . Essa propriedade pode ser útil com capacidades de registro altas em que os arquivos de registro são alternados mais rapidamente do que o intervalo padrão. |
oracledb_alert
Para configurar um receptor para os registros , especifique os seguintes campos:
Campo | Padrão | Descrição |
---|---|---|
exclude_paths |
[] |
Uma lista de padrões de caminho do sistema de arquivos a serem excluídos do conjunto correspondente a include_paths . |
include_paths |
Uma lista de caminhos do sistema de arquivos a serem lidos acompanhando cada
arquivo. Um caractere curinga (* ) pode ser usado nos caminhos. Não pode ser fornecido com o campo oracle_home . |
|
oracle_home |
Localização do ORACLE_HOME para o ambiente, quando fornecido, ao definir include_paths como $ORACLE_HOME/diag/rdbms/*/*/trace/alert_*.log . Não pode ser fornecido com o campo include_paths . |
|
record_log_file_path |
false |
Se definido como true , o caminho para o arquivo específico de que a gravação de registro foi recebida aparecerá na entrada de registro de saída como o valor do rótulo agent.googleapis.com/log_file_path . Ao usar um caractere curinga, apenas o caminho do arquivo de que o registro foi recebido é gravado. |
type |
O valor precisa ser oracledb_alert . |
|
wildcard_refresh_interval |
60s |
O intervalo em que os caminhos de arquivos curinga em include_paths são atualizados. Considerado como uma duração de tempo comparável por time.ParseDuration , por exemplo, 30s ou 2m . Essa propriedade pode ser útil com capacidades de registro altas em que os arquivos de registro são alternados mais rapidamente do que o intervalo padrão. |
O que é registrado
O logName
é derivado dos
IDs do receptor especificados na configuração. Os campos
detalhados dentro de LogEntry
são os seguintes.
Os registros oracledb_alert
contêm os seguintes campos no LogEntry
:
Campo | Tipo | Descrição |
---|---|---|
jsonPayload.message |
string | Mensagem de registro |
severity |
string (LogSeverity ) |
Nível de entrada de registro (traduzido) |
Os registros oracledb_audit
contêm os seguintes campos no LogEntry
:
Campo | Tipo | Descrição |
---|---|---|
jsonPayload.action |
string | Ação sendo registrada no registro de auditoria |
jsonPayload.action_number |
number | Número que identifica o tipo de ação registrada |
jsonPayload.client_terminal |
string | Identificador do terminal do cliente em que a ação foi originada |
jsonPayload.client_user |
string | Usuário do cliente para a ação auditada |
jsonPayload.database_user |
string | Usuário do banco de dados para a ação auditada |
jsonPayload.dbid |
number | Identificador do banco de dados |
jsonPayload.length |
number | Tamanho da string que representa a ação sendo registrada |
jsonPayload.privilege |
string | Privilégio do banco de dados em que a ação foi executada |
jsonPayload.sessionid |
number | Identificador de sessão |
jsonPayload.status |
string | Status da ação |
jsonPayload.user_host |
string | Host em que a ação auditada foi originada |
severity |
string (LogSeverity ) |
Nível de entrada de registro (traduzido) |
Configurar a coleta de métricas
Para ingerir métricas do Oracle DB, você precisa criar receptores para as métricas que o Oracle DB produz e, em seguida, criar um pipeline para os novos receptores.
Para configurar um receptor para suas
métricas do oracledb
, especifique os campos
a seguir:
Campo | Padrão | Descrição |
---|---|---|
collection_interval |
60s |
Um valor de duração, como 30s ou 5m . |
endpoint |
localhost:1521 |
O endpoint usado para se conectar à instância de banco de dados Oracle. Esse campo oferece suporte a um caminho de host:porta ou um soquete Unix. |
insecure |
true |
Define se uma conexão TLS segura será ou não usada. Se definido como false , o TLS será ativado. |
insecure_skip_verify |
false |
Define se é necessário pular a verificação do certificado. Se insecure for definido como true , o valor de insecure_skip_verify não será usado. |
password |
A senha usada para se conectar ao servidor. | |
service_name |
O nome do serviço do banco de dados Oracle que está sendo monitorado. Use este campo ou sid conforme apropriado. |
|
sid |
O SID do banco de dados Oracle que está sendo monitorado. Use este campo ou service_name conforme apropriado. |
|
type |
Este valor precisa ser oracledb . |
|
username |
O nome de usuário usado para se conectar ao servidor. | |
wallet |
Caminho para o diretório que contém a carteira do Oracle usada opcionalmente para autenticação e proteção de conexões. |
O que é monitorado?
Veja na tabela a seguir a lista de métricas que o agente de operações coleta da instância do Oracle DB.
Tipo de métrica | |
---|---|
Tipo, tipo Recursos monitorados |
Rótulos |
workload.googleapis.com/oracle.backup.latest
|
|
CUMULATIVE , INT64 gce_instance |
database_id db_system global_name
|
workload.googleapis.com/oracle.buffer.cache.ratio
|
|
GAUGE , DOUBLE gce_instance |
database_id db_system global_name instance_id
|
workload.googleapis.com/oracle.cursor.count
|
|
CUMULATIVE , INT64 gce_instance |
database_id db_system global_name instance_id
|
workload.googleapis.com/oracle.cursor.current
|
|
GAUGE , INT64 gce_instance |
database_id db_system global_name instance_id
|
workload.googleapis.com/oracle.disk.operation.count
|
|
CUMULATIVE , INT64 gce_instance |
database_id db_system direction global_name instance_id
|
workload.googleapis.com/oracle.disk.operation.size
|
|
CUMULATIVE , INT64 gce_instance |
database_id db_system direction global_name instance_id
|
workload.googleapis.com/oracle.logon.count
|
|
CUMULATIVE , INT64 gce_instance |
database_id db_system global_name instance_id
|
workload.googleapis.com/oracle.logon.current
|
|
GAUGE , INT64 gce_instance |
database_id db_system global_name instance_id
|
workload.googleapis.com/oracle.network.data
|
|
CUMULATIVE , INT64 gce_instance |
database_id db_system direction global_name instance_id target
|
workload.googleapis.com/oracle.process.count
|
|
GAUGE , INT64 gce_instance |
database_id db_system global_name instance_id
|
workload.googleapis.com/oracle.process.limit
|
|
GAUGE , INT64 gce_instance |
database_id db_system global_name instance_id
|
workload.googleapis.com/oracle.process.pga_memory.size
|
|
GAUGE , INT64 gce_instance |
database_id db_system global_name instance_id program state
|
workload.googleapis.com/oracle.row.cache.ratio
|
|
GAUGE , DOUBLE gce_instance |
database_id db_system global_name instance_id
|
workload.googleapis.com/oracle.service.response_time
|
|
GAUGE , DOUBLE gce_instance |
database_id db_system global_name instance_id
|
workload.googleapis.com/oracle.session.count
|
|
GAUGE , INT64 gce_instance |
database_id db_system global_name instance_id
|
workload.googleapis.com/oracle.session.limit
|
|
GAUGE , INT64 gce_instance |
database_id db_system global_name instance_id
|
workload.googleapis.com/oracle.sort.count
|
|
CUMULATIVE , INT64 gce_instance |
database_id db_system global_name instance_id type
|
workload.googleapis.com/oracle.sort.row.count
|
|
CUMULATIVE , INT64 gce_instance |
database_id db_system global_name instance_id
|
workload.googleapis.com/oracle.tablespace.count
|
|
GAUGE , INT64 gce_instance |
contents database_id db_system global_name status
|
workload.googleapis.com/oracle.tablespace.size
|
|
GAUGE , INT64 gce_instance |
contents database_id db_system global_name state tablespace_name
|
workload.googleapis.com/oracle.user.calls
|
|
CUMULATIVE , INT64 gce_instance |
database_id db_system global_name instance_id
|
workload.googleapis.com/oracle.user.commits
|
|
CUMULATIVE , INT64 gce_instance |
database_id db_system global_name instance_id
|
workload.googleapis.com/oracle.user.rollbacks
|
|
CUMULATIVE , INT64 gce_instance |
database_id db_system global_name instance_id
|
workload.googleapis.com/oracle.wait.count
|
|
CUMULATIVE , INT64 gce_instance |
database_id db_system global_name instance_id type wait_class
|
workload.googleapis.com/oracle.wait.time
|
|
CUMULATIVE , INT64 gce_instance |
database_id db_system global_name instance_id type wait_class
|
workload.googleapis.com/oracle.wait.timeouts
|
|
CUMULATIVE , INT64 gce_instance |
database_id db_system global_name instance_id type wait_class
|
Amostra de painel
Para visualizar as métricas do Oracle DB, é necessário ter um gráfico ou painel configurado. O Cloud Monitoring disponibiliza uma biblioteca de painéis de amostra para integrações, que contêm gráficos pré-configurados. Para informações sobre a instalação desses painéis, consulte Como instalar painéis de amostra.
Verificar a configuração
Nesta seção, descrevemos como verificar se você configurou corretamente o receptor do Oracle DB. Pode levar um ou dois minutos para que o agente de operações comece a coletar telemetria.
Para verificar se os registros foram ingeridos, acesse o Explorador de registros e execute a consulta a seguir para ver os registros do Oracle DB:
resource.type="gce_instance"
(log_id("oracledb_alert") OR log_id("oracledb_audit"))
Para verificar se as métricas são ingeridas, acesse o Metrics Explorer e execute a seguinte consulta na guia MQL:
fetch gce_instance
| metric 'workload.googleapis.com/oracle.logon.count'
| every 1m
A seguir
Para ver um tutorial sobre como usar o Ansible para instalar o agente de operações, configurar um aplicativo de terceiros e instalar um painel de amostra, consulte o vídeo Instalação do agente de operações para resolver problemas de aplicativos de terceiros.