Oracle 模块

编辑

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

兼容性

编辑

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 的连接,要么使用官方的 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 即时客户端

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

OCI 库安装了一些客户端共享库,必须在安装 Metricbeat 的机器上引用这些库。请按照 链接设置 OCI 即时客户端。OCI 即时客户端可通过 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. 作为 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: ""

指标集

以下指标集可用