Vorheriges Thema: Überwachungs-AppliancesNächstes Thema: Schalter


MON Appliance zur Anwendungsüberwachung

Aktuelle Version: 4.1.3-1

MON: Appliance zur Anwendungsüberwachung

Auf einen Blick

Katalog

System

Kategorie

Überwachung

Benutzer-Volumes

ja

Min. Speicher

288 MB

Betriebssystem

Linux

Einschränkungen

no

Funktionsübersicht

MON ist eine Appliance zur Anwendungsüberwachung, die Leistungs- und Ressourcenverwendungsstatistiken (also Zähler) von anderen Appliances innerhalb einer Anwendung erfasst. Appliances melden ihre Zähler der MON-Appliance über das Terminal "mon".

MON stellt eine visuelle Schnittstelle bereit, bei der mithilfe eines Webbrowsers auf die Appliance-Zähler zugegriffen wird und in dem diese angezeigt werden. Über die visuelle Schnittstelle erstellen Sie Ansichten mit einzelnen oder mehreren Diagrammen. Jedes Diagramm zeigt einen oder mehrere Appliance-Zähler an. Greifen Sie auf die visuelle Schnittstelle folgendermaßen zu:

Weitere Einzelheiten zum Zugreifen auf und Verwenden der visuellen Schnittstellen finden Sie im Referenzhandbuch zur Benutzeroberfläche.

MON unterstützt außerdem die Hintergrundüberwachung von Appliance-Zählern. Alle Zähler in einer einzelnen Ansicht, wie durch die Eigenschaft "alarm_view" definiert, werden von MON im Hintergrund überwacht. Wann einer dieser Zähler einen angegebenen Schwellenwert unter- oder überschreitet, sendet MON einen Alarm zur Grid-Steuerung in CA AppLogic®, die eine Meldung an das Dashboard schickt. MON überwacht die Appliance-Zähler im Hintergrund auch, wenn kein Browser für die visuelle Schnittstelle von MON geöffnet ist.

Ressourcen

Ressource

Minimum

Maximum

Standard

CPU

0.05

4

0.10

Speicher

288 MB

2 GB

288 MB

Bandbreite

1 Mbit/s

500 Mbit/s

100 Mbit/s

Terminals

Name

Verz.

Protokoll

Beschreibung

mon

in

CCE

Terminal, auf dem Leistungs- und Ressourcenverwendungsstatistiken empfangen werden.

web

in

HTTP

Terminal für den Zugriff auf und die Anzeige der Appliance-Zähler.

aux

in

Alle

Eingabe zur programmatischen Erfassung von Zählern

Die Standardschnittstelle. Die Standardschnittstelle wird von der Appliance verwendet, um an CA AppLogic® zu berichten, dass sie erfolgreich gestartet wurde. Sie kann auch dazu dienen, über eine sichere Shell eine Anmeldung vom CA AppLogic®-Controller zur Appliance herzustellen, hauptsächlich für Diagnosen und Fehlerbehebung. Mithilfe der Standardschnittstelle kann die CA AppLogic®-GUI auf die visuelle Schnittstelle einer MON-Appliance zugreifen.

Benutzer-Volumes

Volume

Beschreibung

Daten

Lesen/Schreiben, Bereitstellung von Speicher für persistenten Status von MON angebend (z. B. Ansichten und Diagramme).

Eigenschaften

Eigenschaftsname

Typ

Description

title

Zeichenfolge

Im Browser-Fenster der visuellen Schnittstelle von MON angezeigter Titel. Wenn leer, wird der Anwendungsname verwendet. Der Standard ist leer.

user

Zeichenfolge

Benutzername für webbasierte Authentifizierung. Authentifizierung wird nur verwendet, wenn Sie über das Terminal "net" (d. h. über ein Gateway) auf MON zugreifen. Es wird keine Authentifizierung verwendet, wenn Sie über die CA AppLogic®-GUI auf die visuelle Schnittstelle von MON zugreifen. Wenn leer, erfolgt keine Authentifizierung. Der Standard ist leer.

password

Zeichenfolge

Kennwort für webbasierte Authentifizierung. Diese Eigenschaft wird nicht verwendet, wenn user leer ist. Der Standard ist leer.

alarm_view

Zeichenfolge

Name der Ansicht, in der die Appliance-Zähler enthalten sind, die im Hintergrund überwacht werden sollen. Es kann nur ein Anzeigenname angegeben werden. Wenn leer, wird die Hintergrundüberwachung deaktiviert. Der Standard ist leer.

