6 MongoDB 插件

概述

Zabbix agent 2 的配置文件用于配置插件。以下 Zabbix agent 2 配置参数支持用于运行 MongoDB 插件。

建议在其专用配置文件中指定这些参数(例如 mongo.conf),然后使用 Include 指令将此文件添加到 Zabbix agent 2 配置中。

MongoDB 插件是一个可加载插件,可在 MongoDB plugin repository 中获取,并有完整说明。

请注意:

  • 默认值反映的是进程默认值,而不是随附配置文件中的值。
  • 这些值支持 environment variables
  • Zabbix 仅支持 UTF-8 编码且不带 BOM 的配置文件。
  • 仅支持以“#”开头且位于行首的注释。

选项

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

参数

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

  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),那么插件会将 *.<SessionName>.AuthSource 参数视为设置为 admin,即使 *.<SessionName>.AuthSource 参数被设置为其他值也是如此。
  • 如果您在 *.<SessionName>.Uri 参数中指定了 URI(例如,Plugins.MongoDB.Sessions.<session_name>.Uri=mongodb://127.0.0.1:27017),但在 Zabbix agent 2 监控项键中提供了用户名和密码,则插件将使用监控项键中的用户名和密码,即使已配置 Plugins.MongoDB.Sessions.<SessionName>.UserPlugins.MongoDB.Sessions.<SessionName>.Password 也是如此。

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

Parameter Mandatory Range Default Description
Plugins.MongoDB.System.Path no MongoDB 插件可执行文件的路径。
使用示例:Plugins.MongoDB.System.Path=/usr/libexec/zabbix/zabbix-agent2-plugin-mongodb
Plugins.MongoDB.Timeout no 1-30 global timeout 请求执行超时(在关闭请求之前等待其完成的时长,单位为秒)。
Plugins.MongoDB.KeepAlive no 60-900 300 关闭未使用的插件连接之前的最长等待时间(秒)。
Plugins.MongoDB.Sessions.<SessionName>.Uri no tcp://127.0.0.1:27017 命名会话的连接字符串。
<SessionName> - 定义一个会话名称,用于监控项键中。

必须符合 URI 格式。
支持的方案:mongodb://mongodb+srv://tcp:// 方案已弃用,仅为与现有配置向后兼容而保留。
端口可以省略(默认值=27017)。
示例:mongodb://127.0.0.1:27017mongodb+srv://example.comlocalhost
Plugins.MongoDB.Sessions.<SessionName>.User no 命名会话用户名。
<SessionName> - 定义一个会话名称,用于监控项键中。
Plugins.MongoDB.Sessions.<SessionName>.Password no 命名会话密码。
<SessionName> - 定义一个会话名称,用于监控项键中。
Plugins.MongoDB.Sessions.<SessionName>.Direct no false 用于确定是否启用或禁用 MongoDB 副本集节点自动发现的连接方式。
<SessionName> - 定义一个会话名称,用于监控项键中。

支持的值:
true - 插件将仅连接到指定的服务器,忽略副本集中的其他成员;
false - 插件将自动发现副本集中的所有节点。
如果使用 tcp://(已弃用)方案,则该参数默认设置为 true
Plugins.MongoDB.Sessions.<SessionName>.AuthMechanism no 连接到 MongoDB 服务器时使用的身份验证机制。
<SessionName> - 定义一个会话名称,用于监控项键中。

支持的值:SCRAM-SHA-1SCRAM-SHA-256MONGODB-X509
Plugins.MongoDB.Sessions.<SessionName>.AuthSource no admin 用于对 MongoDB 服务器连接进行身份验证的数据库。
<SessionName> - 定义一个会话名称,用于监控项键中。

如果使用 MONGODB-X509 身份验证机制,则该参数会自动设置为 $external;将其修改为任何其他值都会在启动时导致错误。
Plugins.MongoDB.Sessions.<SessionName>.ReplicaSet no 副本集名称,用于自动发现 MongoDB 副本集节点。
<SessionName> - 定义一个会话名称,用于监控项键中。

如果此参数与 mongodb+srv:// 方案一起使用,其行为将如同提供了多个 URL;DNS 服务器可能具有一条 TXT 记录,可覆盖此参数(或任何其他参数)。

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

支持的值:PrimaryModePrimaryPreferredModeSecondaryModeSecondaryPreferredModeNearestMode
如果 Plugins.MongoDB.Sessions.<SessionName>.Direct 参数设置为 true,则此参数不可用,agent 将无法启动。
Plugins.MongoDB.Sessions.<SessionName>.TLSConnect no Zabbix agent 2 与被监控数据库之间通信的加密类型。
<SessionName> - 定义一个会话名称,用于监控项键中。

支持的值:
required - 要求使用 TLS 连接;
verify\_ca - 验证证书;
verify\_full - 验证证书和 IP 地址。

自插件版本 1.2.1 起支持。
Plugins.MongoDB.Sessions.<SessionName>.TLSCAFile yes, if Plugins.MongoDB.Sessions.<SessionName>.TLSConnect is set to one of: verify_ca, verify_full 包含顶级 CA 证书的文件完整路径名,用于对端证书验证,供 Zabbix agent 2 与被监控数据库之间的加密通信使用。
<SessionName> - 定义一个会话名称,用于监控项键中。
Plugins.MongoDB.Sessions.<SessionName>.TLSCertFile yes, if Plugins.MongoDB.Sessions.<SessionName>.TLSKeyFile is specified 包含 agent 证书或证书链的文件完整路径名,供 Zabbix agent 2 与被监控数据库之间的加密通信使用。
<SessionName> - 定义一个会话名称,用于监控项键中。
Plugins.MongoDB.Sessions.<SessionName>.TLSKeyFile yes, if Plugins.MongoDB.Sessions.<SessionName>.TLSCertFile is specified 包含数据库私钥的文件完整路径名,该私钥用于 Zabbix agent 2 与被监控数据库之间的加密通信。
<SessionName> - 定义一个会话名称,用于监控项键中。
Plugins.MongoDB.Default.Uri no tcp://127.0.0.1:27017 连接到 MongoDB 的默认 URI。

必须符合 URI 格式。
支持的方案:mongodb://mongodb+srv://
已弃用方案:tcp://(作为默认值保留,以与现有配置向后兼容)。
端口可以省略(默认值=27017)。
示例:mongodb://127.0.0.1:27017mongodb+srv://example.comlocalhost
Plugins.MongoDB.Default.User no 连接到 MongoDB 的默认用户名。
Plugins.MongoDB.Default.Password no 连接到 MongoDB 的默认密码。
Plugins.MongoDB.Default.Direct no false 默认连接方式,用于确定是否启用或禁用 MongoDB 副本集节点自动发现。

支持的值:
true - 插件将仅连接到指定的服务器,忽略副本集中的其他成员;
false - 插件将自动发现副本集中的所有节点。
如果使用 tcp://(已弃用)方案,则该参数默认设置为 true
Plugins.MongoDB.Default.AuthMechanism no 连接到 MongoDB 服务器时使用的默认身份验证机制。

支持的值:SCRAM-SHA-1SCRAM-SHA-256MONGODB-X509
如果此处、监控项键、命名会话或 URI 中均未指定值,则将使用基于 SCRAM 的机制(如果提供了用户名;否则将不使用身份验证)。
Plugins.MongoDB.Default.AuthSource no admin 用于对 MongoDB 服务器连接进行身份验证的默认数据库。

如果使用 MONGODB-X509 身份验证机制,则该参数会自动设置为 $external;将其修改为任何其他值都会在启动时导致错误。
Plugins.MongoDB.Default.ReplicaSet no 默认副本集名称;用于自动发现 MongoDB 副本集节点。

如果此参数与 mongodb+srv:// 方案一起使用,其行为将如同提供了多个 URL;DNS 服务器可能具有一条 TXT 记录,可覆盖此参数(或任何其他参数)。
如果 Plugins.MongoDB.Default.Direct 参数设置为 true,则此参数不可用,agent 将无法启动。
Plugins.MongoDB.Default.ReadPreference no 连接到 MongoDB 副本集节点或进行回退时的默认顺序。

支持的值:PrimaryModePrimaryPreferredModeSecondaryModeSecondaryPreferredModeNearestMode
如果 Plugins.MongoDB.Default.Direct 参数设置为 true,则此参数不可用,agent 将无法启动。
Plugins.MongoDB.Default.TLSConnect no Zabbix agent 2 与被监控数据库之间通信的默认加密类型。

支持的值:
required - 要求使用 TLS 连接。
verify\_ca - 验证证书。
verify\_full - 验证证书和 IP 地址。
如果此处、监控项键、命名会话或 URI 中均未指定值,则不会建立 TLS 连接。
Plugins.MongoDB.Default.TLSCAFile no 包含顶级 CA 证书的文件默认路径名,用于对端证书验证。用于 Zabbix agent 2 与被监控数据库之间的加密通信。
Plugins.MongoDB.Default.TLSCertFile no 包含 MongoDB 客户端证书或证书链的文件默认路径名。用于 Zabbix agent 2 与被监控数据库之间的加密通信。
Plugins.MongoDB.Default.TLSKeyFile no 包含 MongoDB 客户端私钥的文件默认路径名,该私钥用于 Zabbix agent 2 与被监控数据库之间的加密通信。

另请参见: