说明:1.python版本为:python2.72.zabbix版本为:zabbix3.43.通过python脚本调用zabbix的api接口可以实现批量增删改查主机的信息。示例如下:#-*- coding:utf-8 -*- import requests, json #初始化参数server_url = "http://zabbix3.test.com/api_jsonrpc.php"header = {"Content-Type": "application/json"}username = "Admin"password = "passwd123" #登录zabbix并获取auth的tokenlogin = { "jsonrpc" : "2.0", "method" : "user.login", "params": { 'user': ""+username+"", 'password': ""+password+"", }, "auth" : None, "id" : 0,}auth = requests.post(server_url, data=json.dumps(login), headers=(header))auth = auth.json() #跟进ip地址获取主机的hostidhost_get = { "jsonrpc":"2.0", "method":"host.get", "params":{ "output":["hostid","name"], "filter":{"ip":["192.168.5.1","192.168.5.2"]} }, "auth":""+auth['result']+"", "id":1,}hostid_get = requests.post(server_url, data=json.dumps(host_get), headers=(header))hostid_get = hostid_get.json()hostid = hostid_get['result'][0]['hostid']print hostid,hostid_get['result'][1]['hostid'] #根据组名获取groupidgroup_get = { "jsonrpc": "2.0", "method": "hostgroup.get", "params": { "output": "extend", "filter": { "name": [ "测试组" ] } }, "auth":""+auth['result']+"", "id": 1}groupid_get = requests.post(server_url, data=json.dumps(group_get), headers=(header))groupid_get = groupid_get.json()groupid = groupid_get['result'][0]['groupid']print groupid #跟进模板名来获取templateidtemplate_get = { "jsonrpc": "2.0", "method": "template.get", "params": { "output": "extend", "filter": { "host": [ "Template OS Linux", ] } }, "auth":""+auth['result']+"", "id": 1}templateid_get = requests.post(server_url, data=json.dumps(template_get), headers=(header))templateid_get = templateid_get.json()templateid = templateid_get['result'][0]['templateid']print templateid #跟进proxy名获取proxyidproxy_get = { "jsonrpc": "2.0", "method": "proxy.get", "params": { "output": "extend", "selectInterface": "extend", "filter": { "host": [ "Zabbix-proxy-test", ] } }, "auth": ""+auth['result']+"", "id": 1}proxy_get_id = requests.post(server_url, data=json.dumps(proxy_get), headers=(header))proxy_get_id = proxy_get_id.json()proxyid = proxy_get_id['result'][0]['proxyid']print proxyid #定义并添加一个主机到zabbix,指定组,模板,host和name名不支持中文host_create = { "jsonrpc": "2.0", "method": "host.create", "params": { "host": "192.168.5.1", "name": "this is a test-192.168.5.1", "interfaces": [ { "type": 1, "main": 1, "useip": 1, "ip": "192.168.5.1", "dns": "", "port": "10050" } ], "groups": [ { "groupid": ""+groupid+"" } ], "templates": [ { "templateid": ""+templateid+"" } ], "proxy_hostid": ""+proxyid+"", "inventory_mode": 0 }, "auth":""+auth['result']+"", "id": 1}host_create_id = requests.post(server_url, data=json.dumps(host_create), headers=(header))host_create_id = host_create_id.json()print host_create_id #跟进hostid删除主机host_delete = { "jsonrpc": "2.0", "method": "host.delete", "params": [hostid], "auth":""+auth['result']+"", "id": 1}delete_id = requests.post(server_url, data=json.dumps(host_delete), headers=(header))deleteid = delete_id.json()print deleteid