配置参数:插件
请参阅 Zabbix agent 2 插件的配置参数:
- Ceph 插件
- Docker 插件
- Ember+ 插件
- Memcached 插件
- Modbus 插件
- MongoDB 插件
- MQTT 插件
- MSSQL 插件
- MySQL 插件
- NVIDIA GPU 插件
- Oracle 插件
- PostgreSQL 插件
- Redis 插件
- S.M.A.R.T. 插件
插件配置原则
本页介绍插件配置原则和最佳实践。
所有插件都使用 Plugins.* 参数进行配置,该参数可以是 Zabbix agent 2 配置文件 的一部分,也可以是插件自身的 配置文件。 如果插件使用单独的配置文件,则应在 Zabbix agent 2 配置文件的 Include 参数中指定该文件的路径。
典型的插件参数具有以下结构:
Plugins.<PluginName>.<Parameter>=<Value>
此外,还有两组特定的参数:
-
Plugins.<PluginName>.Default.<Parameter>=<Value> 用于定义 默认参数值。
-
Plugins.<PluginName>.<SessionName>.<Parameter>=<Value> 用于通过 命名会话 为不同的监控目标定义独立的参数集。
所有参数名称都应符合以下要求:
- 建议将插件名称首字母大写
- 参数应首字母大写
- 不允许使用特殊字符
- 嵌套层级没有最大限制
- 参数数量没有限制
例如,要仅为 Uptime 插件执行在 agent 重启后立即生效、且不包含 Scheduling 更新间隔 的 主动检查,请在 配置文件 中设置 Plugins.Uptime.System.ForceActiveChecksOnStart=1。
同样地,要为 CPU 插件设置自定义的 并发检查 限制,请在 配置文件 中设置 Plugins.CPU.System.Capacity=N。
默认值
您可以在配置文件中为连接相关参数(URI、用户名、密码等)设置默认值,格式如下:
Plugins.<PluginName>.Default.<Parameter>=<Value>
例如,Plugins.Mysql.Default.Username=zabbix、Plugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017 等。
如果在监控项键值或 命名会话 参数中未提供此类参数的值,插件将使用默认值。 如果默认参数也未定义,则将使用硬编码的默认值。
如果监控项键值没有任何参数,Zabbix agent 2 将尝试使用默认参数部分中定义的值来采集该指标。
命名会话
命名会话表示插件参数的一个额外层级,可用于为每个被监控的实例指定单独的一组认证参数。
每个命名会话参数应具有以下结构:
Plugins.<PluginName>.Sessions.<SessionName>.<Parameter>=<Value>
会话名称可以用作 connString 项键参数,而无需单独指定 URI、用户名和/或密码。
在监控项键中,第一个参数可以是 connString 或 URI。
如果第一个键参数与任何会话名称都不匹配,则会将其视为 URI。
请注意,不支持在监控项键中传递嵌入式 URI 凭据,请改用命名会话参数。
可用的 命名会话参数 列表取决于插件。
可以通过在监控项键参数中指定新值来覆盖会话参数(参见 示例)。
如果某个参数未为该命名会话定义,Zabbix agent 2 将使用 默认插件参数 中定义的值。
参数优先级
Zabbix agent 2 插件按以下顺序查找与连接相关的参数值:

- 第一个监控项键参数会与会话名称进行比较。 如果未找到匹配项,则将其视为实际值;在这种情况下,将跳过步骤 3。 如果找到匹配项,则必须在该命名会话中定义该参数值(通常是 URI)。
- 其他参数如果已定义,则将从监控项键中获取。
- 如果某个监控项键参数(例如 password)为空,插件将查找对应的命名会话参数。
- 如果会话参数也未指定,则将使用对应 默认参数 中定义的值。
- 如果仍然失败,插件将使用硬编码的默认值。
示例 1
对两个实例 "MySQL1" 和 "MySQL2" 进行监控。
配置参数:
Plugins.Mysql.Sessions.MySQL1.Uri=tcp://127.0.0.1:3306
Plugins.Mysql.Sessions.MySQL1.User=mysql1_user
Plugins.Mysql.Sessions.MySQL1.Password=unique_password
Plugins.Mysql.Sessions.MySQL2.Uri=tcp://192.0.2.1:3306
Plugins.Mysql.Sessions.MySQL2.User=mysql2_user
Plugins.Mysql.Sessions.MySQL2.Password=different_password
由于此配置,每个会话名称都可以在 监控项键值 中用作 connString,例如 mysql.ping[MySQL1] 或 mysql.ping[MySQL2]。
示例 2
在监控项键中提供部分参数。
配置参数:
Plugins.PostgreSQL.Sessions.Session1.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Sessions.Session1.User=old_username
Plugins.PostgreSQL.Sessions.Session1.Password=session_password
监控项键: pgsql.ping[session1,new_username,,postgres]
由于此配置,agent 将使用以下参数连接到 PostgreSQL:
- 来自会话参数的 URI:
192.0.2.234:5432 - 来自监控项键的用户名:
new_username - 来自会话参数的密码(因为在监控项键中省略了该参数):
session_password - 来自监控项键的数据库名称:
postgres
示例 3
使用默认配置参数采集监控项。
配置参数:
Plugins.PostgreSQL.Default.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Default.User=zabbix
Plugins.PostgreSQL.Default.Password=password
监控项键: pgsql.ping[,,,postgres]
在此配置下,agent 将使用以下参数连接到 PostgreSQL:
- 默认 URI:
192.0.2.234:5432 - 默认用户名:
zabbix - 默认密码:
password - 来自监控项键的数据库名称:
postgres
连接
某些插件支持同时从多个实例收集指标。 本地和远程实例都可以被监控。 支持 TCP 和 Unix 套接字连接。
建议将插件配置为保持与实例的连接处于打开状态。 这样做的好处是,由于连接数量更少,可以减少网络拥塞、延迟以及 CPU 和内存使用。 客户端库会负责处理这一点。
未使用连接应保持打开状态的时间段可通过 Plugins.<PluginName>.KeepAlive 参数确定。 示例:Plugins.Memcached.KeepAlive