利用ZABBIX的RPC-JSON作API扩展应用示例
计划将ZABBIX的一些状态可以在另一个应用的显示GRAPH及链接。
故而在网上找了几个文档,作了一个测试。
https://www.zabbix.com/documentation/2.4/manual/api/reference/graph/get
http://www.xue163.com/334/1654/3340800.html
#!/usr/bin/env python
#coding: utf-8
import requests
import json
class zabbixtools:
def __init__(self):
self.url = "http://10.1.1.1/api_jsonrpc.php"
self.headers = {"Content-Type": "application/json"}
self.authID = self.user_login()
def user_login(self):
data = {
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "guest",
"password": "xxxxxxxx"
},
"id": 0
}
try:
response = requests.post(
self.url, data=json.dumps(data), headers=self.headers).json()
except requests.RequestException as e:
print(e)
else:
authID = response['result']
return authID
def host_get(self,hostname):
data = {
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": "extend",
"filter": {
"host": [hostname,]
}
},
"auth": self.authID,
"id": 1
}
try:
response = requests.post(
self.url, data=json.dumps(data), headers=self.headers).json()
except requests.RequestException as e:
print(e)
else:
hostID = response['result'][0]['hostid']
return hostID
def graph_get(self,hostid):
data = {
"jsonrpc": "2.0",
"method": "graph.get",
"params": {
"output": "extend",
"hostids": hostid,
"sortfield": "name"
},
"auth": self.authID,
"id": 2
}
try:
response = requests.post(
self.url, data=json.dumps(data), headers=self.headers).json()
except requests.RequestException as e:
print(e)
else:
graphID = []
for item in response['result']:
graph_dict = {}
graph_dict[item['graphid']] = item['name']
graphID.append(graph_dict)
#print graphID
return graphID
def main():
test = zabbixtools()
hostID = test.host_get("cnsz032955")
graphID = test.graph_get(hostID)
for graph_item in graphID:
for key in graph_item:
print graph_item[key],": http://10.1.1.1/charts.php?hostid={hostID}&graphid={graphID}".format(hostID=hostID, graphID=key)
if __name__ == "__main__":
main()
载图:


利用ZABBIX的RPC-JSON作API扩展应用示例的更多相关文章
- 利用 Django REST framework 编写 RESTful API
利用 Django REST framework 编写 RESTful API Updateat 2015/12/3: 增加 filter 最近在玩 Django,不得不说 rest_framewor ...
- Spark RDD API扩展开发
原文链接: Spark RDD API扩展开发(1) Spark RDD API扩展开发(2):自定义RDD 我们都知道,Apache Spark内置了很多操作数据的API.但是很多时候,当我们在现实 ...
- 利用JavaScriptSerializer类 进行Json对象的序列化和反序列化和过滤
项目下载:JavaScriptSerializer_对JSON对象序列化与反序列化及过滤器 利用<JavascriptSerializer类> 进行Json对象的序列化和反序列化 1. 首 ...
- 利用Vert.x构建简单的API 服务、分布式服务
目前已经使用Vertx已经一年多了,虽然没有太多的造诣,但也已在项目中推广了下:从最初的vertx搭建web服务,到项目上线运营,还算比较稳定.再到后来尝试搭建基于vertx的分布式服务,一路下来也积 ...
- Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式
Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Py ...
- 16 利用Zabbix完成windows监控
点击返回:自学Zabbix之路 16 利用Zabbix完成windows监控 1.安装zabbix_agentd 1.1.下载zabbix_agentd监控客户端软件安装包(windows操作系统客户 ...
- 17 利用Zabbix完成VMare监控
点击返回:自学Zabbix之路 17 利用Zabbix完成VMare监控 最近在研究通过Zabbix监控VMware vSphere,Zabbix Documentation 3.0 从文档中我们看到 ...
- 利用zabbix监控oracle数据库
一.概述 zabbix是一款非常强大,同时也是应用最为广泛的开源监控软件,本文将给大家介绍如何利用zabbix监控oracle数据库. 二.环境介绍 以下是我安装的环境,实际部署时并不需要跟我的环境一 ...
- DataTable和DataRow利用反射直接转换为Model对象的扩展方法类
DataTable和DataRow利用反射直接转换为Model对象的扩展方法类 /// <summary> /// 类 说 明:给DataTable和DataRow扩展方法,直接转换为 ...
随机推荐
- $.parseJSON 将json 对象转换为array
项目中,通过json2.js的JSON.parse(jsonstr)的时候,整个返回值是object $.parseJSON(jsonstr)返回的也是object 而我想要的是array(objec ...
- JavaScript入门(10)
一.Window对象 window对象是BOM的核心,window对象指当前的浏览器窗口 window对象方法 二.JavaScript计时器 在JavaScript中,我们可以在设定的时间间隔之后来 ...
- 使用javascript获取gridview中的textbox值
<body> <form id="form1" runat="server"> <div> <asp:gridview ...
- Objective-C 学习笔记(Day 1)
-------------------------------------------- Hello World //引入头文件 //c中的引入头文件的方式 //#include <stdio. ...
- C#break、continue、return、goto
1.break break语句会使运行的程序立即退出包含在其中的最内层循环(结束此次循环且结束该循环控制体)或者switch语句 ; ; j < ; j++) { i++; )break; Co ...
- JavaScript学习笔记(9)——JavaScript语法之流程控制
javascript的流程控制语句与大部分类c语言一致.大致如下: 一.if if...else if...else if....else if....else..... 二.switch(变量){ ...
- 给div设置一个关闭按钮.
造轮子好难. 用惯了框架提供的组件,某天自己要做个伪组件(或者在他人创建的页面效果上添加新功能)会发现很难. 所以,碰到了,就一定要做下记录.以供日后查阅. 如图,弹出DIV右上角的关闭按钮是我此次添 ...
- Poj 1054 The Troublesome Frog / OpenJudge 2812 恼人的青蛙
1.链接地址: http://poj.org/problem?id=1054 http://bailian.openjudge.cn/practice/2812 2.题目: 总时间限制: 10000m ...
- Linux – RedHat7 / CentOS 7 忘记root密码修改
1.(a) 开机出现grub boot loader 开机选项菜单时,立即点击键盘任意鍵,boot loader 会暂停. (b) 按下’e’,编辑选项菜单(c) 移动上下鍵至linux16 核心命令 ...
- C# 创建XML文档
有些时候我们需要生成一个xml文档作为数据交换的容器.当然我们用拼接字符串的方法来进行构建xml,但是这种方法虽然简单有效,但是如果xml文档结构过于复杂,拼接字符串会让人眼花缭乱.这时候就需要C#给 ...