通过调用API获取zabbix监控服务(JAVA实现)案例

        因为项目保密的原因,实际代码无法贴出,但与他人博客中的代码有一定的相似度,现拷贝部分作为参考,再结合我专栏中的技术文档,以便理解对zabbix的部分封装过程

 Zabbix4jSampleGetHost.java

    package com.zabbix4j.apitest;  
      
    import com.zabbix4j.ZabbixApi;  
    import com.zabbix4j.ZabbixApiException;  
    import com.zabbix4j.ZabbixApiParamter;  
    import com.zabbix4j.host.*;  
    import com.zabbix4j.hostinteface.HostInterfaceObject;  
    import com.zabbix4j.item.ItemObject;  
    import com.zabbix4j.usermacro.Macro;  
      
    import java.util.ArrayList;  
    import java.util.List;  
      
    public class Zabbix4jSampleGetHost extends ZabbixApiTestDummyMethodBase {  
      
        public Zabbix4jSampleGetHost(ZabbixApi zabbixApi) {  
            super(zabbixApi);  
        }  
      
        // 这里配置zabbix的url,帐号和密码  
        public static final String ZBX_URL = "http://192.168.4.132/zabbix/api_jsonrpc.php";  
        public static final String USERNAME = "Admin";  
        public static final String PASSWORD = "zabbix";  
      
        // 调用api的host get方法的封装  
        public HostGetResponse getHost() throws ZabbixApiException {  
      
	        Integer targetHostId = 10105;  
	        HostGetRequest request = new HostGetRequest();  
	        HostGetRequest.Params params = request.getParams();  
	      
	        ArrayList<Integer> hostIds = new ArrayList<Integer>();  
	        hostIds.add(targetHostId);  
	        // params.setHostids(hostIds);  
	        // 这里可以设指定的id值,也可以不设值。设值的话,取指定的内容,不设的话,获取全部的host  
	        params.setHostids(null);  
	      
	        params.setSelectDiscoveryRule(ZabbixApiParamter.QUERY.extend.name());  
	        params.setSelectGroups(ZabbixApiParamter.QUERY.extend.name());  
	        params.setSelectItems(ZabbixApiParamter.QUERY.extend.name());  
	        params.setSelectApplications(ZabbixApiParamter.QUERY.extend.name());  
	        params.setSelectDiscoveries(ZabbixApiParamter.QUERY.extend.name());  
	        params.setSelectGraphs(ZabbixApiParamter.QUERY.extend.name());  
	        params.setSelectHostDiscovery(ZabbixApiParamter.QUERY.extend.name());  
	        params.setSelectHttpTests(ZabbixApiParamter.QUERY.extend.name());  
	        params.setSelectInterfaces(ZabbixApiParamter.QUERY.extend.name());  
	        params.setSelectInventory(ZabbixApiParamter.QUERY.extend.name());  
	        params.setSelectMacros(ZabbixApiParamter.QUERY.extend.name());  
	        params.setSelectParentTemplates(ZabbixApiParamter.QUERY.extend.name());  
	        params.setSelectScreens(ZabbixApiParamter.QUERY.extend.name());  
	        params.setSelectTriggers(ZabbixApiParamter.QUERY.extend.name());  
	      
	        System.out.println("parames setting complete...");  
	        HostGetResponse response = zabbixApi.host().get(request);  
	      
	        return response;  
        }  
      
        public static void main(String[] args) {  
      
	        try {  
	            // login to Zabbix  
	            System.out.println("beging...");  
	            ZabbixApi zabbixApi = new ZabbixApi(ZBX_URL);  
	            zabbixApi.login(USERNAME, PASSWORD);  
	      
	            System.out.println("create new get host instance...");  
	            Zabbix4jSampleGetHost myGetHost = new Zabbix4jSampleGetHost(  
	                zabbixApi);  
	      
	            System.out.println("Get host beging...");  
	            HostGetResponse response = myGetHost.getHost();  
	      
	            System.out.println("Get host end...let's print result");  
	      
	            // 对response进行处理  
	            for (int i = 0; i < response.getResult().size(); i++) {  
	      
		            //response 返回的信息非常大,可以赋值给HostObject,也可以其他对象  
		            HostObject myHostObject = response.getResult().get(i);  
		            //response 返回的信息非常大,可以赋值给ItemObject,也可以其他对象  
		            List<ItemObject> myItemObjectList = response.getResult().get(i)  
		                .getItems();  
		      
		            //打印host信息  
		            if (null == myHostObject)  
		                System.out.println("Get host null, program will exit");  
		            else {  
		                System.out.println("++++++Print Result " + i  
		                    + " HostObject+++++++++++");  
		                System.out.println(myHostObject.getHost());  
		                System.out.println(myHostObject.getName());  
		                System.out.println(myHostObject.getAvailable());  
		                System.out.println(myHostObject.getHostid());  
		                System.out.println(myHostObject.getStatus());  
		            }  
		      
		            //打印这个host下的item信息  
		            for (int j = 0; j < myItemObjectList.size(); j++) {  
		                if (j == 0)  
		                System.out.println("++++++Print ItemObject List "  
		                    + "+++++++++++");  
		                ItemObject tmpItemObject = myItemObjectList.get(j);  
		                System.out.println("Itemid:" + tmpItemObject.getItemid());  
		                System.out.println("Templateid:"  
		                    + tmpItemObject.getTemplateid());  
		                System.out.println("Hostid:" + tmpItemObject.getHostid());  
		                System.out.println("Name:" + tmpItemObject.getName());  
		                System.out.println("Key:" + tmpItemObject.getKey_());  
		                System.out.println("Lastvalue:"  
		                    + tmpItemObject.getLastvalue());  
		                System.out.println("Lastclock:"  
		                    + tmpItemObject.getLastclock());  
		                System.out.println("------------------------------------------");  
		      
		            }  
		      
		            System.out.println("*****************%%%%%%%%%%%%%%************");  
		      
	            }  
	      
	        } catch (ZabbixApiException e) {  
	            e.printStackTrace();  
	        }  
        }  
}  

ZabbixApiTestDummyMethodBase.java

package com.zabbix4j.apitest;

import com.zabbix4j.ZabbixApi;

public class ZabbixApiTestDummyMethodBase {  
	  
    protected ZabbixApi zabbixApi;  
  
    public ZabbixApiTestDummyMethodBase(ZabbixApi zabbixApi) {  
        this.zabbixApi = zabbixApi;  
    }  
}

相关jar包下载地址:http://zabbix.org/wiki/Docs/api/libraries#Java

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值