中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

通過python封裝zabbix-api批量修改模板中觸發器名稱

發布時間:2020-07-23 22:33:02 來源:網絡 閱讀:358 作者:ziwenzhou 欄目:系統運維
# -*- coding: utf-8 -*-
import json,re
import urllib.request, urllib.error, urllib.parse
class ZabbixAPI:
    # 初始化
    def __init__(self):
        self.__url = 'http://192.168.74.133/api_jsonrpc.php'
        self.__user = 'admin'
        self.__password = 'zabbix'
        self.__header = {"Content-Type": "application/json-rpc"}
        self.__token_id = self.UserLogin()
    # 登陸獲取token
    def UserLogin(self):
        data = {
        "jsonrpc": "2.0",
        "method": "user.login",
        "params": {
        "user": self.__user,
        "password": self.__password
        },
        "id": 0,
        }
        return self.PostRequest(data)

    # 推送請求
    def PostRequest(self, data):
        request = urllib.request.Request(self.__url,json.dumps(data).encode('utf-8'),self.__header)
        result = urllib.request.urlopen(request)
        response = json.loads(result.read().decode('utf-8'))
        try:
            return response['result']
        except KeyError:
            pass

    # 獲取指定模板ID名稱
    def GetTemplatesID(self,Template_name):
        data = {
       "jsonrpc":"2.0",
       "method":"template.get",
       "params":{
        "output":"templateid",
        "filter": {
                "host": Template_name
                }
        },
        "auth": self.__token_id,
        "id": 0
    }
        Template_ID_List = self.PostRequest(data)
        return Template_ID_List[0]["templateid"]

    # 從指定模板ID獲取所有觸發器ID并返回觸發器名稱description
    def GetAllTriggersIDFromTemplatesID(self,Template_name):
        TemplatesID = self.GetTemplatesID(Template_name)
        data = {
         "jsonrpc": "2.0",
         "method": "trigger.get",
         "params": {
             "templateids": TemplatesID,
             "output": ["description"]
         },
        "auth": self.__token_id,
        "id": 0
    }
        return self.PostRequest(data)

    # 更新觸發器名稱
    def updateTriggerName(self,TriggerID=None,description=None):
        data = {
                   "jsonrpc": "2.0",
                   "method": "trigger.update",
                   "params": {
                       "triggerid": TriggerID,
                       "description": description
                   },
        "auth": self.__token_id,
        "id": 0
    }
        return self.PostRequest(data)

# 獲取原觸發名稱,并且替換特定字符串進行批量更新觸發器名稱
    def ReWriteTriggerName(self,Template_name):
        StringJson = self.GetAllTriggersIDFromTemplatesID(Template_name)
        # print(StringJson)
        # print(type(StringJson))
        for i in range(len(StringJson)):
            ret = re.sub('已關閉', 'is down',StringJson[i]["description"])
            self.updateTriggerName(StringJson[i]["triggerid"],ret)

def main():
    # 實例化zabbix類
    zapi=ZabbixAPI()
    # 模板選擇
    hosts=zapi.ReWriteTriggerName("Template OS Linux")

if __name__ == '__main__':
    main()

之前Templates-OS-linux模板中觸發名稱列表:
通過python封裝zabbix-api批量修改模板中觸發器名稱

用完之后的列表:
通過python封裝zabbix-api批量修改模板中觸發器名稱

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

韶山市| 邳州市| 花垣县| 通州区| 固阳县| 孟津县| 蓬莱市| 龙游县| 格尔木市| 双江| 广河县| 海口市| 巴里| 年辖:市辖区| 永定县| 剑川县| 金塔县| 延吉市| 茂名市| 广安市| 麻阳| 丰原市| 青田县| 浦东新区| 福州市| 阳信县| 崇仁县| 西丰县| 柳河县| 大理市| 苍溪县| 泉州市| 鄂托克旗| 太保市| 修文县| 公安县| 怀安县| 乌兰县| 宜城市| 安康市| 根河市|