Oracle 数据库集成会收集 Oracle 数据库指标和日志。这些指标通过查询相关的监控视图来收集。此集成会写入结构化跟踪日志。
如需详细了解 Oracle 数据库,请参阅 Oracle 数据库文档。
前提条件
如需收集 Oracle 数据库遥测,您必须安装 Ops Agent 2.22.0 或更高版本。
此集成支持 Oracle 数据库版本 12.2、18c、19c 和 21c。
配置 Oracle 数据库实例
为收集指标,监控用户需要对相关数据视图具有 SELECT
访问权限。以下 SQL 脚本应创建一个监控用户,并在其有足够权限(作为 SYSDBA 或 SYSOPER )连接到 Oracle 数据库实例的用户执行时为其授予适当的权限。
-- 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;
为 Oracle 数据库配置 Ops Agent
按照配置 Ops 代理的指南,添加从 Oracle 数据库实例收集遥测所需的元素,并重启代理。
配置示例
以下命令会创建配置,以收集 Oracle 数据库的遥测数据并注入遥测数据,然后重启 Ops Agent。
配置日志收集
如需从 Oracle 数据库注入日志,您必须为 Oracle 数据库生成的日志创建接收器,然后为新接收器创建流水线。
如需为 oracledb_audit
日志配置接收器,请指定以下字段:
字段 | 默认 | 说明 |
---|---|---|
exclude_paths |
[] |
要从 include_paths 匹配的集合中排除的文件系统路径模式列表。 |
include_paths |
要通过跟踪每个文件读取的文件系统路径列表。通配符可在路径中使用 (* )。不能与 oracle_home 字段一起提供。 |
|
oracle_home |
环境的 ORACLE_HOME 的位置;如果提供,则会将 include_paths 设置为 $ORACLE_HOME/admin/*/adump/*.aud 。不能与 include_paths 字段一起提供。 |
|
record_log_file_path |
false |
如果设置为 true ,则从中获取日志记录的特定文件的路径将作为 agent.googleapis.com/log_file_path 标签的值显示在输出日志条目中。使用通配符时,系统只会记录从中获取记录的文件的路径。 |
type |
该值必须为 oracledb_audit 。 |
|
wildcard_refresh_interval |
60s |
include_paths 中通配符文件路径的刷新间隔。指定为 time.ParseDuration 可解析的时长,例如 30s 或 2m 。该属性在高日志记录吞吐量下可能很有用,因为日志文件的轮替速度快于默认时间间隔。 |
如需为 oracledb_alert
日志配置接收器,请指定以下字段:
字段 | 默认 | 说明 |
---|---|---|
exclude_paths |
[] |
要从 include_paths 匹配的集合中排除的文件系统路径模式列表。 |
include_paths |
要通过跟踪每个文件读取的文件系统路径列表。通配符可在路径中使用 (* )。不能与 oracle_home 字段一起提供。 |
|
oracle_home |
环境 ORACLE_HOME 的位置(如果提供),则会将 include_paths 设置为 $ORACLE_HOME/diag/rdbms/*/*/trace/alert_*.log 。不能与 include_paths 字段一起提供。 |
|
record_log_file_path |
false |
如果设置为 true ,则从中获取日志记录的特定文件的路径将作为 agent.googleapis.com/log_file_path 标签的值显示在输出日志条目中。使用通配符时,系统只会记录从中获取记录的文件的路径。 |
type |
该值必须为 oracledb_alert 。 |
|
wildcard_refresh_interval |
60s |
include_paths 中通配符文件路径的刷新间隔。指定为 time.ParseDuration 可解析的时长,例如 30s 或 2m 。该属性在高日志记录吞吐量下可能很有用,因为日志文件的轮替速度快于默认时间间隔。 |
记录的内容
logName
派生自配置中指定的接收器 ID。LogEntry
中的详细字段如下所示。
oracledb_alert
日志包含 LogEntry
中的以下字段:
字段 | 类型 | 说明 |
---|---|---|
jsonPayload.message |
字符串 | 日志消息 |
severity |
字符串 (LogSeverity ) |
日志条目级别(已转换) |
oracledb_audit
日志包含 LogEntry
中的以下字段:
字段 | 类型 | 说明 |
---|---|---|
jsonPayload.action |
字符串 | 审核日志中记录的操作 |
jsonPayload.action_number |
数字 | 标识正在记录的操作的类型的数字 |
jsonPayload.client_terminal |
字符串 | 发起操作的客户端终端的标识符 |
jsonPayload.client_user |
字符串 | 所审核操作的客户用户 |
jsonPayload.database_user |
字符串 | 受审核操作的数据库用户 |
jsonPayload.dbid |
数字 | 数据库标识符 |
jsonPayload.length |
数字 | 表示正在记录的操作的字符串的长度 |
jsonPayload.privilege |
字符串 | 执行操作的数据库权限 |
jsonPayload.sessionid |
数字 | 会话标识符 |
jsonPayload.status |
字符串 | 操作的状态 |
jsonPayload.user_host |
字符串 | 审核操作的来源主机 |
severity |
字符串 (LogSeverity ) |
日志条目级别(已转换) |
配置指标收集
如需从 Oracle 数据库注入指标,您必须为 Oracle 数据库生成的指标创建接收器,然后为新接收器创建流水线。
如需为 oracledb
指标配置接收器,请指定以下字段:
字段 | 默认 | 说明 |
---|---|---|
collection_interval |
60s |
时长值,例如 30s 或 5m 。 |
endpoint |
localhost:1521 |
用于连接到 Oracle 数据库实例的端点。此字段支持 host:port 或 Unix 套接字路径。 |
insecure |
true |
设置是否使用安全 TLS 连接。如果设置为 false ,则启用 TLS。 |
insecure_skip_verify |
false |
设置是否跳过证书验证。如果 insecure 设置为 true ,则不使用 insecure_skip_verify 值。 |
password |
用于连接到实例的密码。 | |
service_name |
要监控的 Oracle 数据库的服务名称。根据需要使用此字段或 sid 字段。 |
|
sid |
所监控 Oracle 数据库的 SID。根据需要使用此字段或 service_name 字段。 |
|
type |
该值必须为 oracledb 。 |
|
username |
用于连接到实例的用户名。 | |
wallet |
包含 Oracle 钱包的目录的路径,可选择用于身份验证和安全连接。 |
监控的内容
下表列出了 Ops Agent 从 Oracle 数据库实例收集的指标列表。
指标类型 | |
---|---|
种类、类型 受监控的资源 |
标签 |
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
|
示例信息中心
要查看 Oracle 数据库指标,您必须配置图表或信息中心。Cloud Monitoring 提供了一个用于集成的示例信息中心库,其中包含一些预配置的图表。如需了解如何安装这些信息中心,请参阅安装示例信息中心。
验证配置
本部分介绍如何验证是否正确配置了 Oracle 数据库接收器。Ops Agent 可能需要一两分钟才会开始收集遥测数据。
如需验证日志是否已提取,请转到日志浏览器并运行以下查询以查看 Oracle 数据库日志:
resource.type="gce_instance"
(log_id("oracledb_alert") OR log_id("oracledb_audit"))
如需验证指标已注入,请前往 Metrics Explorer 并在 MQL 标签页中运行以下查询:
fetch gce_instance
| metric 'workload.googleapis.com/oracle.logon.count'
| every 1m
后续步骤
如需查看如何使用 Ansible 安装 Ops Agent、配置第三方应用和安装示例信息中心的演示,请参阅安装 Ops Agent 以排查第三方应用的问题视频。