Плагины дают возможность расширить функционал Zabbix. Плагины написаны на языке Go и поддерживаются только Zabbix агентом 2.
Они предоставляют альтернативу подгружаемым модулям (написанным на языке C) и другим методам расширения функциональности Zabbix, таким как пользовательские параметры (метрики агента), внешние проверки (мониторинг без агента) и элемент данных Zabbix агента system.run[]
.
Следующие функции относятся к Zabbix агенту 2 и его плагинам:
Начиная с Zabbix 6.0.0, плагины не нужно интегрировать напрямую в агент 2, их можно добавлять в виде подгружаемых модулей, что упрощает процесс создания дополнительных плагинов для сбора новых метрик мониторинга.
На этой странице перечислены встроенные и подгружаемые плагины, а также описаны принципы настройки плагинов с точки зрения пользователя. Для получения инструкций по написанию своих собственных плагинов, пожалуйста, обратитесь к руководству по разработке плагинов [en]. Для более подробной информации о процессе взаимодействия между Zabbix агентом 2 и подгружаемым плагином, а также процессом сбора метрик, смотрите диаграмму взаимодействия [en].
В этом разделе описаны общие принципы настройки плагинов и рекомендации.
Все плагины настраиваются с использованием параметра Plugins.*, который может быть как частью файла конфигурации Zabbix агента 2, так и частью файла конфигурации самого плагина . Если плагин использует отдельный файл конфигурации, путь к этому файлу необходимо указать в параметре Include файла конфигурации Zabbix агента 2.
Каждый параметр плагина должен иметь следующую структуру:
Plugins.<ИмяПлагина>.<Параметр>=<Значение>
Кроме того, есть две специфичные группы параметров:
Plugins.<ИмяПлагина>.Default.<Параметр>=<Значение> используется для определения значений параметров по умолчанию.
Plugins.<ИмяПлагина>.<ИмяСессии>.<Параметр>=<Значение> используется для определения отдельных наборов параметров для различных целей мониторинга через именованные сессии.
Все имена параметров должны соответствовать следующим требованиям:
Именованные сессии представляют дополнительный уровень параметров плагина и могут использоваться для определения отдельных наборов параметров аутентификации для каждого наблюдаемого экземпляра. Каждый параметр именованной сессии должен иметь следующую структуру:
Plugins.<ИмяПлагина>.Sessions.<ИмяСессии>.<Параметр>=<Значение>
Имя сессии может использоваться в качестве параметра строка_подключения в ключе элемента данных вместо указания URI, имени пользователя и пароля по отдельности.
В ключах элементов данных первым параметром может быть либо строка_подключения, либо Uri. Если первый параметр ключа не совпадает ни с каким именем сессии, указанным в файле конфигурации, он будет рассматриваться как Uri. Обратите внимание, что передача встроенных в URI учётных данных не поддерживается, вместо этого рекомендуется использовать именованные сессии.
Список доступных параметров именованных сессий зависит от плагина.
В Zabbix до версии 6.0.17, когда в параметрах ключа указывается строка_подключения (имя сессии), параметры ключа элемента данных для имени пользователя и пароля должны быть пустыми. Значения будут браться из параметров сессии. Если параметр аутентификации для именованной сессии не указан, будет использоваться жёстко заданное значение по умолчанию.
Начиная с Zabbix 6.0.17, вы можете переопределить параметры сессии, указывая новые значения в параметрах ключа элемента данных (смотри пример).
Начиная с Zabbix 6.0.18, если параметр не определён для именованной сессии, Zabbix агент 2 будет использовать значение, определённое в параметрах плагина по умолчанию.
Начиная с версии 6.0.18, плагины 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=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
В результате таких настроек, каждое имя сессии может использоваться в качестве параметра строка_подключения
в ключах элементов данных, например: mysql.ping[MySQL1]
, mysql.ping[MySQL2]
Предоставление некоторых параметров в ключе элемента данных (поддерживается, начиная с Zabbix 6.0.17).
Параметры конфигурации:
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, используя следующие параметры:
Сбор метрик, используя параметры конфигурации по умолчанию.
Параметры конфигурации:
Plugins.PostgreSQL.Default.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Default.User=zabbix
Plugins.PostgreSQL.Default.Password=password
Ключ элемента данных: pgsql.ping[,,,postgres]
В результате таких настроек, агент будет подключаться к PostgreSQL, используя следующие параметры:
Начиная с версии Zabbix 6.0.18, в конфигурационном файле можно выставить значения по умолчанию для параметров, относящихся к соединению (URI, имя пользователя, пароль и т.д.), в следующем формате:
Plugins.<ИмяПлагина>.Default.<Параметр>=<Значение>
Например: Plugins.Mysql.Default.Username=zabbix, Plugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017 и т.д.
Если значение для такого параметра не задано в ключе элемента данных или в параметрах именованной сессии, плагин будет использовать это значение по умолчанию. Если значение параметра по умолчанию тоже не определено, то будет использоваться жёстко заданное в коде значение по умолчанию.
Если элемент данных не имеет никаких параметров, Zabbix агент 2 будет пытаться собрать метрику, используя значения, определённые в секции значений параметров по умолчанию.
Некоторые плагины поддерживают сбор метрик с нескольких экземпляров одновременно. Можно наблюдать как локальные, так и удаленные экземпляры. Поддерживаются 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, memchached.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 нельзя передать в виде параметров ключа элемента данных. Ключ элемента данных mysql.custom.query поддерживается с версии Zabbix 6.0.21. |
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 | |
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, как пассивными, так и активными проверками. Смотрите также: Параметры конфигурации |
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 агента. |
Подгружаемые плагины, когда выполняются с:
- --V --version - печатают версию плагина и информацию о лицензии;
- -h --help - печатают справочную информацию.
Нажмите на имя плагина, чтобы перейти к репозиторию плагина с дополнительной информацией.
Имя плагина | Описание | Поддерживаемые ключи элементов данных | Комментарии |
---|---|---|---|
Ember+ | Мониторинг Ember+. | ember.get | Данный плагин поддерживается, начиная с версии Zabbix 6.0.30. В настоящее время доступна сборка только из исходного кода (как для 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 |
Данный плагин является подгружаемым, начиная с версии 6.0.6 (ранее был встроенным). Предварительно скомпилированные бинарные файлы плагина для Windows доступны, начиная с версии Zabbix 6.0.19, и совместимы с предыдущими версиями 6.0. Для настройки шифрованного подключения к базе данных укажите параметры TLS в файле конфигурации агента как параметры именованной сессии. Поддерживается в плагинах версий 1.2.1, 6.0.13 и новее1. В настоящее время параметры 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 | Данный плагин поддерживается, начиная с версии 6.0.27. Предварительно скомпилированные бинарные файлы плагина для Windows доступны, начиная с версии Zabbix 6.0.28 и совместимы с версией 6.0.27. Для настройки шифрованного подключения к базе данных укажите параметры 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 |
Данный плагин является подгружаемым, начиная с версии 6.0.10 (ранее был встроенным). Предварительно скомпилированные бинарные файлы плагина для Windows доступны, начиная с версии Zabbix 6.0.19, и совместимы с предыдущими версиями 6.0. Для настройки шифрованного подключения к базе данных укажите параметры TLS в файле конфигурации агента как параметры именованной сессии или по умолчанию. В настоящее время параметры TLS нельзя передать в виде параметров ключа элемента данных. Смотрите также: параметры конфигурации плагина PostgreSQL. |
Смотрите также: Создание подгружаемых плагинов.
1 - Начиная с версии 6.0.13, подгружаемые плагины стали использовать ту же систему версий, что и сам Zabbix. Как следствие, версия плагина MongoDB поменялась с 1.2.0 на 6.0.13, а версия плагина PostgreSQL изменилась с 1.2.1 на 6.0.13.