drno-reg
@drno-reg
см не кратко

Как правильно сделать API запрос списком имен хостов в методе item.get?

Здравствуйте.

Возникло желание получать сырые данные из zabbix по списку имен хостов

предварительно был найден вариант решения, если на вход подать список id host

zabbix_get=\
    {
        "jsonrpc": "2.0",
        "method": "item.get",
        "params": {
            "output": "extend",
            "hostids": [123, 234],
            "search": {
                "key_": "vfs.fs.size"
            },
            "sortfield": "name"
        },
        "auth": authToken.get("result"),
        "id": authToken.get("id")
    }


попробовал по имени одного сервера

zabbix_get=\
    {
        "jsonrpc": "2.0",
        "method": "item.get",
        "params": {
            "output": "extend",
            "host": "server01"
            "search": {
                "key_": "vfs.fs.size"
            },
            "sortfield": "name"
        },
        "auth": authToken.get("result"),
        "id": authToken.get("id")
    }


OK.

попытался списком

zabbix_get=\
    {
        "jsonrpc": "2.0",
        "method": "item.get",
        "params": {
            "output": "extend",
            "hosts": ["server01","server02"]
            "search": {
                "key_": "vfs.fs.size"
            },
            "sortfield": "name"
        },
        "auth": authToken.get("result"),
        "id": authToken.get("id")
    }


соединение c Zabbix повисло...

Что я сделал не так и как решить эту проблему?
  • Вопрос задан
  • 792 просмотра
Решения вопроса 1
@Z1odeypnd
Зравствуйте.
Что я сделал не так?

Не прочли/прочли не внимательно документацию по API.
У метода item.get нет параметра hosts.
Так же обратите внимание на столбец "Тип", в котором указано - какой тип может принимать тот или иной параметр.
Например, hostids может принимать массив или строку, а host только строку.

как решить эту проблему?

Путей решения несколько.
1. Использовать массив hostids в params (как в вашем первом примере).
2. Использовать в params фильтр с массивом host-элементов:
"params": {
	"filter": {
		"host": ["server01",
		"server02"],
		"key_": "vfs.fs.size"
	}
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы