zabbix 二次开发之调用api接口获取历史数据

简介:

     前面一篇写了数据同步和模板绑定,zabbix其实能做的事还蛮多。

    zabbix提供了一个非常好的前端展示页面,但是我们总觉得不太好看;我们可以进一步调用他的api通过获取每一个监控项的历史数据,然后打到我们的监控平台上;主流的有rrdtool方式和highcharts方式;rrdtool略显复杂,还要学习rrdtool之类的几个聚合方式。相对而言我更喜欢highcharts的方式,出图简便,只需要提供数据和时间戳组成的json数据就够了,之前也介绍过具体;那么这里我们先拿出我们想要的数据。


    zabbix的api读取方式如下:

    1、通过post方式传入用户名密码获取token秘钥。

    2、获取所有主机的hostid和name。

    3、通过hostid获取每个监控项目的item和对应的key。

    4、通过传入的itemid获取相对应的历史数据。


以上步骤都是需要传入token才能执行操作,pipy已经提供了第三方插件,让我们省去了这一部分的操作;具体参考:https://pypi.python.org/pypi/zabbix-client/0.1.1;zabbix api文档请参考官方文档。想多写点代码可以看小马哥的博客:http://www.xiaomastack.com/2014/08/17/rrdtool-1/。



1、获取主机的代码:

1
2
3
4
5
6
     def  get_hosts( self ):
         data  =  {
         "output" : [ "hostid" "name" ]
         }
         ret  =  self .zb.host.get( * * data)
         return  ret

执行结果:

wKiom1bs2ZeQ8h4-AAAWp5vQUCg265.png


2、获取每个主机对应的监控项和监控项具体名称:

1
2
3
4
5
6
7
      def  item_get( self , hostids = "10109" ):
             data  =  {
            "output" :[ "itemids" , "key_" ],
            "hostids" : hostids,
             }
             ret  =  self .zb.item.get( * * data)
             return  ret

执行结果:

wKiom1bs2kCR8dxUAACJFCe8cpY529.png


3、获取对应的历史数据:

1
2
3
4
5
6
7
8
9
10
     def  history_get( self , itemid, i ,limit = 10 ):
         data  =  "output" "extend" ,
           "history" : i,
           "itemids" : itemid,
           "sortfield" "clock" ,
           "sortorder" "DESC" ,
           "limit" : limit
           }
         ret  =  self .zb.history.get( * * data)
         return  ret


wKiom1bs2rCxd8hfAABJdtliRu4984.png


具体代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from  zabbix_client  import  ZabbixServerProxy
class  Zabbix():
     def  __init__( self ):
         self .zb  =  ZabbixServerProxy( "http://192.168.10.100/zabbix" )
         self .zb.user.login(user = "Admin" , password = "zabbix" )
     def  get_hosts( self ):
         data  =  {
         "output" : [ "hostid" "name" ]
         }
         ret  =  self .zb.host.get( * * data)
         return  ret
     def  item_get( self , hostids = "10109" ):
         data  =  {
        "output" :[ "itemids" , "key_" ],
        "hostids" : hostids,
         }
         ret  =  self .zb.item.get( * * data)
         return  ret
     def  history_get( self , itemid, i ,limit = 10 ):
     ###history参数中有0,1,2,3,4表示:float,string,log,integer,text
         data  =  "output" "extend" ,
           "history" : i,
           "itemids" : itemid,
           "sortfield" "clock" ,
           "sortorder" "DESC" ,
           "limit" : limit
           }
         ret  =  self .zb.history.get( * * data)
         return  ret
if  __name__  = =  "__main__" :
     zabbix_server  =  Zabbix()
#    print zabbix_server.get_hosts()
     print  zabbix_server.history_get( "24519" , 3 )









本文转自 小罗ge11 51CTO博客,原文链接:http://blog.51cto.com/xiaoluoge/1752848,如需转载请自行联系原作者
目录
相关文章
|
17天前
|
人工智能 自然语言处理 API
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
谷歌推出的Multimodal Live API是一个支持多模态交互、低延迟实时互动的AI接口,能够处理文本、音频和视频输入,提供自然流畅的对话体验,适用于多种应用场景。
67 3
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
|
4天前
|
JSON 安全 API
淘宝商品详情API接口(item get pro接口概述)
淘宝商品详情API接口旨在帮助开发者获取淘宝商品的详细信息,包括商品标题、描述、价格、库存、销量、评价等。这些信息对于电商企业而言具有极高的价值,可用于商品信息展示、市场分析、价格比较等多种应用场景。
|
3天前
|
供应链 监控 API
1688.item_search_shop API:开启电商数据新纪元
1688.item_search_shop API是阿里巴巴1688平台提供的核心接口之一,支持根据关键词搜索指定店铺的商品,并获取商品详情、图片、价格等信息。该API允许设定搜索结果排序方式,如按销量或价格排序,满足不同需求。开发者可将其集成到电商应用中,提升用户体验;市场分析人员可利用其进行趋势和竞争对手分析;供应链管理人员则能监控库存,优化策略。示例代码展示了如何使用Python调用该API,帮助开发者快速上手。这一API的推出标志着B2B电商领域商品搜索技术的重要进步,推动行业向更高效、智能的方向发展。
|
6天前
|
数据采集 数据可视化 前端开发
怎么通过API获取电竞赛事实时数据
选择合适的电竞数据API是开发电竞应用的关键。主流API包括OP.GG、Liquipedia、Stratz、Riot Games和熊猫比分,涵盖LOL、DOTA2等游戏的实时数据。注册并获取API密钥后,需仔细阅读文档,了解资源、请求方法、必需参数及响应格式。编写代码调用API时,注意优化请求频率,避免封禁。最后,通过Web界面或可视化工具展示数据,如React/D3.js、Tableau等。示例代码展示了如何使用熊猫比分API获取即将开始的比赛信息。
|
12天前
|
前端开发 API 数据库
Next 编写接口api
Next 编写接口api
|
13天前
|
数据采集 监控 数据挖掘
常用电商商品数据API接口(item get)概述,数据分析以及上货
电商商品数据API接口(item get)是电商平台上用于提供商品详细信息的接口。这些接口允许开发者或系统以编程方式获取商品的详细信息,包括但不限于商品的标题、价格、库存、图片、销量、规格参数、用户评价等。这些信息对于电商业务来说至关重要,是商品数据分析、价格监控、上货策略制定等工作的基础。
|
18天前
|
XML JSON 缓存
阿里巴巴商品详情数据接口(alibaba.item_get) 丨阿里巴巴 API 实时接口指南
阿里巴巴商品详情数据接口(alibaba.item_get)允许商家通过API获取商品的详细信息,包括标题、描述、价格、销量、评价等。主要参数为商品ID(num_iid),支持多种返回数据格式,如json、xml等,便于开发者根据需求选择。使用前需注册并获得App Key与App Secret,注意遵守使用规范。
|
17天前
|
JSON API 开发者
淘宝买家秀数据接口(taobao.item_review_show)丨淘宝 API 实时接口指南
淘宝买家秀数据接口(taobao.item_review_show)可获取买家上传的图片、视频、评论等“买家秀”内容,为潜在买家提供真实参考,帮助商家优化产品和营销策略。使用前需注册开发者账号,构建请求URL并发送GET请求,解析响应数据。调用时需遵守平台规定,保护用户隐私,确保内容真实性。
|
17天前
|
搜索推荐 数据挖掘 API
淘宝天猫商品评论数据接口丨淘宝 API 实时接口指南
淘宝天猫商品评论数据接口(Taobao.item_review)提供全面的评论信息,包括文字、图片、视频评论、评分、追评等,支持实时更新和高效筛选。用户可基于此接口进行数据分析,支持情感分析、用户画像构建等,同时确保数据使用的合规性和安全性。使用步骤包括注册开发者账号、创建应用获取 API 密钥、发送 API 请求并解析返回数据。适用于电商商家、市场分析人员和消费者。
|
27天前
|
JSON API 开发工具
淘宝实时 API 接口丨淘宝商品详情接口(Taobao.item_get)
淘宝商品详情接口(Taobao.item_get)允许开发者获取商品的详细信息,包括基本信息、描述、卖家资料、图片、属性及销售情况等。开发者需注册账号、创建应用并获取API密钥,通过构建请求获取JSON格式数据,注意遵守平台规则,合理使用接口,确保数据准确性和时效性。

推荐镜像

更多