import requests
import json
import sys def get_token():
data = {
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": username,
"password": password
},
"id": 0
}
r = requests.get(zaurl, headers=header, data=json.dumps(data))
auth = json.loads(r.text)
return auth["result"] #指定模板,获取主机信息
def template_hostget(token):
data = {
"jsonrpc": "2.0",
"method": "template.get",
"params": {
"output": ['host', 'templateid'],
"templateids": [''],
"selectHosts": [ # 返回链接到模板的主机
"hostid",
"host",
],
},
"auth": token,
"id": 1
} request = requests.post(zaurl, data=json.dumps(data), headers=header)
dict = json.loads(request.content)
return (dict['result'][0]['hosts']) #获取连接的模板信息
def hostget(token, hostid):
data = {
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": ["hostid","host"],
"selectParentTemplates": [
"templateid",
"name"
],
"hostids": hostid
},
"auth": token,
"id": 1
} request = requests.post(zaurl, data=json.dumps(data), headers=header)
dict = json.loads(request.content)
# print (dict)
print (dict['result'][0]['hostid'],dict['result'][0]['host'],dict['result'][0]['parentTemplates']) def massupdate_templates_clear_hosts(token, hostid):
data = {
"jsonrpc": "2.0",
"method": "host.update",
"params": {
"hostid": hostid,
"templates_clear": ['']
},
"auth": token,
"id": 1
}
request = requests.post(zaurl, data=json.dumps(data), headers=header)
print(request.content) def add_template(token, templateid, hostid):
data = {
"jsonrpc": "2.0",
"method": "template.massadd",
"params": {
"templates": [
{
"templateid": templateid
},
],
"hosts": [
{
"hostid": hostid
}
]
},
"auth": token,
"id": 2
}
request = requests.post(zaurl, data=json.dumps(data), headers=header)
print(request.content) if __name__ == "__main__":
#修改输入参数
hostfile = "主机IP.txt"
zaurl = "http://x.x.x.x/zabbix/api_jsonrpc.php"
header = {"Content-Type": "application/json"}
username = "xx"
password = "xx"
token = get_token()
#获取主机和模板
# hostinfo = template_hostget(token)
# for i in hostinfo:
# hostget(token, i['hostid']) #因监控机器数量太多,一次性全部修改会对zabbix数据库造成比较大的压力,所以分批修改
hostids = [获取到主机在zabbix里面的hostid]
for id in hostids:
# hostget(token,'15097')
massupdate_templates_clear_hosts(token, id)
add_template(token, "", id)

最新文章

  1. xss和csrf攻击
  2. Linux中不同主机建立免登陆
  3. Python os._exit() sys.exit()
  4. Servlet获取request的变量方法.
  5. hadoop datanode 挂机恢复后,多复制的块删除的问题
  6. kernel/module.c
  7. JSONObject和JSONArray使用
  8. Python OpenCV——Image
  9. UVa 10859 Placing Lampposts
  10. UVa 10176 - Ocean Deep ! - Make it shallow !!
  11. 邓_PHP面试2
  12. CSS3 2D、3D转换
  13. Spark 异步Action
  14. 20164301 Exp2 后门原理与实践
  15. Hyperledger Fabric链码之三
  16. SSH整合redis和MongoDB错误笔记
  17. python 爬虫得到网页的图片
  18. 记录-UEFI启动的预装WIN8的笔记本里引导linux双系统
  19. 【python】class之类的定义
  20. vue - 指令系统

热门文章

  1. 基于SCN增量恢复DG同步
  2. Mysql的查询语句的使用
  3. Xcode11 踩坑记录
  4. Java中的try-catch-finally异常处理
  5. UVA-136Ugly numbers
  6. ARTS-S linux常用命令
  7. Bootstrap响应式栅格系统设计
  8. 从零开始入门 K8s | etcd 性能优化实践
  9. 201871010119-帖佼佼《面向对象程序设计(java)》第二周学习总结
  10. java面试题干货51-95