Fehlermeldungen

Die folgenden Meldungen können entweder in der Appliance-Protokolldatei oder im Systemprotokoll der Grid-Steuerung angezeigt werden, wenn die Appliance nicht startet:

Zählergruppen und Zähler

Die folgenden Zählergruppen sind für alle Appliances definiert:

Informationen zum Erstellen und Überwachen von benutzerdefinierten Zählern in einer Appliance finden Sie unter Erstellen benutzerdefinierter Zähler.

Überwachen von Anwendungen über die CA AppLogic®-GUI

Das folgende Diagramm zeigt eine typische Verwendung von MON für eine einfache Anwendung. In dieser Anwendung können Sie nur über die CA AppLogic®-GUI auf die Überwachung zugreifen.

Verwendete Appliances:

Das Terminal "mon" aller Appliances ist mit dem Terminal "mon" von "mon" verbunden.

Hinweis: Um Diagramme mithilfe von Windows Internet Explorer anzuzeigen, müssen Sie festlegen, dass alle Websites im Kompatibilitätsmodus angezeigt werden. Um diesen Modus festzulegen, greifen Sie auf die Menüleiste zu, klicken Sie auf Tools und auf Einstellungen der Kompatibilitätsansicht, wählen Sie dann das Kontrollkästchen Alle Websites in Kompatibilitätsansicht anzeigen aus, und klicken Sie auf Schließen.

Überwachen der Anwendung sowohl über die CA AppLogic®-GUI als auch über eine IP-Adresse auf Port 80

Das folgende Diagramm zeigt, wie MON für den Zugriff auf die Anwendungsüberwachung über die CA AppLogic®-GUI oder über eine IP-Adresse verwendet werden kann.

Verwendete Appliances:

Das Terminal "mon" aller Appliances ist mit dem Terminal "mon" von "mon" verbunden.

Das Terminal "out" von admin wird mit dem Terminal "web" von MON verbunden, damit Benutzer über die IP-Adresse, die durch die Eigenschaft ip_addr auf admin festgelegt ist, auf die Überwachung zugreifen können.

Überwachen der Anwendungen sowohl über die CA AppLogic®-GUI als auch über eine Anwendungs-IP-Adresse auf Port 8080

Das folgende Diagramm zeigt, wie MON für den Zugriff auf die Anwendungsüberwachung über die CA AppLogic®-GUI oder über eine IP-Adresse auf Port 8080 verwendet werden kann.

Beispiel: Verwendung von MON für den Zugriff auf die Anwendungsüberwachung über die AppLogic-GUI oder über eine Anwendungs-IP-Adresse auf Port 8080

Verwendete Appliances:

Das Terminal "mon" aller Appliances ist mit dem Terminal "mon" von "mon" verbunden.

INSSLR ist so konfiguriert, dass HTTPS-Datenverkehr zu WEBx8 und der andere TCP-Datenverkehr zum Terminal "aux" weitergeleitet wird. PS8 ist so konfiguriert, dass der gesamte Datenverkehr auf Port 8080 über out8 zum Terminal "web" von mon geleitet wird. Dadurch können Benutzer die Anwendung über die Anwendungs-IP-Adresse überwachen, die durch die Eigenschaft ip_addr auf INSSLR auf Port 8080 festgelegt ist.

Hinweis: Die MAIL-Appliance wird nicht mit CA AppLogic® bereitgestellt.

Hintergrundüberwachung

Dieser Anwendungsfall beschreibt, wie Sie MON für die Hintergrundüberwachung der Appliance-Zähler verwenden und die Appliance so einstellen , dass Warnungen generiert werden, wenn ein Appliance-Zähler außerhalb des Bereichs liegt.

  1. Legen Sie für die Eigenschaft "alarm_view" auf MON den Namen einer Ansicht fest, die die zu überwachenden Zähler enthält.
  2. Starten Sie die Anwendung (neu).
  3. Melden Sie sich bei der Anwendungsüberwachung an.
  4. Klicken Sie auf die Schaltfläche "Neu", um eine neue Ansicht zu erstellen, und geben Sie ihr denselben Namen wie der Eigenschaft "alarm_view".
  5. Klicken Sie auf die Schaltfläche zum Hinzufügen eines Diagramms, um ein neues Diagramm zu erstellen und es der Ansicht hinzuzufügen.
  6. Wählen Sie einen Zähler aus, der überwacht werden soll, und fügen Sie ihn in das Diagramm ein.
  7. Legen Sie den Alarmschwellenwert fest, indem Sie die beiden Felder neben "Alarm" ausfüllen.
    Um einen minimalen Schwellenwert festzulegen, geben Sie einen Wert ins linke Textfeld ein. Es gibt keinen minimalen Schwellenwert, wenn dieses Textfeld leer gelassen wird.
    Um einen maximalen Schwellenwert festzulegen, geben Sie einen Wert ins rechte Textfeld ein. Es gibt keinen maximalen Schwellenwert, wenn dieses Textfeld leer gelassen wird.
  8. Wiederholen Sie die Schritte 5 bis 7, um weitere Appliance-Zähler zu überwachen.

