主机设置

编辑

某些驱动程序需要额外的配置才能正常工作。此处提供这些驱动程序的说明。

Oracle 数据库连接先决条件

编辑

要连接到 Oracle 数据库,需要设置 ORACLE_SIDORACLE_BASEORACLE_HOME 环境变量。

例如:假设使用 RPM 手动安装 Oracle 数据库 21c,按照链接,应按如下方式设置环境变量

export ORACLE_BASE=/opt/oracle/oradata
export 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 监听器是在数据库主机上运行的服务,用于接收来自 Oracle 客户端的请求。请确保监听器正在运行。要检查监听器是否正在运行,请运行

lsnrctl STATUS

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

lsnrctl START

然后,可以启动 Metricbeat。

Oracle 的主机配置

编辑

支持以下类型的主机配置

  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

连接到数据库的用户名和密码可以作为 sql.ymlusernamepassword 密钥的值提供。

- module: sql
  metricsets:
    - query
  period: 10s
  driver: "oracle"
  enabled: true
  hosts: ['user="" password="" connectString="0.0.0.0:1521/ORCLCDB.localdomain" sysdba=true']
  username: sys
  password: password
  sql_queries:
  - query: SELECT METRIC_NAME, VALUE FROM V$SYSMETRIC WHERE GROUP_ID = 2 and METRIC_NAME LIKE '%'
    response_format: variables

示例配置

SQL 模块支持在模块中描述的标准配置选项。这是一个示例配置

metricbeat.modules:
- module: sql
  metricsets:
    - query
  period: 10s
  hosts: ["user=myuser password=mypassword dbname=mydb sslmode=disable"]

  driver: "postgres"
  sql_query: "select now()"
  sql_response_format: table

指标集

提供以下指标集