基于Java的Zabbix二次开发-----主机列表的获取

上一篇介绍了zabbix的api实例。
本篇文章开始正是开始介绍基于Java的Zabbix二次开发。

可以使用封装好的jar包进行开发,封装好的jar包地址如下:

Jar包地址

在这里插入图片描述
在这里插入图片描述
这里选取第三个封装好的jar包,在项目中引入即可。

这个jar包到底如何使用,来获取zabbix服务端的数据?接下来用主机管理这个菜单进行分析解答。

Api接口文档

先看一下具体效果:

在这里插入图片描述
可以看到,这是配置好的zabbix的主机管理页面,我们要通过api,获取这些数据,并且操作这些数据,如下:

在这里插入图片描述
首先,我们创建一个类存放ZabbixApi所需要的url,用户名和密码常量。

public class ZabbixApiParamter {

	public static final String URL = "http://10.0.119.140/zabbix/api_jsonrpc.php";
	public static final String USER = "Admin";
	public static final String PASSWORD = "zabbix";
}

注:这里的Api接口url,是固定不变的。

然后我们New一个ZabbixApi的实例,通过用户名密码登录:

		ZabbixApi zabbixApi = new ZabbixApi(ZabbixApiParamter.URL);
		zabbixApi.login(ZabbixApiParamter.USER, ZabbixApiParamter.PASSWORD);

通过查看ZabbixApi这个类的源码你会发现,不一样的数据来源有不一样的方法,如主机相关的就在host方法里:

public class ZabbixApi {
	private String apiUrl;
	private String auth;

	public ZabbixApi(String apiUrl) {
		this.apiUrl = apiUrl;
	}

	public void login(String username, String password) throws ZabbixApiException {
		User user = new User(this.apiUrl);
		UserLoginRequest request = new UserLoginRequest();
		request.getParams().setPassword(password);
		request.getParams().setUser(username);
		UserLoginResponse response = user.login(request);
		this.auth = response.getResult();
	}

	public Hostgroup hostgroup() {
		return new Hostgroup(this.apiUrl, this.auth);
	}

	public Host host() {
		return new Host(this.apiUrl, this.auth);
	}

	public Item item() {
		return new Item(this.apiUrl, this.auth);
	}

根据上方的Api接口文档可以查到,查询主机列表的方法为get方法,所以我们可以接着写:

		com.zabbix4j.host.Host hostApi = zabbixApi.host();//获取主机api
		HostGetResponse hostGetResponse = hostApi.get(new HostGetRequest());//调用get方法获取响应
		List<Result> resultList = hostGetResponse.getResult();

如上,resultList即为主机列表。

Result类可以通过result.getName()获取主机名称,result.getHostid()获取主机id等等,具体方法接口文档中都有,很详细。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值