MongoDB 模块

编辑

此模块定期从 MongoDB 服务器获取指标。

模块特定配置说明

编辑

配置 hosts 选项时,必须使用以下格式的 MongoDB URL

[mongodb://][user:pass@]host[:port][?options]

mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]

URL 可以简单如

- module: mongodb
  hosts: ["localhost"]

或更复杂如

- module: mongodb
  hosts: ["mongodb://myuser:mypass@localhost:40001", "otherhost:40001"]

一些更多支持的 URL 是

- module: mongodb
  hosts: ["mongodb://127.0.0.1:27017,localhost:27022,localhost:27023"]
- module: mongodb
  hosts: ["mongodb://127.0.0.1:27017/?directConnection=true"]

当连接 URI 中包含参数 directConnection=true 时,所有操作都在 URI 中指定的主机上执行。需要注意的是,directConnection=true 必须在 URI 中显式指定,因为除非指定,否则它不会自动添加。

- module: mongodb
  hosts: ["mongodb://127.0.0.1:27017,localhost:27022,localhost:27023/?replicaSet=dbrs"]

用户名和密码可以包含在 URL 中,也可以使用相应的配置选项进行设置。URL 中的凭据优先于用户名和密码配置选项。

- module: mongodb
  metricsets: ["status"]
  hosts: ["localhost:27017"]
  username: root
  password: test

默认指标集为 collstatsdbstatsstatus

兼容性

编辑

MongoDB 指标集已在 MongoDB 5.0 上进行测试,预计可与所有版本 >= 5.0 一起使用。

MongoDB 权限

编辑

为了使用指标集,模块配置中指定的 MongoDB 用户需要具有某些权限

我们建议使用 clusterMonitor 角色来涵盖所有必要的权限。

您可以在 Mongo shell 中使用以下命令创建具有权限的用户(确保您通过在 Mongo shell 中使用 db 命令来使用 admin 数据库)。

db.createUser(
    {
        user: "beats",
        pwd: "pass",
        roles: ["clusterMonitor"]
    }
)

您可以在 Mongo shell 中使用以下命令将角色授予现有用户(确保您通过在 Mongo shell 中使用 db 命令来使用 admin 数据库)。

db.grantRolesToUser("user", ["clusterMonitor"])

配置示例

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

metricbeat.modules:
- module: mongodb
  metricsets: ["dbstats", "status", "collstats", "metrics", "replstatus"]
  period: 10s
  enabled: true

  # The hosts must be passed as MongoDB URLs in the format:
  # [mongodb://][user:pass@]host[:port].
  # The username and password can also be set using the respective configuration
  # options. The credentials in the URL take precedence over the username and
  # password configuration options.
  hosts: ["localhost:27017"]

  # Optional SSL. By default is off.
  #ssl.enabled: true

  # Mode of verification of server certificate ('none' or 'full')
  #ssl.verification_mode: 'full'

  # List of root certificates for TLS server verifications
  #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]

  # Certificate for SSL client authentication
  #ssl.certificate: "/etc/pki/client/cert.pem"

  # Client Certificate Key
  #ssl.key: "/etc/pki/client/cert.key"

  # Username to use when connecting to MongoDB. Empty by default.
  #username: user

  # Password to use when connecting to MongoDB. Empty by default.
  #password: pass

当使用 ssl 配置字段时,此模块支持 TLS 连接,如 SSL 中所述。

指标集

以下指标集可用