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