Software Komponenten

Übersicht über die Komponenten

Komponenten

Bloonix Monitoring besteht aus 5 Hauptkomponenten:

  • WebGUI
  • Server
  • Agent
  • Satellite
  • Plugins

Bloonix WebGUI

Die Bloonix WebGUI ist die Benutzeroberfläche und dient zur Verwaltung von Hosts und Diensten, Benutzern, Gruppen, Kontakten und vielem mehr. Die WebGUI läuft clientseitig als JavaScript-Anwendung im Browser. Serverseitig läuft die WebGUI als REST API hinter einem Reverse Proxy (Nginx), der es ermöglicht, die WebGUI automatisiert abzufragen. Das Datenformat der REST API ist JSON.

Für die WebGUI wird ein moderner und HTML5-fähiger Browser benötigt. Wir empfehlen die Verwendung von Chrome, Safari, Firefox oder Opera. Der Internet Explorer sollte auch funktionieren, allerdings ist dieser Browser in keiner Version getestet.

Bloonix Server

Der Bloonix-Server ist der Kern der Monitoring-Software und die Schnittstelle für die Bloonix-Agenten und -Satelliten. Beim Start des Bloonix-Servers werden mehrere Prozesspools gestartet, wobei jeder Prozesspool eine bestimmte Aufgabe zu erfüllen hat. Die folgenden Pools werden gestartet:

  • Listener
  • DB Manager
  • Keepalived
  • Remote Scheduler
  • Remote Checker
  • WTRM Scheduler
  • WTRM Checker
  • Timeout Scheduler
  • Timeout Checker

WTRM steht für Webtranaktionsmanager.

Pool Listener

Im Pool Listener werden mehrere Prozesse gestartet, die auf einem Port lauschen und auf Anfragen der Bloonix-Agenten warten, um den Agenten die Checks zu übermitteln, die für den Host durchgeführt werden sollen. Der Listener empfängt außerdem den Status und die Metriken von zu überwachenden Dienste der Bloonix-Agenten, um diese zu validieren, in der Datenbank zu speichern und zu prüfen, ob ein Event ausgelöst werden muss, wie zum Beispiel eine E-Mail an einen Administrator, um ihn darüber zu informieren, dass ein Dienst überlastet oder nicht mehr verfügbar ist.

Pool DB Manager

Ein einzelner Prozess wird im Pool DB Manager gestartet, welcher für das Management der Datenbank verantwortlich ist, zum Beispiel werden die Partitionen für Metriken und Events erstellt oder gelöscht.

Pool Keepalived

Im Pool Keepalived wird ein einzelner Prozess gestartet, der nur dazu da ist, den Master in einem Cluster-Setup, in dem mehrere Server zum Einsatz kommen, zu ermitteln.

Pool Remote Scheduler, Remote Checker

Der Bloonix Server kann, so wie der Bloonix Agent, Checks ausführen, mit der Ausnahme, dass diese Dienste über eine TCP/IP oder UDP/IP Verbindung erreichbar sein müssen. Damit ist es möglich, Router und Switches zu prüfen, da auf diesen Geräten kein Agent installiert werden kann. Es können aber auch viele andere Checks durchgeführt werden, um z.B. Webseiten per HTTP oder Server per Ping zu prüfen.

Darüber hinaus besteht die Möglichkeit, bestimmte Checks über Satelliten zu leiten, so dass beispielsweise HTTP-Checks von jedem Standort weltweit ausgeführt werden können.

Im Pool Remote Scheduler wird nur ein Prozess gestartet, der die verfügbaren Dienste zur Überwachung in eine Redis-Queue schreibt. Die Prozesse im Pool Remote Checker ziehen die Checks aus der Redis-Queue. Die Anzahl der zu startenden Prozesse für diesen Pool kann in der Konfigurationsdatei des Bloonix-Servers eingestellt werden.

Pool WTRM Scheduler, WTRM Checker

