插件为扩展Zabbix监控能力提供了一种选择方案. 插件采用Go编程语言编写, 仅由Zabbix agent 2支持.
插件可作为loadable modules(C语言编写)的替代方案, 以及其他扩展Zabbix功能的方法, 例如user parameters(agent指标), external checks(无agent监控)和system.run[]
Zabbix agent item.
以下特性为Zabbix agent 2及其插件所特有:
自Zabbix 6.0.0起, 插件无需直接集成到agent 2中, 可作为可加载插件添加, 从而简化了用于收集新监控指标的附加插件的创建过程.
本页面列出了Zabbix原生及可加载插件, 并从用户角度描述了插件配置原则. 关于编写自定义插件的说明, 请参阅Plugin development guidelines. 要了解Zabbix agent 2与可加载插件之间的通信流程及指标收集过程的更多信息, 请参见可加载插件.
本节提供插件配置的通用原则与最佳实践。
所有插件均通过Plugins.*参数进行配置,该参数可以是Zabbix agent 2 configuration file的组成部分,也可属于插件自身的configuration file。若插件使用独立的配置file,则应在Zabbix agent 2配置file的Include参数中指定该file路径。
典型插件参数结构如下:
Plugins.<PluginName>.<Parameter>=<Value>
此外存在两类特殊参数组:
Plugins.<PluginName>.Default.<Parameter>=<Value> 用于定义默认参数值
Plugins.<PluginName>.<SessionName>.<Parameter>=<Value> 用于通过命名会话为不同监控目标定义独立参数集
所有参数命名需符合以下要求:
自Zabbix 6.0.18起,您可以在配置file中为连接相关参数(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.<插件名称>.Sessions.<会话名称>.<参数>=<值>
会话名称可作为connString 监控项键参数使用,而无需 单独指定URI、用户名和/或密码。
在监控项键中, 第一个参数可以是connString或URI。如果第一个 键参数不匹配任何会话名称,它将被视为 URI。请注意,不支持将凭据嵌入URI中,应改用命名会话参数。
可用的named session parameters列表取决于具体插件。
在Zabbix 6.0.17之前的版本中,当在键参数中提供connString(会话名称)时,监控项键参数中的用户名和密码必须为空。这些值将从会话参数中获取。如果未为命名会话指定认证参数,则将使用硬编码的默认值。
自Zabbix 6.0.17起,可以通过在监控项键参数中指定新值来覆盖会话参数(参见示例)。
自Zabbix 6.0.18起,如果未为命名会话定义参数,Zabbix agent 2将使用默认插件参数中定义的值。
自version 6.0.18版本起,Zabbix agent 2插件按以下顺序搜索连接相关参数值:
监控两个实例 "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.0:3306
Plugins.Mysql.Sessions.MySQL2.User=mysql2_user
Plugins.Mysql.Sessions.MySQL2.Password=different_password
通过此配置,每个会话名称可作为 item key 中的 connString 使用,例如 mysql.ping[MySQL1]
或 mysql.ping[MySQL2]
。
在监控项键中提供部分参数(自Zabbix 6.0.17起支持)
配置参数:
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
Item key: pgsql.ping[session1,new_username,,postgres]
此配置的结果是,agent将使用以下参数连接到PostgreSQL:
使用默认配置参数收集指标。
配置参数:
Plugins.PostgreSQL.Default.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Default.User=zabbix
Plugins.PostgreSQL.Default.Password=password
Item key: pgsql.ping[,,,postgres]
此配置的结果是,agent将使用以下参数连接到PostgreSQL:
部分插件支持同时从多个实例采集指标 可监控本地及远程实例 支持TCP和Unix套接字连接
建议配置插件保持与实例的连接为开启状态 其优势在于减少网络拥塞 延迟以及因连接数减少带来的CPU和memory资源消耗 客户端库会处理此机制
未使用连接应保持开启的时长可通过 Plugins.<PluginName>.KeepAlive参数配置
例如: Plugins.Memcached.KeepAlive
Zabbix agent 2支持的所有指标均由插件收集。
以下插件为Zabbix agent 2提供开箱即用的支持。点击插件名称可跳转至插件仓库获取更多信息。
插件名称 | 描述 | Supported item keys | 备注 |
---|---|---|---|
Agent | 被使用的Zabbix agent指标。 | agent.hostname, agent.ping, agent.version | 支持的键值与Zabbix agent keys具有相同参数。 |
Ceph | Ceph监控。 | ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump, ceph.ping, ceph.pool.discovery, ceph.status |
|
CPU | 系统CPU监控(CPU数量/核心数、发现的CPU、利用率百分比)。 | system.cpu.discovery, system.cpu.num, system.cpu.util | 支持的键值与Zabbix agent keys具有相同参数。 |
Docker | Docker容器监控。 | docker.container_info, docker.container_stats, docker.containers, docker.containers.discovery, docker.data_usage, docker.images, docker.images.discovery, docker.info, docker.ping |
另见: Configuration parameters |
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 |
支持的键值与Zabbix agent keys具有相同参数。 |
Kernel | 内核监控。 | kernel.maxfiles, kernel.maxproc | 支持的键值与Zabbix agent keys具有相同参数。 |
Log | 日志file监控。 | log, log.count, logrt, logrt.count | 支持的键值与Zabbix agent keys具有相同参数。 另见: 插件配置参数 (Unix/Windows) |
Memcached | Memcached服务器监控。 | memcached.ping, memcached.stats | |
Modbus | 读取Modbus数据。 | modbus.get | 支持的键值与Zabbix agent keys具有相同参数。 |
MQTT | 接收MQTT主题的发布值。 | mqtt.get | 要配置与MQTT代理的加密连接,请在agent配置file中指定TLS参数作为命名会话或默认参数。目前,TLS参数不能作为监控项键参数传递。 |
MySQL | MySQL及其分支的监控。 | mysql.custom.query, mysql.db.discovery, mysql.db.size, mysql.get_status_variables, mysql.ping, mysql.replication.discovery, mysql.replication.get_slave_status, mysql.version |
要配置与数据库的加密连接,请在agent配置file中指定TLS参数作为命名会话或默认参数。目前,TLS参数不能作为监控项键参数传递。mysql.custom.query 监控项键自Zabbix 6.0.21起支持。 |
NetIf | 网络接口监控。 | net.if.collisions, net.if.discovery, net.if.in, net.if.out, net.if.total | 支持的键值与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.version |
使用插件前请安装Oracle Instant Client。 |
Proc | 进程CPU利用率百分比。 | proc.cpu.util | 支持的键值与Zabbix agent key具有相同参数。 |
Redis | Redis服务器监控。 | redis.config, redis.info, redis.ping, redis.slowlog.count | |
Smart | S.M.A.R.T.监控。 | smart.attribute.discovery, smart.disk.discovery, smart.disk.get | 最低要求的smartctl version为7.1。 执行Zabbix agent 2的用户需要sudo/root权限访问smartctl。插件仅使用以下命令: /usr/sbin/smartctl -a * /usr/sbin/smartctl --scan * /usr/sbin/smartctl -j -V 支持的keys仅在Linux/Windows上可与Zabbix agent 2一起使用,作为被动或主动检查。 另见: Configuration parameters |
Swap | 交换空间大小(字节/百分比)。 | system.swap.size | 支持的键值与Zabbix agent key具有相同参数。 |
SystemRun | 运行指定命令。 | system.run | 支持的键值与Zabbix agent key具有相同参数。 另见: 插件配置参数 (Unix/Windows) |
Systemd | systemd服务监控。 | systemd.unit.discovery, systemd.unit.get, systemd.unit.info | |
TCP | TCP连接可用性检查。 | net.tcp.port | 支持的键值与Zabbix agent key具有相同参数。 |
UDP | UDP服务可用性和性能监控。 | net.udp.service, net.udp.service.perf | 支持的键值与Zabbix agent keys具有相同参数。 |
Uname | 系统信息检索。 | system.hostname, system.sw.arch, system.uname | 支持的键值与Zabbix agent keys具有相同参数。 |
Uptime | 系统运行时间指标收集。 | system.uptime | 支持的键值与Zabbix agent key具有相同参数。 |
VFSDev | VFS指标收集。 | vfs.dev.discovery, vfs.dev.read, vfs.dev.write | 支持的键值与Zabbix agent keys具有相同参数。 |
WebCertificate | TLS/SSL网站证书监控。 | web.certificate.get | |
WebPage | 网页监控。 | web.page.get, web.page.perf, web.page.regexp | 支持的键值与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 |
支持的键值与Zabbix agent keys具有相同参数。 |
ZabbixStats | Zabbix server/proxy内部指标或队列中延迟监控项的数量。 | zabbix.stats | 支持的键值与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. |
支持的键值与Zabbix agent keys具有相同参数。 |
可加载插件在启动时支持以下参数:
- -V --version - 打印插件version及许可证信息;
- -h --help - 打印帮助信息。
点击插件名称可跳转至包含更多信息的插件仓库。
插件名称 | 描述 | 支持的监控项键 | 备注 |
---|---|---|---|
Ember+ | Ember+监控。 | ember.get | 该插件自Zabbix 6.0.30起支持。目前仅支持从源码构建(适用于Unix和Windows)。 另见参数。 |
MongoDB | 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.version |
该插件自Zabbix 6.0.6起可加载(之前为内置)。Windows预编译插件二进制文件自Zabbix 6.0.19起提供,并兼容之前的6.0版本。 要配置数据库加密连接,请在agent配置file中以命名会话参数形式指定TLS参数。 插件版本1.2.0、6.0.13及更新版本支持1。 目前TLS参数不能作为监控项键参数传递。 另见参数。 |
MSSQL | MSSQL数据库监控。 | mssql.availability.group.get, mssql.custom.query, mssql.db.get, mssql.job.status.get, mssql.last.backup.get, mssql.local.db.get, mssql.mirroring.get, mssql.nonlocal.db.get, mssql.perfcounter.get, mssql.ping, mssql.quorum.get, mssql.quorum.member.get, mssql.replica.get, mssql.version | 该插件自Zabbix 6.0.27起支持。Windows预编译插件二进制文件自Zabbix 6.0.28起提供,并兼容6.0.27 version。 要配置数据库加密连接,请在agent配置file中以命名会话或默认值参数形式指定TLS参数。目前TLS参数不能作为监控项键参数传递。 另见参数。 |
PostgreSQL | PostgreSQL及其分支监控。 | pgsql.autovacuum.count, pgsql.archive, pgsql.bgwriter, pgsql.cache.hit, pgsql.connections, pgsql.custom.query, pgsql.dbstat, pgsql.dbstat.sum, pgsql.db.age, pgsql.db.bloating_tables, pgsql.db.discovery, pgsql.db.size, pgsql.locks, pgsql.oldest.xid, pgsql.ping, pgsql.queries, pgsql.replication.count, pgsql.replication.process, pgsql.replication.process.discovery, pgsql.replication.recovery_role, pgsql.replication.status, pgsql.replication_lag.b, pgsql.replication_lag.sec, pgsql.uptime, pgsql.version, pgsql.wal.stat |
该插件自Zabbix 6.0.10起可加载(之前为内置)。Windows预编译插件二进制文件自Zabbix 6.0.19起提供,并兼容之前的6.0版本。 要配置数据库加密连接,请在agent配置file中以命名会话或默认值参数形式指定TLS参数。 目前TLS参数不能作为监控项键参数传递。 另见参数。 |
1 - 自Zabbix 6.0.13起,可加载插件开始采用与Zabbix自身相同的版本控制系统。 因此,MongoDB插件version的版本号从1.2.0变更为6.0.13,PostgreSQL插件version 的版本号从1.2.1变更为6.0.13。