Oracle 模块编辑

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

兼容性编辑

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

仪表板编辑

Kibana 的概述仪表板已包含在内

metricbeat oracle overview

需求编辑

可以使用官方 Oracle 库或 JDBC 驱动程序来连接到 Oracle。目前,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 通用安装程序、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. DSN 配置作为 URL

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

    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: ""

指标集

以下指标集可用