Назад | Перейти на главную страницу

Форматирование Zabbix Discovery JSON

Я пытаюсь создать правило обнаружения для мониторинга корпоративного приложения, и мой скрипт возвращает следующий JSON.

{
    "data": [{
            "{#NODENAME}": "node1",
            "{#NODEINTERFACE}": ["eth0", "eth1"]
        },
        {
            "{#NODENAME}": "node2",
            "{#NODEINTERFACE}": ["eth2", "eth3"]
        }
    ]
}

В интерфейсе Zabbix я создал обнаружение со следующими параметрами:

Название:: Узлы обнаружения и интерфейсы

Тип: Zabbix агент

Ключ app.discovery

И во ВКЛАДКЕ «Фильтры»:

Тип расчета: И / или


Ожидаемое поведение Zabbix - создание следующих ключей:

Формат ключей:

app.getinfo["{#NODENAME}","{#NODEINTERFACE}]

То есть для каждый NODENAME Создайте N ключи по одному на каждый интерфейс

Ключи открытия:

app.getInfo["node1","eth0"]
app.getInfo["node1","eth1"]

app.getInfo["node2","eth2"]
app.getInfo["node2","eth3"]

Поведение получило:

Если Тип расчета является И / или, Zabbix не создать предметы

И если Тип расчета является Или, Zabbix создать один элемент для каждого NODENAME и игнорировать / не распознавать NODEINTERFACE


Я сомневаюсь, как создать правило обнаружения. Для каждого NODENAME создайте N элементов с информацией NODEINTERFACE.

Во-первых, вероятно, неверен ключ прототипа - кавычки не закрываются в app.getinfo["{#NODENAME}","{#NODEINTERFACE}].

Во-вторых, ваш JSON должен быть таким:

{
    "data": [
    {
        "{#NODENAME}": "node1",
        "{#NODEINTERFACE}": "eth0"
    },
    {
        "{#NODENAME}": "node1",
        "{#NODEINTERFACE}": "eth1"
    },
    {
        "{#NODENAME}": "node2",
        "{#NODEINTERFACE}": "eth2"
    }
    {
        "{#NODENAME}": "node2",
        "{#NODEINTERFACE}": "eth3"
    }
]
}

Обратите внимание, как каждая запись должна содержать один набор значений, которые вы хотите представить в созданных объектах.