zabbix api的使用
1.概述:zabbix监控基础设施内存,cpu等使用情况。
2.创建item:
常用:【cpu占用:system.cpu.util[,pused,avg60]
内存占用:vm.memory.size[pused]
存储占用:vfs.fs.size[/,pused]】
type--Zabbix_aggregate
key--grpavg["主机名称","system.cpu.util[,user]",avg,1]
3.使用api获取监控历史记录:
获取已知ID的item历史记录,查询API如下:api文档地址
pom文件中添加:
<dependency> <groupId>io.github.hengyunabc</groupId> <artifactId>zabbix-api</artifactId> <version>0.0.1</version> </dependency>
获取历史代码如下:
public class ZabbixUtil extends DefaultZabbixApi{ private static final Logger LOGGER = LoggerFactory.getLogger(ZabbixUtil.class); private ZabbixApi zabbixApi; public ZabbixUtil(String username, String password, String url) throws Exception { if (StringUtils.isBlank(username) || StringUtils.isBlank(password) || StringUtils.isBlank(url)){ throw new Exception("ZabbixApi初始化失败!参数不全!"); } login(username, password, url); } //url="http://xx.com/api_jsonrpc.php" private ZabbixApi login(String username, String password, String url) throws Exception { zabbixApi = new DefaultZabbixApi(url); zabbixApi.init(); boolean login = zabbixApi.login(username, password); if(!login){ LOGGER.info(username + " login in Zabbix " + (login ? "SUCCESS" : "FALURE") + " !"); } return zabbixApi; } /** * 获取Item历史记录 * @param itemid * @return 历史记录 */ public String getHistoryByItemid(Integer itemid) throws Exception { Request request = RequestBuilder.newBuilder().method("history.get") .paramEntry("output", "extend") .paramEntry("itemids", "itemid") .paramEntry("sortfield", "clock") .build(); JSONObject response = zabbixRequest(request); zabbixError(response); JSONArray result = response.getJSONArray("result"); return result.toJSONString(); } }
参考文档:http://blog.csdn.net/u012743772/article/details/78049322
用到的配置:https://www.zabbix.com/documentation/2.4/manual/config/items/itemtypes/aggregate
开发文档:https://www.zabbix.com/documentation/2.4/manual/api