Icinga2 Remote api module. You can create, remove, update, etc of icinga2 objects
npm install icinga2-api
Example
- Check if the host "4demo" exist in monitoring.
- If not, create host "4demo".
const icingaapi = require('icinga2-api');
var icingaServer = new icingaapi("icingas2server.local", "5665", "apiUser", "apiUserPass");
icingaServer.getHostState("4demo", function (err, result) {
if (err) {
if (err.Statuscode == "404") {
console.log("Host 4demo on monitoring was not found, create one");
// Create a host on icinga2.
icingaServer.createHost("passive-host", "4demo", "4Demo Server", "adito", servername, function (err, result) {
if (err) {
console.error(err);
} else {
console.log("Host 4demo was created successfull");
}
});
}
console.error(err);
} else {
console.log(result);
}
})
- getServices = function (callback)
- getService = function (ServerName, ServiceName, callback)
- getHosts = function (callback)
- getHost = function (ServerName, callback)
- getHostFiltered = function (filter, callback)
- getServiceFiltered = function(filter, callback)
- filter =
{ "filter": "service.vars.Backup_Server == servicename", "filter_vars": { "servicename": "backupServer" } }
- filter =
- getServiceWithState = function (state, callback)
- state = 0/1/2
- createHost = function (template, host, displayname, gruppe, onServer, callback)
- template - icinga2 host-template
- onServer = "dockerHost", set a custom variable in icinga2
- createService = function (template, host, service, displayname, gruppe, onServer, callback)
- createServiceCustom = function (serviceObj, host, service, callback)
- serviceObj =
var serviceObj = JSON.stringify({ "templates": ["passive-service"], "attrs": { "display_name": "Service Top", "vars.group": "adito", "vars.server": "dockerdmz" } })
- serviceObj =
- createHostCustom = function (hostObj, host, callback)
- hostObj
var hostBody = JSON.stringify({ "templates": ["passive-host"], "attrs": { "display_name": "4Demo Server", "vars.group": "adito", "vars.server": "dockerdmz" } })
- hostObj
- createServiceCustom = function (serviceObj, host, service, callback)
- serviceObj
var serviceBody = JSON.stringify({ "templates": ["passive-service"], "attrs": { "display_name": "Service on 4Demo Server", } })
- serviceObj
- deleteHost = function (host, callback)
- deleteService = function (service, host, callback)
- setHostDowntime = function (dObj, hostname, callback)
- dObj (downtime object)
var dObj = { 'type': 'Host', 'start_time': actTime, 'end_time': endtime, 'author': 'icingaadmin', 'comment': "Downtime for Backup" }
- dObj (downtime object)
- setFilteredDowntime = function (dFilter, callback)
- dFilter (example: set downtime for all server where custom variable server = dockerhost)
var setDownTimeObject = { 'type': 'Host', 'start_time': actTime, 'end_time': endtime, 'author': 'icingaadmin', 'comment': "Downtime for Backup", 'filter': 'host.vars.server == server', 'filter_vars': { 'server': "dockerhost" } }
- dFilter (example: set downtime for all server where custom variable server = dockerhost)
- removeFilteredDowntime = function (dFilter, callback)
- dFilter(remove all Downtimes with autor "icingaadmin" and custom vars server "dockerhost"
var removeDownTimeObject = ({ "type": "Downtime", "filter": "downtime.author == filterAuthor && host.vars.server == filteredHost", "filter_vars": { "filterAuthor": "icingaadmin", "filteredHost": "dockerhost" } })
- dFilter(remove all Downtimes with autor "icingaadmin" and custom vars server "dockerhost"
- disableHostNotification = function (hostname, callback)
- setHostState = function (host, hostState, StateMessage, callback)
- setServiceState = function (service, host, serviceState, serviceMessage, callback)
- getHostState = function (hostName, callback)
- getServiceTemplates = function(callback)
- checkExistServiceTemplate = function(name, callback)
- getHostTemplates = function(callback)
- checkExistHostTemplate = function(name, callback)
- setServicePerfdata = function (service, server, state, output, perfarr, callback)
- perfarr (Data array) - show process-check-result in icinga2 api doc
var perfdataArr = ["Memory in %=" + memUsedinPerc + "%;" + aditoMemWarn + ";" + aditomemErr + ";0"]
- perfarr (Data array) - show process-check-result in icinga2 api doc
- setHostPerfdata = function (server, state, output, perfarr, callback)
- updateHostAttr = function (hostObj, host, callback)
- hostObj
var hostObj = JSON.stringify({ "templates": [icingaConf.templatehost], "attrs": { "display_name": "Adito Server Public", "vars.group": "adito", "vars.AditoServerName": "aditoServer", "vars.AditoServerVersion": "4.6.34", "vars.AditoStartupTime": "Mo.", "vars.CPUs": "4" })
- hostObj
- updateServiceAttr = function (serviceObj, host, service, callback)
Check test.js for more details