插件提供了一种扩展Zabbix监控能力的选项。插件使用Go编程语言编写,仅由Zabbix agent 2支持。 插件为Zabbix可加载模块(用C语言编写)以及其他方法扩展Zabbix功能提供了替代方案。
以下是Zabbix agent 2及其插件特有的功能:
自Zabbix 6.0起,插件无需直接集成到agent 2中,可以作为可加载插件添加,从而简化了创建用于收集新监控指标的额外插件的过程。
本页面列出了Zabbix原生和可加载插件,并从用户视角描述了插件配置原则。
有关编写自己的插件的说明,请参阅开发者中心和Zabbix agent 2示例插件。
有关Zabbix agent 2与可加载插件之间的通信过程以及指标收集过程的详细信息,请参阅连接图。
This section provides common plugin configuration principles and best practices. 本节提供常见的插件配置原则和最佳实践。
所有插件都使用Plugins.*参数进行配置,该参数可以是 Zabbix agent 2 配置文件的一部分,也可以是插件自己的配置文件。如果插件使用单独的配置文件,则应在 Zabbix agent 2 配置文件的 Include 参数中指定该文件的路径。
典型的插件参数具有以下结构:
Plugins.<PluginName>.<Parameter>=<Value>
此外,还有两组特定的参数:
Plugins.<PluginName>.Default.<Parameter>=<Value> 用于定义默认参数值。
Plugins.<PluginName>.<SessionName>.<Parameter>=<Value> 用于通过命名会话为不同的监控目标定义单独的参数集。
所有参数名称均应遵守以下要求:
例如,要仅为 Uptime 插件执行没有在agent 重启后立即安排更新间隔的主动检查,请在配置文件中设置。同样,要为 CPU 插件设置并发检查的自定义限制,请在配置文件中设置。 设置 Plugins.Uptime.System.ForceActiveChecksOnStart=1
在 配置文件。 相似的,设置自定义限制为 并行检查 对于 CPU 插件, 设置 Plugins.CPU.System.Capacity=N
在 配置文件.
You can set default values for the connection-related parameters (URI, username, password, etc.) in the configuration file in the format: 您可以在配置文件中设置连接相关参数(URI、用户名、密码等)的默认值,格式如下:
*插件.<插件名称>.默认.<参数>=<值>
例如,Plugins.Mysql.Default.Username=zabbix, Plugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017, etc.
如果项目键或命名会话参数中未提供此类参数的值,则插件将使用默认值。如果默认参数也未定义,则将使用硬编码默认值。
如果项目键没有任何参数,Zabbix agent 2 将尝试使用默认参数部分中定义的值来收集指标。
命名会话代表插件参数的附加级别,可用于为每个受监控的实例指定单独的身份验证参数集。每个命名会话参数应具有以下结构:
插件.<插件名称>.会话.<会话名称>.<参数>=<值>
会话名称可以用作 connString 项目键参数,而不必单独指定 URI、用户名和/或密码。
在监控项中,第一个参数可以是 connString 或 URI。如果第一个键参数与任何会话名称都不匹配,它将被视为 URI。请注意,不支持在项目键中传递嵌入式 URI 凭据,请改用命名会话参数。
可用的命名会话 参数列表取决于插件。
可以通过在项目键参数中指定新值来覆盖会话参数( 参见示例)。
如果没有为命名会话定义参数,Zabbix agent2 将使用默认插件参数中定义的值。
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
作为此配置的结果,每个会话名称都可以用作监控项key中的 connString ,例如mysql.ping[MySQL1]或mysql.ping[MySQL2]。
提供项目键中的一些参数。
配置参数:
Plugins.Postgres.Sessions.Session1.Uri=tcp://192.0.2.234:5432
Plugins.Postgres.Sessions.Session1.User=old_username
Plugins.Postgres.Sessions.Session1.Password=session_password
监控项 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
监控项 key: pgsql.ping[,,,postgres]
此配置的结果是,agent 将使用以下参数连接到 PostgreSQL:
一些插件支持同时从多个实例收集指标。可以监控本地和远程实例。支持 TCP 和 Unix 套接字连接。
建议配置插件以保持与实例的连接处于打开状态。这样做的好处是,由于连接数较少,网络拥塞、延迟以及 CPU 和内存使用率会降低。客户端库会处理此问题。
未使用的连接应保持打开的时间段可以通过Plugins.<PluginName>.KeepAlive参数确定。例如:Plugins.Memcached.KeepAlive
Zabbix agent 2 支持的所有指标均由插件收集。
以下Zabbix agent 2的插件开箱即用。点击插件名称前往插件仓库获取更多信息。
插件名称 | 描述 | 支持的监控项键 | 注释 |
---|---|---|---|
Agent | 正在使用的Zabbix agent的指标。 | agent.hostname, agent.ping, agent.version | 支持的键与Zabbix agent 键有相同的参数。 |
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核心数量,发现的CPU,利用率百分比)。 | system.cpu.discovery, system.cpu.num, system.cpu.util | 支持的键与Zabbix agent 键有相同的参数。 |
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 |
另请参阅: 配置参数 |
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 键有相同的参数。 |
Kernel | 内核监控。 | kernel.maxfiles, kernel.maxproc | 支持的键与Zabbix agent 键有相同的参数。 |
Log | 日志文件监控。 | log, log.count, logrt, logrt.count | 支持的键与Zabbix agent 键有相同的参数。 另请参阅: 插件配置参数 (Unix/Windows) |
[Memcached](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/src/go/plugins/memcached/README.md?at=refs%2Fheads%2 |
Zabbix agent 2 的可加载插件并非开箱即用,需要单独安装:
点击插件名称以访问包含附加信息的插件仓库。
插件名称 | 描述 | 支持的监控项键 | 备注 |
---|---|---|---|
Ember+ | Ember+ 的监控。 | ember.get | 目前仅可通过源代码构建(适用于 Unix 和 Windows)。 另请参阅 Ember+ 插件配置参数。 |
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 |
要配置加密数据库连接,请在 agent 配置文件中将 TLS 参数指定为 命名会话 参数。 目前,TLS 参数无法作为监控项键参数传递。 另请参阅 MongoDB 插件配置参数。 |
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 | 要配置加密数据库连接,请在 agent 配置文件中将 TLS 参数指定为 命名会话 或 默认 参数。目前,TLS 参数无法作为监控项键参数传递。 另请参阅 MSSQL 插件配置参数。 |
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 |
要配置加密数据库连接,请在 agent 配置文件中将 TLS 参数指定为 命名会话 或 默认 参数。 目前,TLS 参数无法作为监控项键参数传递。 另请参阅 PostgreSQL 插件配置参数。 |
可加载插件,当使用以下命令启动:
- -V --version - 打印插件版本和许可信息;
- -h --help - 打印帮助信息。