LINUX.ORG.RU
ФорумAdmin

Zabbix. Как парсить массив объектов?

 ,


0

1

Добрый день!

Задача: отображать чарт с количеством заказов клиентов. Данные забираются по http. JSON могу формировать, какой хочу, такой:

{
  "orders": [
    {
      "client_id": 1,
      "count": 2
    },
    {
      "client_id": 2,
      "count": 3
    },
    {
      "client_id": 3,
      "count": 1
    }
  ]
}

или такой
{
  "orders": {
      1: 2,
      2: 3,
      3: 1
  }
}


Вроде, надо использовать LLD, но не пойду, как((

https://www.zabbix.com/documentation/4.2/manual/discovery/low_level_discovery

Вот тебе пример:

[
	{ "fsname":"/",                           "fstype":"rootfs"   },
	{ "fsname":"/sys",                        "fstype":"sysfs"    },
	{ "fsname":"/proc",                       "fstype":"proc"     },
	{ "fsname":"/dev",                        "fstype":"devtmpfs" },
	{ "fsname":"/dev/pts",                    "fstype":"devpts"   },
	{ "fsname":"/lib/init/rw",                "fstype":"tmpfs"    },
	{ "fsname":"/dev/shm",                    "fstype":"tmpfs"    },
	{ "fsname":"/home",                       "fstype":"ext3"     },
	{ "fsname":"/tmp",                        "fstype":"ext3"     },
	{ "fsname":"/usr",                        "fstype":"ext3"     },
	{ "fsname":"/var",                        "fstype":"ext3"     },
	{ "fsname":"/sys/fs/fuse/connections",    "fstype":"fusectl"  }
]
melkor217 ★★★★★
()
Ответ на: комментарий от melkor217

Правильно ли я понимаю, что сперва я должен получить информацию об имеющихся клиентах, а потом для каждого спрашивать данные:

url/?client_id={#CLIENT_ID}

?

markevichus ★★★
() автор топика
Ответ на: комментарий от markevichus

Да, плюс-минус так.

Discovery rule получает список сущностей из жсона.

Забикс для каждого элемента создаёт Item prototypes, в которых можно использовать макросы.

melkor217 ★★★★★
()
Ответ на: комментарий от melkor217

ii zabbix-server-mysql 1:4.4.7-1+buster

Ошибся: сперва был {clients:[]} потом zabbix сказал, что обязательно надо {data:[]}. Не нашёл как проверить входящие данные для Discovery rules. Для item-ов можно глянуть Last data, а сами рулезы - хз.

markevichus ★★★
() автор топика
Ответ на: комментарий от markevichus

В доках написано, что как раз не надо {data:[]}. Хотя по идее такой формат будет работать, если использовать селектор $.data. Как дебажить - не подскажу. Из головы всё вылетело уже, а забикса под рукой нет.

Note that since Zabbix 4.2, the format of the JSON returned by low-level discovery rules has been changed. It is no longer expected that the JSON will contain the «data» object. Low-level discovery will now accept a normal JSON containing an array, in order to support new features such as the item value preprocessing and custom paths to low-level discovery macro values in a JSON document.

melkor217 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.