Oracle 模块

编辑

这是 Metricbeat 的 Oracle 模块。它正在积极开发中,并接受来自社区的反馈。目前添加了一个用于表空间监控的指标集,以便社区可以开始从他们的节点收集指标并为模块做出贡献。

兼容性

编辑

Oracle Metricbeat 模块正在使用直接从 Oracle Docker Hub 仓库下载的 store/oracle/database-enterprise:12.2.0.1 Docker 镜像(基于 5.0.13-arch1-1-ARCH Arch Linux)进行 12c R2 版本的测试。这一点很重要,该模块仅在 Linux 环境中使用上述镜像进行了测试。

仪表盘

编辑

Kibana 的概览仪表盘已包含在内

metricbeat oracle overview

要求

编辑

可以通过两种方式实现与 Oracle 的连接,即使用官方的 Oracle 库或使用 JDBC 驱动程序。目前 Metricbeat 不支持使用 JDBC 实现连接。可以使用 Oracle 库来实现连接,以下详细说明了具体步骤。

Oracle 数据库连接前提条件

要连接到 Oracle 数据库,应设置 ORACLE_SID、ORACLE_BASE、ORACLE_HOME 环境变量。

例如:考虑按照 链接手动使用 RPM 安装 Oracle 数据库 21c,应按如下方式设置环境变量:ORACLE_SID=ORCLCDB ORACLE_BASE=/opt/oracle/oradata ORACLE_HOME=/opt/oracle/product/21c/dbhome_1 另外,将 ORACLE_HOME/bin 添加到 PATH 环境变量中。

Oracle Instant Client

Oracle Instant Client 支持开发和部署连接到 Oracle 数据库的应用程序。Instant Client 库提供必要的网络连接和高级数据功能,以充分利用 Oracle 数据库。如果您的 OCI Oracle 服务器预装了这些库,则无需单独安装客户端。

OCI 库会安装一些客户端共享库,这些库必须在安装 Metricbeat 的机器上引用。请按照 链接了解 OCI Instant Client 的设置。OCI Instant Client 可通过 Oracle Universal Installer、RPM 文件或 ZIP 文件获得。下载链接可在 此处找到。

启用监听器

Oracle 监听器是在数据库主机上运行并接收来自 Oracle 客户端请求的服务。请确保 监听器 正在运行。要检查监听器是否正在运行,请运行

lsnrctl STATUS

如果监听器未运行,请使用以下命令启动

lsnrctl START

然后,可以启动 Metricbeat。

主机配置

支持以下类型的主机配置

  1. 旧式的 Oracle 连接字符串,用于向后兼容

    1. hosts: ["user/[email protected]:1521/ORCLPDB1.localdomain"]
    2. hosts: ["user/[email protected]:1521/ORCLPDB1.localdomain as sysdba"]
  2. 作为 URL 的 DSN 配置

    1. hosts: ["oracle://user:[email protected]:1521/ORCLPDB1.localdomain?sysdba=1"]
  3. 作为 logfmt 编码参数列表的 DSN 配置

    1. hosts: ['user="user" password="pass" connectString="0.0.0.0:1521/ORCLPDB1.localdomain"']
    2. hosts: ['user="user" password="password" connectString="host:port/service_name" sysdba=true']

DSN 主机配置是推荐的配置类型,因为它支持在密码中使用特殊字符。

在 URL 中,任何特殊字符都应进行 URL 编码。

在 logfmt 编码的 DSN 格式中,如果密码包含反斜杠字符 (\),则必须使用另一个反斜杠进行转义。例如,如果密码为 my\_password,则必须写为 my\\_password

指标集

编辑

该模块中包含以下指标集

performance

编辑

包含与性能相关的事件,主要包含基于游标和缓存的数据。

tablespaces

编辑

包含有关数据文件和临时文件的信息,按表空间分组,包含可用空间、已用空间、数据文件状态、表空间状态等。

sysmetric

编辑

包含从 Oracle 系统指标捕获的最新时间间隔的系统指标值。

配置示例

Oracle 模块支持 模块 中描述的标准配置选项。以下是一个配置示例

metricbeat.modules:
# Module: oracle

- module: oracle
  period: 10m
  metricsets:
    - tablespace
  enabled: true
  hosts: ['user="user" password="pass" connectString="0.0.0.0:1521/ORCLPDB1.localdomain"']
- module: oracle
  period: 10s
  metricsets:
    - performance
  enabled: true
  hosts: ['user="user" password="pass" connectString="0.0.0.0:1521/ORCLPDB1.localdomain"']
- module: oracle
  period: 60s
  metricsets:
    - sysmetric
  enabled: true
  hosts: ['user="user" password="pass" connectString="0.0.0.0:1521/ORCLPDB1.localdomain"']
  # patterns: ["foo%","%bar","%foobar%"]

  # username: ""
  # password: ""

指标集

以下指标集可用