2. Плагины
Обзор
Плагины расширяют возможности мониторинга агента 2 Zabbix. Написанные на языке программирования Go, они представляют собой альтернативу загружаемым модулям (написанным на C) и другим методам расширения функциональности Zabbix.
Эти возможности специфичны для агента 2 и его плагинов:
- Планируемые и гибкие интервалы как для пассивных, так и для активных проверок
- Управление очередью задач с учетом расписания и параллелизма задач
- Тайм-ауты на уровне плагина
- Проверка совместимости агента 2 Zabbix и его плагинов при запуске
Все метрики, поддерживаемые агентом 2 Zabbix, собираются плагинами. На этой странице описаны принципы настройки плагинов с точки зрения пользователя, а также перечислены встроенные и загружаемые плагины, предоставляемые Zabbix.
Начиная с Zabbix 6.0, плагины больше не нужно встраивать в агент 2. Их можно добавлять как загружаемые плагины, что упрощает создание плагинов для новых метрик. Инструкции по созданию собственных плагинов см. в Центре разработчика и Примере плагина для агента 2 Zabbix.
Настройка плагинов
В этом разделе представлены общие принципы и рекомендации по настройке плагинов.
Все плагины настраиваются с помощью параметра Plugins.*, который может быть частью либо файла конфигурации Zabbix агента 2, либо собственного файла конфигурации плагина. Если плагин использует отдельный файл конфигурации, путь к этому файлу необходимо указать в параметре Include файла конфигурации Zabbix агента 2.
Типичный параметр плагина имеет следующую структуру:
Plugins.<ИмяПлагина>.<Параметр>=<Значение>
Кроме того, существуют две специальные группы параметров:
-
Plugins.<ИмяПлагина>.Default.<Параметр>=<Значение> используется для определения значений параметров по умолчанию.
-
Plugins.<ИмяПлагина>.<ИмяСессии>.<Параметр>=<Значение> используется для определения отдельных наборов параметров для различных целей мониторинга посредством именованных сессий.
Все имена параметров должны соответствовать следующим требованиям:
- рекомендуется писать названия плагинов с заглавной буквы
- параметр должен начинаться с заглавной буквы
- специальные символы не допускаются
- вложенность не ограничена максимальным уровнем
- количество параметров не ограничено
Например, для того, чтобы активные проверки, не имеющие интервала обновления по расписанию, выполнялись сразу же после перезапуска агента только для плагина Uptime, задайте в файле конфигурации Plugins.Uptime.System.ForceActiveChecksOnStart=1.
Аналогично, чтобы задать пользовательский лимит на параллельные проверки для плагина CPU, задайте в файле конфигурации Plugins.CPU.System.Capacity=N.
Значения по умолчанию
В конфигурационном файле можно выставить значения по умолчанию для параметров, относящихся к соединению (URI, имя пользователя, пароль и т.д.), в следующем формате:
Plugins.<ИмяПлагина>.Default.<Параметр>=<Значение>
Например: Plugins.Mysql.Default.Username=zabbix, Plugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017 и т.д.
Если значение для такого параметра не задано в ключе элемента данных или в параметрах именованной сессии, плагин будет использовать это значение по умолчанию. Если значение параметра по умолчанию тоже не определено, то будет использоваться жёстко заданное в коде значение по умолчанию.
Если элемент данных не имеет никаких параметров, Zabbix агент 2 будет пытаться собрать метрику, используя значения, определённые в секции значений параметров по умолчанию.
Именованные сессии
Именованные сессии представляют дополнительный уровень параметров плагина и могут использоваться для определения отдельных наборов параметров аутентификации для каждого наблюдаемого экземпляра. Каждый параметр именованной сессии должен иметь следующую структуру:
Plugins.<ИмяПлагина>.Sessions.<ИмяСессии>.<Параметр>=<Значение>
Имя сессии может использоваться в качестве параметра строка_подключения в ключе элемента данных вместо указания URI, имени пользователя и/или пароля по отдельности.
В ключах элементов данных первым параметром может быть либо строка_подключения, либо URI. Если первый параметр ключа не совпадает ни с каким именем сессии, он будет рассматриваться как URI. Обратите внимание, что передача встроенных в URI учётных данных не поддерживается, вместо этого рекомендуется использовать параметры именованных сессий.
Список доступных параметров именованных сессий зависит от плагина.
Можно переопределить параметры сессии, указывая новые значения в параметрах ключа элемента данных (смотри пример).
Если параметр не определён для именованной сессии, Zabbix агент 2 будет использовать значение, определённое в параметрах плагина по умолчанию.
Приоритет параметров
Плагины Zabbix агента 2 ищут значения относящихся к соединению параметров в следующем порядке:

