ZABBIX調用API批量刪除監控條目python3腳本

#!/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,如無法使用,請查看官方文檔


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章