1. import requests
  2. import json
  3. import sys
  4.  
  5. def get_token():
  6. data = {
  7. "jsonrpc": "2.0",
  8. "method": "user.login",
  9. "params": {
  10. "user": username,
  11. "password": password
  12. },
  13. "id": 0
  14. }
  15. r = requests.get(zaurl, headers=header, data=json.dumps(data))
  16. auth = json.loads(r.text)
  17. return auth["result"]
  18.  
  19. #指定模板,获取主机信息
  20. def template_hostget(token):
  21. data = {
  22. "jsonrpc": "2.0",
  23. "method": "template.get",
  24. "params": {
  25. "output": ['host', 'templateid'],
  26. "templateids": [''],
  27. "selectHosts": [ # 返回链接到模板的主机
  28. "hostid",
  29. "host",
  30. ],
  31. },
  32. "auth": token,
  33. "id": 1
  34. }
  35.  
  36. request = requests.post(zaurl, data=json.dumps(data), headers=header)
  37. dict = json.loads(request.content)
  38. return (dict['result'][0]['hosts'])
  39.  
  40. #获取连接的模板信息
  41. def hostget(token, hostid):
  42. data = {
  43. "jsonrpc": "2.0",
  44. "method": "host.get",
  45. "params": {
  46. "output": ["hostid","host"],
  47. "selectParentTemplates": [
  48. "templateid",
  49. "name"
  50. ],
  51. "hostids": hostid
  52. },
  53. "auth": token,
  54. "id": 1
  55. }
  56.  
  57. request = requests.post(zaurl, data=json.dumps(data), headers=header)
  58. dict = json.loads(request.content)
  59. # print (dict)
  60. print (dict['result'][0]['hostid'],dict['result'][0]['host'],dict['result'][0]['parentTemplates'])
  61.  
  62. def massupdate_templates_clear_hosts(token, hostid):
  63. data = {
  64. "jsonrpc": "2.0",
  65. "method": "host.update",
  66. "params": {
  67. "hostid": hostid,
  68. "templates_clear": ['']
  69. },
  70. "auth": token,
  71. "id": 1
  72. }
  73. request = requests.post(zaurl, data=json.dumps(data), headers=header)
  74. print(request.content)
  75.  
  76. def add_template(token, templateid, hostid):
  77. data = {
  78. "jsonrpc": "2.0",
  79. "method": "template.massadd",
  80. "params": {
  81. "templates": [
  82. {
  83. "templateid": templateid
  84. },
  85. ],
  86. "hosts": [
  87. {
  88. "hostid": hostid
  89. }
  90. ]
  91. },
  92. "auth": token,
  93. "id": 2
  94. }
  95. request = requests.post(zaurl, data=json.dumps(data), headers=header)
  96. print(request.content)
  97.  
  98. if __name__ == "__main__":
  99. #修改输入参数
  100. hostfile = "主机IP.txt"
  101. zaurl = "http://x.x.x.x/zabbix/api_jsonrpc.php"
  102. header = {"Content-Type": "application/json"}
  103. username = "xx"
  104. password = "xx"
  105. token = get_token()
  106. #获取主机和模板
  107. # hostinfo = template_hostget(token)
  108. # for i in hostinfo:
  109. # hostget(token, i['hostid'])
  110.  
  111. #因监控机器数量太多,一次性全部修改会对zabbix数据库造成比较大的压力,所以分批修改
  112. hostids = [获取到主机在zabbix里面的hostid]
  113. for id in hostids:
  114. # hostget(token,'15097')
  115. massupdate_templates_clear_hosts(token, id)
  116. add_template(token, "", id)

