#!/bin/env python3 #coding:utf-8 import json import os import requests url = "http://127.0.0.1/zabbix/api_jsonrpc.php" headers = { 'Content-Type': 'application/json-rpc' } def tokenget(): data = { "jsonrpc": "2.0", "method": "user.login", "params": { "user": "zabbix管理员用户名", "password": "密码" }, "auth": None, "id": 0 } json_data = json.dumps(data) req = requests.post(url,data=json_data,headers=headers) js_req = req.json() return js_req['result'] def hostsget(token): data = { "jsonrpc": "2.0", "method": "host.get", "params": { "output":["hostid","name"] }, "auth": token, "id": 0 } json_data = json.dumps(data) req = requests.post(url,data=json_data,headers=headers) js_req = req.json() return js_req['result'] def hostsdel(token,hosts): data = { "jsonrpc": "2.0", "method": "host.delete", "params": hosts, "auth": token, "id": 1 } json_data = json.dumps(data) req = requests.post(url,data=json_data,headers=headers) js_req = req.json() return js_req def charse(): path = 'host.txt' #要删除的主机条目数据文件路径(此处文件内容为主机名称),也可修改为运行时指定,此处不赘述 f = open(path,'r') return f.read() f.close() if __name__=='__main__': hostsid = [] token = tokenget() hostlist = hostsget(token) unhosts = charse() for hostinfo in hostlist: if hostinfo['name'] in unhosts: hostsid.append(hostinfo['hostid']) print(hostsdel(token,hostsid)) #注:本脚本实际使用环境版本为 zabbix3.4,如无法使用,请查看官方文档
ZABBIX调用API批量删除监控条目python3脚本
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.