#!/usr/bin/python
# encoding: utf-8
#filename: trigger.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 TriggerDelete(method,hostid,authid,triggerid):
data = [triggerid]
responses = z_api_con.json_data(method, data, authid)
return responses
def TriggerGet(method,authid,triggerid):
#根据触发器的ID检索触发器数据
data = {
# "hostids": hostid,
# "itemids": itemid,
"triggerids": triggerid,
"output": "extend",
"selectFunctions": "extend"
}
responses = z_api_con.json_data(method, data, authid)
return responses
def TriggerUpdate(method,authid,triggerid):
#启用触发器
data = {
"triggerid": triggerid,
"status": 0, #触发器状态,0是开启,1是关闭
"priority": 4 #触发器的告警等级,5级最高(灾难)
}
responses = z_api_con.json_data(method, data, authid)
return responses
def TriggerCreate(method,triggername,triggerexpression,authid):
data = {
"description":"%s" % triggername,
"expression":"%s" % triggerexpression,
# "status": 0, #触发器状态,0是开启,1是关闭
"priority": 4 #触发器的告警等级,5级最高(灾难)
}
responses = z_api_con.json_data(method, data, authid)
return responses
def main_all(authid):
file = open("iplsit.txt", "r") #打开ip那个文件
lists = file.readlines()
for list in lists:
ip = list.strip("\n") #换行
hostid_result = getHostid("host.get", ip, authid)["result"]
if hostid_result:
hostid = hostid_result[0]["hostid"]
#查看触发器的信息
# triggerget = TriggerGet("trigger.get",authid,triggerid=19966)["result"]
# print(triggerget)
#创建触发器
keyfile = open("b.txt","r")
keylines = keyfile.readlines()
for keyline in keylines:
keylist = keyline.split("\t")
# print (keylist)
triggername = keylist[0].strip()
triggerexpression = keylist[1].strip()
print (triggername)
print (triggerexpression)
triggercreate = TriggerCreate("trigger.create",triggername,triggerexpression,authid)
print(triggercreate)
#打开或关闭指定触发器的状态,并且调节触发器的等级
# triggerupdates = TriggerUpdate("trigger.update",authid,triggerid=19550)["result"]
# print(triggerupdate)
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)
触发器操作
最新推荐文章于 2022-02-20 23:22:41 发布