Oracle Database

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

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.

# 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

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_auditPara 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_alertPara 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
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
CUMULATIVE, INT64
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
CUMULATIVE, INT64
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
CUMULATIVE, INT64
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
GAUGE, INT64
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
GAUGE, DOUBLE
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
GAUGE, INT64
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
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
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
CUMULATIVE, INT64
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
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.