Python通过Zabbix API获得数据
Zabbix API查询:https://www.zabbix.com/documentation/2.0/manual/appendix/api/api
import json,urllib2 from urllib2 import Request, urlopen, URLError, HTTPError #url and url header #zabbix的api 地址,用户名,密码,这里修改为自己实际的参数 zabbix_url="http://10.16.2.40/zabbix/api_jsonrpc.php" zabbix_header = {"Content-Type":"application/json"} zabbix_user = "admin" zabbix_pass = "password" auth_code = ""#auth user and password #用户认证信息的部分,最终的目的是得到一个SESSIONID #这里是生成一个json格式的数据,用户名和密码 auth_data = json.dumps({"jsonrpc":"2.0","method":"user.login","params":{"user":zabbix_user,"password":zabbix_pass},"id":0})# create request object request = urllib2.Request(zabbix_url,auth_data)for key in zabbix_header:request.add_header(key,zabbix_header[key])try:result = urllib2.urlopen(request) #对于出错新的处理 except HTTPError, e:print 'The server couldn\'t fulfill the request, Error code: ', e.code except URLError, e:print 'We failed to reach a server.Reason: ', e.reason else:response=json.loads(result.read())print responseresult.close()#判断SESSIONID是否在返回的数据中 if 'result' in response:auth_code=response['result'] else:print response['error']['data']# request json #用得到的SESSIONID去通过验证,获取主机的信息(用http.get方法) if len(auth_code) <> 0:host_list=[]get_host_data = json.dumps({"jsonrpc":"2.0","method":"host.get","params":{"output": "extend",},"auth":auth_code,"id":1,}) # create request objectrequest = urllib2.Request(zabbix_url,get_host_data)for key in zabbix_header:request.add_header(key,zabbix_header[key])# get host listtry:result = urllib2.urlopen(request)except URLError as e:if hasattr(e, 'reason'):print 'We failed to reach a server.'print 'Reason: ', e.reasonelif hasattr(e, 'code'):print 'The server could not fulfill the request.'print 'Error code: ', e.codeelse:response = json.loads(result.read())result.close() #将所有的主机信息显示出来for r in response['result']:# print r['hostid'],r['host']host_list.append(r['hostid'])#显示主机的个数print "Number Of Hosts: ", len(host_list) #返回所有hostid==10251的主机,并只查询name包含“CPU Usage”字段的item,并按照name排序get_item_data = json.dumps({"jsonrpc": "2.0","method": "item.get","params": {"output": "extend","hostids": "10251""search": {#"key_": 'perf_counter[\Processor Information(_Total)\% Processor Time]'"name": "CPU Usage"},"sortfield": "name"},"auth": auth_code,"id": 1})request = urllib2.Request(zabbix_url,get_item_data)for key in zabbix_header:request.add_header(key,zabbix_header[key])result = urllib2.urlopen(request)try:result = urllib2.urlopen(request) response = json.loads(result.read())for r in response['result']:print r['itemid'],r['hostid']result.close() except:pass#通过hostid获取相应的graphidget_graph_data = json.dumps({"jsonrpc": "2.0","method": "graphitem.get","params": {"output": "extend","expandData": 1,"itemids": "33712"},"auth": auth_code,"id": 1})request = urllib2.Request(zabbix_url,get_graph_data)for key in zabbix_header:request.add_header(key,zabbix_header[key])result = urllib2.urlopen(request)try:result = urllib2.urlopen(request) response = json.loads(result.read())for r in response['result']:print r['itemid'],r['graphid']result.close() except:pass
参考:http://itnihao.blog.51cto.com/1741976/1343524
转载于:https://www.cnblogs.com/dreamer-fish/p/5485869.html
Python通过Zabbix API获得数据相关推荐
- python调用zabbix api接口实时展示数据
近日公司准备自已做一个运维管理平台,其中的监控部分,打算调用zabbix api接口来进行展示. 经过思考之后,计划获取如下内容: 1. 获得认证密钥 2. 获取zabbix所有的主机组 3. ...
- python调用api做用户登录认证_(二)Python调用Zabbix api之从入门到放弃——登录并获取身份验证令牌...
x.x.x.x可能是你的IP或者域名 访问流程概览: 1.首先登录 2.认证成功后zabbix server返回一个token 3.带着这个token去访问各种数据,做各种操作 4.完毕! 一.用RE ...
- Python使用pyzabbix调用Zabbix API
Python使用pyzabbix调用Zabbix API Zabbix是一个开源的提供分布式系统监视以及网络监视功能的解决方案. Zabbix能监视各种网络参数,监控服务器系统的安全运营状况,并提供灵 ...
- python调用lib_基于python调用libvirt API
基于python调用libvirt API 1.程序代码 #!/usr/bin/python import libvirt import sys def createConnection(): con ...
- 平台api对数据收集的影响_收集您的数据不是那么怪异的api
平台api对数据收集的影响 A data analytics cycle starts with gathering and extraction. I hope my previous blog g ...
- python调用zabbixapi接口_python3 + zabbix api 的使用
喜欢需要理由吗?需要吗?当然需要,zabbix的那么多功能足以让你喜欢她,现在还有zabbix API,zabbix真让我疯了,太牛逼了,太让人喜欢了.有zabbix API我们可以做很多,自己开发w ...
- zabbix api python使用
API使用 zabbix官网文档:https://www.zabbix.com/documentation/2.2/manual/api, Zabbix API是基于JSON-RPC 2.0规格,具体 ...
- 使用Python调用Flickr API抓取图片数据
Flickr是雅虎旗下的图片分享网站,上面有全世界网友分享的大量精彩图片,被认为是专业的图片网站.其API也很友好,可以实现多种功能.这里我使用了Python调用其API获得了大量的照片数据.需要注意 ...
- 执行Python语言能不能破解通达信接口api股票数据?
最近有很多投资用户在研究软件选股与自动交易,所以需要获取股票的每日数据,那么使用Python怎样破解通达信接口api股票数据呢?下面小编就简要介绍从通达信的交易软件中获取股票数据的过程,即使用Pyth ...
最新文章
- 使用μJava进行变异体测试
- 算法与数据结构 - 滑动窗口
- mall整合RabbitMQ实现延迟消息
- 跳槽到月薪三万的公司,但是不到半年就后悔了
- Bzoj4011 [HNOI2015]落忆枫音
- springBoot(5)---单元测试,全局异常
- iOS系统字体大全,iOS系统中所有的字体
- 公司电脑加域之后用不了USB但是可以用鼠标键盘得解决方法
- ps怎么做玻璃破碎碎片飞溅效果
- 不要迷恋哥,哥只是个传说 - 生活至上,美容至尚!
- 追寻宇宙的形状--庞加莱猜想
- pytorch中维度dim的理解
- Java-Aspose实现Word文字替换(本地储存或浏览器下载)
- 深圳面试一周记录——.NET(B/S)开发
- JAVA-【1】配置
- 怎么设置不同页的页眉
- PDF文件怎么拆分?看完就会了!
- 数值计算之 插值法(5)分段插值,埃尔米特插值
- 【JAVA类与对象----5(static、代码块)】
- delphi向控件发送消息,全选、复制、黏贴,sendmessage
热门文章
- 分治法在排序算法中的应用(JAVA)--归并排序
- 编码是件有逻辑的事情
- 中信银行MySQL面试_【深圳中信银行信用卡中心面试】面试题_面试经验_面试流程-看准网...
- imgaug批量椒盐噪声 python_python手写给图像加椒盐噪声和高斯噪声
- python调用numpy视频_Numpy的文件输入和输出使用
- mysql四种事务级别_【MySQL 知识】四种事务隔离级别
- java中Date类、DateFormat及SimpleDateFormat简介
- DQL -- 数据查询语言(查询不会修改数据库表记录)
- 2021年京东小魔方年中新品消费趋势报告
- 产品经理欲哭无泪的瞬间(太真实了)