通过python封装zabbix-api批量修改模板中触发器名称
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,# -*- coding: utf-8 -*-import json,reimport urllib.request, urllib.error, urllib.parseclass ZabbixAP
千家信息网最后更新 2025年02月02日通过python封装zabbix-api批量修改模板中触发器名称
# -*- coding: utf-8 -*-import json,reimport urllib.request, urllib.error, urllib.parseclass 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模板中触发名称列表:
用完之后的列表:
名称
模板
触发器
更新
字符
字符串
实例
utf-8
推送
登陆
选择
封装
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全防火墙黑板报
中国电信网络安全保障
虚拟现实软件开发流程
网络安全协议实验
广州亿润网络技术有限公司
应用开发环境和软件开发环境
关于软件开发课题
学校网络安全检查自查
北京现代软件开发产业
互联网科技股混改
使命召唤手游服务器维修公告
网络安全小标语
电脑上数据库种类介绍
如何制作一个好玩的服务器
中国澳门定制oa服务器云主机
orm 映射 存储在数据库
软件开发责任描述怎么写
图解企业网络安全
德信网络技术
查看服务器是不是域控制器
软件开发项目上线
软件开发库价格
华夏软件开发培训机构
2013国内网络安全事件
虹口区智能软件开发哪家便宜
使命召唤决胜时刻服务器进不去
管理与服务器
c 数据库 返回最大值
浙江专业网络技术产品介绍
上海工业软件开发价格