Wenn ein Appliance-Zähler den angegebenen Schwellenwert unter- oder überschreitet, generiert MON eine Warnung bei der CA AppLogic®-Steuerung. Anschließend wird eine Meldung auf dem Dashboard protokolliert, die angibt, welcher Zähler von welcher Appliance außerhalb des Bereichs liegt. Für jede Appliance protokolliert die CA AppLogic®-Steuerung nur die letzte Warnmeldung auf dem Dashboard, allerdings wird in der Dashboard-Nachricht angegeben, ob für die Appliance mehrere Warnungen empfangen wurden. Alle Warnmeldungen werden auf /var/log/messages in der CA AppLogic®-Steuerung protokolliert.

Hinweis: MON überwacht die Appliance-Zähler im Hintergrund auch, wenn kein Browser für die Anwendungsüberwachung geöffnet ist.

So beenden Sie die Überwachung eines bestimmten Appliance-Zählers:

Um die Hintergrundmonitoring zu deaktivieren, führen Sie einen der folgenden Vorgänge aus:

Datenerfassungsschnittstelle

Seit Version 1.1.3 bietet die MON-Appliance eine dem REST-Dienst ähnliche Datenerfassungs-API. Sie exportiert Zählerkonfiguration und Werte im XML-, JSON- und UDL-Format. Weitere Informationen zur API finden Sie auf MonDataCollectionInterface.

Hinweise

Bekannte Beschränkungen

Um eine Anwendung über die CA AppLogic®-GUI überwachen zu können, muss der Name der MON-Appliance in der Anwendung "mon" lauten.

In der Appliance verwendete Open-Source- und Drittanbieter-Software

Software

Version

Geändert

Lizenz

Hinweise

CGI.pm

3.51-127

Nein

GPL+ oder Artistic

N/A

perl-CGI-Session

4.35-5

Nein

GPL+ oder Artistic

N/A

perl-Error

0.17015-4

Nein

GPL+ oder Artistic

N/A

perl-IPC-Run

0.84-2

Nein

GPL+ oder Artistic

N/A

freetype

2.3.11-6.el6_2.9

Nein

FreeType-Lizenz und GPLv2+

N/A

httpd

2.0.63

Nein

Apache-Lizenz

N/A

mod_perl

2.0.4-6

Nein

GPLv2

N/A

Appliance-Zähler
Übersicht

Dieses Dokument definiert die Liste aller standardmäßigen, von CCA exportierten Zähler. CCA ist der Zählererfassungsagent, der in allen CA AppLogic®-Appliances ausgeführt wird. Mit CCA können Sie Zähler bei der Überwachungs-Appliance melden, die von der MON-Appliance angezeigt wird. Die Verfügbarkeit dieser Zähler kann auf einigen der unterstützten Appliance-Plattformen eingeschränkt sein (wie in der Zählertabelle unten aufgeführt). Wenn das Appliance-Betriebssystem einen bestimmten Zähler unterstützt, muss er in der MON-GUI angezeigt werden, wenn das MON-Ausgabe-Terminal der Appliance an die MON-Appliance angeschlossen ist.

CPU-Übersicht

Zähler

Linux

Solaris

Windows

CPU I/O Wait

ja

ja

no

CPU Idle

ja

ja

ja

CPU Irq

ja

no

ja

CPU Nice

ja

no

no

CPU Soft Irq

ja

no

no

CPU System

ja

ja

ja

CPU Total

ja

ja

ja

CPU User

ja

ja

ja

Dateisystem

Zähler

Linux

Solaris

Windows

Allocated File Handles

