通过python封装zabbix-api批量修改模板中触发器名称
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,# -*- coding: utf-8 -*-import json,reimport urllib.request, urllib.error, urllib.parseclass ZabbixAP
千家信息网最后更新 2025年12月03日通过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安全错误
数据库的锁怎样保障安全
计算机网络技术专业基础学分
热血江湖电信一区哪个服务器好
租服务器怎么找玩家
5j是不是第5代通信网络技术
棋牌500人同时在线服务器配置
软件开发类技术总监简历
我的世界服务器外接硬盘
MongoDB数据库 表单
揭阳有哪些手机软件开发
廊坊软件开发找哪家
四川第三方软件开发机构
妄想山海捏脸数据库在哪里
个人网络安全条例
西安华勤服务器
数据库管理学习
发票管理数据库
什么是网络安全社区
网络技术人员维护费
网络安全密码学很难吗
员工管理系统数据库总结
软件开发系统价格
河南仟润网络技术有限公司评价
怎么样才能让服务器接收数据快点
静安区网络技术服务零售价格
软件开发中需要解决的问题
徐州电脑软件开发有限公司
美国网络安全最好证书
网络安全 文明上网心得
光明大陆服务器推荐
网络技术与安全专业怎样