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”两个实例 配置方式如下:
Plugins.Mysql.Sessions.MySQL1.Uri=tcp://127.0.0.1:3306
Plugins.Mysql.Sessions.MySQL1.User=<UsernameForMySQL1>
Plugins.Mysql.Sessions.MySQL1.Password=<PasswordForMySQL1>
Plugins.Mysql.Sessions.MySQL2.Uri=tcp://127.0.0.1:3307
Plugins.Mysql.Sessions.MySQL2.User=<UsernameForMySQL2>
Plugins.Mysql.Sessions.MySQL2.Password=<PasswordForMySQL2>
现在,这些名称可以作为连接字符串用于键值中, 而不是 URI:
mysql.ping[MySQL1]
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。 |
Ceph | Ceph 监控。 | 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 DB | MongoDB服务器或集群 (基于文档的, 分布式数据库)监控。 | 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中使用。 查看更多: - 插件文档 - 配置参数 |
MySQL | MySQL及其相关属性监控。 | 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 |
Oracle | Oracle 数据库监控。 | 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中使用。 查看更多: - 插件文档 - 配置参数 |
PostgreSQL | PostgreSQL 和其相关内容监控。 | 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。 |
Redis | Redis 服务监控。 | redis.config, redis.info, redis.ping, redis.slowlog.count | 支持的keys 仅在Zabbix agent2中使用。 查看更多: - 插件文档 - 配置参数 |
Smart | S.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中使用。 |
TCP | TCP链接能力检查就。 | net.tcp.port | 支持的keys具有与Zabbix agent相同的参数 keys。 |
UDP | UDP 服务能力和性能监控。 | 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。 |
VFSDev | VFS 度量收集。 | vfs.dev.discovery, vfs.dev.read, vfs.dev.write | 支持的keys具有与Zabbix agent相同的参数 keys。 |
WebCertificate | TLS/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。 |
ZabbixStats | Zabbix 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 |