Плагины позволяют расширить возможности мониторинга Zabbix. Плагины написаны на языке программирования Go и поддерживаются только Zabbix агентом 2. Плагины предоставляют альтернативу подгружаемым модулям (написанным на языке программирования C) и другим методам для расширения функциональности Zabbix.
Следующие функции специфичны для агента 2 и его плагинов:
Начиная с версии Zabbix 6.0, плагины не обязательно интегрируются напрямую в агент 2, их можно добавлять как подгружаемые плагины, тем самым упрощая процесс создания дополнительных плагинов для сбора новых метрик мониторинга.
На этой странице перечислены собственные и подгружаемые плагины Zabbix, а также описаны принципы настройки плагинов с точки зрения пользователя.
Для инструкций по написанию своих собственных плагинов обратитесь к Центру разработчиков и Примеру плагина для Zabbix агента 2 [en].
Для получения дополнительной информации о процессе взаимодействия между Zabbix агентом 2 и подгружаемым плагином, а также о процессе сбора метрик, смотрите диаграмму подключения.
В этом разделе представлены общие принципы и рекомендации по настройке плагинов.
Все плагины настраиваются с помощью параметра Plugins.*, который может быть частью либо файла конфигурации Zabbix агента 2, либо собственного файла конфигурации плагина. Если плагин использует отдельный файл конфигурации, путь к этому файлу необходимо указать в параметре Include файла конфигурации Zabbix агента 2.
Типичный параметр плагина имеет следующую структуру:
Plugins.<ИмяПлагина>.<Параметр>=<Значение>
Кроме того, существуют две специальные группы параметров:
Plugins.<ИмяПлагина>.Default.<Параметр>=<Значение> используется для определения значений параметров по умолчанию.
Plugins.<ИмяПлагина>.<ИмяСессии>.<Параметр>=<Значение> используется для определения отдельных наборов параметров для различных целей мониторинга посредством именованных сессий.
Все имена параметров должны соответствовать следующим требованиям:
Например, для того, чтобы активные проверки, не имеющие интервала обновления по расписанию, выполнялись сразу же после перезапуска агента только для плагина Uptime, задайте в файле конфигурации Plugins.Uptime.System.ForceActiveChecksOnStart=1. Аналогично, чтобы задать пользовательский лимит на параллельные проверки для плагина CPU, задайте в файле конфигурации Plugins.CPU.System.Capacity=N.
В конфигурационном файле можно выставить значения по умолчанию для параметров, относящихся к соединению (URI, имя пользователя, пароль и т.д.), в следующем формате:
Например: Plugins.Mysql.Default.Username=zabbix, Plugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017 и т.д.
Если значение для такого параметра не задано в ключе элемента данных или в параметрах именованной сессии, плагин будет использовать это значение по умолчанию. Если значение параметра по умолчанию тоже не определено, то будет использоваться жёстко заданное в коде значение по умолчанию.
Если элемент данных не имеет никаких параметров, Zabbix агент 2 будет пытаться собрать метрику, используя значения, определённые в секции значений параметров по умолчанию.
Именованные сессии представляют дополнительный уровень параметров плагина и могут использоваться для определения отдельных наборов параметров аутентификации для каждого наблюдаемого экземпляра. Каждый параметр именованной сессии должен иметь следующую структуру:
Имя сессии может использоваться в качестве параметра строка_подключения в ключе элемента данных вместо указания URI, имени пользователя и/или пароля по отдельности.
В ключах элементов данных первым параметром может быть либо строка_подключения, либо URI. Если первый параметр ключа не совпадает ни с каким именем сессии, он будет рассматриваться как URI. Обратите внимание, что передача встроенных в URI учётных данных не поддерживается, вместо этого рекомендуется использовать параметры именованных сессий.
Список доступных параметров именованных сессий зависит от плагина.
Можно переопределить параметры сессии, указывая новые значения в параметрах ключа элемента данных (смотри пример).
Если параметр не определён для именованной сессии, Zabbix агент 2 будет использовать значение, определённое в параметрах плагина по умолчанию.
Плагины Zabbix агента 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=уникальный_пароль
Plugins.Mysql.Sessions.MySQL2.Uri=tcp://192.0.2.0:3306
Plugins.Mysql.Sessions.MySQL2.User=mysql2_user
Plugins.Mysql.Sessions.MySQL2.Password=другой_парольВ результате таких настроек, каждое имя сессии может использоваться в качестве параметра строка_подключения в ключах элементов данных, например: 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Ключ элемента данных: pgsql.ping[session1,new_username,,postgres]
В результате таких настроек агент будет подключаться к PostgreSQL, используя следующие параметры:
192.0.2.234:5432new_usernamesession_passwordpostgresСбор метрик, используя параметры конфигурации по умолчанию.
Параметры конфигурации:
Plugins.PostgreSQL.Default.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Default.User=zabbix
Plugins.PostgreSQL.Default.Password=passwordКлюч элемента данных: pgsql.ping[,,,postgres]
В результате таких настроек, агент будет подключаться к PostgreSQL, используя следующие параметры:
192.0.2.234:5432zabbixpasswordpostgresНекоторые плагины поддерживают сбор метрик с нескольких экземпляров одновременно. Можно наблюдать как локальные, так и удаленные экземпляры. Поддерживаются TCP и Unix-сокет соединения.
Рекомендуется настроить плагины так, чтобы они соединения с экземплярами поддерживали в открытом состоянии. Преимущества — снижение перегрузки сети, задержек и использования CPU и памяти из-за меньшего количества соединений. Об этом позаботится клиентская библиотека.
Период времени, в течение которого неиспользуемые соединения должны оставаться открытыми, можно задать параметром Plugins.<ИмяПлагина>.KeepAlive.
Пример: Plugins.Memcached.KeepAlive
Все метрики, поддерживаемые Zabbix агентом 2, собираются с помощью плагинов.
Следующие плагины для Zabbix агента 2 доступны «из коробки». Нажмите на имя плагина, чтобы перейти к репозиторию плагина с дополнительной информацией.
| Имя плагина | Описание | Поддерживаемые ключи элементов данных | Комментарии |
|---|---|---|---|
| Agent | Метрики используемого агента Zabbix. | agent.hostname, agent.ping, agent.version | Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента. |
| 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 агента. |
| 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 агента. |
| Kernel | Мониторинг ядра. | kernel.maxfiles, kernel.maxproc | Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента. |
| Log | Мониторинг файлов журнала. | log, log.count, logrt, logrt.count | Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента. Смотрите также: Параметры конфигурации плагина (Unix/Windows) |
| Memcached | Мониторинг Memcached сервера. | memcached.ping, memcached.stats | |
| Modbus | Чтение данных Modbus. | modbus.get | Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента. |
| MQTT | Получение опубликованных значений тем MQTT. | mqtt.get | Чтобы настроить шифрованное соединение к брокеру MQTT, укажите параметры 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 |
Для настройки шифрованного подключения к базе данных укажите параметры TLS в конфигурационном файле агента как именованные сессии или параметры по умолчанию. В настоящее время параметры TLS нельзя передать в виде параметров ключа элемента данных. |
| NetIf | Мониторинг сетевых интерфейсов. | net.if.collisions, net.if.discovery, net.if.in, net.if.out, net.if.total | Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента. |
| 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 агента. |
| Redis | Мониторинг Redis сервера. | redis.config, redis.info, redis.ping, redis.slowlog.count | Для настройки шифрованного подключения к Redis укажите параметры TLS в конфигурационном файле агента как именованные сессии или параметры по умолчанию. Параметры TLS нельзя передать в виде параметров ключа элемента данных. Обратите внимание, что неправильная или иным образом недействительная конфигурация TLS может помешать запуску Zabbix агента 2, поэтому проверьте файлы сертификатов, права и пути перед включением TLS. |
| Smart | Мониторинг S.M.A.R.T. | smart.attribute.discovery, smart.disk.discovery, smart.disk.get | Минимально требуемая версия smartctl — 7.1. Пользователю, из под которого работает Zabbix агент 2, требуются права доступа sudo/root к smartctl. Плагин использует только следующие команды: /usr/sbin/smartctl -a */usr/sbin/smartctl --scan * /usr/sbin/smartctl -j -VПоддерживаемые ключи можно использовать только с Zabbix агентом 2 только на Linux/Windows, как пассивными, так и активными проверками. Смотрите также: Параметры конфигурации |
| SW | Список установленных пакетов. | system.sw.packages, system.sw.packages.get | Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента. |
| Swap | Размер файла подкачки в байтах / процентах. | system.swap.size | Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента. |
| SystemRun | Выполнение указанной команды. | system.run | Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента. Смотрите также: Параметры конфигурации плагина (Unix/Windows) |
| Systemd | Мониторинг системных сервисов systemd. | systemd.unit.discovery, systemd.unit.get, systemd.unit.info | |
| TCP | Проверка доступности TCP-соединения. | net.tcp.port | Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента. |
| UDP | Мониторинг доступности и производительности сервисов UDP. | net.udp.service, net.udp.service.perf | Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента. |
| Uname | Сбор информации о системе. | system.hostname, system.sw.arch, system.uname | Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента. |
| Uptime | Сбор метрик времени работы системы. | system.uptime | Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента. |
| VFSDev | Сбор метрик VFS. | vfs.dev.discovery, vfs.dev.read, vfs.dev.write | Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента. |
| WebCertificate | Мониторинг TLS/SSL сертификатов веб-сайтов. | web.certificate.get | |
| WebPage | Мониторинг веб-страниц. | web.page.get, web.page.perf, web.page.regexp | Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента. |
| 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 агента. |
| ZabbixStats | Внутренние метрики Zabbix сервера/прокси или количество задержанных элементов данных в очереди. | zabbix.stats | Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента. |
| 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 агента. |
Подгружаемые плагины для Zabbix агента 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 |
Для настройки шифрованного подключения к базе данных укажите параметры 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 | Для настройки шифрованного подключения к базе данных укажите параметры 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 |
Для настройки шифрованного подключения к базе данных укажите параметры TLS в файле конфигурации агента как параметры именованной сессии или по умолчанию. В настоящее время параметры TLS нельзя передать в виде параметров ключа элемента данных. Смотрите также: параметры конфигурации плагина PostgreSQL. |
Подгружаемые плагины, когда выполняются с:
- -V --version — печатают версию плагина и информацию о лицензии;
- -h --help — печатают справочную информацию.