在运维实践中,Zabbix API还有更多奥妙的运用。
面对规模弘大的监控设备,可能会涌现某台机器发生故障但却没有报警的情形,个中缘由可能是这台机器的Zabbix客户端由于某种缘故原由没有被做事端监控到。
办理这个问题也非常大略。为了避免某些机器未被系统监控和纳管,最大略的方案是通过调用Zabbix API获取所有被监控的主机列表,然后与运维资产数据库进行比对即可。详细操作如下:

#!/usr/bin/evn pythonimport requestsimport jsonZABIX_ADD = 'http://10.0.1.29/zabbix'url = ZABIX_ADD + '/api_jsonrpc.php'# user.loginpayload = { "jsonrpc" : "2.0", "method" : "user.login", "params" : { 'user' : 'Admin', 'password' :'', }, "auth" : None, "id" : 0,}headers = { 'content-type' : 'application/json',}req = requests.post(url, json=payload, headers=headers)auth = req.json()# host.getpayload = { "jsonrpc" : "2.0", "method" : "host.get", "params" : { 'output' : [ 'hostid', 'name' ], }, "auth" : auth['result'], "id" : 2,}res2 = requests.post(url, data=json.dumps(payload), headers=headers)res2 = res2.json()for host in res2['result'] : with open('host.txt', 'a+') as f: f.write(host['name'] + '\n')
以上脚本一共分为两个部分。第一部分是用户登录;第二部分用户登录后获取主机列表,末了写到一个文件中。全体脚本运行的结果是天生一个所有被监控的IP列表,通过这个列表就可以实现跟资产库信息进行比拟,从而创造未被监控的主机。
以上便是这一期的技能分享。
大家好,我是乐乐,关注我,学习更多Zabbix利用小技巧,如在Zabbix利用过程中碰到问题,还可以到乐维社区进行留言提问。