首页 > 代码库 > zabbix api 设置维护模式
zabbix api 设置维护模式
通过zabbix提供的api进行维护模式的设置
#!/usr/bin/env python# -*-coding:utf-8-*-import urllibimport urllib2import jsonimport sysimport platformimport time def auth(uid, username, password, api_url): """ zabbix认证 :param uid: :param username: :param password: :return: """ dict_data = http://www.mamicode.com/{}"2.0" # api版本 dict_data[‘params‘] = {"user": username, "password": password} # 用户账号密码 jdata = http://www.mamicode.com/json.dumps(dict_data) # 格式化json数据""" POST方法 :param jdata: :param url: :return: """ req = urllib2.Request(url, jdata, {‘Content-Type‘: ‘application/json‘}) response = urllib2.urlopen(req) # content = response.read() content = json.load(response) return content def create_maintenance(name, hostid, active_since, active_till, period, auth_code, api_url): """ create maintenance :return: """ dict_data = http://www.mamicode.com/{}"2.0" # api版本 dict_data[‘auth‘] = auth_code # api版本 dict_data[‘description‘] = "UPDATE" + hostid # api版本 # host hostids = [hostid] # timeperiods timeperiods = [{"timeperiod_type": 0, "start_time": 64800, "period": period}] dict_data[‘params‘] = {"name": name, "active_since": active_since, "timeperiods": timeperiods, "active_till": active_till, "hostids": hostids} # 用户账号密码 jdata = http://www.mamicode.com/json.dumps(dict_data) # 格式化json数据""" use hostname get hostid :param hostname: :param auth: :param uid: :return: """ dict_data = http://www.mamicode.com/{}"2.0" # api版本 dict_data[‘params‘] = {"name": hostname} # 主机名 dict_data[‘auth‘] = auth_code # auth串 jdata = http://www.mamicode.com/json.dumps(dict_data) # 格式化json数据""" 退出 :param uid: :param auth_code: :return: """ dict_data = http://www.mamicode.com/{}"2.0" # api版本 dict_data[‘params‘] = [] dict_data[‘auth‘] = auth_code # auth串 jdata = http://www.mamicode.com/json.dumps(dict_data) # 格式化json数据"http://192.168.1.100/api_jsonrpc.php" res = auth(1, username, password, api_url) # 认证 if res[‘result‘]: auth_code = res[‘result‘] # 认证串 hostname = platform.node() # 主机名 res = get_hostid(hostname, auth_code, uid, api_url) if res[‘result‘]: period = 600 # 维护时长 active_since = int(time.time()) # 开始时间 active_till = int(time.time()) + period # 结束时间 hostid = res[‘result‘][0][‘hostid‘] # 主机 res = create_maintenance(‘AutoMaintenance_‘ + hostname + ‘_‘ + str(active_since), hostid, active_since, active_till, period, auth_code, api_url) # 创建维护 logout(uid, auth_code, api_url) # 退出登录 print res else: pass
需要修改uid、username、password、api_url以及res中的auth函数的uid值,通过修改period的值来修改维护时长。
该脚本通过platform模块获取到agent的主机名,确保server端的主机名与客户端一致,且存在,否则设置不成功。
设置完成后可在Configuration->Maintenance页面中查看设置的维护模板。
可以通过在Configuration->Hosts页面中查看是否生效。
zabbix api 设置维护模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。