7 Параметры конфигурации плагинов

См. параметры конфигурации для плагинов 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