ja

ja

no

Block Devices

ja

ja

no

Block Devices Unique

ja

ja

no

Character Devices

ja

ja

no

Character Devices Unique

ja

ja

no

Directories

ja

ja

no

Directories Unique

ja

ja

no

Fifos

ja

ja

no

Fifos Unique

ja

ja

no

Free File Handles

ja

ja

no

Regular Files

ja

ja

no

Regular Files Unique

ja

ja

no

Sockets

ja

ja

no

Sockets Unique

ja

ja

no

Used File Handles

ja

ja

no

Speicherstatistik

Zähler

Linux

Solaris

Windows

Aktiv

ja

no

no

Buffers

ja

no

no

Cached

ja

no

ja

Free

ja

ja

ja

High Free

ja

no

no

High Total

ja

no

no

High Used

ja

no

no

Inaktiv

ja

no

no

Low Free

ja

no

no

Low Total

ja

no

no

Low Used

ja

no

no

Swap Cached

ja

no

no

Swap Free

ja

ja

no

Swap Pages IN

ja

ja

no

Swap Pages OUT

ja

ja

no

Swap Total

ja

ja

no

Swap Used

ja

ja

no

Total

ja

ja

no

Verwendet

ja

ja

no

Scheduler

Zähler

Linux

Solaris

Windows

Context switches

ja

ja

ja

Interrupts

ja

ja

ja

Jobs for 1 min

ja

ja

no

Jobs for 15 min

ja

ja

no

Jobs for 5 min

ja

ja

no

Pages IN

ja

ja

ja

Pages OUT

ja

ja

ja

Process startups

ja

ja

no

Processes blocked

ja

no

ja

Processes running

ja

no

ja

CPU#X

Zähler

Linux

Solaris

Windows

CPU I/O Wait

ja

ja

no

CPU Idle

ja

ja

ja

CPU Irq

ja

no

ja

CPU Nice

ja

no

no

CPU Soft Irq

ja

no

ja

CPU System

ja

ja

ja

CPU Total

ja

ja

ja

CPU User

ja

ja

no

Volume X

Zähler

Linux

Solaris

Windows

Bytes Read

ja

ja

ja

Bytes Written

ja

ja

ja

Disk Reads

ja

ja

ja

Disk Sectors Read

ja

ja

no

Disk Sectors Written

ja

ja

no

Disk Writes

ja

ja

ja

Free Files

ja

ja

no

Free Space

ja

ja

ja

Time Spent in Reads

ja

no

ja

Time Spent in Writes

ja

no

ja

Total Files

ja

ja

no

Total Space

ja

ja

no

Used Files

ja

ja

no

Used Space

ja

ja

no

Terminal X

Zähler

Linux

Solaris

Windows

Recvd bytes

ja

ja

ja

Recvd packets

ja

ja

ja

Sent bytes

ja

ja

ja

Sent packets

ja

ja

ja

Übersicht

Jede Appliance, die den ccad-Daemon (ccad - counter collection agent) ausführt, lässt das Definieren von benutzerdefinierten Zählern und die Erfassung durch Hilfsprogramme von Drittanbietern zu. Diese Fähigkeit wird Erweiterungsschnittstelle genannt und bietet Appliance-Erstellern die Möglichkeit, appliance-spezifische Zählerdaten über die standardmäßige MON-Benutzeroberfläche zu überwachen.

Erstellen benutzerdefinierter Zähler

Um benutzerdefinierte Zähler zu überwachen, müssen Sie der ccad-Konfiguration Zählerdefinitionen hinzufügen und die tatsächlichen Zählerwerten an ccad weiterleiten.

Hinzufügen von Zählerdefinitionen

Die benutzerdefinierten Zähler müssen in der optionalen Konfigurationsdatei /etc/ccad.conf (in UDL-Format) definiert werden. Wenn Sie an der Konfiguration Änderungen vornehmen, muss der ccad-Daemon neu gestartet werden, damit die Änderungen wirksam werden.

Hier sehen Sie eine einfache Beispielkonfiguration:

counters Apache
   {
   pace = 1000
   pipe = /tmp/cca
   counter Total_Accesses
      {
      name        = "Total hits"
      desc        = "Total number of hits"
      units       = "#"
      type        = "MAX"
      }
   counter Total_kBytes
      {
      name        = "Total bytes"
      desc        = "Total number of bytes"
      units       = "bytes"
      type        = "MAX"
      }
   counter BusyWorkers
      {
      name        = "Active requests"
      desc        = "Number of active requests"
      units       = "#"
      type        = "MAX"
      }
   counter IdleWorkers
      {
      name        = "Idle servers"
      desc        = "Number of idle servers"
      units       = "#"
      type        = "MAX"
      }
   }

