Иногда вы можете захотеть выполнять через агент проверку, которая не предопределена в Zabbix. В этом случае вам на помощь придут пользовательские параметры.
Вы можете написать команду, которая вернёт необходимые вам данные, и добавить эту команду как пользовательский параметр в файл конфигурации агента (параметр конфигурации 'UserParameter').
Пользовательский параметр имеет следующий синтаксис:
Как вы можете видеть, пользовательский параметр также содержит ключ. Ключ потребуется при настройке элемента данных. Введите ключ на ваш выбор, на который будет легко ссылаться (он должен быть уникальным в пределах узла сети).
Перезапустите агента или используйте опцию управления работой агента, чтобы агент подхватил новый параметр, например:
Затем, при настройке элемента данных, введите этот ключ, чтобы сослаться на команду из пользовательского параметра, которую вы хотите выполнять.
Команды из пользовательских параметров выполняются Zabbix агентом. Может быть возвращено до 16 МБ данных до шагов предварительной обработки элементов данных.
В операционных системах UNIX используется интерпретатор командной строки /bin/sh. Пользовательские параметры подчиняются времени ожидания проверок агента; если время ожидания будет превышено, созданный по пользовательским параметрам процесс будет завершён.
Смотрите также:
Простая команда:
Агент будет всегда возвращать '1' для элемента данных с ключом 'ping'.
Более сложный пример:
Агент будет возвращать '1', если MySQL сервер доступен, '0' - в противном случае.
Гибкие пользовательские параметры допускают параметры с указанным ключом. В этом случае гибкие пользовательские параметры могут быть основой для создания нескольких элементов данных.
Гибкие пользовательские параметры имеют следующий синтаксис:
Параметр | Описание |
---|---|
Ключ | Уникальный ключ элемента данных. [*] задаёт, что ключ может принимать параметры из скобок. Параметры указываются при настройке элемента данных. |
Команда | Команда, которая выполняется для получения значения ключа. Только для гибких пользовательских параметров: Вы можете использовать в команде позиционные ссылки $1…$9 для того, чтобы сослаться на соответствующий параметр в ключе элемента данных. Zabbix разбирает параметры, заключенные в [ ] ключа элемента данных, и заменяет $1,…,$9 в команде соответственно. $0 будет заменена оригинальной командой (до раскрытия $0,…,$9) для выполнения. Позиционные ссылки интерпретируются Zabbix агентом независимо от того, заключены ли они в двойные (") или в одинарные (') кавычки. Для использования позиционных ссылок без изменения, укажите двойной символ доллара - например, awk '{print $$2}'. В этом случае $$2 фактически превратится в $2 при выполнении команды. |
Позиционные ссылки, начинающиеся со знака $, ищутся и заменяются Zabbix агентом только в случае гибких пользовательских параметров. В случае простых пользовательских параметров такая обработка ссылок пропускается и, следовательно, экранирование любых знаков $ не требуется.
По умолчанию некоторые символы не разрешены в пользовательских параметрах. Смотрите документацию по UnsafeUserParameters для получения полного списка таких символов.
Очень простой пример:
Мы можем создать неограниченное количество элементов данных для наблюдения за чем угодно, указав в таком формате: ping[что угодно].
Давайте добавим больше смысла!
Этот параметр можно использовать для мониторинга доступности баз данных MySQL. Параметрами мы можем передать имя пользователя и пароль:
Сколько строк в файле, которые соответствуют регулярному выражению?
Этот параметр можно использовать для подсчета количества строк в файле.
Результирующим значением команды является стандартный вывод вместе со стандартным выводом ошибок.
Текстовый элемент данных (с типами информации символ, журнал или текст) не станет неподдерживаемым в случае вывода в стандартный вывод ошибок.
Возвращаемое значение ограничено 16 МБ (включая конечные пробелы, которые усекаются); также применяются ограничения баз данных.
Пользовательские параметры, которые возвращают текст (для типов информации символ, журнал, текстовый ) могут возвращать пробел. В случае ошибочного результата элемент данных станет неподдерживаемым.