icinga2-api

Nodejs module for Icinga2 Api

Showing:

Popularity

Downloads/wk

5

GitHub Stars

5

Maintenance

Last Commit

2yrs ago

Contributors

4

Package

Dependencies

0

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

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

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial