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 ищут значения относящихся к соединению параметров в следующем порядке:

  1. Первый параметр ключа элемента данных сравнивается с именами сессий. Если совпадений не найдено, он рассматривается как реальное значение, в этом случае шаг 3 пропускается. Если же совпадение найдено, то значение этого параметра (как правило, URI) должно быть определено в параметрах сессии.
  2. Остальные параметры будут браться из ключа элемента данных, если они там есть.
  3. Если параметр ключа элемента данных (например, пароль) не указан, плагин будет искать соответствующий параметр именованной сессии.
  4. Если параметр сессии также не указан, будет использоваться значение, определённое в соответствующих параметрах по умолчанию.
  5. Если всё равно значение определить не удалось, то плагин будет использовать жёстко заданное в коде значение по умолчанию.
Пример 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 не входят в стандартную поставку и должны устанавливаться отдельно:

Перед установкой плагина, пожалуйста, ознакомьтесь с его файлом 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 - выводят справочную информацию.