利用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": "",
"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的图形加上了!
最新文章
- nandflash驱动程序编写
- AssetsManagerEx 组件使用说明
- Facebook开源动画库 POP-POPBasicAnimation运用
- STL---deque(双端队列)
- 【每日学习】Apache重写未开启,导致The requested URL /xxxx.html was not found on this server
- freeswitch 1.4
- FusionCharts for Flex报错
- JDBC学习笔记(10)——调用函数&;存储过程
- 面向对象设计原则OO
- asp.net 页面上传文件控件后台代码Request.Files获取不到
- 同步github工程gitcafe
- <;CEPH中国-深圳站-技术交流会演讲PPT>; YY云平台Ceph Block应用实践 &; 我写的书 《CEPH实战》
- 【Android Studio安装部署系列】四、Android SDK目录和作用分析
- mongodb怎么创建数据库和配置用户
- 3.2.1 SpringMVC入门
- MySQL系列详解一:MySQL&;&;多实例安装-技术流ken
- c++ CreateProcess调用dos命令
- 使用 maven-assembly-plugin 打包项目
- NPM安装依赖速度慢问题
- Sencha Touch 扩展集合
热门文章
- 解决 ElementTree 无法处理中文
- Gradle DSL method not found: &#39;compile()&#39;
- spring boot系列(一)spring boot 初识
- IDEA工具上传项目报:Push rejected: Push to origin/master was rejected
- MongoDB 走马观花(全面解读篇)(转载)
- 微信小程序省市区联动,自定义地区字典
- BUGKU (Take the maze)
- Django-ORM之ManyToManyField的使用-多对多关系
- android webkit 初始化流程
- Ubuntu下借助URLOS实现快速安装DzzOffice企业办公套件