python调用zabbixapi接口_python3(requests)调用zabbix-4.2.3-api添加修改主机

'''

2019.6.19

zabbix API 修改主机

'''

import json,requests

headers={"Content-Type":"application/json"}

url = 'http://www.zabbix.com/zabbix/api_jsonrpc.php'

def getAuth(user,password):

try:

global headers, url

data = json.dumps({

"jsonrpc": "2.0",

"method": "user.login",

"params": {

"user": user,

"password": password

},

"id": 1,

})

res = requests.post(url,data=data,headers=headers)

auth = res.json().get('result','')

return  auth

except Exception as err:

pass

def getHost(auth):

try:

global headers,url

data = json.dumps({

"jsonrpc": "2.0",

"method": "host.get",

"params": {

"output": [

"hostid",

"host"],

"selectInterfaces": [

"interfaceid",

"ip"]},

"id": 2,

"auth": auth

})

res = requests.post(url,data=data,headers=headers)

host = res.json()

return  host

except:

pass

def getGroupid(auth,groupname):

try:

global headers, url

data = json.dumps({

"jsonrpc": "2.0",

"method": "hostgroup.get",

"params": {

"output": "extend",

"filter": {

"name": [groupname]}},

"auth": auth,

"id": 1

})

res = requests.post(url,data=data,headers=headers)

groupid = res.json()['result'][0]['groupid']

return groupid

except:

pass

def getTempid(auth,tempname):

try:

global headers, url

# print(templist)

data = json.dumps(

{

"jsonrpc": "2.0",

"method": "template.get",

"params": {

"output": "extend",

"filter": {

"host": tempname}},

"auth": auth,

"id": 1}

)

res = requests.post(url,data=data,headers=headers)

tempid = []

for i in range(len(res.json()['result'])):

id = res.json()['result'][i]['templateid']

tempid.append(id)

return  tempid

except:

pass

def createHost(auth,hostname,ip,port,groupid,templateid):

try:

global headers, url

templist = []

# print(templateid)

for i in templateid:

var = {}

var['templateid'] = i

templist.append(var)

data = json.dumps({

"jsonrpc": "2.0",

"method": "host.create",

"params": {

"host": hostname,

"interfaces": [

{

"type": 1,

"main": 1,

"useip": 1,

"ip": ip,

"dns": "",

"port": port}],

"groups": [{"groupid": groupid}],

"templates": templist,},

"auth": auth,

"id": 1})

res = requests.post(url,data=data,headers=headers)

if 'result' in res.text:

print ('主机: %s -------添加成功' %hostname)

else:

print ('主机: %s -------添加失败'%hostname)

except:

pass

def host_get(auth,hostName=''):

try:

global url,headers

data = json.dumps({

"jsonrpc": "2.0",

"method": "host.get",

"params": {

"output": "extend",

"selectParentTemplates": ["host"],

"filter": {"host": hostName}

},

"auth": auth,

"id": 1

})

res = requests.post(url=url, data=data, headers=headers)

response = json.loads(res.content)

print("主机数量: \33[31m {} \33[0m".format(len(response['result'])))

# print(response['result'])

for host in response['result']:

status = {"0": "OK", "1": "Disabled"}

available = {"0": "Unknown", "1": "available", "2": "Unavailable"}

# print host

if len(hostName) == 0:

print("HostID : %s HostName : %s Status :\33[32m%s\33[0m Available :\33[31m%s\33[0m" % (

host['hostid'], host['name'], status[host['status']], available[host['available']]))

else:

print("HostID : %s HostName : %s Status :\33[32m%s\33[0m Available :\33[31m%s\33[0m" % (

host['hostid'], host['name'], status[host['status']], available[host['available']]))

return host['hostid']

except:

pass

def host_delete(auth, hostid):

try:

global url,headers

data = json.dumps({

"jsonrpc": "2.0",

"method": "host.delete",

"params": [hostid],

"auth": auth,

"id": 1

})

res = requests.post(url=url, data=data, headers=headers)

response = json.loads(res.content)

print ("主机:%s  -----------已经删除 !"%hostid)

except:

pass

if __name__ == '__main__':

user = 'admin'

password = 'password'

#主机群组名

groupname = 'Linux servers'

#模版名

# tempname = ["Template OS Linux","Template DB MySQL"]

tempname = ["Template OS Linux"]

#获取key

auth = getAuth(user,password)

#获取组id

groupid = getGroupid(auth,groupname)

#获取模版id

tempid = getTempid(auth,tempname)

print('请先修改主机列表后执行')

# createhostlist = [

#     "center,172.17.0.12,10050"

#     "logserver,172.17.0.12,10050"

#     "testserver,172.17.0.12,10050"

# ]

# for host in createhostlist:

#     list1 = host.split(',')

#     hostname = list1[0]

#     hostip = list1[1]

#     port = list1[2]

#     createHost(auth,hostname,hostip,port,groupid,tempid)

# delhostlist = [

#     "dxc_0_12,172.17.0.12,10050"

# ]

#

# for host in delhostlist:

#     list1 = host.split(',')

#     hostname = list1[0]

#     hostid = host_get(auth,hostname)

#     host_delete(auth,hostid)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值