Всем привет!
Согласно документации https://www.zabbix.com/documentation...evel_discovery: "Обратите внимание, что начиная с Zabbix 4.2, формат JSON, возвращаемый правилами низкоуровневого обнаружения изменился. Более не ожидается, что JSON будет содержать объект "data". Низкоуровневое обнаружение теперь принимает обычный JSON, который содержит массив, для поддержки новых функций, таких как предобработка значений элементов данных и пользовательских путей к значениям макросов низкоуровневого обнаружения в JSON документе."
У меня zabbix 4.4.5. Получаю в правиле обнаружения с помощью http агента следующий json:
В LLD макросах указываю:
Проверяя путь к ноде в JSONPath получаю результат: ["1","2"].
Но правило обнаружения не работает из-за ошибки: "Cannot find the "data" array in the received JSON object.".
Почему не работает LLD с json без объекта data?
Если добавить объект data в json, то LLD начинает работать:
Проверяя путь к ноде $..id в JSONPath получаю тот же результат: ["1","2"], но элемент из прототипа создается только 1 следующего вида:
Почему значения вставляются в таком виде и почему создалось 1 значение, а не 2?
Согласно документации https://www.zabbix.com/documentation...evel_discovery: "Обратите внимание, что начиная с Zabbix 4.2, формат JSON, возвращаемый правилами низкоуровневого обнаружения изменился. Более не ожидается, что JSON будет содержать объект "data". Низкоуровневое обнаружение теперь принимает обычный JSON, который содержит массив, для поддержки новых функций, таких как предобработка значений элементов данных и пользовательских путей к значениям макросов низкоуровневого обнаружения в JSON документе."
У меня zabbix 4.4.5. Получаю в правиле обнаружения с помощью http агента следующий json:
Code:
{
"@attributes": {
"version": "1.0"
},
"hdd": [
{
"@attributes": {
"version": "1.0"
},
"id": "1",
"hddName": "hdda",
"hddPath": {},
"hddType": "SATA",
"status": "ok",
"capacity": "5723166",
"freeSpace": "0",
"property": "RW"
},
{
"@attributes": {
"version": "1.0"
},
"id": "2",
"hddName": "hddb",
"hddPath": {},
"hddType": "SATA",
"status": "ok",
"capacity": "5723166",
"freeSpace": "0",
"property": "RW"
}
]
}
| {#TEST} | $..id |
Но правило обнаружения не работает из-за ошибки: "Cannot find the "data" array in the received JSON object.".
Почему не работает LLD с json без объекта data?
Если добавить объект data в json, то LLD начинает работать:
Code:
{
"data": [
{
"@attributes": {
"version": "1.0"
},
"hdd": [
{
"@attributes": {
"version": "1.0"
},
"id": "1",
"hddName": "hdda",
"hddPath": {},
"hddType": "SATA",
"status": "ok",
"capacity": "5723166",
"freeSpace": "0",
"property": "RW"
},
{
"@attributes": {
"version": "1.0"
},
"id": "2",
"hddName": "hddb",
"hddPath": {},
"hddType": "SATA",
"status": "ok",
"capacity": "5723166",
"freeSpace": "0",
"property": "RW"
}
]
}
]
}
Почему значения вставляются в таком виде и почему создалось 1 значение, а не 2?
Comment