- Первый параметр ключа элемента данных сравнивается с именами сессий. Если совпадений не найдено, он рассматривается как реальное значение, в этом случае шаг 3 пропускается. Если же совпадение найдено, то значение этого параметра (как правило, URI) должно быть определено в параметрах сессии.
- Остальные параметры будут браться из ключа элемента данных, если они там есть.
- Если параметр ключа элемента данных (например, пароль) не указан, плагин будет искать соответствующий параметр именованной сессии.
- Если параметр сессии также не указан, будет использоваться значение, определённое в соответствующих параметрах по умолчанию.
- Если всё равно значение определить не удалось, то плагин будет использовать жёстко заданное в коде значение по умолчанию.
Пример 1
Мониторинг двух экземпляров «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].
Пример 2
Предоставление некоторых параметров в ключе элемента данных.
Параметры конфигурации:
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, используя следующие параметры:
- URI из параметров сессии:
192.0.2.234:5432 - Имя пользователя из ключа элемента данных:
new_username - Пароль из параметров сессии (так как он опущен в ключе):
session_password - Имя базы данных из ключа элемента данных:
postgres
Пример 3
Сбор метрик, используя параметры конфигурации по умолчанию.
Параметры конфигурации:
Plugins.PostgreSQL.Default.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Default.User=zabbix
Plugins.PostgreSQL.Default.Password=password
Ключ элемента данных: pgsql.ping[,,,postgres]
В результате таких настроек, агент будет подключаться к PostgreSQL, используя следующие параметры:
- URI по умолчанию:
192.0.2.234:5432 - Имя пользователя по умолчанию:
zabbix - Пароль по умолчанию:
password - Имя базы данных из ключа элемента данных:
postgres
Соединения
Некоторые плагины поддерживают сбор метрик с нескольких экземпляров одновременно. Можно наблюдать как локальные, так и удаленные экземпляры. Поддерживаются TCP и Unix-сокет соединения.
Рекомендуется настроить плагины так, чтобы они соединения с экземплярами поддерживали в открытом состоянии. Преимущества — снижение перегрузки сети, задержек и использования CPU и памяти из-за меньшего количества соединений. Об этом позаботится клиентская библиотека.
Период времени, в течение которого неиспользуемые соединения должны оставаться открытыми, можно задать параметром Plugins.<ИмяПлагина>.KeepAlive.
Пример: Plugins.Memcached.KeepAlive
Встроенные плагины
Встроенные плагины Zabbix agent 2 доступны сразу после установки. Щелкните по названию плагина, чтобы перейти в репозиторий плагина с дополнительной информацией.
| Название плагина | Описание | Поддерживаемые ключи элементов данных | Комментарии |
|---|---|---|---|
| Агент | Метрики используемого агента Zabbix. | agent.hostname, agent.ping, agent.version | Поддерживаемые ключи имеют те же параметры, что и ключи агента Zabbix 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, обнаруженные CPU, процент загрузки). | system.cpu.discovery, system.cpu.num, system.cpu.util | Поддерживаемые ключи имеют те же параметры, что и ключи агента Zabbix 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 |
См. также: Параметры конфигурации |
| 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 keys. |
| Kernel | Мониторинг ядра. | kernel.maxfiles, kernel.maxproc | Поддерживаемые ключи имеют те же параметры, что и ключи агента Zabbix keys. |
| Log | Мониторинг файлов журналов. | log, log.count, logrt, logrt.count | Поддерживаемые ключи имеют те же параметры, что и ключи агента Zabbix keys. См. также: Параметры конфигурации плагина (Unix/Windows) |
| Memcached | Мониторинг сервера Memcached. | memcached.ping, memcached.stats | |
| Modbus | Чтение данных Modbus. | modbus.get | Поддерживаемые ключи имеют те же параметры, что и ключи агента Zabbix keys. |
| 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 keys. |
| Oracle | Мониторинг Oracle Database. | 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 key. |
| Redis | Мониторинг сервера Redis. | redis.config, redis.info, redis.ping, redis.slowlog.count | Чтобы настроить зашифрованное соединение с Redis, укажите параметры TLS в файле конфигурации агента как параметры именованной сессии или значения по умолчанию. Параметры TLS нельзя передавать как параметры ключа элемента данных. Обратите внимание, что некорректная или иным образом недействительная конфигурация TLS может помешать запуску Zabbix agent 2, поэтому перед включением TLS проверьте файлы сертификатов, права доступа и пути. |
| Smart | Мониторинг S.M.A.R.T. | smart.attribute.discovery, smart.disk.discovery, smart.disk.get | Минимально необходимая версия smartctl — 7.1. Для пользователя, от имени которого запускается Zabbix agent 2, требуются права sudo/root для smartctl. Плагин использует только следующие команды: /usr/sbin/smartctl -a */usr/sbin/smartctl --scan * /usr/sbin/smartctl -j -V Поддерживаемые keys можно использовать с Zabbix agent 2 только в Linux/Windows, как для пассивной, так и для активной проверки. См. также: Параметры конфигурации |
| SW | Список установленных пакетов. | system.sw.packages, system.sw.packages.get | Поддерживаемые ключи имеют те же параметры, что и ключ агента Zabbix key. |
| Swap | Размер пространства подкачки в байтах/процентах. | system.swap.size | Поддерживаемый ключ имеет те же параметры, что и ключ агента Zabbix key. |
| SystemRun | Выполняет указанную команду. | system.run | Поддерживаемый ключ имеет те же параметры, что и ключ агента Zabbix key. См. также: Параметры конфигурации плагина (Unix/Windows) |
| Systemd | Мониторинг служб systemd. | systemd.unit.discovery, systemd.unit.get, systemd.unit.info | |
| TCP | Проверка доступности TCP-соединения. | net.tcp.port | Поддерживаемый ключ имеет те же параметры, что и ключ агента Zabbix key. |
| UDP | Мониторинг доступности и производительности служб UDP. | net.udp.service, net.udp.service.perf | Поддерживаемые ключи имеют те же параметры, что и ключи агента Zabbix keys. |
| Uname | Получение информации о системе. | system.hostname, system.sw.arch, system.uname | Поддерживаемые ключи имеют те же параметры, что и ключи агента Zabbix keys. |
| Uptime | Сбор метрик времени работы системы. | system.uptime | Поддерживаемый ключ имеет те же параметры, что и ключ агента Zabbix key. |
| VFSDev | Сбор метрик VFS. | vfs.dev.discovery, vfs.dev.read, vfs.dev.write | Поддерживаемые ключи имеют те же параметры, что и ключи агента Zabbix keys. |
| WebCertificate | Мониторинг TLS/SSL-сертификатов веб-сайтов. | web.certificate.get | |
| WebPage | Мониторинг веб-страниц. | web.page.get, web.page.perf, web.page.regexp | Поддерживаемые ключи имеют те же параметры, что и ключи агента Zabbix 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 keys. |
| ZabbixStats | Внутренние метрики сервера/прокси Zabbix или количество задержанных элементов данных в очереди. | zabbix.stats | Поддерживаемые ключи имеют те же параметры, что и ключи агента Zabbix 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 keys. |
Загружаемые плагины
Загружаемые плагины Zabbix agent 2 не входят в стандартную поставку и должны устанавливаться отдельно:
- В Linux можно использовать пакеты (например, установить Ember+ в Ubuntu с помощью
apt install zabbix-agent2-plugin-ember-plus) или собрать плагины - В Windows можно установить из MSI или собрать плагины
Перед установкой плагина, пожалуйста, ознакомьтесь с его файлом README. Он может содержать особые требования и инструкции по установке.
Нажмите на имя плагина, чтобы перейти в репозиторий плагина, где находится файл README с дополнительной информацией.
| Имя плагина | Описание | Поддерживаемые ключи элементов данных | Комментарии |
|---|---|---|---|
| Ember+ | Мониторинг Ember+. | ember.get | См. также Параметры конфигурации плагина 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. |
| NVIDIA GPU | Мониторинг NVIDIA GPU. | nvml.device.count, nvml.device.decoder.utilization, nvml.device.ecc.mode, nvml.device.encoder.stats.get, nvml.device.encoder.utilization, nvml.device.energy.consumption, nvml.device.errors.memory, nvml.device.errors.register, nvml.device.fan.speed.avg, nvml.device.get, nvml.device.graphics.frequency, nvml.device.memory.bar1.get, nvml.device.memory.fb.get, nvml.device.memory.frequency, nvml.device.pci.utilization, nvml.device.performance.state, nvml.device.power.limit, nvml.device.power.usage, nvml.device.serial, nvml.device.sm.frequency, nvml.device.temperature, nvml.device.utilization, nvml.device.video.frequency, nvml.system.driver.version, nvml.version | См. также Параметры конфигурации плагина NVIDIA GPU. |
| 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- выводят справочную информацию.