Рейтинг:1

Использование Zabbix для записи вывода JSON из REST API? Является ли это возможным

флаг us

Я пытаюсь использовать Zabbix (5.0) для получения ответа от REST API.

Если я вставлю следующее в веб-браузер (или wget/curl и т. д.)

http://{имя пользователя}:{пароль}@10.1.2.3:8443/api/metadata/

Я получаю ожидаемый ответ:

{"items":[{"name":"this_is_my_name"}]}

Я пытаюсь зафиксировать значение имя в заббикс.

я создал веб-сценарий против моего шаблона, и в шаги раздел у меня есть:

Имя: имя_теста
URL-адрес: http://{имя пользователя}:{пароль}@10.1.2.3:8443/api/metadata/
Необработанные данные
Режим извлечения: тело
Время ожидания: 15 сек.
Требуемая строка: $.items:["name"]
Требуемый код состояния: 200

Затем, глядя на последние данные, я вижу, что у меня есть ответ 200, но ошибка:

требуемый шаблон "$.items:["name"]" не найден на http://{username}:{password}@10.1.2.3:8443/api/metadata/

Я пробовал всевозможные вариации в поле Required String и всегда один и тот же результат.

Я что-то пропустил, или что-то неправильно понял. Делает ли Zabbix вообще то, что я пытаюсь сделать?

флаг us
Не следует ли обращаться к элементам как к списку?
Рейтинг:3
флаг in

Веб-сценарий не может оценивать JSON, он может проверять только обычный текст с регулярным выражением.

Вы можете установить Обязательная строка к это мое имя, а то просто проверял бы, встречается ли строка в ответе с сервера, неважно где. В зависимости от остальной части вашего результата и вашего варианта использования это может сработать, а может и нет.

Если вы хотите получить конкретное поле из JSON, вам необходимо настроить предмет типа HTTP-агент:

введите описание изображения здесь

НЕ проверять Преобразовать в JSON, это может показаться заманчивым, но оно предназначено для преобразования ответов, отличных от JSON, в JSON. У вас уже есть JSON, поэтому он вам не нужен.

Затем добавьте этап предварительной обработки типа путь JSON. Правильный путь для вашего примера:

$.items[:1].имя

введите описание изображения здесь

Результат JSON будет ["это мое имя"], не просто это мое имя, поэтому вам нужно регулярное выражение \["(.+)"\] чтобы получить простое значение из результата.

Вы можете проверить это напрямую:

введите описание изображения здесь

Храните ваш товар как Текст, а затем вы можете добавить к нему триггер.

IGGt avatar
флаг us
Идеальный. Кажется, я совершенно неправильно понял и шел в совершенно неправильном направлении. Это именно то, что мне нужно. ваше здоровье.
Reyan Chougle avatar
флаг br
Полный ответ. Спасибо за ваши старания. Еще одна хорошая статья находится здесь, на официальном сайте Zabbix - https://www.zabbix.com/documentation/5.0/en/manual/config/items/itemtypes/http

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.