----------
Ad Widget
Collapse
Zabbix API. Библиотека для Python
Collapse
X
-
-
-
-
Обновились ли API для второй версии???
При попытке получить данные по хосту -- всё в порядке. Но когда пытаюсь делать host.create выдаёт "No permissions !"
zabbix_api.ZabbixAPIException: (u'Error -32500: Application error., [ CHost::create ] No permissions ! while sending {"params": {"templates": [{"templateid": 10073}], "ip": "192.168.3.1", "useip": 1, "host": "Linux001", "groups": [{"groupid": 36}], "port": 10050}, "jsonrpc": "2.0", "method": "host.create", "auth": "79da4b5da4f42f8bf17e7fe67547df9d", "id": 1}', -32500)
Структуру брал из документации к 1.8, поменял только номер группы и шаблона.Comment
-
-
Спасибо, что-то я искал искал и находил только эту беспонтовую доку http://www.zabbix.com/documentation/2.0/apiComment
-
Столкнулся с новой проблемой.
Через API не видно большую часть созданных в заббиксе групп...
Их не найти ни по groupid, ни по имени группы. Что за бред?
print zapi.hostgroup.get({"search": "", "output": "extend"})
Выдаёт всего 4 группы, хотя фактически этих групп больше 20
[{u'internal': u'0', u'groupid': u'4', u'name': u'Zabbix servers'}, {u'internal': u'0', u'groupid': u'39', u'name': u'Nonexistent Ltd_Velikiy_Novgorod_\u0412\u0435\u043b\u0438\u043 a\u0438\u0439 \u041d\u043e\u0432\u0433\u043e\u0440\u043e\u0434'} , {u'internal': u'0', u'groupid': u'1', u'name': u'Templates'}, {u'internal': u'0', u'groupid': u'36', u'name': u'Nonexistent Ltd_Cherepovec_\u0427\u0435\u0440\u0435\u043f\u043 e\u0432\u0435\u0446'}]Comment
-
Кроме того не удаётся сделать привязку к шаблону.
Этот код выдаёт ошибку (u'Error -32500: Application error., You do not have permission to perform this operation. while sending {"params": {"templates": [{"templateid": "10073"}], "host": "10.229.103.16", "interfaces": [{"ip": "10.229.103.16", "useip": 1, "dns": "", "main": 1, "type": 1, "port": 10050}], "groups": [{"groupid": "36"}], "inventory": {"macaddress_a": "14:d6:4d:6a:b9:40"}}, "jsonrpc": "2.0", "method": "host.create", "auth": "ef2c0e93ce35510643d1666e83bf44c2", "id": 13}', -32500)Code:zapi.host.create({ "host": host, "interfaces": [{ "type": 1, "main": 1, "useip":1, "ip": ip, "dns": "", "port": 10050 }], "groups": [{ "groupid": groupid }], "templates": [{ "templateid": '10073' }], "inventory": { "macaddress_a": mac } })
При этом если закаментить строку "templates": [{ "templateid": '10073' }], то всё отлично отрабатывает. Шаблон такой точно есть. Пробовал так же помещать 10073 в двойные ковычки и вообще без ковычек, всё время один и тот же результат отсуствия привилегий =(Comment
-
Накатал багрепорты по этим двум багам:
Comment
-
Пытаюсь перевести свои скрипты которые писаны на bash+sql на zabbix api и столкнулся с проблемой - не понимаю как получить ip адрес хоста
выводCode:zapi = ZabbixAPI(server=server, path="", log_level=6) zapi.login(username, password) #host for host in zapi.host.get( { "output": "extend", "filter": {"host": ["33-kyib22p3"]} } ): print "%s - %s - %s" % (host['host'], host['hostid'], host['status'],)СтрочкиCode:20: Response Code: 200 10: Response Body: {u'jsonrpc': u'2.0', u'result': [{u'available': u'0', u'maintenance_type': u'0', u'maintenances': [], u'ipmi_username': u'', u'snmp_disable_until': u'0', u'ipmi_authtype': u'0', u'ipmi_disable_until': u'0', u'lastaccess': u'0', u'snmp_error': u'', u'ipmi_privilege': u'2', u'jmx_error': u'', u'jmx_available': u'0', u'ipmi_errors_from': u'0', u'maintenanceid': u'0', u'snmp_available': u'1', u'status': u'0', u'host': u'33-kyib22p3', u'disable_until': u'0', u'ipmi_password': u'', u'ipmi_available': u'0', u'maintenance_status': u'0', u'snmp_errors_from': u'0', u'ipmi_error': u'', u'proxy_hostid': u'0', u'hostid': u'10911', u'name': u'33-kyib22p3', u'jmx_errors_from': u'0', u'jmx_disable_until': u'0', u'error': u'', u'maintenance_from': u'0', u'errors_from': u'0'}], u'id': 1} 33-kyib22p3 - 10911 - 0
interfaces array Host interfaces objects.
отсюда http://www.zabbix.com/documentation/...st/definitions я так и не понял как получить.
Подскажите люди добрые как это сделать.
в sql все просто:
Чтобы получить ip адреса хостов имя которых совпадает с ip адресом (такое часто после автодискавери)Code:SELECT interface.ip FROM hosts,interface WHERE main = 1 AND hosts.hostid= interface.hostid AND hosts.host like '$1' AND interface.ip = hosts.name
Comment
-
в версии 1.8 в таблице host было поле ip, а в новой версии 2.0 все ip вынесены в таблицу interface
добавление host['ip'] ничего не даст ибо нет в возвращаемых параметрах ключа ip и interface(где в массиве эти ip могут и должны находится если следовать документации и структуре БД).
все что возвращает запрос
Code:zapi.host.get( { "output": "extend", "filter": {"host": ["33-kyib22p3"]} } )Вопрос все еще актуален.Code:20: Response Code: 200 10: Response Body: {u'jsonrpc': u'2.0', u'result': [{u'available': u'0', u'maintenance_type': u'0', u'maintenances': [], u'ipmi_username': u'', u'snmp_disable_until': u'0', u'ipmi_authtype': u'0', u'ipmi_disable_until': u'0', u'lastaccess': u'0', u'snmp_error': u'', u'ipmi_privilege': u'2', u'jmx_error': u'', u'jmx_available': u'0', u'ipmi_errors_from': u'0', u'maintenanceid': u'0', u'snmp_available': u'1', u'status': u'0', u'host': u'33-kyib22p3', u'disable_until': u'0', u'ipmi_password': u'', u'ipmi_available': u'0', u'maintenance_status': u'0', u'snmp_errors_from': u'0', u'ipmi_error': u'', u'proxy_hostid': u'0', u'hostid': u'10911', u'name': u'33-kyib22p3', u'jmx_errors_from': u'0', u'jmx_disable_until': u'0', u'error': u'', u'maintenance_from': u'0', u'errors_from': u'0'}], u'id': 2}Last edited by sersad; 26-06-2012, 12:01.Comment
-
Вы парвы, вторая версия и правда не выводит поля IP =(
Надо писать багрепорт.Code:[{u'available': u'0', u'maintenance_type': u'0', u'maintenances': [], u'ipmi_username': u'', u'snmp_disable_until': u'0', u'ipmi_authtype': u'0', u'ipmi_disable_until': u'0', u'lastaccess': u'0', u'snmp_error': u'', u'ipmi_privilege': u'2', u'jmx_error': u'', u'jmx_available': u'0', u'ipmi_errors_from': u'0', u'maintenanceid': u'0', u'snmp_available': u'0', u'status': u'0', u'host': u'10.225.29.7', u'disable_until': u'0', u'ipmi_password': u'', u'ipmi_available': u'0', u'maintenance_status': u'0', u'snmp_errors_from': u'0', u'ipmi_error': u'', u'proxy_hostid': u'0', u'hostid': u'16939', u'name': u'10.225.29.7', u'jmx_errors_from': u'0', u'jmx_disable_until': u'0', u'error': u'', u'maintenance_from': u'0', u'errors_from': u'0'}]Comment
Comment