14 插件

概览

插件提供了扩展Zabbix监控功能的选项。插件是用 Go 语言编写的,并且只有 Zabbix agent2 支持。

插件提供了可加载模块 (由 C 编写),以及其他扩展 Zabbix 功能的方法,例如 用户参数(agent指标),外部检查 (无代理监控)和system.run[] Zabbix agent监控项

以下功能特定于agent 2 及其插件:

  • 被动、主动都支持定期和灵活采集间隔;
  • 与调度和任务并发相关的任务队列管理;
  • 插件级超时。

从 Zabbix 6.0.0 开始,插件不必直接集成到agent2 中,并且可以作为单独的外部插件添加,从而使得创建额外的插件来收集新的监控指标更加容易。

本页列出了 Zabbix 原生插件,并从用户角度描述了插件配置原则。有关编写自己的插件的说明,请参阅插件开发指南

配置插件

本节提供常用的插件配置原则和最佳实践。

所有插件都使用 Plugins.* 参数配置,可以要么是 Zabbix agent 2 配置文件 或插件自己的配置文件。如果插件使用单独的配置文件,该文件的路径应该是在 Zabbix agent 2 配置文件的 Include 参数中指定。

每个插件参数应具有以下结构:

Plugins.<PluginName>.<Parameter>=<Value>

参数名称应符合以下要求:

  • 建议您的插件名称大写;
  • 参数应大写;
  • 不允许有特殊字符;
  • 嵌套不受最高层数限制;
  • 参数数量不受限制。
命名会话

命名会话代表附加级别的插件参数,可以用于为每个被监视的实例定义单独的身份验证参数集。每个命名的会话参数应具有以下结构:

Plugins.<PluginName>.<SessionName>.<Parameter>=<Value>

会话名称可以当作连接字符串 来配置监控项键值参数,而不是分别指定 URI、用户名和密码。在监控项键中,第一个参数可以是 连接字符串 或 Uri。如果第一个键参数匹配配置文件中指定的会话名称,检查将使用命名会话参数执行。如果第一个key 参数没有匹配到会话名称,它将被视为Uri。

注意:

  • 在键值参数中使用连接字符串(会话名称)时,键值参数的用户名和密码必须为空;
  • 不支持传递嵌入式 URI 凭据,请考虑使用命名会话;
  • 如果没有为命名的身份指定身份验证参数会话,将使用写死的默认值。

可用的命名会话参数列表取决于插件,详情参阅独立插件配置 文件

示例:可以监控“MySQL1”和“MySQL2”两个实例 配置方式如下:

  1. Plugins.Mysql.Sessions.MySQL1.Uri=tcp://127.0.0.1:3306
  2. Plugins.Mysql.Sessions.MySQL1.User=<UsernameForMySQL1>
  3. Plugins.Mysql.Sessions.MySQL1.Password=<PasswordForMySQL1>
  4. Plugins.Mysql.Sessions.MySQL2.Uri=tcp://127.0.0.1:3307
  5. Plugins.Mysql.Sessions.MySQL2.User=<UsernameForMySQL2>
  6. Plugins.Mysql.Sessions.MySQL2.Password=<PasswordForMySQL2>

现在,这些名称可以作为连接字符串用于键值中, 而不是 URI:

  1. mysql.ping[MySQL1]
  2. mysql.ping[MySQL2]
硬编码默认值

如果监控项中未提供认证所需的参数键或在命名会话参数中,插件将使用写死的默认值。

连接

一些插件支持同时从多个实例收集指标。可以监控本地和远程实例。 并支持TCP和Unix-socket 连接。

建议配置插件以保持与实例的连接处于打开状态。好处是减少网络拥塞、延迟、由于连接数较少,CPU 和内存使用率。客户端库负责这些。

应保留未使用连接的时间段开放,可以由 Plugins.<PluginName>.KeepAlive 确定范围。
示例:Plugins.Memcached.KeepAlive

开箱即用的插件

所有支持Zabbix agent2的指标都由插件收集。以下是Zabbix agent2可直接使用插件:

插件名称描述支持的监控项key备注
Agent-使用的Zabbix代理的度量。agent.hostname, agent.ping, agent.version支持的keys具有与Zabbix agent相同的参数 keys
CephCeph 监控。ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump,
ceph.ping, ceph.pool.discovery, ceph.status
支持的keys 仅在Zabbix agent2中使用。

查看更多:
- 插件文档
- 配置参数
CPU系统CPU监控 (CPUs/CPU 的核心数量, 发现CPUs, 使用百分比).system.cpu.discovery, system.cpu.num, system.cpu.util支持的keys具有与Zabbix agent相同的参数 keys.
Docker容器监控。docker.container_info, docker.container_stats, docker.containers, docker.containers.discovery,
docker.data_usage, docker.images, docker.images.discovery, docker.info, docker.ping
支持的 keys 仅在 Zabbix agent 2中使用。

查看更多:
配置参数
File文件属性度量。vfs.file.cksum, vfs.file.contents, vfs.file.exists, vfs.file.md5sum,
vfs.file.regexp, vfs.file.regmatch, vfs.file.size, vfs.file.time
支持的keys具有与Zabbix agent相同的参数 keys
Kernel内核监控。kernel.maxfiles, kernel.maxproc支持的keys具有与Zabbix agent相同的参数 keys
Log日志文件监控。log, log.count, logrt, logrt.count支持的keys具有与Zabbix agent相同的参数 keys

查看更多:
插件配置参数 (Unix/Windows)
Memcached缓存服务器监控。memcached.ping, memchached.stats支持的keys 仅在Zabbix agent2中使用。

查看更多:
- 插件文档
- 配置参数
Modbus读取Modbus数据。modbus.get支持的keys具有与Zabbix agent相同的参数 keys

查看更多:
- 插件文档
- 配置参数
Mongo DBMongoDB服务器或集群 (基于文档的, 分布式数据库)监控。mongodb.collection.stats, mongodb.collections.discovery, mongodb.collections.usage, mongodb.connpool.stats,
mongodb.db.stats, mongodb.db.discovery, mongodb.jumbo_chunks.count, mongodb.oplog.stats,
mongodb.ping, mongodb.rs.config, mongodb.rs.status, mongodb.server.status,
mongodb.sh.discovery
支持的MongoDB版本: 3.6, 4.0, 4.2, 4.4.

支持的keys 仅在Zabbix agent2中使用。

查看更多:
- 插件文档
- 配置参数
MQTT接收 MQTT 主题公开的数据。mqtt.get支持的keys 仅在Zabbix agent2中使用。

查看更多:
- 插件文档
- 配置参数
MySQLMySQL及其相关属性监控。mysql.db.discovery, mysql.db.size, mysql.get_status_variables,
mysql.ping, mysql.replication.discovery, mysql.replication.get_slave_status, mysql.version
要配置加密连接到数据库, 在agent配置文件使用 命名会话 和专门的TLS 参数。 同时, TLS 参数不能作为监控项的key参数传递。

支持的keys 仅在Zabbix agent2中使用。

查看更多:
- 插件文档
- 配置参数
NetIf网络接口监控。net.if.collisions, net.if.discovery, net.if.in, net.if.out, net.if.total支持的keys具有与Zabbix agent相同的参数 keys
OracleOracle 数据库监控。oracle.diskgroups.stats, oracle.diskgroups.discovery, oracle.archive.info, oracle.archive.discovery,
oracle.cdb.info, oracle.custom.query, oracle.datafiles.stats, oracle.db.discovery,
oracle.fra.stats, oracle.instance.info, oracle.pdb.info, oracle.pdb.discovery,
oracle.pga.stats, oracle.ping, oracle.proc.stats, oracle.redolog.info,
oracle.sga.stats, oracle.sessions.stats, oracle.sys.metrics, oracle.sys.params,
oracle.ts.stats, oracle.ts.discovery, oracle.user.info
使用该插件前要安装 Oracle Instant Client

