Функциональность Zabbix агентов может быть расширена путем добавления пользовательских параметров (параметр конфигурации UserParameter) в файле конфигурации агента. Как только пользовательские параметры определены они могут быть использованы так же, как и любые другие элементы данных агента - по ключу, указанному в параметре.
Пользовательские параметры это команды, которые выполняются Zabbix агентом. В операционных системах UNIX используется интерпретатор командной строки /bin/sh.
Смотрите пошаговое руководство по использованию пользовательских параметров.
Для того, чтобы задать новый параметр для мониторинга, должна быть добавлена всего одна строка в файл конфигурации Zabbix агента, после чего агента следует перезапустить.
Пользовательский параметр имеет следующий синтаксис:
Параметр | Описание |
---|---|
Ключ | Уникальный ключ элемента данных. |
Команда | Команда, которая будет выполнена для получения значения ключа. |
Простая команда
Агент всегда будет возвращать '1' для элемента данных с ключом 'ping'.
Более сложный пример
Агент будет возвращать '1' если MySQL сервер доступен, '0' – в противном случае.
Гибкие пользовательские параметры могут быть использованы для большей управляемости и гибкости.
Гибкий пользовательский параметр:
Параметр | Описание |
---|---|
Ключ | Уникальный ключ элемента данных. [*] определяет, что ключ может принимать параметры. |
Команда | Команда, которая будет выполнена для получения значения ключа. Zabbix агент производит анализ содержимого внутри квадратных скобок [] и заменяет им переменные $1,...,$9 в команде. Переменная $0 будет заменена оригинальной командой (до расширения $0,...,$9) для выполнения. |
Для использования ссылок на позиции не измененными, укажите двойной символ доллара - например, awk '{print $$2}'.
Если опция UnsafeUserParameters не определена в конфигурационном файле Zabbix агента, то в командах недопустимы следующие символы: \ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
Используемая команда должна всегда возвращать не пустое значение (и не перевод строки). Если командой возвращено несоответствующее требованиям значение, тогда агентом будет отправлено сообщение ZBX_NOTSUPPORTED.
Очень простой пример
Мы можем создать неограниченное количество элементов данных для наблюдения за чем угодно, указав в таком формате ping[что угодно].
Давайте добавим больше смысла!
Этот параметр может быть использован для мониторинга доступности баз данных MySQL. В качестве параметров мы можем передать имя пользователя и пароль. Ключ элемента данных в таком случае выглядит вот так:
Сколько строк в файле, которые соответствуют регулярному выражению?
Этот параметр может быть использован для подсчета количества строк в файле.
Обратите внимание, что демон Zabbix агента до версии 1.8.3 не поддерживает пользовательские параметры при запуске агента с ключом -t или -p (используются для тестирования одного элемента данных или для вывода списка всех поддерживаемых элементов данных). Смотрите manpage для получения более подробной информации по более ранним версиям.