您的位置:首页 > 数据库

zabbix的群组和主机的select二级联动

2017-11-23 17:27 162 查看
zabbix的群组和主机的select二级联动,ajax异步处理,先从数据库获取群组数据,当点击群组时,再从数据库加载主机

通过zabbix官方给出的API接口,允许通过JSON RPC 协议创建、更新和获取zabbix对象如,hosts, items, graphs and others。或者执行其他任务,官方API接口

auth通过本地存储已经存储在本地了,不然需要先登录,获取通行证

{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1
}


result便是下面的auth值,返回结果为:

{
"jsonrpc": "2.0",
"result": "65e0306809176ce6737bced34147b0b4",
"id": 1
}


HTML代码:

<div class="form-group">
<label>群组</label>
<select id="groupid" name="groupid">
<option value="0">所有</option>
</select>
</div>
<div class="form-group">
<label>主机</label>
<select id="hostid" name="hostid" >
<option value="">所有</option>
</select>
</div>


JS代码:

var httpctx = 'http://111111';
//发送请求request,获取主机群组名字
function hostgroup_getName() {
var hostgroup_get_data = {
"jsonrpc": "2.0",
"method": "hostgroup.get",
"params": {
"output": "extend",
"real_hosts": true//包含主机的群组

},
"auth": localStorage.getItem('auth'),
"id": 1
};
//执行请求,并将服务器返回的response结果转换为数组格式,并输出到指定内容上
$.ajax({
type: "post",
url: httpctx,
async: true,
dataType: 'json', //服务器返回json数据
contentType: 'application/json',
timeout: 5000, //超时时间设置为5秒
data: JSON.stringify(hostgroup_get_data),
success: function(data) {
$('#groupid').attr("length", '0');
for(var i = 0; i <= data.result.length - 1; i++) {
$("#groupid").append($('<option value=' + data.result[i].groupid + '>' + data.result[i].name + '</option>'));
}
}
});
}

//发送请求request,根据主机群组ID,获取主机名字
var Allhost_data = {
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": "extend",
"monitored_hosts": true//仅返回受监视的主机
},
"auth": localStorage.getItem('auth'),
"id": 1
};

//执行请求,并将服务器返回的response结果转换为数组格式,并输出到指定内容上
function host_getName(aData) {

4000
$.ajax({
type: "post",
url: httpctx,
async: true,
dataType: 'json', //服务器返回json数据
contentType: 'application/json',
timeout: 5000, //超时时间设置为5秒
data: JSON.stringify(aData),
success: function(data) {
$('#hostid').attr("length", '0');
for(var i = 0; i <= data.result.length - 1; i++) {
$("#hostid").append($('<option value=' + data.result[i].hostid + '>' + data.result[i].name + '</option>'));

}
}
});
}

//群组select框点击事件。获取对应主机值
function Groupid_click() {
var selected_Gid = localStorage.getItem('selectedGroupid');
if(selected_Gid == 0) {
host_getName(Allhost_data);
}
var aSelected_Gids = '"' + selected_Gid + '"';
var SeHost_data = {
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"groupids": JSON.parse(aSelected_Gids),
"getAccess": "flag"

},
"auth": localStorage.getItem('auth'),
"id": 1
};
$("#hostid").append($('<option>所有</option>'));
host_getName(SeHost_data);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息