Тип элемента HTTP-агент не анализирует ответ Json

#zabbix

#zabbix

Вопрос:

У меня есть приложение на C #, которое возвращает статус Json при вызове «http://host:port/app-status «.

Ответ выглядит так:

 {
  "prtg": 
  {
    "result": [
      {
        "channel": "DDS - ZDM - Konsistenzprüfung",
        "value": "3",
        "valuelookup": "prtg.RCLookup.DDS_ZDM_Check.BitField"
      },
      {
        "channel": "ZDM DB Verbindungsversuche",
        "value": "0",
        "valuelookup": "prtg.RCLookup.Default.DB.Connect.Retry"
      }
    ]
  }
}
  

Затем у меня на сервере zabbix есть элемент, тип которого — http agent.
Запрос работает нормально. Но я получаю эту ошибку:

Сбой предварительной обработки для: HTTP / 1.1 200 Ok .. Длина содержимого: 361 .. Тип содержимого: application / json..Сервер: Grapevine / 4.1.1.0 M …
1. Сбой: не удается извлечь значение из json по пути «.prtg.result[0].значение»: не удается проанализировать как допустимый объект JSON: недопустимый формат объекта, ожидаемый открывающий символ ‘{‘ или ‘[‘ at: ‘HTTP / 1.1 200 OkДлина
содержимого: 361
Тип содержимого: application / json
Сервер: Grapevine / 4.1.1.0 Microsoft-HTTPAPI / 2.0
Дата: Пт, 12 Апр 2019 14:19:12

На вкладке предварительной обработки я установил шаг обработки с помощью JSONPath. Путь к JSON: .prtg.result[0].значение

Что не так? Может ли кто-нибудь мне помочь?

Ответ №1:

из сообщения об ошибке кажется, что вы пытаетесь проанализировать ответ из заголовков, включающих сервер, что неверно — вам нужно анализировать как JSON только данные, которые отправляются обратно (эксклюзивные заголовки)