zabbix api java_zabbix的Java API(一)
上文说了,我是对zabbix做第二次开发的小白,既然要对zabbix做第二次开发又是小白,那么就得来研究zabbix提供的相关API了。
于是我在zabbix网站各种找,终于在下面网址找到了:
http://zabbix.org/wiki/Docs/api/libraries;这里面有各个开发语言的API,大家可以去看看。
接下来继续说Java的API,如下:
第一和第三都是连接zabbix server的api,第一个需要自己构造json格式的参数。 第二个sender 是开发向server 输送数据的api。
第三个即是本次我研究的对象,这个api里面,进一步做了封装,也提供了一些测试代码。本次就从这里研究吧。(一起学习呀( ⊙ o ⊙ )!)
要用这个API,可以导入zabbix4j这个包就好,相关的包都会导入进来,(我第一次就走了弯路,都是一个个的导包,后来想zabbix既然提供了API应该zabbix包啊?就试了试,果然有,吼吼吼~~)
为了测试我们还要导入其他包,如下:
下面就正式开始研究代码了:
在zabbix的web界面中首先是从创建主机开始的,那么,这儿我们也先从创建主机开始研究吧,创建主机的代码如下:
1 import static org.junit.Assert.*;2
3 importjava.util.ArrayList;4 importjava.util.Date;5 importjava.util.List;6
7 importorg.junit.Test;8
9 importcom.zabbix4j.host.HostCreateRequest;10 importcom.zabbix4j.host.HostCreateResponse;11 importcom.zabbix4j.hostinteface.HostInterfaceObject;12 importcom.zabbix4j.usermacro.Macro;13
14 public class testCreateHost extendsZabbixApiTestBase{15 publictestCreateHost(){16 super();17 }18
19 @Test20 public voidcreateHost(){21 //这两个变量数据库中必须存在(我第一次就在这儿捣鼓了半天,以为创建主机就什么都是新的,22 //这是对zabbix本身的不理解导致的)
23 final Integer groupId = 4;24 final Integer templateId = 10081;25
26 try{27 HostCreateRequest request = newHostCreateRequest();28 HostCreateRequest.Params params =request.getParams();29
30 params.addTemplateId(templateId);31 params.addGroupId(groupId);32 //添加宏
33 List macros = new ArrayList();34 Macro macro1 = newMacro();35 macro1.setMacro("{$MACRO1}");36 macro1.setValue("value1");37 macros.add(macro1);38 params.setMacros(macros);39 //添加主机接口
40 HostInterfaceObject hostInterface = newHostInterfaceObject();41 hostInterface.setIp("192.168.106.133");42 params.addHostInterfaceObject(hostInterface);43 //添加主机,和主机名
44 params.setHost("test host created1." + newDate().getTime());45 params.setName("test host created1 name" + newDate().getTime());46
47 HostCreateResponse response =zabbixApi.host().create(request);48 assertNotNull(response);49 logger.debug(getGson().toJson(response));50
51 } catch(Exception e) {52 fail(e.getMessage());53 }54 }55
56 }
要在zabbix里面创建主机(做其他操作也一样),就要先通过身份验证,首先你要通过你自己的zabbix接口地址:http://IP/zabbix/api_jsonrpc.php;
我将这个前提工作放在了一个类中,代码如下:
1 import staticorg.junit.Assert.fail;2
3
4 importorg.slf4j.Logger;5 importorg.slf4j.LoggerFactory;6
7 importcom.google.gson.Gson;8 importcom.google.gson.GsonBuilder;9 importcom.zabbix4j.ZabbixApi;10 importcom.zabbix4j.ZabbixApiException;11
12
13
14 public classZabbixApiTestBase {15
16 protected static Logger logger = LoggerFactory.getLogger(ZabbixApiTestBase.class);17 protected static String user = "Admin";//zabbix登录账号
18 protected static String password = "zabbix";//zabbix登录密码
19
20 protectedZabbixApi zabbixApi;21
22 publicZabbixApiTestBase() {23 login(user, password);24 }25
26 protected voidlogin(String user, String password) {27 try{28 zabbixApi = new ZabbixApi("http://192.168.106.136/zabbix/api_jsonrpc.php");29 zabbixApi.login(user, password);30 } catch(ZabbixApiException e) {31 fail(e.getMessage());32 }33 }34
35
36 protectedGson getGson() {37
38 return newGsonBuilder().setPrettyPrinting().create();39 }40
41 }
小白的我正在学习的路上,希望各位大佬多多指教,谢谢,谢谢!
转载请注明地址:http://www.cnblogs.com/dbdd/p/7161723.html
zabbix api java_zabbix的Java API(一)相关推荐
- java api es_ES 常用java api
java rest client 有两种: 1.Java Low Level REST Client :用于Elasticsearch的官方低层客户端.它允许通过http与Elasticsearch集 ...
- java接口api封装_ElasticSearch java API 封装
这是针对ES查询的一套封装. 因为时间有限仅仅能够支持一些简单查询,但能满足大部分开发需求. 同时也封装了对索引以及数据的CRUD.批量处理. public static void main(Stri ...
- hdfs java api 权限_HDFS Java API 详解
Hadoop版本: Hadoop 2.6.0 连接HDFS String URL="hdfs://hadoop001:9000"; Configuration conf = ne ...
- ElasticSearch Java Api(四) -删除索引
删除可以是删除整个索引库,也可以根据文档id删除索引库下的文档,还可以通过query查询条件删除所有符合条件的数据. 一.删除整个索引库 下面的例子会删除indexName索引: DeleteInde ...
- Elasticsearch Java API四种实现方式
0.题记 之前Elasticsearch的应用比较多,但大多集中在关系型.非关系型数据库与Elasticsearch之间的同步.以上内容完成了Elasticsearch所需要的基础数据量的供给.但想要 ...
- 知识图谱java实现_知识图谱:neo4j(四)Java API
知识图谱:neo4j(四)Java API 知识图谱:neo4j(四)Java API Neo4j Java API Neo4j 提供 JAVA API 以编程方式执行所有数据库操作.它支持两种类型的 ...
- Springboot整合ES8(Java API Client)
在 Elasticsearch7.15版本之后,Elasticsearch官方将它的高级客户端 RestHighLevelClient标记为弃用状态.同时推出了全新的 Java API客户端 Elas ...
- 大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作
大数据技术之_20_Elasticsearch学习_01 一 概述 1.1 什么是搜索? 1.2 如果用数据库做搜索会怎么样? 1.3 什么是全文检索和 Lucene? 1.4 什么是 Elastic ...
- Elasticsearch RestHighLevelClient 已标记为被弃用 它的替代方案 Elasticsearch Java API Client 的基础教程及迁移方案
在Elasticsearch7.15版本之后,Elasticsearch官方将它的高级客户端RestHighLevelClient标记为弃用状态.同时推出了全新的Java API客户端Elastics ...
最新文章
- react中纯函数_如何在纯React中创建电子邮件芯片
- BIM技术在地铁中应用
- 操作系统难点解析之进程和线程
- JS中使用工厂模式创建对象
- 同时使用传入和传出连接时,相互TLS身份验证存在Java问题
- Java集合工具类:Collections
- cad完全卸载教程_CAD室内设计中厨房布置实例
- GUAVA常用方法总结整理 String list map转换
- golang range循环内部
- SPSS问卷或量表调查研究需要多少份或要求多大的样本量?【SPSS 062期】
- ArcMap怎么导出shape文件到奥维互动地图
- AutoCAD2004下载AutoCAD2004中文版安装教程
- linux centos下安装R语言,Centos6下安装R语言教程
- word html 预览 打印出来,word打印预览显示全,但是打印出来不全
- ECharts图表组件与FusionCharts图表组件对比
- Win Server 2003搭建Sql注入环境
- PHP解析大型Excel表格的库:box/spout
- 检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNIX 格式
- 微信大面积封杀使用wetool微信账户 用了就封号!
- B. Ternary String
热门文章
- 爬虫5-BeautifulSoup模块简解
- k52zip shell band 流氓软件总是显示~
- 怎样彻底卸载软件?解决卸载残余?例如:总跳出Xftp 6.msi安装-Xftp 6无法访问你试图使用的功能所在的网络位置,单击“确定”重试,或在下面的框中输入包含安装程序包“Xftp 6.msi”文件
- ng-bootstrap 组件集中 tabset 组件的实现分析
- C#知识点总结系列:3、C#中Delegate和Event
- maven POM总结
- Go -- log4go日志
- Mysql数据库优化技术之配置篇、索引篇 ( 必看 必看 转)
- // D:\SaveLog\_SaveLog.dpr立即备份晓亮的电脑操作记录热键(快捷键) F11由于原来的 AutoIt 杀毒软件总是误报没办法只好麻烦一点用 Delphi XE4 做了...
- 《设计模式》-模板模式