zabbix-Java library to access Zabbix API
2016-06-04 11:18
465 查看
使用java语言调用zabbix api,获取监控数据
1,创建 Request 类
2,创建call()方法
3,创建login()方法
4.查询item
在jsonobject类中取值 http://codingfarmer-v.iteye.com/blog/2299598
api文档 https://www.zabbix.com/documentation/2.2/manual/api
docs http://www.zabbix.org/wiki/Docs/api/libraries
1,创建 Request 类
import java.util.HashMap; import java.util.Map; import com.alibaba.fastjson.JSON; public class Request { private String jsonrpc = "2.0"; private Map<String, Object> params = new HashMap<>(); private String method; private String auth; private Integer id; public void putParam(String key, Object value) { params.put(key, value); } public Object removeParam(String key) { return params.remove(key); } public String getJsonrpc() { return jsonrpc; } public void setJsonrpc(String jsonrpc) { this.jsonrpc = jsonrpc; } public Map<String, Object> getParams() { return params; } public void setParams(Map<String, Object> params) { this.params = params; } public String getMethod() { return method; } public void setMethod(String method) { this.method = method; } public String getAuth() { return auth; } public void setAuth(String auth) { this.auth = auth; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Override public String toString() { return JSON.toJSONString(this); } }
2,创建call()方法
public JSONObject call(Request request) throws URISyntaxException { if (request.getAuth() == null) { request.setAuth(auth); } String url ="ZABBIX_URL"; try { HttpUriRequest httpRequest = org.apache.http.client.methods.RequestBuilder .post().setUri(new URI(url.trim())) .addHeader("Content-Type", "application/json") .setEntity(new StringEntity(JSON.toJSONString(request))) .build(); CloseableHttpClient httpClient=HttpClients.custom().build(); CloseableHttpResponse response = httpClient.execute(httpRequest); HttpEntity entity = response.getEntity(); byte[] data = EntityUtils.toByteArray(entity); return (JSONObject) JSON.parse(data); } catch (IOException e) { throw new RuntimeException("DefaultZabbixApi call exception!", e); } }
3,创建login()方法
public boolean login() throws URISyntaxException { String uname ="ZABBIX_UNAME"; String upwd ="ZABBIX_UPWD" ; Request request = RequestBuilder.newBuilder().paramEntry("user",uname ) .paramEntry("password",upwd ).method("user.login").build(); JSONObject response = call(request); String auth = response.getString("result"); if (auth != null && !auth.isEmpty()) { this.setAuth(auth); logger.info("login is success!"); return true; } return false; }
4.查询item
public JSONObject queryItems(String hostName,String searchKey,String groupName)throws Exception{ JSONObject response = null; if(login()){ JSONObject search = new JSONObject(); logger.info("queryItems--searchKey: "+searchKey+" hostName:"+hostName+" groupName: "+groupName); search.put("key_", searchKey); Request request = RequestBuilder.newBuilder().method("item.get") .paramEntry("output", "extend") .paramEntry("host", hostName) .paramEntry("search", search) //.paramEntry("group", groupName) .build(); response = call(request); } return response; }
在jsonobject类中取值 http://codingfarmer-v.iteye.com/blog/2299598
api文档 https://www.zabbix.com/documentation/2.2/manual/api
docs http://www.zabbix.org/wiki/Docs/api/libraries
相关文章推荐
- JSON和JAVA相互转换
- JDBC Spring 之JdbcTemplate 增删改查操作
- 一个技术小白整理出来的for循环使用几种方法~~
- JSP(JavaServer Pages)不是Java Script(JS)
- Eclipse mars svn 快捷键不生效问题
- Java反射机制剖析(二)-功能以及举例
- 极光推送Java SDK源码学习
- zip4j -- Java处理zip压缩文件的完整解决方案
- Java千百问_05面向对象(014)_如何获取范型的类Class
- leetcode-Java-141. Linked List Cycle.java
- 【Java】validAnagram同字母异序
- Java抽象
- jvm PermSize/gc/heap space 报错
- struts2之多个文件上传
- proxool+spring+hibernate 驱动bug(sqljdbc4.jar-->jtds-1.3.1.jar)
- Java辩答题
- Servlet建立一个图片验证码程序
- Java 版本
- MyEclipse创建第一个Servlet程序
- java验证码实现