Zabbix3.0 API调用
Zabbix API 是什么?
API简单来说是服务对外开放的一个接口,用户通过该接口传递请求,完成操作。API的背后是一组方法的集合,这些方法实现了服务对应的不同功能,调用API实际上就是换了一种方式对服务进行操作,这种方式相较于Web操作更加高效,同时也容易集成到OMS平台上进行Zabbix功能的远程调用。Zabbix API属于WebAPI,调用的过程简单理解就是向一个URL提交一份数据。Zabbix API采用Json-rpc协议提供远程服务的调用,即用户发送包含指定参数的Json格式的调用信息给Server,Server返回包含指定参数的Json格式的答复信息给用户。Zabbix API还定义了一组方法和参数来供用户调用Zabbix对应的功能,比如user.login、host.get等,这背后的实现实际上是Zabbix代码中对应的一组对象和函数。
Zabbix API官方文档:https://www.zabbix.com/documentation/3.0/manual/api
Json-rpc轻量级远程调用协议
RPC叫远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。简单来说,RPC协议定义了两组信息,分别是调用信息和答复信息,客户端和服务端都按照RPC协议进行通信,调用服务。问题在于数据采用什么格式传输呢?
Json是一种轻量级的数据交换格式,不同的语言有相应的Json解析器负责将Json格式转换为自己的数据结构。Json叫JS对象标记,继承了JavaScript的语法,但从语法形式上更像Python,区别在于Python中的字典在Json中叫对象。
Json-rpc是基于json格式的远程调用协议,简答来说就是采用了Json作为数据交换格式的RPC协议。Json-rpc协议在调用和答复信息中规定了一些参数,比如method,params,id,request,error等。
我们可以总结一下协议是什么?协议就是一组所有人都遵从的行为规范,互联网中的大部分协议其实都是在规定不同对象之间如何通信,如何交互,如何传输数据等。
理解Zabbix API对应的调用和答复信息及调用流程


这是Json格式的调用信息和答复信息,红色框内的Key是Json-rpc协议规定的必须要有的参数,蓝线部分是zabbix api内部定义的方法。

我们使用curl将Json格式的调用信息POST给API对应的URL,

服务器执行了我们的请求,将答复信息发送回来,从而完成整个的调用过程。
建立API的思维
个人理解,API最大的好处有两点:一是连接世界,二是避免重复。
我们身处的时代到处是分享、转载、评论,这里面的核心都是API的使用,可以说API无处不在。同时对于产品设计而言,API既可以丰富产品功能,又能使开发更加方便,从此造汽车不用造轮子,盖房子不用烧砖瓦。另一个方面,API可以也有其商业价值,既可以付费获得一定的收入,也可以免费获得广泛的传播。
API,API,干啥都用API。
Zabbix3.0 API调用的更多相关文章
- Facebook Oauth2.0 API调用方法
这些天搞了下Facebook API的东东,在官方网站下弄了一些接口,下面简单的把facebook的调用流程以及常用接口书序一下 :-) 当然在使用facebook api之前要有facebook账 ...
- 天地图,js 4.0 api,简单调用,高手请绕行
本文介绍使用天地图 js4.0 api,实现地图显示后台gps分布情况: 主要借用H5 GPS获取,利用天地图的背景展示: 效果图如下: 第一步,通过采集网页,手机gps数据,录入后台数据库:界面如下 ...
- Hadoop-2.6.0上调用C的API实现相似云盘的功能
Hadoop-2.6.0上调用C的API实现类似云盘的功能(上传.下载.删除,重命名) 測试系统:CentOS6.6, hadoop-2.6.0 本次測试是调用hadoop下的C的API来訪问HDFS ...
- This server is in the failed servers list: localhost/127.0.0.1:16000 启动hbase api调用错误
api 调用发现错误 Mon Nov 18 23:04:31 CST 2019, RpcRetryingCaller{globalStartTime=1574089469858, pause=100, ...
- Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
概述 上一篇我们介绍了如何使用vue resource处理HTTP请求,结合服务端的REST API,就能够很容易地构建一个增删查改应用.这个应用始终遗留了一个问题,Web App在访问REST AP ...
- zabbix3.0.4 邮件告警详细配置
sendEmail是一个轻量级,命令行的SMTP邮件客户端.如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php.bash perl和web ...
- FormatMessage与GetLastError配合使用,排查windows api调用过程中的错误
前一段时间在学习windows api调用过程中,遇到过一些调用错误或者程序没能显示预期的结果,或者直接出现vc运行时错误. 这对新手来说是司空见惯的事,因为不太熟悉难免会出错,出错的信息如果能显示很 ...
- zabbix3.0安装教程
一.Zabbix介绍 zabbix 简介 Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费 ...
- Sphinx中文分词安装配置及API调用
这几天项目中需要重新做一个关于商品的全文搜索功能,于是想到了用Sphinx,因为需要中文分词,所以选择了Sphinx for chinese,当然你也可以选择coreseek,建议这两个中选择一个,暂 ...
随机推荐
- BZOJ4881 线段游戏(二分图+树状数组/动态规划+线段树)
相当于将线段划分成两个集合使集合内线段不相交,并且可以发现线段相交等价于逆序对.也即要将原序列划分成两个单增序列.由dilworth定理,如果存在长度>=3的单减子序列,无解,可以先判掉. 这个 ...
- vue使用过程中的一些小技巧
这些也是自己平时项目中遇到过的一些问题,看到有人整理了出来,也就转载保存一下 文章内容总结: 组件style的scoped Vue 数组/对象更新 视图不更新 vue filters 过滤器的使用 列 ...
- Java判断一个字符串str不为空:方法及时间效率
判断一个字符串str不为空的方法有: 1.str == null; 2.”“.equals(str): 3.str.length <= 0; 4.str.isEmpty(): 注意:length ...
- 怎样才能高效地使用JQuery
1. 使用最新版本的jQuery jQuery的版本更新很快,你应该总是使用最新的版本.因为新版本会改进性能,还有很多新功能.下面就来看看,不同版本的jQuery性能差异有多大.这里是三条最常见的jQ ...
- Android Monkey 脚本编写与检查内存泄露
一.Monkey脚本编写 1.Monkey脚本格式 脚本优势: 简单快捷,不需要接触任何工具,只需要一个记事本文件 脚本缺点: 实现坐标.按键等基本操作的相应步骤,顺序脚本无逻辑性 脚本源码: \de ...
- 手脱tElock 0.98b1 -> tE!
声明: 只为纪录自己的脱壳历程,高手勿喷 第一种:两次内存法 注: ①这是在win7x32系统上运行的脱壳,所以可能地址不同 ②修复的时候用等级三修复,最后修复不了的剪切掉然后转存合一正常运行,已测试 ...
- ACE服务端编程2:ACE跨平台之数据类型和宽字符
ACE网络库的主要优势之一就是跨平台,ACE提供了操作系统API和编译器级别的跨平台解决方法,使开发人员不用再去关心操作系统和编译器的差异,但因此也带来了ACE的复杂性. ACE网络库的组织结构主要分 ...
- Python/spss-多元回归建模-共线性诊断2(推荐AA)
sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...
- Java常量池详解之Integer缓存
一个Java question,求输出结果 public class IntegerTest { public static void main(String[] args) { objPoolT ...
- 如何识别字符串是否是UTF-8编码的
我们先要弄明白原始字符串里的字符用的是何种编码方式,运行如下 string tmp = "你好world"; for(int i=0;i<tmp.size();++i) { ...