Service-Registrierung
Einleitung
Die Bloonix WebGUI stellt eine API zur Verfügung, mit der Services automatisch registriert und bei Bedarf entfernt werden können. Jeder Service ist immer einem bestimmten Host zugeordnet. Jeder Host wiederum verfügt über einen eigenen Bloonix-Agenten und eine eindeutige Host-ID. Dadurch bleibt die Service-Zuordnung klar und Service-Discovery-Prozesse lassen sich flexibel anpassen. Zusätzlich können Services individuell über Variablen konfiguriert werden.
Einrichtung in der WebGUI
Um eine neue Konfiguration zur Registrierung von Services einzurichten, klicke dich wie in der folgenden Grafik durch die Menüs:
Nach dem Absenden des Formulars werden zusätzliche Konfigurationsoptionen angezeigt. Hier kannst du die Services definieren, die über die API registriert werden sollen:
Kommen wir nun zur Einrichtung der Services. Es ist wichtig, dass jeder Service mit einem Tag versehen wird. Dieser Tag wird dann für die Registrierung des Service benötigt. In den folgenden Screenshots zeigen wir ein Beispiel für das Setzen eines Tags und der Variablen description sowie iowait_alert.
Möchtest du nun einen Service für einen Host einrichten, so kann das über einen simplen cURL Aufruf geschehen. Beispiel:
curl -XPOST https://webgui.example/register/service -d '
{
"host_id": 12345,
"password": "password",
"authkey": "authkey",
"tag": "linux-generic",
"variables": {
"description": "Overwrite the default variable",
"iowait_alert": 50
}
}
Was nun passiert ist folgendes:
- der Service wird aus der Registrierungskonfiguration kopiert
- die Variablen description und iowait_alert werden ersetzt
- die Variable iowait_warning ist nicht definiert und wird mit dem Wert aus den Standardvariablen ersetzt
- der Service wird direkt für die Host ID eingerichtet
Zu beachten ist, das Variablen, die nicht definiert sind, auch nicht ersetzt werden. Die Platzhalter werden mit kopiert. Diese sollten dann mindestens in den Host-Variablen gesetzt sein, da es ansonsten zu Fehlern bei der Ausführung des Checks kommen kann.
Entfernen von Services
Services, die über den Registrierungsprozess angelegt wurden, können auf demselben Weg auch wieder entfernt werden. Voraussetzung ist, dass in den Systemoptionen das Entfernen von Objekten aktiviert ist. Wichtig: Beim Anlegen des Services muss eine Objekt-ID vergeben werden, da das Entfernen ausschließlich über diese ID erfolgt. Besitzt ein Service keine Objekt-ID, kann er nicht über die API gelöscht werden.
Im folgenden Beispiel erstellen wir einen Service mit einer festen Objekt-ID:
curl -XPOST https://webgui.example/register/service -d '
{
"host_id": 12345,
"password": "password",
"authkey": "authkey",
"tag": "linux-generic",
"object_id": "linux-cpu",
"variables": {
"description": "Overwrite the default variable",
"iowait_alert": 50
}
}'
Um diesen Service später zu entfernen, reicht ein einfacher cURL-Aufruf mit der Objekt-ID:
curl -XPOST https://webgui.example/register/service/delete-object-id -d '
{
"host_id": 12345,
"password": "password",
"object_id": "linux-cpu"
}'
Wenn mehrere Services dieselbe Objekt-ID besitzen, werden sie alle gemeinsam entfernt. Dies kann z. B. bei der Deprovisionierung von Docker-Containern vorkommen, für die bei der Provisionierung mehrere Services mit der gleichen Objekt-ID (Container-Name) angelegt wurden.