In diesem Beispiel werden 4 Zähler definiert. Jede Zählerentität unterstützt die folgenden Attribute:

Der Name der Zählerentität auf Stammebene wird als Entitätsname verwendet, wenn die Zähler später in MON angezeigt werden. Zusätzlich sind für diese Entität die folgenden Attribute von Bedeutung:

Zusätzlich zur oben beschriebenen Methode zur Zählerdefinition können die Zähler mit ccad.conf auch in Gruppen zusammengefügt werden. Dazu müssen sie eine Ebene tiefer in den Gruppenentitäten platziert werden, wie im folgenden Beispiel gezeigt:

counters Plants
   {
   pace = 2000
   pipe = /my-pipe
   counter tree: desc = "Any tree" , units = "#"
   group Fruits
      {
      desc = "Delicious Fruits!!!"
      counter pears : desc = "Number of pears"   , units = "pears"
      counter apples: desc = "Number of apples"  , units = "apples"
      }
   group Vegetables
      {
      counter potato: desc = "Number of potatoes", units = "potatoes"
      counter tomato: desc = "Number of tomatoes", units = "tomatoes"
      }
   }

Mit dieser Konfiguration würden 3 benutzerdefinierte Zählerentitäten in der MON-GUI erzeugt - Plants, Delicious Fruits!!! und Vegetables, wobei die 5 definierten Zähler unter diesen Entitäten verteilt würden. Gruppen unterstützen ein Beschreibungsattribut "desc" (wie Zählerentitäten), mit dem ein umfassenderer Gruppenname definiert werden kann im Gegensatz zum eingeschränkteren Gruppenentitätsnamen. Zählernamen sollten in der gesamten Konfigurationsdatei eindeutig sein; anderenfalls ist die Zählererfassung bei doppelten Zählernamen nicht möglich.

Eingeben von Zählerdaten

Wenn ccad mit den richtigen Zählerdefinitionen ausgeführt wird, müssen Sie die tatsächlichen Zählerwerte eingeben. Schreiben Sie die Zählerwerte dazu in die von ccad erstellte Named Pipe (vom Pipe-Attribut in /etc/ccad.conf, default /tmp/cca angegeben).
Sie können eines der folgenden Formate wählen:

Zähler = Wert (Name und Wert sind durch = getrennt)

Zähler : Wert (Name und Wert sind durch : getrennt)
Ein Zählersatz sollte durch Drucken eines Punkts (.) oder Seitenvorschubzeichens (\f) in der Named Pipe auf einer eigenen Zeile (in MON) geleert werden. Mit einem Zählererfassungsskript (in Bash) könnten Zählerwerte folgendermaßen an ccad weitergeleitet werden:

echo "Total_Accesses = 31" > /tmp/cca
echo "Total_kBytes = 22241" > /tmp/cca
echo "BusyWorkers = 6" > /tmp/cca
echo "IdleWorkers = 34" > /tmp/cca
echo "." > /tmp/cca

Dies sollte nach der in /etc/ccad.conf unter "pace" festgelegten Anzahl Millisekunden wiederholt werden.

Hier sehen Sie eine einfache Bash-Schleife, mit der die benötigten Daten erfasst und an ccad weitergeleitet werden. Es werden mehr Daten als benötigt eingegeben, das es schneller ist, alle erfassten Daten an ccad weiterzuleiten (die Zeilen, die keine Zählerwerte sind, werden ignoriert), als die Daten vor der Weiterleitung an ccad zu analysieren:

while true; do
   curl -s http://in/server-status?auto | sed "s/^Total\ /Total_/g" > /tmp/cca # this parses the data so it matches out counter definitions
   sleep 1 || exit 4        
   echo "." > /tmp/cca
done
Beispiele

Windows-Beispiel

Das folgende Beispiel für einen benutzerdefinierten Zähler von Windows verwendet Perl.  So installieren Sie das Perl-Win32-Paket auf einer verwalteten Windows-Appliance, wenn es sich noch nicht dort befindet:

Nachstehend ist das Code-Beispiel aufgeführt:

