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获得数据相关推荐

  1. python调用zabbix api接口实时展示数据

    近日公司准备自已做一个运维管理平台,其中的监控部分,打算调用zabbix api接口来进行展示. 经过思考之后,计划获取如下内容: 1.  获得认证密钥 2.  获取zabbix所有的主机组 3.  ...

  2. python调用api做用户登录认证_(二)Python调用Zabbix api之从入门到放弃——登录并获取身份验证令牌...

    x.x.x.x可能是你的IP或者域名 访问流程概览: 1.首先登录 2.认证成功后zabbix server返回一个token 3.带着这个token去访问各种数据,做各种操作 4.完毕! 一.用RE ...

  3. Python使用pyzabbix调用Zabbix API

    Python使用pyzabbix调用Zabbix API Zabbix是一个开源的提供分布式系统监视以及网络监视功能的解决方案. Zabbix能监视各种网络参数,监控服务器系统的安全运营状况,并提供灵 ...

  4. python调用lib_基于python调用libvirt API

    基于python调用libvirt API 1.程序代码 #!/usr/bin/python import libvirt import sys def createConnection(): con ...

  5. 平台api对数据收集的影响_收集您的数据不是那么怪异的api

    平台api对数据收集的影响 A data analytics cycle starts with gathering and extraction. I hope my previous blog g ...

  6. python调用zabbixapi接口_python3 + zabbix api 的使用

    喜欢需要理由吗?需要吗?当然需要,zabbix的那么多功能足以让你喜欢她,现在还有zabbix API,zabbix真让我疯了,太牛逼了,太让人喜欢了.有zabbix API我们可以做很多,自己开发w ...

  7. zabbix api python使用

    API使用 zabbix官网文档:https://www.zabbix.com/documentation/2.2/manual/api, Zabbix API是基于JSON-RPC 2.0规格,具体 ...

  8. 使用Python调用Flickr API抓取图片数据

    Flickr是雅虎旗下的图片分享网站,上面有全世界网友分享的大量精彩图片,被认为是专业的图片网站.其API也很友好,可以实现多种功能.这里我使用了Python调用其API获得了大量的照片数据.需要注意 ...

  9. 执行Python语言能不能破解通达信接口api股票数据?

    最近有很多投资用户在研究软件选股与自动交易,所以需要获取股票的每日数据,那么使用Python怎样破解通达信接口api股票数据呢?下面小编就简要介绍从通达信的交易软件中获取股票数据的过程,即使用Pyth ...

最新文章

  1. 使用μJava进行变异体测试
  2. 算法与数据结构 - 滑动窗口
  3. mall整合RabbitMQ实现延迟消息
  4. 跳槽到月薪三万的公司,但是不到半年就后悔了
  5. Bzoj4011 [HNOI2015]落忆枫音
  6. springBoot(5)---单元测试,全局异常
  7. iOS系统字体大全,iOS系统中所有的字体
  8. 公司电脑加域之后用不了USB但是可以用鼠标键盘得解决方法
  9. ps怎么做玻璃破碎碎片飞溅效果
  10. 不要迷恋哥,哥只是个传说 - 生活至上,美容至尚!
  11. 追寻宇宙的形状--庞加莱猜想
  12. pytorch中维度dim的理解
  13. Java-Aspose实现Word文字替换(本地储存或浏览器下载)
  14. 深圳面试一周记录——.NET(B/S)开发
  15. JAVA-【1】配置
  16. 怎么设置不同页的页眉
  17. PDF文件怎么拆分?看完就会了!
  18. 数值计算之 插值法(5)分段插值,埃尔米特插值
  19. 【JAVA类与对象----5(static、代码块)】
  20. delphi向控件发送消息,全选、复制、黏贴,sendmessage

热门文章

  1. 分治法在排序算法中的应用(JAVA)--归并排序
  2. 编码是件有逻辑的事情
  3. 中信银行MySQL面试_【深圳中信银行信用卡中心面试】面试题_面试经验_面试流程-看准网...
  4. imgaug批量椒盐噪声 python_python手写给图像加椒盐噪声和高斯噪声
  5. python调用numpy视频_Numpy的文件输入和输出使用
  6. mysql四种事务级别_【MySQL 知识】四种事务隔离级别
  7. java中Date类、DateFormat及SimpleDateFormat简介
  8. DQL -- 数据查询语言(查询不会修改数据库表记录)
  9. 2021年京东小魔方年中新品消费趋势报告
  10. 产品经理欲哭无泪的瞬间(太真实了)