支持的keys 仅在Zabbix agent2中使用。

查看更多:
- 插件文档
- 配置参数
PostgreSQLPostgreSQL 和其相关内容监控。pgsql.ping, pgsql.db.discovery, pgsql.db.size, pgsql.db.age, pgsql.database.bloating_tables,
pgsql.replication_lag.sec, pgsql.replication_lag.b, pgsql.replication.count, pgsql.replication.status, pgsql.replication.recovery_role,
pgsql.cache.hit, pgsql.connections, pgsql.archive, pgsql.bgwriter, pgsql.dbstat.sum, pgsql.dbstat,
pgsql.wal.stat, pgsql.locks, pgsql.pgsql.oldest.xid, pgsql.uptime
要配置加密连接到数据库, 在agent配置文件使用 命名会话 和专门的TLS 参数。 同时, TLS 参数不能作为监控项的key参数传递。

支持的keys 仅在Zabbix agent2中使用。

查看更多:
- 插件文档
- 配置参数
Proc监控CPU使用百分比。proc.cpu.util支持的keys具有与Zabbix agent相同的参数 keys
RedisRedis 服务监控。redis.config, redis.info, redis.ping, redis.slowlog.count支持的keys 仅在Zabbix agent2中使用。

查看更多:
- 插件文档
- 配置参数
SmartS.M.A.R.T. 监控。smart.attribute.discovery, smart.disk.discovery, smart.disk.get执行agent2需要Sudo/root 访问权限进行smartctl。 smartctl的最小版本号为7.1.

支持的keys 仅在Zabbix agent2中使用。 在Linux/Windows上, 同时作为主动和被动的检查。
See also:
Configuration parameters
Swap交换空间的大小(字节/百分比)。system.swap.size支持的keys具有与Zabbix agent相同的参数 keys
SystemRun执行指定命令。system.run支持的keys具有与Zabbix agent相同的参数 keys

See also:
插件配置参数 (Unix/Windows)
Systemd系统级服务监控。systemd.unit.discovery, systemd.unit.get, systemd.unit.info支持的keys 仅在Zabbix agent2中使用。
TCPTCP链接能力检查就。net.tcp.port支持的keys具有与Zabbix agent相同的参数 keys
UDPUDP 服务能力和性能监控。net.udp.service, net.udp.service.perf支持的keys具有与Zabbix agent相同的参数 keys
Uname获取系统信息。system.hostname, system.sw.arch, system.uname支持的keys具有与Zabbix agent相同的参数 keys
Uptime系统启动时间属性收集。system.uptime支持的keys具有与Zabbix agent相同的参数 keys
VFSDevVFS 度量收集。vfs.dev.discovery, vfs.dev.read, vfs.dev.write支持的keys具有与Zabbix agent相同的参数 keys
WebCertificateTLS/SSL 站点证书监控。web.certificate.get支持的keys 仅在Zabbix agent2中使用。
WebPage网页监控。web.page.get, web.page.perf, web.page.regexp支持的keys具有与Zabbix agent相同的参数 keys
ZabbixAsync异步度量属性收集。net.tcp.listen, net.udp.listen, sensor, system.boottime, system.cpu.intr, system.cpu.load,
system.cpu.switches, system.hw.cpu, system.hw.macaddr, system.localtime, system.sw.os,
system.swap.in, system.swap.out, vfs.fs.discovery
支持的keys具有与Zabbix agent相同的参数 keys
ZabbixStatsZabbix server/proxy 内部度量或队列中延迟的监控项。zabbix.stats支持的keys具有与Zabbix agent相同的参数 keys
ZabbixSync同步指标收集。net.dns, net.dns.record, net.tcp.service, net.tcp.service.perf, proc.mem,
proc.num, system.hw.chassis, system.hw.devices, system.sw.packages,
system.users.num, vfs.dir.count, vfs.dir.size, vfs.fs.get, vfs.fs.inode,
vfs.fs.size, vm.memory.size.
支持的keys具有与Zabbix agent相同的参数 keys