Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

14 Плагины

Обзор

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

Они предоставляют альтернативу загружаемым модули (написаны на языке C) и другим методам расширения функциональности Zabbix, таким как пользовательские параметры (метрики агента), внешние проверки (мониторинг без агента) и элементы данных Zabbix агента system.run[].

Следующие функции относятся к Zabbix агенту 2 и его плагинам:

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

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

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

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

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

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

Каждый параметр плагина должен иметь следующую структуру:

Plugins.<ИмяПлагина>.<Параметр>=<Значение>

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

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

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

Plugins.<ИмяПлагина>.<ИмяСессии>.<Параметр>=<Значение>

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

Обратите внимание, что:

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

Список доступных параметров именованных сессий зависит от плагина, для получения подробных сведений обратитесь к отдельным файлам конфигурации files плагинов.

Пример: Мониторинг двух экземпляров "MySQL1" и "MySQL2" можно настроить следующим образом:

Plugins.Mysql.Sessions.MySQL1.Uri=tcp://127.0.0.1:3306
       Plugins.Mysql.Sessions.MySQL1.User=<ИмяПользователяДляMySQL1>
       Plugins.Mysql.Sessions.MySQL1.Password=<ПарольДляMySQL1>    
       Plugins.Mysql.Sessions.MySQL2.Uri=tcp://127.0.0.1:3307   
       Plugins.Mysql.Sessions.MySQL2.User=<ИмяПользователяДляMySQL2>
       Plugins.Mysql.Sessions.MySQL2.Password=<ПарольДляMySQL2>

Теперь эти имена можно использовать как строку_подключения в ключах вместо URI, например:

mysql.ping[MySQL1]
       mysql.ping[MySQL2]
Жестко заданные значения по умолчанию

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

Соединения

Некоторые плагины поддерживают сбор метрик с нескольких экземпляров одновременно. Можно наблюдать как локальные, так и удаленные экземпляры. Поддерживаются TCP и Unix-сокет соединения.

Рекомендуется настроить плагины так, чтобы они поддерживали соединения с экземплярами в открытом состоянии. Преимущества - снижение перегрузок в сети, сокращение задержек и использование меньшего объема CPU и памяти из-за меньшего количества подключений. Клиентская библиотека позаботится об этом.

Период времени, в течение которого неиспользуемые соединения должны оставаться открытыми, можно задать параметром Plugins.<ИмяПлагина>.KeepAlive.
Например: Plugins.Memcached.KeepAlive

Готовые плагины

Все метрики, поддерживаемые Zabbix агентом 2, собираются с помощью плагинов.

Все загружаемые плагины, например MongoDB, когда выполняются с: - · -V версия - печатают версию плагина и информацию о лицензии; - · -h помощь - печатают справочную информацию.

Следующие плагины Zabbix агента 2 доступны из коробки:

Имя плагина Описание Поддерживаемые ключи элементов данных Комментарии
Agent Метрики используемого агента Zabbix. agent.hostname, agent.ping, agent.version Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента.
Ceph Ceph monitoring. ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump,
ceph.ping, ceph.pool.discovery, ceph.status
Supported keys can be used with Zabbix agent 2 only.

See also:
- Plugin documentation
- Configuration parameters
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
Поддерживаемые ключи можно использовать только с Zabbix агентом 2.

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

Смотрите также:
- Документация по плагину
- Параметры конфигурации
Modbus Чтение данных Modbus. modbus.get Поддерживаемые ключи имеют такие же параметры, что и ключи Zabbix агента.

Смотрите также:
- Документация по плагину
- Параметры конфигурации
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: 2.6-5.3

Поддерживаемые ключи можно использовать только с Zabbix агентом 2.

Переменная Plugins.MongoDB.System.Path должна быть задана в файле конфигурации Zabbix агента 2 значением пути к исполняемому файлу MongoDB плагина.

Смотрите также:
- Документация по плагину
- Параметры конфигурации
MQTT Получение опубликованных значений тем MQTT. mqtt.get Поддерживаемые ключи можно использовать только с Zabbix агентом 2.

Смотрите также:
- Документация по плагину
- Параметры конфигурации
MySQL Мониторинг MySQL и ее ответвлений. mysql.db.discovery, mysql.db.size, mysql.get_status_variables,
mysql.ping, mysql.replication.discovery, mysql.replication.get_slave_status, mysql.version
Для настройки шифрованного подключения к базе данных используйте именованные сессии и укажите параметры TLS для именованной сессии в файле конфигурации агента. В настоящее время параметры TLS нельзя передать в виде параметров ключа элемента данных.

Поддерживаемые ключи можно использовать только с Zabbix агентом 2.

Смотрите также:
- Документация по плагину
- Параметры конфигурации
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 Instant Client до перед тем как использовать плагин.

Поддерживаемые ключи можно использовать только с Zabbix агентом 2.

Смотрите также:
- Документация по плагину
- Параметры конфигурации
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.wal.stat
Для настройки шифрованного подключения к базе данных используйте именованные сессии и укажите параметры TLS для именованной сессии в файле конфигурации агента. В настоящее время параметры TLS нельзя передать в виде параметров ключа элемента данных.

Поддерживаемые ключи можно использовать только с Zabbix агентом 2.

Имеется возможность расширения возможностей плагина при помощи пользовательских запросов - обратитесь к Документации по плагину для получения более подробной информации

Смотрите также: Параметры конфигурации
Proc Процент использования CPU. proc.cpu.util Поддерживаемый ключ имеет такие же параметры, что и ключ Zabbix агента.
Redis Мониторинг Redis сервера. redis.config, redis.info, redis.ping, redis.slowlog.count Поддерживаемые ключи можно использовать только с Zabbix агентом 2.

Смотрите также:
- Документация по плагину
- Параметры конфигурации
Smart S.M.A.R.T. monitoring. smart.attribute.discovery, smart.disk.discovery, smart.disk.get Пользователю из под которого работает Zabbix агент 2 требуются права доступа sudo/root к smartctl. Минимально требуемая версия smartctl - 7.1.

Поддерживаемые ключи можно использовать только с 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 Поддерживаемые элементы данных работают только с Zabbix агентом 2.
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 Поддерживаемый ключ можно использовать только с Zabbix агентом 2.
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 агента.