MongoDB 插件

概述

配置参数可用于自定义 MongoDB plugin 的行为。

建议将这些参数单独放在自己的配置文件中(例如 mongodb.conf),而不是放在 agent 2 配置文件中。然后使用 Include 指令将此文件包含到 Zabbix agent 2 配置中。

MongoDB plugin 是一个可加载的 plugin,可在 MongoDB plugin repository 中获取并查看完整说明。

除非明确说明某个参数是必需的,否则所有参数均为可选

连接到 MongoDB 时,plugin 会按特定顺序检查其配置,从而决定使用哪个值。 从高到低的优先级顺序如下:

  1. 连接 URI 中指定的参数(例如,在 Plugins.MongoDB.Sessions.<session_name>.Uri? 后定义的查询参数具有最高优先级)。
  2. Zabbix agent 2 监控项键中的参数(例如,mongodb.collection.stats)。
  3. 在命名会话中定义的参数(例如,Plugins.MongoDB.Sessions.<SessionName>.UserPlugins.MongoDB.Sessions.<SessionName>.Password)。
  4. 默认值(例如,Plugins.MongoDB.Default.UserPlugins.MongoDB.Default.Password)。

例如:

  • 如果您在 *.<SessionName>.Uri 参数中指定了用于验证连接到 MongoDB 服务器的数据库(例如,Plugins.MongoDB.Sessions.<session_name>.Uri=mongodb://user:[email protected]:27017/?authSource=admin),那么 plugin 会将 *.<SessionName>.AuthSource 参数视为已设置为 admin,即使 *.<SessionName>.AuthSource 参数设置为其他值也是如此。
  • 如果您在 *.<SessionName>.Uri 参数中指定了 URI(例如,Plugins.MongoDB.Sessions.<session_name>.Uri=mongodb://127.0.0.1:27017),但在 Zabbix agent 2 监控项键中提供了用户名和密码,则 plugin 将使用监控项键中的用户名和密码,即使已配置 Plugins.MongoDB.Sessions.<SessionName>.UserPlugins.MongoDB.Sessions.<SessionName>.Password 也是如此。

如果使用 mongodb+srv:// 方案,URI 可能会从 DNS TXT 记录中检索参数。 从该 TXT 记录获取的参数会覆盖所有其他配置,包括 URI 参数、Zabbix Agent 2 监控项键参数以及会话参数。
用于连接字符串的主机名只能存在一个 TXT 记录。

本页结构如下:

  • 参数概览(要查看某个参数的完整详情,请单击其名称)
  • 参数详情
Parameter Description
Plugins.MongoDB.Default.AuthMechanism 指定用于连接 MongoDB 服务器的默认认证机制。
Plugins.MongoDB.Default.AuthSource 指定用于验证连接到 MongoDB 服务器的默认数据库。
Plugins.MongoDB.Default.Direct 禁用 MongoDB 副本集节点的自动发现。
Plugins.MongoDB.Default.Password 指定默认密码。
Plugins.MongoDB.Default.ReplicaSet 指定默认副本集名称,用于 MongoDB 副本集节点的自动发现。
Plugins.MongoDB.Default.ReadPreference 指定连接 MongoDB 副本集节点或回退时的默认顺序。
Plugins.MongoDB.Default.TLSConnect 指定 Zabbix agent 2 与受监控数据库之间通信所需的加密级别。
Plugins.MongoDB.Default.TLSCAFile 指定包含用于对等证书验证的顶级 CA 证书的文件完整路径名。
Plugins.MongoDB.Default.TLSCertFile 指定包含 agent 证书或证书链的文件完整路径名。
Plugins.MongoDB.Default.TLSKeyFile 指定包含数据库私钥的文件完整路径名。
Plugins.MongoDB.Default.Uri 指定默认 URI。
Plugins.MongoDB.Default.User 指定默认用户名。
Plugins.MongoDB.KeepAlive 设置关闭未使用的 plugin 连接前的最长等待时间。
Plugins.MongoDB.Sessions.<SessionName>.AuthMechanism 指定用于连接 MongoDB 服务器的命名会话认证机制。
Plugins.MongoDB.Sessions.<SessionName>.AuthSource 指定用于验证连接到 MongoDB 服务器的命名会话数据库。
Plugins.MongoDB.Sessions.<SessionName>.Direct 禁用命名会话的 MongoDB 副本集节点自动发现。
Plugins.MongoDB.Sessions.<SessionName>.Password 指定命名会话密码。
Plugins.MongoDB.Sessions.<SessionName>.ReplicaSet 指定命名会话副本集名称,用于 MongoDB 副本集节点的自动发现。
Plugins.MongoDB.Sessions.<SessionName>.ReadPreference 指定命名会话连接 MongoDB 副本集节点或回退时的顺序。
Plugins.MongoDB.Sessions.<SessionName>.TLSConnect 指定命名会话中 Zabbix agent 2 与受监控数据库之间通信所需的加密级别。
Plugins.MongoDB.Sessions.<SessionName>.TLSCAFile 指定命名会话中包含用于对等证书验证的顶级 CA 证书的文件完整路径名。
Plugins.MongoDB.Sessions.<SessionName>.TLSCertFile 指定命名会话中包含 agent 证书或证书链的文件完整路径名。
Plugins.MongoDB.Sessions.<SessionName>.TLSKeyFile 指定命名会话中包含数据库私钥的文件完整路径名。
Plugins.MongoDB.Sessions.<SessionName>.Uri 指定命名会话 URI。
Plugins.MongoDB.Sessions.<SessionName>.User 指定命名会话用户名。
Plugins.MongoDB.System.Path 指定 plugin 可执行文件的路径。
Plugins.MongoDB.Timeout 设置请求执行超时时间。

请注意:

  • 默认值反映的是进程默认值,而不是随软件包提供的配置文件中的值。
  • 值支持环境变量
  • Zabbix 仅支持 UTF-8 编码且不含 BOM 的配置文件。
  • "\#" 开头的注释仅在行首支持。

参数详情

Plugins.MongoDB.Default.AuthMechanism

指定用于连接 MongoDB 服务器的默认身份验证机制。
<SessionName> - 定义用于监控项键中的会话名称。

范围:SCRAM-SHA-1SCRAM-SHA-256MONGODB-X509

Plugins.MongoDB.Default.AuthSource

指定用于连接 MongoDB 服务器进行身份验证的默认数据库。
<SessionName> - 定义用于监控项键中的会话名称。

默认值:admin

如果使用 MONGODB-X509 身份验证机制,则此参数会自动设置为 $external;将其修改为任何其他值都会在启动时导致错误。

Plugins.MongoDB.Default.Direct

禁用 MongoDB 副本集节点的自动发现。
<SessionName> - 定义用于监控项键中的会话名称。

默认值: false
范围: true - 仅连接到指定的服务器,忽略副本集中的其他成员,false - 自动发现副本集中的所有节点。

如果使用 tcp://(已弃用)方案,则该参数默认设置为 true

Plugins.MongoDB.Default.Password

指定默认密码。
<SessionName> - 定义用于监控项键中的会话名称。

Plugins.MongoDB.Default.ReplicaSet

指定默认副本集名称,用于自动发现 MongoDB 副本集节点。
<SessionName> - 定义用于监控项键中的会话名称。
如果此参数与 mongodb+srv:// 方案一起使用,其行为将与提供了多个 URL 时相同;DNS 服务器可能包含一个 TXT 记录,可覆盖此参数(或任何其他参数)。
Plugins.MongoDB.Sessions.<SessionName>.Direct 参数设置为 true 时不可用;agent 将无法启动。

Plugins.MongoDB.Default.ReadPreference

指定连接到 MongoDB 副本集节点或回退时的默认顺序。
<SessionName> - 定义用于监控项键中的会话名称。
如果将 Plugins.MongoDB.Sessions.<SessionName>.Direct 参数设置为 true,则不可用;agent 将无法启动。

范围:PrimaryModePrimaryPreferredModeSecondaryModeSecondaryPreferredModeNearestMode

Plugins.MongoDB.Default.TLSConnect

指定 Zabbix agent 2 与被监控数据库之间通信所需的加密级别。
<SessionName> - 定义用于监控项键中的会话名称。
自插件版本 1.2.1 起支持。

范围:required - 要求 TLS 连接,verify_ca - 验证证书,verify_full - 验证证书和 IP 地址

Plugins.MongoDB.Default.TLSCAFile

指定包含用于对等证书验证的顶级 CA 证书的文件完整路径名,用于 Zabbix agent 2 与被监控数据库之间的加密通信。
<SessionName> - 定义用于监控项键中的会话名称。

必填:yes,如果 Plugins.MongoDB.Sessions.<SessionName>.TLSConnect 设置为 verify_caverify_full

Plugins.MongoDB.Default.TLSCertFile

指定包含 agent 证书或证书链的文件完整路径,用于 Zabbix agent 2 与受监控数据库之间的加密通信。
<SessionName> - 定义用于监控项键中的会话名称。

必填:yes,如果指定了 Plugins.MongoDB.Sessions.<SessionName>.TLSKeyFile

Plugins.MongoDB.Default.TLSKeyFile

指定包含数据库私钥的文件的完整路径名,用于 Zabbix agent 2 与被监控数据库之间的加密通信。
<SessionName> - 定义用于监控项键中的会话名称。

必填:yes,如果已指定 Plugins.MongoDB.Sessions.<SessionName>.TLSCertFile

Plugins.MongoDB.Default.Uri

指定默认 URI。
<SessionName> - 定义用于监控项键值中的会话名称。
必须符合 URI 格式。
支持的方案:mongodb://mongodb+srv://tcp:// 方案已弃用,仅为兼容现有配置而保留。
可以省略端口(默认值=27017)。
示例:``

默认值:tcp://127.0.0.1:27017

示例:

mongodb://127.0.0.1:27017
mongodb+srv://example.com
localhost
Plugins.MongoDB.Default.User

指定默认用户名。
<SessionName> - 定义用于监控项键中的会话名称。

Plugins.MongoDB.KeepAlive

设置在关闭未使用的插件连接之前的最长等待时间(秒)。

默认值:300
范围:60-900

Plugins.MongoDB.Sessions.<SessionName>.AuthMechanism

指定用于连接到 MongoDB 服务器的命名会话认证机制。
<SessionName> - 定义用于监控项键中的会话名称。

范围:SCRAM-SHA-1SCRAM-SHA-256MONGODB-X509

Plugins.MongoDB.Sessions.<SessionName>.AuthSource

指定用于认证连接到 MongoDB 服务器的命名会话数据库。
<SessionName> - 定义用于监控项键中的会话名称。

默认值:admin

如果使用 MONGODB-X509 认证机制,此参数会自动设置为 $external;将其修改为其他任何值都会在启动时导致错误。

Plugins.MongoDB.Sessions.<SessionName>.Direct

禁用对命名会话的 MongoDB 副本集节点自动发现。
<SessionName> - 定义一个会话名称,用于监控项键中。

默认值: false
范围: true - 仅连接到指定的服务器,忽略副本集中的其他成员,false - 自动发现副本集中的所有节点。

如果使用 tcp://(已弃用)方案,则该参数默认设置为 true

Plugins.MongoDB.Sessions.<SessionName>.Password

指定命名会话的密码。
<SessionName> - 定义用于监控项键中的会话名称。

Plugins.MongoDB.Sessions.<SessionName>.ReplicaSet

指定命名会话的副本集名称,用于自动发现 MongoDB 副本集节点。
<SessionName> - 定义会话名称,用于监控项键值中。
如果此参数与 mongodb+srv:// 方案一起使用,其行为将与提供了多个 URL 时相同;DNS 服务器可能包含一个 TXT 记录,可覆盖此(或任何其他)参数。
Plugins.MongoDB.Sessions.<SessionName>.Direct 参数设置为 true 时不可用;agent 将无法启动。

Plugins.MongoDB.Sessions.<SessionName>.ReadPreference

指定命名会话的顺序,用于连接 MongoDB 副本集节点或作为回退。
<SessionName> - 定义一个会话名称,用于监控项键值中。
如果 Plugins.MongoDB.Sessions.<SessionName>.Direct 参数设置为 true,则该项不可用;agent 将无法启动。

范围:PrimaryModePrimaryPreferredModeSecondaryModeSecondaryPreferredModeNearestMode

Plugins.MongoDB.Sessions.<SessionName>.TLSConnect

指定命名会话中 Zabbix agent 2 与被监控数据库之间通信所需的加密级别。
<SessionName> - 定义用于监控项键中的会话名称。
自插件版本 1.2.1 起支持。

范围:required - 要求 TLS 连接,verify_ca - 验证证书,verify_full - 验证证书和 IP 地址

Plugins.MongoDB.Sessions.<SessionName>.TLSCAFile

指定包含用于对等证书验证的顶级 CA 证书的文件完整路径,用于 Zabbix agent 2 与所监控数据库之间针对指定会话的加密通信。
<SessionName> - 定义会话名称,用于监控项键值中。

必填:yes,如果 Plugins.MongoDB.Sessions.<SessionName>.TLSConnect 设置为 verify_caverify_full

Plugins.MongoDB.Sessions.<SessionName>.TLSCertFile

指定包含 agent 证书或证书链的文件完整路径,用于 Zabbix agent 2 与所监控数据库之间的加密通信,适用于指定会话。
<SessionName> - 定义会话名称,用于监控项键值中。

必填:yes,如果已指定 Plugins.MongoDB.Sessions.<SessionName>.TLSKeyFile

Plugins.MongoDB.Sessions.<SessionName>.TLSKeyFile

指定包含数据库私钥的文件的完整路径名,用于 Zabbix agent 2 与命名会话所监控的数据库之间的加密通信。
<SessionName> - 定义用于监控项键中的会话名称。

必填:yes,如果已指定 Plugins.MongoDB.Sessions.<SessionName>.TLSCertFile

Plugins.MongoDB.Sessions.<SessionName>.Uri

指定命名会话 URI。
<SessionName> - 定义一个会话名称,用于监控项键值中。
必须与 URI 格式匹配。
支持的方案:mongodb://mongodb+srv://tcp:// 方案已弃用,仅为与现有配置保持向后兼容而保留。
可以省略端口(默认值=27017)。
示例:``

默认值:tcp://127.0.0.1:27017

示例:

mongodb://127.0.0.1:27017
mongodb+srv://example.com
localhost
Plugins.MongoDB.Sessions.<SessionName>.User

指定命名会话的用户名。
<SessionName> - 定义用于监控项键中的会话名称。

Plugins.MongoDB.System.Path

指定 MongoDB 插件可执行文件的路径。

示例用法:Plugins.MongoDB.System.Path=/usr/libexec/zabbix/zabbix-agent2-plugin-mongodb

Plugins.MongoDB.Timeout

设置请求执行超时(即在关闭请求之前等待其完成的时长,单位为秒)。

默认值:global timeout
范围:1-30

选项

Parameter Description
-V --version 打印插件版本和许可证信息。
-h --help 打印帮助信息(简写)。
-t, --test <item key> 启动插件进行测试(忽略插件配置)。

另请参阅