在上一篇博客中,我们完成的利用python3 调用zabbix接口批量增加主机,增加主机的item,增加主机的图形!

接下来我们完成批量增加主机的screen

首先我们要增加screen需要哪些参数呢?官方的解释如下:

{
"jsonrpc": "2.0",
"method": "screen.create",
"params": {
"name": "Graphs",
"hsize": 3,
"vsize": 2,
"screenitems": [
{
"resourcetype": 0,
"resourceid": "612",
"rowspan": 0,
"colspan": 0, }
]
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}

这里面的参数大致意思如下:

  hsize:水平尺寸  可以简单的理解为 这个聚合图形最多可以有多少行

  vsize:垂直尺寸   同理,这个聚合图形最多可以有多少列

  resourcetye :图形的类型  0 代表graph  1 简单graph 2 文本 。。。。

  resourceid :ID of the screen that the item belongs to. 也就是说需要加入的图形它的ID是说少

  rowspan:屏幕项目将跨越的行数。

  colspan:屏幕项目将跨越的列数。  意思就是图形占多少行多少列  这里 默认为0就行  不需要太大

  x:

  y:  这里的x y代表的是图形的坐标 0 0 就是第一行第一列  0 1 第一行第二列 依次类推(这里需要依靠前面设置的hsize,vsize不能超过了),我在测试的时候这里面体比较大,想要把多个监控放在一行:解决办法是x相同y不同

  auth : 认证信息

  id : 识别方法

了解了方法之后我们发现想要添加聚合图形,我们得 auth  以及  resourceid  这两个重要参数!所以我们第一步就是去找到这两个参数!!

    def __init__(self):
self.url = 'http://192.168.230.164/zabbix/api_jsonrpc.php'
self.headers = {'Content-Type': 'application/json'}
auth = {
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin", ###验证
"password":"zfno11"
},
"id": 1,
"auth":None,
}
response = requests.post(self.url, data=json.dumps(auth), headers=self.headers)
print(response.text)
authid = json.loads(response.text)['result'] ### auth的id
print(authid)

上面的方法得到了authid

然后获取resourceid  也就是图形的ID

 def get_graid(self,authid):
neirong={
"jsonrpc": "2.0",
"method": "graph.get",
"params": {
"output": "extend",
"hostids": 10255,
"sortfield": "name"
},
"auth": authid,
"id": 1
}
response1 = requests.post(self.url, data=json.dumps(neirong), headers=self.headers)print(response1.text)

这里面需要填写我们的hostid  hostid的获取方法在上一章里面已经提到了,这里直接用就行了。

然后我们:

 def create_screen(self,authid):
neirong={
"jsonrpc": "2.0",
"method": "screen.create",
"params": {
"name": "Graphs12",
"hsize": 2,
"vsize": 2,
"screenitems": [
{
"resourcetype": 0,
"resourceid": "",
"rowspan": 2,
"colspan": 2,
"x" : 0,
"y" : 0
},
{
"resourcetype": 0,
"resourceid": "",
"x" :1,
"y" :0
}
]
},
"auth": authid,
"id": 1
}
response1 = requests.post(self.url, data=json.dumps(neirong), headers=self.headers)
print(response1)
print(response1.text)
print("OK")

通过这样就可以把screen的图形加上了!

  

    

最新文章

  1. nandflash驱动程序编写
  2. AssetsManagerEx 组件使用说明
  3. Facebook开源动画库 POP-POPBasicAnimation运用
  4. STL---deque(双端队列)
  5. 【每日学习】Apache重写未开启,导致The requested URL /xxxx.html was not found on this server
  6. freeswitch 1.4
  7. FusionCharts for Flex报错
  8. JDBC学习笔记(10)——调用函数&存储过程
  9. 面向对象设计原则OO
  10. asp.net 页面上传文件控件后台代码Request.Files获取不到
  11. 同步github工程gitcafe
  12. <CEPH中国-深圳站-技术交流会演讲PPT> YY云平台Ceph Block应用实践 & 我写的书 《CEPH实战》
  13. 【Android Studio安装部署系列】四、Android SDK目录和作用分析
  14. mongodb怎么创建数据库和配置用户
  15. 3.2.1 SpringMVC入门
  16. MySQL系列详解一:MySQL&&多实例安装-技术流ken
  17. c++ CreateProcess调用dos命令
  18. 使用 maven-assembly-plugin 打包项目
  19. NPM安装依赖速度慢问题
  20. Sencha Touch 扩展集合

热门文章

  1. 解决 ElementTree 无法处理中文
  2. Gradle DSL method not found: 'compile()'
  3. spring boot系列(一)spring boot 初识
  4. IDEA工具上传项目报:Push rejected: Push to origin/master was rejected
  5. MongoDB 走马观花(全面解读篇)(转载)
  6. 微信小程序省市区联动,自定义地区字典
  7. BUGKU (Take the maze)
  8. Django-ORM之ManyToManyField的使用-多对多关系
  9. android webkit 初始化流程
  10. Ubuntu下借助URLOS实现快速安装DzzOffice企业办公套件