first commit
This commit is contained in:
157
grafana/dashboards/requests/host_create.js
Normal file
157
grafana/dashboards/requests/host_create.js
Normal file
@@ -0,0 +1,157 @@
|
||||
let hostname = context.panel.elements.find(e => e.id === "hostname")?.value;
|
||||
let group = context.panel.elements.find(e => e.id === "group")?.value;
|
||||
let interface = context.panel.elements.find(e => e.id === "interface")?.value;
|
||||
let ipa = context.panel.elements.find(e => e.id === "ip")?.value;
|
||||
let dns_name = context.panel.elements.find(e => e.id === "dns")?.value;
|
||||
let template = context.panel.elements.find(e => e.id === "template")?.value;
|
||||
|
||||
if (dns_name == "undefined") {
|
||||
dns_name = "";
|
||||
}
|
||||
if (ipa == "undefined") {
|
||||
ipa = "";
|
||||
}
|
||||
|
||||
async function ejecutarPeticion() {
|
||||
async function getToken() {
|
||||
let token = null;
|
||||
|
||||
let res = await fetch("http://localhost:8080/api_jsonrpc.php", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({
|
||||
jsonrpc: "2.0",
|
||||
method: "user.login",
|
||||
params: {
|
||||
username: "Admin",
|
||||
password: "zabbix"
|
||||
},
|
||||
id: 1
|
||||
})
|
||||
});
|
||||
|
||||
const data = await res.json();
|
||||
token = data.result;
|
||||
return token;
|
||||
}
|
||||
|
||||
let token = await getToken();
|
||||
if (interface == "ZBX") {
|
||||
return fetch("http://localhost:8080/api_jsonrpc.php", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json-rpc",
|
||||
"Authorization": "Bearer " + token
|
||||
},
|
||||
body: JSON.stringify({
|
||||
jsonrpc: "2.0",
|
||||
method: "host.create",
|
||||
params: {
|
||||
host: hostname,
|
||||
interfaces: [
|
||||
{
|
||||
type: 1,
|
||||
main: 1,
|
||||
useip: 1,
|
||||
ip: ipa,
|
||||
dns: dns_name,
|
||||
port: "10050"
|
||||
}
|
||||
],
|
||||
groups: group.map(g => ({
|
||||
groupid: parseInt(g)
|
||||
})),
|
||||
templates: template.map(g => ({
|
||||
templateid: parseInt(g)
|
||||
})),
|
||||
},
|
||||
id: 1
|
||||
})
|
||||
});
|
||||
}
|
||||
else if (interface == "snmp_v3") {
|
||||
let snmp_sec = context.panel.elements.find(e => e.id === "snmp_sec")?.value;
|
||||
let snmp_context = context.panel.elements.find(e => e.id === "snmp_context")?.value;
|
||||
|
||||
return fetch("http://localhost:8080/api_jsonrpc.php", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json-rpc",
|
||||
"Authorization": "Bearer " + token
|
||||
},
|
||||
body: JSON.stringify({
|
||||
jsonrpc: "2.0",
|
||||
method: "host.create",
|
||||
params: {
|
||||
host: hostname,
|
||||
interfaces: [
|
||||
{
|
||||
type: 2,
|
||||
main: 1,
|
||||
useip: 1,
|
||||
ip: ipa,
|
||||
dns: dns_name,
|
||||
port: "161",
|
||||
details: {
|
||||
version: 3,
|
||||
bulk: 0,
|
||||
securityname: snmp_sec,
|
||||
contextname: "" + snmp_context,
|
||||
securitylevel: 1
|
||||
}
|
||||
}
|
||||
],
|
||||
groups: group.map(g => ({
|
||||
groupid: parseInt(g)
|
||||
})),
|
||||
templates: template.map(g => ({
|
||||
templateid: parseInt(g)
|
||||
})),
|
||||
},
|
||||
id: 1
|
||||
})
|
||||
});
|
||||
}
|
||||
else if (interface == "snmp_v2") {
|
||||
let snmp_com = context.panel.elements.find(e => e.id === "snmp_com")?.value;
|
||||
|
||||
return fetch("http://localhost:8080/api_jsonrpc.php", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json-rpc",
|
||||
"Authorization": "Bearer " + token
|
||||
},
|
||||
body: JSON.stringify({
|
||||
jsonrpc: "2.0",
|
||||
method: "host.create",
|
||||
params: {
|
||||
host: hostname,
|
||||
interfaces: [
|
||||
{
|
||||
type: 2,
|
||||
main: 1,
|
||||
useip: 1,
|
||||
ip: ipa,
|
||||
dns: dns_name,
|
||||
port: "161",
|
||||
details: {
|
||||
version: 2,
|
||||
bulk: 0,
|
||||
community: snmp_com
|
||||
}
|
||||
}
|
||||
],
|
||||
groups: group.map(g => ({
|
||||
groupid: parseInt(g)
|
||||
})),
|
||||
templates: template.map(g => ({
|
||||
templateid: parseInt(g)
|
||||
})),
|
||||
},
|
||||
id: 1
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return ejecutarPeticion();
|
||||
Reference in New Issue
Block a user