icinga2-api

1.1.2 • Public • Published

icinga2

Icinga2 Remote api module. You can create, remove, update, etc of icinga2 objects

Icinga2 api doc

Installation

npm install icinga2-api

Getting started

Example

  1. Check if the host "4demo" exist in monitoring.
  2. If not, create host "4demo".

Updated

The parameters 'group' and 'onServer' was removed from methode 'createHost' and 'createService'

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", function (err, result) {
                    if (err) {
                        console.error(err);
                    } else {
                        console.log("Host 4demo was created successfull");
                    }
                });
            }
            console.error(err);
        } else {
            console.log(result);
        }
    })

Methods

  • 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"
            }
        }
  • getServiceWithState = function (state, callback)
    • state = 0/1/2
  • createHost = function (template, host, displayname, callback)
    • template - icinga2 host-template
    • onServer = "dockerHost", set a custom variable in icinga2
  • createService = function (template, host, service, displayname, 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"
          }
      })
  • createHostCustom = function (hostObj, host, callback)
    • hostObj
      var hostBody = JSON.stringify({
          "templates": ["passive-host"],
          "attrs": {
              "display_name": "4Demo Server",
              "vars.group": "adito",
              "vars.server": "dockerdmz"
          }
      })
  • createServiceCustom = function (serviceObj, host, service, callback)
    • serviceObj
      var serviceBody = JSON.stringify({
          "templates": ["passive-service"],
          "attrs": {
              "display_name": "Service on 4Demo Server",
          }
      })
  • 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"
          }
  • 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"
              }
          }
  • 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"
              }
          })
  • 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"]
  • 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"
          })
  • updateServiceAttr = function (serviceObj, host, service, callback)

Examples

Check test.js for more details

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.1.2
    10
    • latest

Version History

Package Sidebar

Install

npm i icinga2-api

Weekly Downloads

10

Version

1.1.2

License

MIT

Unpacked Size

51.3 kB

Total Files

6

Last publish

Collaborators

  • adito
  • de1m