denisismagilov - stock.adobe.com

Sensu Go: Monitoring für Server, Container und Anwendungen

Das in Ruby geschriebene Framework Sensu ist auch in großen Umgebungen dazu in der Lage, Netzwerke umfassend zu überwachen. Wir helfen Ihnen bei den ersten Schritten mit Sensu Go.

Mit Sensu können Server im Netzwerk überwacht und auch Health Checks durchgeführt werden. Sensu arbeitet zur Überwachung mit einem Client-Server-Modell. Die bekannte Variante Sensu Core wurde abgekündigt und durch den Nachfolger Sensu Go ersetzt.

Sie können die kostenlose Version Sensu Go Free für Windows, MacOS und Linux hier herunterladen. Wir beschrieben hier die Installation unter Ubuntu-Linux. Sensu Go ist auf den wichtigsten Linux-Distributionen leicht zu installieren. Auf Windows können Sie den Sensu-Agent installieren. Wollen Sie das Sensu-Backend unter Windows betreiben, verwenden Sie am besten Windows Server 2019 und Docker. Generell könnte Sensu auch mit dem Windows-Subsystem für Linux unter Windows betrieben werden. Allerdings ist das nur für sehr erfahrene Anwender sinnvoll.

Komponenten von Sensu Go: Backend und Agents

Auf den Computern, die mit Sensu überwacht werden sollen, wird der Sensu-Agent installiert. Als Server wird mit dem Sensu-Backend gearbeitet. Hier unterscheidet sich Sensu Go von seinem Vorgänger Sensu Core. Wenn auf einem Computer der Agent installiert ist, werden Statusmeldungen und Ereignisse an das Sensu-Backend geschickt. Agents registrieren sich dazu nach der Installation am Backend. Dazu wird bei der Installation des Agents die IP-Adresse des Backends angegeben.

Das Sensu-Backend ist dafür verantwortlich, an die Agenten Anforderungen zu senden, welche Prüfungen durchgeführt werden sollen. Dazu nutzt Sensu Asset-Repositories wie Bonsai oder lokal betriebene Repos.

Für den Betrieb werden mehrere Ports benötigt, mit denen Agents und Backends Daten austauschen. Auf dem Backend werden die Ports 2379 (gRPC), 2380 (gRPC), 3000 (HTTP/HTTPS), 8080 (HTTP/HTTPS) und 8081(HTTP/HTTPS) verwendet. Agents nutzen die Ports 3030 (RCP/UDP), 3031 (HTTP) und 8125 (UDP).

Sensu Go installieren

Sensu Go kann wie üblich direkt installiert oder als Container betrieben werden. Generell ist Sensu über Docker schneller einsatzbereit. Für die Installation fügen Sie das Sensu Repository auf dem Server hinzu. Am Beispiel von Ubuntu/Debian verwenden Sie dazu:

curl -s https://packagecloud.io/install/repositories/sensu/stable/script.deb.sh | sudo bash

Sollte Curl auf dem System noch nicht verfügbar sein, erfolgt die Installation mit

Sudo apt install curl

Danach installieren Sie das Backend:

sudo apt-get install sensu-go-backend

Nach der Installation kann die Standardvorlage heruntergeladen und in das System integriert werden. Danach starten Sie das Backup und überprüfen den erfolgreichen Start:

sudo curl -L https://docs.sensu.io/sensu-go/latest/files/backend.yml -o /etc/sensu/backend.yml

sudo service sensu-backend start

service sensu-backend status

Die weitere Einrichtung beschreiben die Entwickler in der Dokumentation zu Sensu Go.

Abbildung 1: Start von Sensu Go.
Abbildung 1: Start von Sensu Go.

Bei der Verwendung von Docker sind weniger Schritte notwendig, da das Backend zum Beispiel automatisch initialisiert wird. Bei der manuellen Installation muss die Initialisierung zunächst durchgeführt werden. Dazu müssen Benutzernamen und Kennwort für den Zugriff definiert und danach die Initialisierung gestartet werden:

export SENSU_BACKEND_CLUSTER_ADMIN_USERNAME=YOUR_USERNAME

export SENSU_BACKEND_CLUSTER_ADMIN_PASSWORD=YOUR_PASSWORD

sensu-backend init

Das Festlegen von Benutzernamen und Kennwort können Sie auch im Rahmen der Initialisierung durchführen:

sensu-backend init --interactive

Wenn die Installation erfolgreich abgeschlossen wurde, können Sie auf dem Computer die Weboberfläche mit der URL http://localhost:3000 starten. Als Benutzernamen und Kennwort werden die Daten aus der Installation verwendet.

Wenn der Port 3000 für den Zugriff auf HTTP/HTTPS nicht durch die Firewall blockiert wird, können Sie auch über das Netzwerk auf die Weboberfläche zugreifen. Dazu verwenden Sie die IP-Adresse des Computers.

Erste Schritte mit Sensu Go

Die Verwaltung von Sensu Go erfolgt neben der Weboberfläche mit der Sensu-CLI, die Sie unter Ubuntu mit den folgenden Befehlen installieren:

curl -s https://packagecloud.io/install/repositories/sensu/stable/script.deb.sh | sudo bash

sudo apt-get install sensu-go-cli

Die meisten Aufgaben zur Verwaltung im Terminal werden mit sensuctl vorgenommen. Mit sensuctl configure kann eine erste Einrichtung der Analyselösung erfolgen.

Abbildung 2: Sensu Go wird in der Weboberfläche gesteuert und im Terminal vorkonfiguriert.
Abbildung 2: Sensu Go wird in der Weboberfläche gesteuert und im Terminal vorkonfiguriert.

Clients anbinden über Agent-Installation

Die Clients bauen eine Netzwerkkommunikation auf und können auf diesem Weg Überwachungsdaten senden. Dazu gehören Keepalives und Prüfergebnisse. Um auf Computern den Client zu installieren, muss auch hier das Repository angebunden werden (siehe oben). Danach erfolgt die Installation. Auch hier kann die Konfigurationsdatei direkt bei Sensu heruntergeladen und in das Senus-Verzeichnis kopiert werden:

sudo apt-get install sensu-go-agent

sudo curl -L https://docs.sensu.io/sensu-go/latest/files/agent.yml -o /etc/sensu/agent.yml

service sensu-agent start

Mehr zur Anbindung von Clients ist in der Dokumentation zu Sensu zu finden. Wenn der Agent gestartet wurde, sollte in der Weboberfläche von Sensu für den Namespace default bei Entities der Computer angezeigt werden. Hier ist auch die Betriebssystemversion zu sehen. Im Terminal lassen sich die angebundenen Computer und deren Agenten mit sensuctl entity list anzeigen.

Abbildung 3: Anzeigen der angebundenen Clients
Abbildung 3: Anzeigen der angebundenen Clients

Checks mit Sensu durchführen: Plug-ins und Erweiterungen

Die Informationen lassen sich anschließend mit sensuctl event list anzeigen. Ob der Sensu-Cluster funktioniert, können Sie mit sensuctl cluster id überprüfen. Mit sensuctl binden Sie auch die einzelnen Computer an, die mit Sensu überwacht werden sollen. In der Weboberfläche ist der eingebundene Check bei Configuration\Check zu finden. Die aktuelle Konfiguration zeigt Sensu im Terminal mit sensuctl config view an. Das Ergebnis für einen Check kann Ok (0), Warning (1) und Critical (2) sein.

Nach der Anmeldung an Sensu ist auf der linken Seite das Steuerungsmenü zu finden. Neben dem Dashboard können Sie hier die erstellten Cluster/Namensräume für Sensu anzeigen lassen und verwalten. Eine ausführliche Liste der Möglichkeiten, die sensuctl bietet, steht mit sensuctl --help zur Verfügung. Um die Checks zu steuern, also die Überprüfungen der einzelnen Computer, verwenden Sie sensuctl check --help.

Abbildung 4: Überwachungsaktionen in Sensu Go anzeigen.
Abbildung 4: Überwachungsaktionen in Sensu Go anzeigen.

Sensu-Plug-ins erzeugen bei jeder Ausführung einen neuen, untergeordneten Prozess. Wenn Sie ein Plug-in installieren wollen, das Sensu für die angebundenen Clients nutzen soll, lässt es sich mit sensu-install implementieren, zum Beispiel mit:

sudo sensu-install -p influxdb

Sensu-Erweiterungen werden innerhalb des EventMachine-Reaktor-Threads eines Sensu-Client- oder Server-Prozesses ausgeführt. Sensu-Erweiterungen können die gleichen Funktionen wie Plug-ins erfüllen, aber mit weniger Overhead. Die Installation erfolgt mit sensu-install. Alarme lassen sich natürlich auch per E-Mail versenden. Die Einrichtung dazu lesen Sie auf der Seite Send email alerts with the Sensu Go Email Handler.

Um über Plug-ins erweiterte Monitoring-Aufgaben durchzuführen, zum Beispiel die Überwachung der CPU von angebundenen Computern, registrieren Sie das entsprechende Plug-in:

sensuctl asset add sensu-plugins/sensu-plugins-cpu-checks

Anschließend lässt sich mit verschiedenen Tests die CPU-Aulastungen der einzelnen angebundenen Computern überprüfen. Der Quellcode und die Liste der einzelnen Tests sind auf GitHub zu finden.

Auch Datenträger können Sie mit Sensu überwachen. Dazu wird sensu-plugins-disk-checks genutzt. Diese lassen sich auf dem gleichen Weg anbinden wie die Überwachungsmöglichkeiten für CPUs. Auch hier werden die Checks über sensuctl im System eingebunden. Die Vorgehensweise wird auf der Downloadseite der Plug-ins erläutert.

Erfahren Sie mehr über Netzwerk-Monitoring und -Analyse