Я пытаюсь использовать PHP / CURL для запроса Zabbix и определения, доступна ли услуга или нет.
Из веб-интерфейса Zabbix я получаю этот экран, который показывает тест и его статус.
Я хотел бы получить эти данные (название и статус теста) в формате JSON для отображения в другом приложении.
Я отправляю следующий JSON:
{"jsonrpc":"2.0","method":"httptest.get", "params": {"output":"extend"},"auth":"XXXXXXXXXXXXXXX","id":0}'
Что возвращает тесты, но не его статус. Какой json-запрос я должен использовать, чтобы получить флаг статуса (Ok / NOk)?
Мне потребовалось много времени, чтобы понять это.
Вы хотите сделать item.get
запрос и заполните webitems
поле в вашем запросе.
лайк "webitems": "true"
Например:
{
"jsonrpc": "2.0",
"method": "item.get",
"params": {
"output": "extend",
"sortfield": "name",
"webitems": "true",
"search": {
"name": "Response code"
}
},
"auth": "token",
"id": 1
}
Тогда вы сможете получить lastvalue
для значения или даже использовать history.get
с itemid
.
Который OK/NOK
статус для веб-мониторинга рассчитывается код внешнего интерфейса и метод API для этого результата недоступен.
Вы должны использовать item.get
чтобы получить значение элемента веб-мониторинга (например, элемент «lastfailedstep / Неудачный шаг сценария ...»), а затем вы должны вычислить OK/NOK
статус в вашем коде. Видеть Документация API Zabbix item.get для параметров.