Ad Widget

Collapse

LLD макросы в zabbix 4.4.5

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • AVZ
    Junior Member
    • Feb 2020
    • 5

    #1

    LLD макросы в zabbix 4.4.5

    Всем привет!

    Согласно документации 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"
                    }
                ]
            }
    В LLD макросах указываю:
    {#TEST} $..id
    Проверяя путь к ноде в JSONPath получаю результат: ["1","2"].

    Но правило обнаружения не работает из-за ошибки: "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"
                    }
                ]
            }
        ]
    }
    Проверяя путь к ноде $..id в JSONPath получаю тот же результат: ["1","2"], но элемент из прототипа создается только 1 следующего вида:
    Имя Триггеры Ключ
    Hik_hdd_lld: SMART_hdd_["1","2"] HIK_SMART_HDD["["1","2"]"]
    Почему значения вставляются в таком виде и почему создалось 1 значение, а не 2?
    Last edited by AVZ; 12-02-2020, 14:23.
  • AVZ
    Junior Member
    • Feb 2020
    • 5

    #2
    Ответы здесь https://www.zabbix.com/forum/zabbix-...n-zabbix-4-4-5

    Comment

    Working...