在上一篇博客中,我们完成的利用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的图形加上了!

  

    

利用python3 调用zabbix接口完成批量加聚合图形(screens)的更多相关文章

  1. python3 调用zabbix API实现批量增加删除主机,主机各种监控项------实战

    在以前的博客中谈到了利用zabbix接口来对主机进行批量的增删改查 这里在不用环境中实战遇到了不同问题,这里记录下来以便后续review 以下为实战中获取token的代码,在zabbix标准接口文档中 ...

  2. python调用zabbix接口实现Action配置

    要写这篇博客其实我的内心是纠结的,老实说,我对zabbix的了解实在不多.但新公司的需求不容置疑,当我顶着有两个头大的脑袋懵懵转入运维领域时,面前摆着两百多组.上千台机器等着写入zabbix监控的需求 ...

  3. zabbix 批量添加聚合图形

    环境为centos 脚本要在centos zabbix服务器上运行,zabbix server上运行 1.先把脚本部署到zabbix客户端,把脚本保存为nic.sh 存放路径确保zabbix可以访问 ...

  4. zabbix 批量生成聚合图形

    通过插入数据库的方式批量生成 zabbix 聚合图形 原型图形 聚合的 sql 批量操作 .在聚合图形创建好一个聚合图形A.找出图形A的ID (创建图形的时候记得填写好行数和列数) select sc ...

  5. 02 . Zabbix配置监控项及聚合图形

    安装Zabbix Agent监控本机 安装agent软件 与server端不同,Agent只需安装zabbix-agent包 cat /etc/yum.repos.d/zabbix.repo [zab ...

  6. Python的Web编程[2] -> WebService技术[0] -> 利用 Python 调用 WebService 接口

    WebService技术 / WebService Technology 1 关于webservice / Constants WebService是一种跨编程语言和跨操作系统平台的远程调用技术. W ...

  7. python3调用zabbix api

    前言 今天写了一个zabbix api,这里整理一下,过程中自己也学习了一些东西. 需求 我们需要查一个文件内容如下: cat /ops/flume_hosts node1 node2 需要把这个文件 ...

  8. 利用axis调用webservice接口

    一.首先把wsdl文件放入eclipse中某个项目中的src目录下 二.右键弹出webservice,然后点击webservice菜单,选中genernator client ,选择axis生成Jav ...

  9. 使用接口的方式调用远程服务 ------ 利用动态调用服务,实现.net下类似Dubbo的玩法。

    分布式微服务现在成为了很多公司架构首先项,据我了解,很多java公司架构都是 Maven+Dubbo+Zookeeper基础上扩展的. Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按 ...

随机推荐

  1. 数据库开源框架之ormlite

    主页: http://ormlite.com/ 配置: 添加以下依赖 * compile 'com.j256.ormlite:ormlite-android:4.48' * compile 'com. ...

  2. 阶段3 3.SpringMVC·_06.异常处理及拦截器_4 SpringMVC拦截器之介绍和搭建环境

    拦截器可以有多个 搭建环境 不用改,直接finish 复制原来项目的 依赖的包也复制过来 web.xml配置前端控制器 springmvc的配置文件 先创建对应的文件夹 分别创建java和resour ...

  3. 3、kubeadm初始化Kubernetes集群

    同步时间 # ntpdate time.nist.gov k8s集群组成 k8s部署环境  https://kubernetes.io/docs/setup/independent/create-cl ...

  4. 【D3D12学习手记】The Command Queue and Command Lists

    GPU有一个命令队列,CPU通过Direct3D API将命令提交到队列里来使用命令列表(command lists),如下图.当一套命令(a set of commands)已经被提交到命令队列,他 ...

  5. Ansible 直接请求远程主机执行命令

    ansible -all -i host1.abc.com, -m ping #注意主机名称后面的逗号,就算一台主机也是必须的.多台主机可以用逗号隔开 ansible all -i host1.abc ...

  6. PJzhang:QQ输入法用户许可协议和隐私政策阅读

    猫宁!!! 参考链接:http://qq.pinyin.cn/ 中国用户量最大的输入法是搜狗输入法,百度输入法也有上亿的用户量. 我下载了7个输入法,查看他们的用户许可协议和隐私政策情况.这里说的都是 ...

  7. seq2seq&attention图解

  8. 【CUDA开发】Thrust库

    Thrust库从C++的STL中得到灵感,将最简单的类似于STL的结构放在Thrust库中,比如STL中的vector.此外,Thrust库还包含STL中的算法和迭代器.        Thrust函 ...

  9. so的封装和使用

    背景 在linux平台下,要实现函数的封装,一般采用的是so动态库的形式 实现了函数的封装就意味着实现过程的隐藏 可以实现跨平台和跨语言的使用 实施步骤 生成so动态库 编写相应的c文件代码,实现函数 ...

  10. 10分钟学会web通讯的四种方式,短轮询、长轮询(comet)、长连接(SSE)、WebSocket

    一般看到标题我们一般会产生下面几个问题??? 什么是短轮询? 什么是长轮询? 长连接又是什么? wensocket怎么实现呢? 他们都能实现web通讯,区别在哪呢,哪个好用呢? 接下来我们就一个个来了 ...