利用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扩展方法,直接转换为 ...
随机推荐
- 电脑小白自学软件编程-.Net语法基础之循环语句,纯技巧干货
写代码也要读书,爱全栈,更爱生活.每日更新原创IT编程技术及日常实用视频. 我们的目标是:玩得转服务器Web开发,搞得懂移动端,电脑客户端更是不在话下. 本教程是基础教程,适合任何有志于学习软件开发的 ...
- 1.1、Mybatis一级缓存测试
package me.gacl.test; import me.gacl.domain.User; import me.gacl.util.MyBatisUtil; import org.apache ...
- JavaScript - Base64 编码解码
以下代码摘自:http://cryptojs.altervista.org/encoding/Base64.html function base64_encode(str) { if (window. ...
- 面试相关的技术问题--WEB基础
1. servlet生命周期.各个方法 和工作原理servlet的生命周期包括三个阶段,分别是:初始化阶段:调用init()方法(整个生命周期内只被调用一次)响应客户端请求阶段:service()终止 ...
- asp生成静态HTML(动态读取)
这样的代码多用于我们没有实现设计生成静态的功能,但又想临时将一些动态页面生成静态的,直接获取动态内容并保存为静态的 复制代码代码如下: <!--#include file="admin ...
- JAVA访问配置文件总结
一.全局配置的简单 propertie 文件实现 package com.testgs.utils; import java.util.*; import java.io.*; public fina ...
- $.get
$('#choice').change(function() { if($(this).val() != '') { $.get( 'data.php', { what: $(this).val() ...
- ###学习《Effective C++》
开源中国. #@date: 2014-06-16 #@author: gerui #@email: forgerui@gmail.com 前几天买了好几本书,其中有一本是<Effective C ...
- jQuery 源码分析6: jQuery 基本静态方法(二)
jQuery.extend({ // 遍历obj的所有值 // args 这参数只能内部调用的会用到 // 注意到,如果回调函数调用失败会直接跳出并中止遍历 // 当有args数组时,使用apply调 ...
- 用C#开发一个WinForm版的批量图片压缩工具
我们在实际项目开发过程中,曾经遇到过一个需求,就是要开发一个对大量图片进行整理(删除掉一些不符合要求的图片).归类(根据格式进行分类,比如jpg格式.bmp格式等).压缩(因为有的图片很大很占空间,看 ...