Oracle 模块
编辑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 的概述仪表板已包含在内
需求编辑
可以使用官方 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。
主机配置
支持以下类型的主机配置
-
为了向后兼容性,使用旧式的 Oracle 连接字符串
-
hosts: ["user/[email protected]:1521/ORCLPDB1.localdomain"]
-
hosts: ["user/[email protected]:1521/ORCLPDB1.localdomain as sysdba"]
-
-
DSN 配置作为 URL
-
hosts: ["oracle://user:[email protected]:1521/ORCLPDB1.localdomain?sysdba=1"]
-
-
DSN 配置作为 logfmt 编码的参数列表
-
hosts: ['user="user" password="pass" connectString="0.0.0.0:1521/ORCLPDB1.localdomain"']
-
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: ""
指标集
以下指标集可用