Monitoring Module 2: RESTful API

Das Monitoring Module 2 wird ab sofort mit einer komplett neuen RESTful HTTP API ausgeliefert. Nicht nur das Monitoring Module selber oder unsere neuen Custom-Charts nutzen diese Schnittstelle, sie ist auch zugänglich für Drittanbieter- Anwendungen und Dienste.

Erreichbar ist diese API unter der Adresse http://<monitoringmodule>:8081
Für jeden Request ist eine Authentifizierung mit Benutzer und Passwort notwendig.
Jede Response kommt als JSON UTF-8 formatiert zurück.

In den folgenden Beispielen wird ein fiktiver Benutzer hlmon mit dem Passwort hlmon verwendet.

Beispiel Request um einen einzelnen Host abzufragen (ID des Hosts: 100)

$ curl 'http://hlmon.domain.local/hosts/100' -i -u 'hlmon:hlmon' \
    -H 'Accept: application/json;charset=UTF-8'

Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 818

{
  "id" : 100,
  "customerId" : 1,
  "clusterParentId" : 894,
  "name" : "Webserver",
  "customerName" : "Customer-1",
  "address" : "webserver.local",
  "lastState" : "UP",
  "lastStateType" : "HARD",
  "lastAttempt" : 1,
  "lastMaxAttempts" : 5,
  "lastExecutionTime" : 0,
  "lastOutput" : "OK - 192.168.148.47: rta 18.578ms, lost 0%",
  "lastPerfdata" : "rta=18.578ms;3000.000;5000.000;0; pl=0%;80;100;; rtmax=80.699ms;;;; rtmin=0.249ms;;;;",
  "lastProblemAcknowledged" : false,
  "inDowntime" : false,
  "commentCount" : 0,
  "downtimeCount" : 0,
  "ticketCount" : 0,
  "lastChangeTimestamp" : "2017-02-01T22:23:28.852+01:00",
  "lastEventTimestamp" : "2017-02-06T12:55:54+01:00",
  "insertTimestamp" : "2016-07-05T10:12:40.259+02:00",
  "updateTimestamp" : "2017-02-06T12:55:59.429+01:00",
  "cluster" : false
}

Wie man in der Response sieht, bekommt man hier alle wesentlichen Informationen über einen Host.

Die API stellt bereits eine Vielzahl an Endpunkten bereit, welche abgefragt werden können. Unter anderem:

  • Hosts
  • Services
  • Events
    • Host
    • Service
  • History Events
  • DataCore
  • Oracle
  • VMware
  • uvm.

Ein weiteres Beispiel für eine Response mit historischen Daten, anhand der Oracle System Wait Classes der letzten 24 Stunden (default)

Request (Abfrage der system_waitclasses von der Oracle Instance mit der ID 200262)

$ curl 'http://hlmon.domain.local/history/oracle/system_waitclasses?instanceId=200262&waitClass=Administrative' -i -u 'hlmon:hlmon' \
    -H 'Accept: application/json;charset=UTF-8'

Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1008

{
  "series" : [ {
    "name" : "200262/Administrative#200262",
    "id" : "200262",
    "items" : [ {
      "time" : "2017-01-08T16:59:00Z",
      "value" : 1.0,
      "values" : {
        "totalWaitsPerSec" : 2.0,
        "totalWaitsForegroundPerSec" : 4.0,
        "timeWaitedForegroundPerSec" : 3.0,
        "timeWaitedPerSec" : 1.0
      }
    }, {
      "time" : "2017-01-08T17:00:00Z",
      "value" : 2.0,
      "values" : {
        "totalWaitsPerSec" : 2.0,
        "totalWaitsForegroundPerSec" : 4.0,
        "timeWaitedForegroundPerSec" : 3.0,
        "timeWaitedPerSec" : 1.0
      }
    }, {
      "time" : "2017-01-08T17:01:00Z",
      "value" : 3.0,
      "values" : {
        "totalWaitsPerSec" : 2.0,
        "totalWaitsForegroundPerSec" : 4.0,
        "timeWaitedForegroundPerSec" : 3.0,
        "timeWaitedPerSec" : 1.0
      }
    } ]
  } ],
  "request" : {
    "notAfter" : "2017-01-08T17:00:00Z",
    "limit" : 1000,
    "stepping" : "5m",
    "notBefore" : "2017-01-07T17:00:00Z"
  }
}

Mit den Parametern notBefore und notAfter lässt sich die Ausgabe der Series zeitlich eingrenzen.

Viele weitere Endpunkte
In der Zukunft wird die RESTful HTTP API durch viele neue Endpunkte erweitert werden.

Dokumentation
Eine ausführliche Dokumentation der API wird mit dem Monitoring Module ausgeliefert und ist unter http://<monitoringmodule>:8081/docs/index.html erreichbar.

Vereinbaren Sie noch heute einen Demo-Termin!

Unsere fachkundigen Mitarbeiter präsentieren Ihnen gern ausführlich und unverbindlich alle neuen Features.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.