上文说了,我是对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(一)相关推荐

  1. java api es_ES 常用java api

    java rest client 有两种: 1.Java Low Level REST Client :用于Elasticsearch的官方低层客户端.它允许通过http与Elasticsearch集 ...

  2. java接口api封装_ElasticSearch java API 封装

    这是针对ES查询的一套封装. 因为时间有限仅仅能够支持一些简单查询,但能满足大部分开发需求. 同时也封装了对索引以及数据的CRUD.批量处理. public static void main(Stri ...

  3. hdfs java api 权限_HDFS Java API 详解

    Hadoop版本:  Hadoop 2.6.0 连接HDFS String URL="hdfs://hadoop001:9000"; Configuration conf = ne ...

  4. ElasticSearch Java Api(四) -删除索引

    删除可以是删除整个索引库,也可以根据文档id删除索引库下的文档,还可以通过query查询条件删除所有符合条件的数据. 一.删除整个索引库 下面的例子会删除indexName索引: DeleteInde ...

  5. Elasticsearch Java API四种实现方式

    0.题记 之前Elasticsearch的应用比较多,但大多集中在关系型.非关系型数据库与Elasticsearch之间的同步.以上内容完成了Elasticsearch所需要的基础数据量的供给.但想要 ...

  6. 知识图谱java实现_知识图谱:neo4j(四)Java API

    知识图谱:neo4j(四)Java API 知识图谱:neo4j(四)Java API Neo4j Java API Neo4j 提供 JAVA API 以编程方式执行所有数据库操作.它支持两种类型的 ...

  7. Springboot整合ES8(Java API Client)

    在 Elasticsearch7.15版本之后,Elasticsearch官方将它的高级客户端 RestHighLevelClient标记为弃用状态.同时推出了全新的 Java API客户端 Elas ...

  8. 大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作

    大数据技术之_20_Elasticsearch学习_01 一 概述 1.1 什么是搜索? 1.2 如果用数据库做搜索会怎么样? 1.3 什么是全文检索和 Lucene? 1.4 什么是 Elastic ...

  9. Elasticsearch RestHighLevelClient 已标记为被弃用 它的替代方案 Elasticsearch Java API Client 的基础教程及迁移方案

    在Elasticsearch7.15版本之后,Elasticsearch官方将它的高级客户端RestHighLevelClient标记为弃用状态.同时推出了全新的Java API客户端Elastics ...

最新文章

  1. react中纯函数_如何在纯React中创建电子邮件芯片
  2. BIM技术在地铁中应用
  3. 操作系统难点解析之进程和线程
  4. JS中使用工厂模式创建对象
  5. 同时使用传入和传出连接时,相互TLS身份验证存在Java问题
  6. Java集合工具类:Collections
  7. cad完全卸载教程_CAD室内设计中厨房布置实例
  8. GUAVA常用方法总结整理 String list map转换
  9. golang range循环内部
  10. SPSS问卷或量表调查研究需要多少份或要求多大的样本量?【SPSS 062期】
  11. ArcMap怎么导出shape文件到奥维互动地图
  12. AutoCAD2004下载AutoCAD2004中文版安装教程
  13. linux centos下安装R语言,Centos6下安装R语言教程
  14. word html 预览 打印出来,word打印预览显示全,但是打印出来不全
  15. ECharts图表组件与FusionCharts图表组件对比
  16. Win Server 2003搭建Sql注入环境
  17. PHP解析大型Excel表格的库:box/spout
  18. 检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNIX 格式
  19. 微信大面积封杀使用wetool微信账户 用了就封号!
  20. B. Ternary String

热门文章

  1. 爬虫5-BeautifulSoup模块简解
  2. k52zip shell band 流氓软件总是显示~
  3. 怎样彻底卸载软件?解决卸载残余?例如:总跳出Xftp 6.msi安装-Xftp 6无法访问你试图使用的功能所在的网络位置,单击“确定”重试,或在下面的框中输入包含安装程序包“Xftp 6.msi”文件
  4. ng-bootstrap 组件集中 tabset 组件的实现分析
  5. C#知识点总结系列:3、C#中Delegate和Event
  6. maven POM总结
  7. Go -- log4go日志
  8. Mysql数据库优化技术之配置篇、索引篇 ( 必看 必看 转)
  9. // D:\SaveLog\_SaveLog.dpr立即备份晓亮的电脑操作记录热键(快捷键) F11由于原来的 AutoIt 杀毒软件总是误报没办法只好麻烦一点用 Delphi XE4 做了...
  10. 《设计模式》-模板模式