#!/usr/bin/python
# encoding: utf-8
#filename: item.py
#author: gaohaixiang
#writetime:20190713
import zabbix_base_api # zabbix-API-自定义库
import time
z_api_con = zabbix_base_api.zabbix_base_api(url='http://192.168.73.9/api_jsonrpc.php')
def getHostid(method, ip, authid):
data = {
"output": ["hostid", "host"],
"filter": {
"ip": ip
},
"selectInterfaces": ["ip"],
"selectParentTemplates": ["name"]
}
responses = z_api_con.json_data(method, data, authid)
return responses
def ItemCreate(method, hostid, authid, Itemname, key, interfaceid, applicationid, delaytime):
data = {
"name": Itemname,
"key": key,
"hostid": hostid,
"type": 0,
"value_type": 3,
"interfaceid": interfaceid,
"applications": [applicationid],
"delay": delaytime
}
responses = z_api_con.json_data(method, data, authid)
return responses
def ItemDelete(method, hostid, authid, itemid):
data = [itemid]
responses = z_api_con.json_data(method, data, authid)
return responses
def ItemGet(method, hostid, authid):
data = {
"output": "extend",
"hostids": hostid,
"search": {"application": "10269"}, # application,应用集
"sortfield": "name"
}
responses = z_api_con.json_data(method, data, authid)
return responses
def ItemUpdate(method, hostid, authid, itemid):
data = {
"itemid": itemid,
"status": 0
}
responses = z_api_con.json_data(method, data, authid)
return responses
def main_all(authid):
file = open("a.txt", "r") # 打开ip那个文件
lists = file.readlines()
for list in lists:
ip = list.strip("\n") # 换行
hostid_result = getHostid("host.get", ip, authid)["result"]
print (hostid_result)
if hostid_result:
print (hostid_result)
hostid = hostid_result[0]["hostid"]
itemget = ItemGet("item.get", hostid, authid)["result"]
for i in itemget:
i1 = ["Consumer_examples","Free_memory"]
if i["key_"] in i1:
itemid = i["itemid"]
itemupdate = ItemUpdate("item.update", hostid, authid, itemid) #监控项更改
print(itemupdate)
file.close()
if __name__ == "__main__":
starttime = time.time()
print ("Process is running...")
authid = z_api_con.authid('gaohaixiang', 'gaohaixiang')
main_all(authid)
z_api_con.login_out(authid)
endtime = time.time()
print (endtime - starttime)
监控项操作
最新推荐文章于 2024-01-16 15:55:38 发布