#!/bin/perl
use Win32::Pipe;

my $defaultPace=1000;
my $defaultPipe="\\\\.\\pipe\\cca";
my $ccadConf="/etc/ccad.conf";

sub get_value_from_config
   {
   open(F, $ccadConf) || die "can't open $ccadConf: $!\n";
   while(<F>)
      {
      #($name, $value) = split('=');
      my $row=$_;
      $row =~ m/^\s*(\w+)\s*=\s*(.*)\s*$/;
      if ($_[0] eq $1)
         {
         close F;
         return $2;
         }
      }
   close F;
   return "";
   }

my $cfgPace = &get_value_from_config("pace");
my $cfgPipe = &get_value_from_config("pipe");
if ($cfgPace eq "") { $cfgPace = $defaultPace; }
if ($cfgPipe eq "") { $cfgPipe = $defaultPipe; }
else { $cfgPipe = "\\\\.\\pipe\\".$cfgPipe; }

my $pipe;
$pipe = new Win32::Pipe($cfgPipe) || die "can't connect to pipe\n";
$pipe->ResizeBuffer(4096);

# this loop feeds a counter named Test with a value which increments on each iteration
my $val = 0;
while (1)
  {
   $val ++;
   my $str = "Test = $val\n.";
   $pipe->Write( $str );
   sleep( $cfgPace / 1000 );
   }

Linux-Beispiele

Apache

Hinweis: Auf dem Server muss der "erweiterte Status" aktiviert sein.

#!/bin/bash

DEFAULT_PACE=1000
DEFAULT_PIPE=/tmp/cca
CCAD_CONF=/etc/ccad.conf
STATUS_URL='http://in/server-status?auto'
CURL=/usr/bin/curl
SED=/bin/sed
SLEEP=/bin/sleep
function get_value_from_config {
   CONF_VALUE=`grep -oE "$1[[:space:]]*=[[:space:]]*[^[:space:]]+" $CCAD_CONF |cut -d"=" -f 2|tr -d " "`
}
get_value_from_config "pace"
PACE=${CONF_VALUE:-$DEFAULT_PACE}
PACE=$(( $PACE / 1000 ))
get_value_from_config "pipe"
PIPE=${CONF_VALUE:-$DEFAULT_PIPE}
test -p $PIPE || exit 3
while true; do
   $CURL -s "$STATUS_URL" | $SED "s/^Total\ /Total_/g" > $PIPE
   sleep $PACE || exit 4
   echo "." > $PIPE
done

Mysql

#!/bin/bash

DEFAULT_PACE=1000
DEFAULT_PIPE=/tmp/cca
CCAD_CONF=/etc/ccad.conf
MYSQL='/usr/bin/mysql'
TR=/usr/bin/tr
SLEEP=/bin/sleep
function get_value_from_config {
   CONF_VALUE=`grep -oE "$1[[:space:]]*=[[:space:]]*[^[:space:]]+" $CCAD_CONF |cut -d"=" -f 2|tr -d " "`
}
get_value_from_config "pace"
PACE=${CONF_VALUE:-$DEFAULT_PACE}
PACE=$(( $PACE / 1000 ))
get_value_from_config "pipe"
PIPE=${CONF_VALUE:-$DEFAULT_PIPE}
test -p $PIPE || exit 3
while true; do
   $MYSQL -e 'show status'|$TR '[[:blank:]]' '=' > $PIPE
   $SLEEP $PACE || exit 4
   echo "." > $PIPE
done
Überwachungs-API – Übersicht

Sie können Zählerdaten und Konfigurationen für Appliances erfassen, die mit der MON-Appliance verbunden sind, indem Sie HTTP-GET-Anfragen an das AUX-Eingabe-Terminal der MON-Appliance senden. Dies geschieht über ein benutzerdefiniertes REST-basiertes Protokoll über HTTP. Dieses Protokoll definiert drei Ressourcentypen:

Jeder dieser Typen ist im Kontext des vorangehenden Typs zu verstehen, d. h. Entitäten haben nur innerhalb von Appliances Bedeutung, und Zähler haben nur innerhalb einer bestimmten Entität Bedeutung. Die Datenerfassungs-API ermöglicht das Abrufen aller Zählerkonfigurationen und Werte, die MON bekannt sind.

MON exportiert angeforderte Datenkonfigurationen und Werte in einem der folgenden strukturierten Textformate:

Überwachungs-API-Protokoll

