2 Плагины

Обзор

Плагины расширяют возможности мониторинга Zabbix агент 2. Написанные на языке программирования Go, они предоставляют альтернативу загружаемым модулям (написанным на C) и другим методам расширения функциональности Zabbix.

Эти возможности относятся только к агент 2 и его плагинам:

  • Плановые и гибкие интервалы как для пассивных, так и для активных проверок
  • Управление очередью задач с учетом расписания и параллельного выполнения задач
  • Тайм-ауты на уровне плагина
  • Проверка совместимости Zabbix агент 2 и его плагинов при запуске

Все метрики, поддерживаемые Zabbix агент 2, собираются плагинами. На этой странице описаны принципы настройки плагинов с точки зрения пользователя, а также перечислены как встроенные, так и загружаемые плагины, предоставляемые Zabbix.

Начиная с Zabbix 6.0, плагины больше не требуется встраивать в агент 2. Их можно добавлять как загружаемые плагины, что упрощает создание плагинов для новых метрик. Инструкции по созданию собственных плагинов см. в центре для разработчиков и примере плагина для Zabbix агент 2.

Настройка плагинов

В этом разделе приведены общие принципы настройки плагинов и рекомендации по их использованию.

Все плагины настраиваются с помощью параметра Plugins.*, который может быть частью файла конфигурации Zabbix агент 2 или собственного файла конфигурации плагина. Если плагин использует отдельный файл конфигурации, путь к этому файлу должен быть указан в параметре Include файла конфигурации Zabbix агент 2.

Типичный параметр плагина имеет следующую структуру:

Plugins.<PluginName>.<Parameter>=<Value>

Кроме того, существуют две специальные группы параметров:

Все имена параметров должны соответствовать следующим требованиям:

  • рекомендуется писать имена ваших плагинов с заглавной буквы
  • имя параметра должно начинаться с заглавной буквы
  • специальные символы не допускаются
  • уровень вложенности не ограничен
  • количество параметров не ограничено

Например, чтобы выполнять активные проверки, у которых отсутствует интервал обновления Scheduling, сразу после перезапуска агента только для плагина Uptime, задайте Plugins.Uptime.System.ForceActiveChecksOnStart=1 в файле конфигурации. Аналогично, чтобы задать пользовательское ограничение для параллельных проверок для плагина CPU, укажите Plugins.CPU.System.Capacity=N в файле конфигурации.

Значения по умолчанию

Вы можете задать значения по умолчанию для параметров, связанных с подключением (URI, имя пользователя, пароль и т. д.), в файле конфигурации в формате:

Plugins.<PluginName>.Default.<Parameter>=<Value>

Например, Plugins.Mysql.Default.Username=zabbix, Plugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017 и т. д.

Если значение такого параметра не указано в ключе элемента данных или в параметрах именованной сессии, плагин будет использовать значение по умолчанию. Если параметр по умолчанию также не определен, будут использованы жестко заданные значения по умолчанию.

Если ключ элемента данных не содержит никаких параметров, Zabbix агент 2 попытается собрать метрику, используя значения, определенные в разделе параметров по умолчанию.

Именованные сессии

Именованные сессии представляют собой дополнительный уровень параметров плагина и могут использоваться для указания отдельных наборов параметров аутентификации для каждого из контролируемых экземпляров. Каждый параметр именованной сессии должен иметь следующую структуру:

Plugins.<PluginName>.Sessions.<SessionName>.<Parameter>=<Value>

Имя сессии может использоваться в качестве параметра ключа элемента данных connString вместо отдельного указания URI, имени пользователя и/или пароля.

В ключах элементов данных первый параметр может быть либо connString, либо 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=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

В результате такой конфигурации каждое имя сессии может использоваться как connString в ключе элемента данных, например, mysql.ping[MySQL1] или mysql.ping[MySQL2].

Пример 2

Указание некоторых параметров в ключе элемента данных.

Параметры конфигурации:

Plugins.PostgreSQL.Sessions.Session1.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Sessions.Session1.User=old_username
Plugins.PostgreSQL.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.<PluginName>.KeepAlive. Пример: Plugins.Memcached.KeepAlive

Встроенные плагины

Встроенные плагины Zabbix агент 2 доступны сразу после установки. Нажмите на имя плагина, чтобы перейти в репозиторий плагина с дополнительной информацией.

Имя плагина Описание Поддерживаемые ключи элементов данных Комментарии
Agent Метрики используемого Zabbix агента. agent.hostname, agent.ping, agent.version Поддерживаемые ключи имеют те же параметры, что и ключи Zabbix агента.
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 broker, укажите параметры 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 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 агента.
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 недоступны «из коробки» и должны устанавливаться отдельно:

Перед установкой плагина, пожалуйста, проверьте его файл README. Он может содержать специальные требования и инструкции по установке.

Нажмите на имя плагина, чтобы перейти в репозиторий плагина, который содержит файл README плагина с дополнительной информацией.

Название плагина Описание Поддерживаемые ключи элементов данных Комментарии
Ceph Мониторинг Ceph. ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump,
ceph.ping, ceph.pool.discovery, ceph.status
См. также параметры конфигурирования плагина Ceph.
Ember+ Мониторинг Ember+. ember.get См. также параметры конфигурирования плагина Ember+.
MongoDB Мониторинг серверов и кластеров MongoDB (документо-ориентированная распределенная база данных). mongodb.cfg.discovery, 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 — выводят справочную информацию.
  • -t, --test <item key> — запускают плагин для тестирования (конфигурация плагина игнорируется).