zabbix批量清理模板,添加新模板的更多相关文章

  1. zabbix客户端的安装、zabbix主被动模式、添加主机模板等、处理页面的中文乱码

    1.zabbix客户端的安装: 如下步骤: wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch. ...

  2. Submline Text 3插件sublimeTmpl添加新模板

    1.安装 一般安装Package Control 2.插件 添加模板 1).进入Preferences->Browse Packages->SublimeTmpl->template ...

  3. Zabbix 4.0 API 实践,主机/主机群组 批量添加模板和删除模板

    场景 我们日常在管理Zabbix 的时候,经常会需要批量添加模板和批量删除模板,Zabbix页面是提供的批量链接的功能,但是它链接的也只是当前页的主机,我们想扩展这个功能,在链接的时候,可以批量链接整 ...

  4. 个人博客制作如何选择前端模板 thinkcmf后台加载新模板 CSS js文件

    我们的博客后台已经搭建好了,接下来我就要选择一个合适的模板做自己的博客,首先要定位你的博客是做什么用的,是属于什么行业,根据自己博客的定位选择适合的模板. 如果你是设计师,又会前端设计开发,那就可以自 ...

  5. zabbix批量添加SNMP监听H3C端口检测以及流量图

    由于之前网络设备不是很多,监控网络设备接口就直接使用模版中的item来实现了,可是现在公司上线了一大批网络设备,如果要每个网络设备都做模板,添加item......那就该废了,于是迫于压力今天来测试使 ...

  6. [译][ABP vNext]ABP CLI,v0.18版本的新模板和其他功能

    ABP CLI,v0.18版本的新模板和其他功能 ABP v0.18已发布, 包含解决的70+个issue,500+次提交 网站更改 abp.io网站完全更新以突出ABP框架的目标和重要功能.文档和博 ...

  7. vs .net WebForm 模板添加注释

    首先说一点,好久不更新博客了.今天公司服务器不能用了,闲着没事儿,更新一篇博客. 今天要说的就是vs2010下,如何更改各种文件的模板,以省去每次新添加文件时,还得给文件添加文件标示注释等时间.很大程 ...

  8. zabbix WebUI自定义Nginx监控项模板

    zabbix webUI自定义Nginx监控项模板 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.创建模板 1>.如下图所示,依次点击"配置" --- ...

  9. zabbix 自动发现主机并关联模板

    一.自动发现添加主机 1.利用agent自动发现主机 Configuration - Discovery -Create discovery rule 2.将自动发现的主机关联模板 Configura ...

随机推荐

  1. poi-tl二次开发

    poi-tl二次开发 poi-tl是一款非常好用的word模板生成库,更新响应快.文档demo齐全.堪称word模板界的小军刀! 写在前面 如果你对word模板技术有了解.或者有兴趣,更甚者工作中接触 ...

  2. Coderfocers-551C

    Professor GukiZ is concerned about making his way to school, because massive piles of boxes are bloc ...

  3. Docker系列-(1) 原理与基本操作

    Docker是一个开源的应用容器引擎,基于Go语言,并遵从Apache2.0协议开源. Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux机器 ...

  4. ARTS-S 在docker中运行本地脚本

    很多情况是本地没有编译环境,但docker中有编译环境.想编译本地代码,就要把本地的代码和编译脚本映射到docker中,脚本如下: docker run \ -it \ -v /Users/usern ...

  5. selenium处理弹窗

    处理登录弹窗:https://www.cnblogs.com/TD1900/p/11938573.html #定位弹窗 ale = driver.switch_to.alert #处理方式 ale.a ...

  6. 【树莓派】制作启动SD卡

    版权声明:本文为博主原创文章,转载请注明出处. https://www.cnblogs.com/YaoYing/ 下载烧写软件 烧写软件 将下载的压缩文件解压缩并安装到电脑上 下载树莓派镜像 树莓派系 ...

  7. 201871010119-帖佼佼《面向对象程序设计(java)》第十四周学习总结

    博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.co ...

  8. 非线性函数的最小二乘拟合及在Jupyter notebook中输入公式 [原创]

    突然有个想法,能否通过学习一阶RC电路的阶跃响应得到RC电路的结构特征——时间常数τ(即R*C).回答无疑是肯定的,但问题是怎样通过最小二乘法.正规方程,以更多的采样点数来降低信号采集噪声对τ估计值的 ...

  9. Sockit 硬件接口编程——点亮一个LED

    1.话不多说上代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include < ...

  10. HTTP 错误 500.19 - Internal Server Error解决办法详解

    最近在服务器端部署程序发现这个问题,HTTP 错误 500.19 - Internal Server Error,程序在本地跑是没有问题的.但是部署完,浏览程序就出现这个问题,今天这篇文章就是记录一下 ...