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 中指定的主机上执行。需要注意的是,必须在 URI 中显式指定 directConnection=true,因为它不会自动添加,除非指定。

- 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 中使用以下命令创建特权用户(确保使用 db 命令在 Mongo shell 中使用 admin 数据库)。

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

您可以在 Mongo shell 中使用以下命令将角色授予现有用户(确保使用 db 命令在 Mongo shell 中使用 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 中所述。

度量集

以下度量集可用