Das Protokoll verwendet nur die HTTP-Methode GET, da es nur über Lesefunktionen verfügt. So kann jeder unterstützte Protokollanfragetyp über seine URI und die Ausgabestruktur definiert werden. Zeichen, die in der URI als Sonderzeichen gelten, sollten mit der standardmäßigen %-Kodierung maskiert werden. Die Ausgabe wird nach ihrem XML-Schema definiert (das primäre Ausgabeformat ist XML). Die Übersetzung in andere Ausgabeformate (UDL, JSON) wird durch die direkte Verwendung des Struktur- und Attributschemas des jeweiligen Ausgabeformats erreicht (zum Beispiel UDL-Entitäten vs. XML-Entitäten, UDL-Attribute vs. XML-Attribute, JSON-Objekte vs. XML-Entitäten, JSON-Objekteigenschaften vs. XML-Attribute).

Der Stammknoten aller Ausgaben enthält ein Zeitstempelattribut, das die Serverzeit zum Erstellungszeitpunkt der Antwort angibt.

Es folgt eine Beschreibung aller unterstützten URLs (Aufrufe).

Zählerkonfigurationsaufrufe

/monapi/desc[?fmt=<format>] 

Gibt eine Liste aller verfügbaren Appliances in einem bestimmten Ausgabeformat zurück (<format> steht für eines der bekannten Ausgabeformate, zum Beispiel XML).

Ausgabe:

<response timestamp="1194967464">
   <appliance name="main.web" />
   <appliance name="main.in" />
</response>

/monapi/desc/<apps>[?fmt=<format>] 

Gibt eine Liste von allen verfügbaren Entitäten innerhalb der angeforderten Appliances zurück (<apps>). <apps> könnte ein einzelner Appliance-Name, eine durch Komma getrennte Liste von Appliance-Namen oder ein Platzhalterzeichen sein, wobei (*) alle verfügbaren Appliances bedeuten.

Ausgabe:

<response timestamp="1194967464">
   <appliance name="main.web">
      <entity name="Terminal in" />
      <entity name="Terminal out" />
      <entity name="Volume data" />
      <entity name="CPU" />
      <entity name="Memory" />
      <entity name="Network" />
   </appliance>
</response>
/monapi/desc/<apps>/<ents>[?fmt=<format>] 

Gibt eine Liste aller verfügbaren Zählern innerhalb der angeforderten Appliance-Entitäten zurück (<ents>). <ents> könnte ein einzelner Entitätsname, eine durch Komma getrennte Liste von Entitätsnamen oder ein Platzhalterzeichen sein, wobei (*) alle verfügbaren Entitäten bedeuten. Das Gleiche gilt für <apps>.

Ausgabe:

<response timestamp="1194967464">
   <appliance name="main.web">
      <entity name="Terminal in">
         <counter name="Sent bytes" />
         <counter name="Received bytes" />
      </entity>
   </appliance>
</response>
/monapi/desc/<apps>/<ents>/<cnts>[?fmt=<format>] 

Gibt die Beschreibungen der angeforderten Zähler zurück (<cnts>). <ents>, <ents> und <ents> könnte eine einzelne Appliance/Entität, ein einzelner Zähler oder eine durch Komma getrennte Liste dieser Platzhalter sein.

Ausgabe:

<response timestamp="1194967464">
   <appliance name="main.web">
      <entity name="Terminal in">
         <counter name="Sent bytes" description=""  units=""  alarm_below="" alarm_above="" range_lower="" range_upper="" pace="" />
         <counter name="Received bytes" description=""  units=""  alarm_below="" alarm_above="" range_lower="" range_upper="" pace="" />
      </entity>
   </appliance>
</response>

Zählerwertaufrufe

/monapi/val/<apps>/<ents>/<cnts>[?fmt=<format>] 

Gibt die Werte der angegebenen Zähler zurück. Wenn einer der Parameter (für Appliances, Entitäten oder Zähler) ausgelassen wird, wird ein Wildcard-Wert angenommen. So bedeutet beispielsweise /monapi/val/main.web "die Werte aller Zähler aller Entitäten der "main.web"-Appliance".

Ausgabe:

<response timestamp="1194967464">
   <appliance name="main.web">
      <entity name="Terminal in">
         <counter name="Sent bytes" value="23234" />
         <counter name="Received bytes" value="690432" />
      </entity>
   </appliance>
</response>