自学Zabbix14.1 二次开发API
自学Zabbix14.1 二次开发API
Zabbix API我们可以做很多,自己开发web界面、开发手机端zabbix、获取zabbix指定数据、创建zabbix监控项等等。
1. zabbix API开发库
zabbix API请求和响应都是json,并且还提供了各种语法的lib库,http://zabbix.org/wiki/Docs/api/libraries,包含php、c#、Python、Perl、go等等语言,简单看了下phpzabbixapi,使用非常方便。
2. 请求zabbix API
post json数据到api接口地址,例如你得zabbix地址是http://company.com/zabbix,
那么你得接口地址是:http://company.com/zabbix/api_jsonrpc.php,必须包含content-type头,值为application/json-rpc
, application/json
or application/jsonrequest
之一。
- POST http://company.com/zabbix/api_jsonrpc.php HTTP/1.1
- Content-Type: application/json-rpc
- {"jsonrpc":"2.0","method":"apiinfo.version","id":1,"auth":null,"params":{}}
3 . zabbix API登陆
获取auth token(登陆)
在操作zabbix之前,我们必须先登陆zabbix,得到token,以后的操作带着这个token即可,要不然肯定没权限。
请求的json如下:
- {
- "jsonrpc": "2.0",
- "method": "user.login",
- "params": {
- "user": "Admin",
- "password": "zabbix"
- },
- "id": 1,
- "auth": null
- }
属性说明:
- jsonrps - JSON-RPC版本,基本上用2.0就行了;
- method - 调用的API方法,方法列表请上官网;
- params - 需要传递的参数,这边是user和password;
- id - 请求标志;
- auth - 用户token,这边使用null,因为还没通过验证
验证成功,会返回如下json数据
- {
- "jsonrpc": "2.0",
- "result": "0424bd59b807674191e7d77572075f33",
- "id": 1
- }
result便是我们要德token数据,id对应请求的id。
4. zabbix api检索主机
通过验证之后,我们带着token使用host.get获取主机列表,请求的json如下:
- {
- "jsonrpc": "2.0",
- "method": "host.get",
- "params": {
- "output": [
- "hostid",
- "host"
- ],
- "selectInterfaces": [
- "interfaceid",
- "ip"
- ]
- },
- "id": 2,
- "auth": "0424bd59b807674191e7d77572075f33"
- }
获取到如下数据:
- {
- "jsonrpc": "2.0",
- "result": [
- {
- "hostid": "10084",
- "host": "Zabbix server",
- "interfaces": [
- {
- "interfaceid": "1",
- "ip": "127.0.0.1"
- }
- ]
- }
- ],
- "id": 2
- }
请使用你的程序处理一下即可。
自学Zabbix14.1 二次开发API的更多相关文章
- 个人微信号二次开发SDK协议,个人微信号二次开发api接口
通过这个API接口可以做什么? 通过我们提供的API接口您可以开发: 工作手机(如:X创,X码,XX管家等) 微信群讲课软件(如:讲课X师,一起X堂等) 微信社群管理软件(如:小X管家,微X助手等) ...
- 个人微信二次开发API接口
通过这个API接口可以做什么? 通过我们提供的API接口您可以开发: 工作手机(如:X创,X码,XX管家等) 微信群讲课软件(如:讲课X师,一起X堂等) 微信社群管理软件(如:小X管家,微X助手等) ...
- 使用C#语言,如何实现EPLAN二次开发 Api插件及菜单展示
上期我们谈谈了谈EPLAN电气制图二次开发,制图软件EPLAN的安装和破解,今天我们来说说使用C#语言,如何实现Api插件及菜单,今天它来了!!! 关于项目环境的搭建请参考:https://blog. ...
- NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))
NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的 ...
- Navisworks API 简单二次开发 (自定义工具条)
在Navisworks软件运行的时候界面右侧有个工具条.比较方便.但是在二次开发的时候我不知道在Api那里调用.如果有网友知道请告诉我.谢谢. 我用就自己设置一个工具.界面比较丑!没有美工. 代码: ...
- Civil 3D API二次开发学习指南
Civil 3D构建于AutoCAD 和 Map 3D之上,在学习Civil 3D API二次开发之前,您至少需要了解AutoCAD API的二次开发,你可以参考AutoCAD .NET API二次开 ...
- java微信开发API解析(二)-获取消息和回复消息
java微信开发API解析(二)-获取消息和回复消息 说明 * 本演示样例依据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/20 ...
- AutoCAD二次开发——AutoCAD.NET API开发环境搭建
AutoCAD二次开发工具:1986年AutoLisp,1989年ADS,1990年DCL,1993年ADS-RX,1995年ObjectARX,1996年Active X Automation(CO ...
- (50)zabbix API二次开发使用与介绍
zabbix API开发库 zabbix API请求和响应都是json,并且还提供了各种语法的lib库,http://zabbix.org/wiki/Docs/api/libraries,包含php. ...
随机推荐
- Luogu1081 NOIP2012 开车旅行 倍增
题目传送门 为什么NOIP的题目都这么长qwq 话说2012的D1T3和D2T3都是大火题啊qwq 预处理神题 对于这种跳跳跳的题目考虑使用倍增优化枚举.先预处理某个点之后距离最小和次小的城市,然后倍 ...
- 转 edtools
1.下载工具包:edtools.rar ,解压后放到磁盘的何意一个目录,如D:\edTools. 2.打开ED,打开“工具”-“配置用户工具”,在弹出的对象框中,在“组和工具项目”下拉框中选择一个工 ...
- postgresql总结
这篇博客主要对PostgreSQL进行总结,内容偏基础. 这里先附上一个PostgreSQL的中文资源:PostgreSQL 8.1 中文文档.英文不好的同学可以看看这个. 安装PostgreSQL ...
- supervisord监控服务必备命令
supervisord(http://supervisord.org/introduction.html)是一个非常优秀的进程管理工具,使用Python开发.它可以在类UNIX系统的方式让用户来准确地 ...
- OpenVPN简单部署笔记
打算在IDC机房部署VPN环境,Openvpn也是一个不错的选择:开源,好用,而且免费. OpenVPN简单介绍OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network ...
- LInux下设置账号有效时间 以及 修改用户名(同时修改用户组名和家目录)
在linux系统中,默认创建的用户的有效期限都是永久的,但有时候,我们需要对某些用户的有效期限做个限定!比如:公司给客户开的ftp账号,用于客户下载新闻稿件的.这个账号是有时间限制的,因为是付费的.合 ...
- Eddy's mistakes HDU
链接 [http://acm.hdu.edu.cn/showproblem.php?pid=1161] 题意 把字符串中大写字母变为小写 . 分析 主要是含有空格的字符串如何读入,用getline(c ...
- Individual P1: Preparation
Individual Project - Word frequency program tally the frequency of words under a directory (2 modes) ...
- #个人博客作业Week1——流行的源程序版本管理软件和项目管理软件
1.TFS(Team Foundation Server)(1)定义:TFS是一个高可扩展.高可用.高性能.面向互联网服务的分布式文件系统,主要针对海量的非结构化数据, 它构筑在普通 ...
- Quartz学习(转)
Quartz, 是一个企业级调度工作的框架,帮助Java应用程序到调度工作/任务在指定的日期和时间运行. 一.在Java工程中使用Quartz 1.导入jar包 com.springsource.or ...