In diesem Pool wird die Ausführung von Web-Transaktionen gesteuert. Da Web-Transaktionen eine enorme CPU-Leistung benötigen, kann mit diesem Pool gesteuert werden, wie viele Web-Transaktionen parallel ausgeführt werden können. Der Pool WTRM Scheduler startet mit einem Prozess und schreibt die verfügbaren Web-Transaktionen zur Überwachung in eine Redis-Queue und der Pool WTRM Checker zieht die Checks aus der Redis-Queue. Die Anzahl der Prozesse im Pool WTRM Checker kann in der Konfigurationsdatei des Bloonix-Servers eingestellt werden.

Pool Timeout Scheduler, Timeout Checker

Dieser Pool dient zur Überprüfung aller Dienste, die in einem bestimmten Zeitraum nicht überprüft wurden. Wenn beispielsweise ein Server abgestürzt ist und der Bloonix-Agent, der auf dem Server läuft, keine Daten mehr ausliefern kann, löst dieser Pool einen Pseudoalarm mit Level CRITICAL aus.

Der Pool Timeout Scheduler startet mit einem Prozess und schreibt abgelaufene Dienste in die Redis-Queue und der Pool Timeout Checker zieht die Dienste aus der Redis-Queue. Die Anzahl der Prozesse im Pool Timeout Checker kann in der Konfigurationsdatei des Bloonix-Servers eingestellt werden.

Clustering

Der Bloonix-Server kann in einem Cluster betrieben werden. Dabei lassen sich sogar einige Pools deaktivieren, um so eine Verteilung der Aufgaben in einem Cluster zusätzlich aufzuteilen. Z.B. kann man es so einrichten, dass auf Server A nur der Listener Pool läuft und auf Server B nur der Remote Checker.

Bloonix Agent

Der Bloonix-Agent wird auf dem zu überwachenden System installiert und läuft dort als Daemon, der das System permanent überwacht. Der Bloonix-Agent verbindet sich mit dem Bloonix-Server, authentifiziert sich mit Host-ID und Passwort und fragt die Dienste ab, die überwacht werden sollen.

In Netzwerken, auf die der Bloonix Server keinen Zugriff hat, kann der Bloonix Agent auch auf einem zentralen Server installiert werden, um von dort aus Router, Switches oder andere Netzwerkdienste zu überwachen. Dieses Feature findet sich in der WebGUI unter Standortgruppen. Einmal eingerichtet, wird die Standortgruppen-ID mit Passwort in die Konfigurationsdatei des Agenten eingetragen und der Agent beginnt mit der Überwachung aller Hosts, die in der Standortgruppe konfiguriert sind.

Bloonix Plugins

Bloonix-Plugins werden zusammen mit dem Bloonix-Agenten, -Server und den -Satelliten installiert. Dabei handelt es sich um kleine Skripte, die den Status eines oder mehrerer Dienste überprüfen und gleichzeitig Metriken der Dienste bereitstellen.

Auf Linux-Systemen werden die Plugins üblicherweise unter /usr/lib/bloonix/plugins installiert. Die Ausführung eines Plugins sieht folgendermaßen aus:

/usr/lib/bloonix/plugins/check-http --stdin --pretty <<EOT
{"url":"https://www.bloonix.com/"}
EOT
{
    "message": "HTTP/2 200, Total time = 49.299ms, cert expires at 2024-12-03 11:27:54 GMT [OK]",
    "status": "OK",
    "stats": {
        "time_connect": 0.688,
        "time_first_byte": 2.377,
        "time_namelookup": 1.763,
        "time_overhead": 0.097,
        "time_ssl_handshake": 43.762,
        "time_total": 49.299,
        "time_transfer": 0.612
    }
}

Bloonix Satellite

Mit dem Bloonix-Satelliten ist es möglich, externe Dienste von mehreren Standorten aus zu überwachen und kann auf beliebigen Systemen weltweit installiert werden. Der Bloonix-Server verbindet sich mit den Bloonix-Satelliten und übermittelt die auszuführenden Dienste, wie z.B. HTTP- oder Ping-Checks.

Sobald Satelliten über die WebGUI eingerichtet wurden, stehen sie zur Auswahl im Formular für die Einrichtung von Diensten.