zabbix api java_zabbix的Java API(一)
上文說(shuō)了,我是對(duì)zabbix做第二次開發(fā)的小白,既然要對(duì)zabbix做第二次開發(fā)又是小白,那么就得來(lái)研究zabbix提供的相關(guān)API了。
于是我在zabbix網(wǎng)站各種找,終于在下面網(wǎng)址找到了:
http://zabbix.org/wiki/Docs/api/libraries;這里面有各個(gè)開發(fā)語(yǔ)言的API,大家可以去看看。
接下來(lái)繼續(xù)說(shuō)Java的API,如下:
第一和第三都是連接zabbix server的api,第一個(gè)需要自己構(gòu)造json格式的參數(shù)。 第二個(gè)sender 是開發(fā)向server 輸送數(shù)據(jù)的api。
第三個(gè)即是本次我研究的對(duì)象,這個(gè)api里面,進(jìn)一步做了封裝,也提供了一些測(cè)試代碼。本次就從這里研究吧。(一起學(xué)習(xí)呀( ⊙ o ⊙ )!)
要用這個(gè)API,可以導(dǎo)入zabbix4j這個(gè)包就好,相關(guān)的包都會(huì)導(dǎo)入進(jìn)來(lái),(我第一次就走了彎路,都是一個(gè)個(gè)的導(dǎo)包,后來(lái)想zabbix既然提供了API應(yīng)該zabbix包啊?就試了試,果然有,吼吼吼~~)
為了測(cè)試我們還要導(dǎo)入其他包,如下:
下面就正式開始研究代碼了:
在zabbix的web界面中首先是從創(chuàng)建主機(jī)開始的,那么,這兒我們也先從創(chuàng)建主機(jī)開始研究吧,創(chuàng)建主機(jī)的代碼如下:
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 //這兩個(gè)變量數(shù)據(jù)庫(kù)中必須存在(我第一次就在這兒搗鼓了半天,以為創(chuàng)建主機(jī)就什么都是新的,22 //這是對(duì)zabbix本身的不理解導(dǎo)致的)
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 //添加主機(jī)接口
40 HostInterfaceObject hostInterface = newHostInterfaceObject();41 hostInterface.setIp("192.168.106.133");42 params.addHostInterfaceObject(hostInterface);43 //添加主機(jī),和主機(jī)名
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里面創(chuàng)建主機(jī)(做其他操作也一樣),就要先通過(guò)身份驗(yàn)證,首先你要通過(guò)你自己的zabbix接口地址:http://IP/zabbix/api_jsonrpc.php;
我將這個(gè)前提工作放在了一個(gè)類中,代碼如下:
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登錄賬號(hào)
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 }
小白的我正在學(xué)習(xí)的路上,希望各位大佬多多指教,謝謝,謝謝!
轉(zhuǎn)載請(qǐng)注明地址:http://www.cnblogs.com/dbdd/p/7161723.html
總結(jié)
以上是生活随笔為你收集整理的zabbix api java_zabbix的Java API(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 为自增(++)自减(--)运算符正名
- 下一篇: 我能告诉你的