zoukankan      html  css  js  c++  java
  • 利用python3 调用zabbix接口完成批量加聚合图形(screens)

    在上一篇博客中,我们完成的利用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": "790",
                                "rowspan": 2,
                                "colspan": 2,
                                "x" : 0,
                                "y" : 0
                            },
                            {
                                "resourcetype": 0,
                                "resourceid": "793",
                                "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的图形加上了!

      

        

  • 相关阅读:
    个人总结21
    个人总结08
    个人总结07
    构建之法读后感01
    学习进度表 03
    四则运算3
    求最大值
    学习进度表02
    四则运算 2
    学习进度表01
  • 原文地址:https://www.cnblogs.com/ZFBG/p/9225312.html
Copyright © 2011-2022 走看看