Скриптовые элементы данных можно использовать для сбора данных путём выполнения пользовательского JavaScript кода с возможностью получения данных через HTTP/HTTPS. В дополнение к скрипту можно указать опциональный список параметров (пары из имени и значения) и время ожидания.
Этот тип элементов данных может быть полезен в сценариях сбора данных, требующих нескольких шагов или сложной логики. Например, скриптовый элемент данных можно настроить на выполнение HTTP вызова, последующей обработки неким образом данных, полученных на первом шаге, и передачи преобразованного значения второму HTTP вызову.
Скриптовые элементы данные обрабатываются Zabbix сервером или прокси на уровне поллеров.
В поле Тип диалога настройки элемента данных выберите Скрипт, затем заполните необходимые поля.
Все обязательные поля ввода отмечены красной звёздочкой.
Поля, которые требуют информацию, специфичную для элементов данных Скрипт:
Поле | Описание |
---|---|
Ключ (Key) | Введите уникальный ключ, который будет использоваться для идентификации этого элемента данных. |
Параметры (Parameters) |
Укажите переменные, которые будут переданы скрипту как пары атрибутов и значений. Поддерживаются пользовательские макросы. Чтобы узнать, какие встроенные макросы поддерживаются, выполните поиск по запросу «Скриптовый элемент данных» в таблице поддерживаемых макросов. |
Скрипт (Script) |
Введите код JavaScript в модальном редакторе, который открывается при нажатии на поле параметров или на кнопку со значком карандаша сразу за полем параметров. Этот код должен предоставлять логику для получения значения метрики. Код имеет доступ ко всем параметрам и всем дополнительным объектам JavaScript, добавленным Zabbix. Смотрите также: Руководство пользователя JavaScript. |
Время ожидания (Timeout) |
Время ожидания выполнения JavaScript (1-600s, превышение этого значения вернёт ошибку). Обратите внимание, что в зависимости от скрипта для срабатывания тайм-аута может потребоваться больше времени. Дополнительную информацию о параметре Timeout смотрите в разделе общие атрибуты элементов данных. |
Получение содержимого https://www.example.com/release_notes:
Получение содержимого указанной страницы с использованием параметров:
var obj = JSON.parse(value);
var url = obj.url;
var subpage = obj.subpage;
var request = new HttpRequest();
return request.get(url + subpage);
Сбор содержимого как https://www.example.com, так и https://www.example.com/release_notes:
var request = new HttpRequest();
return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
Добавление записи «Log test» в журнал Zabbix сервера и получение при возврате «1» в качестве значения элемента данных: