So installierst du die Sensu Monitoring Solution unter Debian 11

Sensu ist ein Open-Source-Infrastruktur- und Anwendungsüberwachungssystem, das sowohl für die Überwachung von Containern als auch von Nicht-Containern und Multi-Cloud-Infrastrukturen entwickelt wurde. Sensu ist eine skalierbare, sichere und integrierte Überwachungslösung für deine Technologie- und Serverinfrastruktur. Mit Sensu kannst du Server, den Zustand von Anwendungen und Diensten überwachen und über die Integration von Drittanbietern Warnmeldungen an mehrere Ziele senden.

In diesem Lernprogramm lernst du, wie du die Sensu Monitoring Software auf einem Debian 11 Server installierst. Außerdem lernst du, wie du Sensu CLI für die Verwaltung von Sensu einrichtest. Schließlich lernst du, wie du die Serverüberwachung mit Sensu über den Sensu Agent einrichtest.

Voraussetzung

Für diesen Sensu-Einsatz brauchst du die folgenden Voraussetzungen:

  • Einen Debian 11 Server mit 4 GB RAM und 2 CPUs. Diese Anforderungen hängen stark von deiner Infrastrukturumgebung ab.
  • Einen Nicht-Root-Benutzer mit sudo/Administrator-Rechten.
  • Ein Linux-Rechner wird als Ziel für die Überwachung verwendet.

Hinzufügen des Sensu-Repositorys

Um mit der Installation von Sensu zu beginnen, musst du das Sensu-Paket-Repository zu allen deinen Systemen hinzufügen, sowohl zum Sensu-Backend als auch zu den Zielservern.

Das Sensu-Repository ist auf packagecloud.io verfügbar und kann manuell oder über das von packagecloud.io bereitgestellte Bash-Skript zu deinem System hinzugefügt werden.

Bevor du das Sensu-Repository hinzufügst, führe den folgenden apt-Befehl aus, um grundlegende Paketabhängigkeiten zu installieren. Bestätige die Installation mit Y und Enter, wenn du dazu aufgefordert wirst.

sudo apt install debian-archive-keyring curl gnupg apt-transport-https

Führe nun den folgenden Befehl aus, um das Sensu-Repository hinzuzufügen. Dieses Bash-Skript fügt das Sensu-Repository und den GPG-Schlüssel automatisch zu deinen Debian-Servern hinzu.

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

Repository hinzufügen

Wenn du das Sensu-Repository manuell hinzufügen möchtest, befolge diese Schritte:

Erstelle ein Keyring-Verzeichnis, um den GPG-Schlüssel des Sensu-Repositorys zu speichern.

mkdir -p /etc/apt/keyrings/
curl -fsSL https://packagecloud.io/sensu/stable/gpgkey | gpg --dearmor > /etc/apt/keyrings/sensu_stable-archive-keyring.gpg

Füge das Sensu-Repository mit dem folgenden Befehl hinzu. Dieses Repository ist für Debian 11 Bullseye und die letzte stabile Version von Sensu.

cat <<EOF | sudo tee /etc/apt/sources.list.d/sensu_stable.list
deb [signed-by=/etc/apt/keyrings/sensu_stable-archive-keyring.gpg] https://packagecloud.io/sensu/stable/debian bullseye main
deb-src [signed-by=/etc/apt/keyrings/sensu_stable-archive-keyring.gpg] https://packagecloud.io/sensu/stable/debian bullseye main
EOF

sensu Repository hinzufügen

Jetzt kannst du deinen Debian-Paketindex mit dem folgenden apt-Befehl aktualisieren und auffrischen.

sudo apt update

Repository aktualisieren

Installation von Sensu Backend

Das Herzstück der Sensu-Überwachungslösung ist das „Sensu Backend“, das eine HTTP-API bereitstellt, die von einem Administrator über die Befehlszeile „sensuctl“ verwendet werden kann. WebSocket-API, die vom „Sensu Agent“ zur Überwachung genutzt wird, und ein Web-UI-Dashboard zur Verwaltung von Sensu.

Außerdem verwendet Sensu„etcd“ zum Speichern von Daten, vor allem bei großen Sensu Cluster Deployments.

Um Sensu Backend zu installieren, führe den folgenden apt-Befehl aus. Die Installation wird automatisch gestartet.

sudo apt install sensu-go-backend

Sensu Backend installieren

Nach Abschluss der Installation lädst du das Beispiel für die Sensu Backend-Konfiguration in die Datei „/etc/sensu/backend.yml“ herunter. Bearbeite dann die Datei „/etc/sensu/backend.yml“ mit dem folgenden Befehl.

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

Hebe die Kommentare in der folgenden Konfiguration auf.

cache-dir: "/var/cache/sensu/sensu-backend"
config-file: "/etc/sensu/backend.yml"

log-level: „debug“
state-dir: „/var/lib/sensu/sensu-backend“

Wenn du fertig bist, speichere und schließe die Datei.

Als Nächstes führst du den folgenden systemctl-Befehl aus, um den Sensu Backend-Dienst zu starten und zu aktivieren. Der Sensu Backend Dienst wird automatisch beim Systemstart ausgeführt.

sudo systemctl start sensu-backend
sudo systemctl enable sensu-backend

Sensu Backend konfigurieren

Überprüfe und verifiziere den Sensu Backend Service mit dem folgenden Befehl. Du solltest sehen, dass der Sensu Backend-Dienst derzeit läuft und aktiviert ist.

sudo systemctl status sensu-backend

Sensu Backend Service prüfen

Nachdem das Sensu Backend läuft, musst du die Installation und Konfiguration von Sensu Backend initialisieren. Dies kannst du mit dem Befehl „sensu-backend init“ tun, der im Sensu Backend-Paket enthalten ist.

Während der Initialisierung von Sensu Backend richtest du außerdem den Benutzer admin und das Passwort für deine Sensu Monitoring Solution ein.

Führe den folgenden Befehl aus, um neue Systemumgebungsvariablen für den Sensu Admin-Benutzer und das Passwort zu erstellen. In diesem Beispiel erstellst du einen neuen Sensu-Admin-Benutzer„adminsensu“ mit dem Kennwort„SensuRocks„.

export SENSU_BACKEND_CLUSTER_ADMIN_USERNAME=adminsensu
export SENSU_BACKEND_CLUSTER_ADMIN_PASSWORD=SensuRocks

Beginne nun, das Sensu-Backend mit dem unten stehenden Befehl zu initialisieren. Du solltest den Initialisierungsprozess sehen und Sensu speichert Daten im „etcd“-Datenspeicher.

sensu-backend init

Sensu Backend initialisieren

Um deine Sensu-Backend-Installation zu überprüfen, führst du den Sensu-Gesundheitscheck mit dem curl-Befehl an der Sensu-HTTP-API durch, die auf dem Standard-Port „8080“ läuft.

Führe den folgenden curl-Befehl aus, um den Zustand deiner Sensu-Backend-Installation zu überprüfen. Auf deinem Terminalbildschirm solltest du eine Meldung wie„health: OK„.

curl http://127.0.0.1:8080/health

sensu Gesundheit prüfen

Du kannst das Sensu Web UI Dashboard auch über den TCP-Port„3000“ aufrufen. Öffne deinen Webbrowser und rufe die IP-Adresse deines Servers über Port 3000 auf (z.B.: http://192.168.5.100:3000). Dann solltest du die Sensu Login-Seite sehen.

Gib den Admin-Benutzer„adminsensu“ und das Passwort„SensuRocks“ ein. Klicke dann auf„SIGN-IN„, um dich am Sensu Web UI Dashboard anzumelden.

sensu login page

Jetzt solltest du das Sensu Web-Administrations-Dashboard sehen.

sense web ui

Installation von Sensuctl Command Line

Bei Sensu kann der Administrator die Sensu Monitoring Solution über das Sensu Web UI Administrations-Dashboard und über das Kommandozeilenterminal mithilfe von„sensuctl“ verwalten.

sensuctl“ ist ein Kommandozeilen-Tool zur Verwaltung von Sensu-Ressourcen. Es verwendet eine HTTP-API, um mit dem Sensu Backend zu kommunizieren, über die du Ressourcen, Ereignisse und Entitäten erstellen, lesen und löschen kannst.

„sensuctl“ kann auf verschiedenen Betriebssystemen wie Linux, Windows und macOS installiert werden. Die Funktion von „sensuctl“ ähnelt dem Sensu Web UI Dashboard und du kannst es auf deiner lokalen Workstation oder dem sicheren „Bastion“-Server deiner Infrastruktur installieren.

Für Debian/Ubuntu-basierte Systeme führst du den folgenden apt-Befehl aus, um das Kommandozeilen-Tool„sensuctl“ zu installieren. Die Installation wird automatisch gestartet.

sudo apt install sensu-go-cli

sensu cli installieren

Nach Abschluss der Installation führst du den folgenden„sensuctl„-Befehl aus, um mit der Konfiguration und der Verbindung zur API des Sensu Backend-Servers zu beginnen.

sensuctl configure

Du wirst aufgefordert, die folgenden Konfigurationen vorzunehmen:

  • Wähle für die Authentifizierungsmethode „Benutzername/Passwort“.
  • Gib die Sensu Backend API URL deines Servers ein. In diesem Beispiel richten wir „sensuctl“ auf demselben Server ein, also ist der Host localhost oder „127.0.0.1“. Und der Standardport für die Sensu HTTP API ist „8080“ – http://127.0.0.1:8080.
  • Für die Namespace-Konfiguration wählst du „Standard“.
  • Für das Ausgabeformat kannst du „tabellarisch“ oder „yaml“ wählen.
  • Zum Schluss gibst du den Admin-Benutzer und das Passwort für dein Sensu Backend ein.

Jetzt hast du die Grundkonfiguration von„sensuctl“ abgeschlossen und dich mit dem Sensu Backend API-Server verbunden.

sensuctl konfigurieren

Führe den folgenden„sensuctl„-Befehl aus, um deine Konfiguration zu überprüfen. Du solltest detaillierte API-Konfigurationen von„sensuctl“ sehen.

sensuctl config view

sensuctl config view

Darüber hinaus bietet „sensuctl“ auch eine Autovervollständigung für deine Shell. Wenn du die Bash verwendest, musst du das Paket „bash-completion“ installieren und der Konfigurationsdatei„~/.bashrc“ einige Einstellungen hinzufügen.

Führe den folgenden apt-Befehl aus, um das Paket „bash-completion“ zu installieren.

sudo apt install bash-completion

Ändere nun die „~/.bashrc“ -Konfiguration mit dem folgenden Befehl.

sudo nano ~/.bashrc

Füge die folgende Konfiguration in die Datei ein.

if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi

source <(sensuctl completion bash)

Wenn du fertig bist, speichere und schließe die Datei.

Als nächstes lädst du die aktuelle Sitzung deiner Shell mit dem folgenden Befehl neu.

source ~/.bashrc

Zuletzt gibst du den Befehl„sensuctl“ ein und drückst die TAB-Taste, um alle verfügbaren Befehlsoptionen zu erhalten. Du solltest alle verfügbaren Optionen für den Befehl„sensuctl“ erhalten.

sensuctl TAB

sensuctl autocomplete

Sensu Agent installieren

Um den Host oder Rechner mit Sensu zu überwachen, musst du das Sensu Agent-Paket auf allen deinen Hosts installieren. Der Sensu Agent ist für fast alle Linux-Distributionen und Windows verfügbar.

Um den Sensu Agent auf einem Linux-System zu installieren, stelle sicher, dass das Sensu-Repository hinzugefügt wird.

Bei Debian/Ubuntu-basierten Systemen führst du den folgenden apt-Befehl aus, um das Sensu Agent-Paket zu installieren. Nun beginnt die Installation.

sudo apt install sensu-go-agent

Nach Abschluss der Installation lädst du die Sensu Agent-Konfiguration nach„/etc/sensu/agent.yml“ herunter. Bearbeite dann die Konfiguration„/etc/sensu/agent.yml“ mit dem unten stehenden Befehl.

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

Ändere den „name“ in den Hostnamen des Systems und die„backend-url“ in die IP-Adresse des Sensu Backend Servers.

In diesem Beispiel fügen wir einen Debian-Rechner mit dem Hostnamen„linux-host1“ hinzu, der im Namespace„default“ verfügbar ist. Der Sensu Backend Server ist hier„192.168.5.100“ mit dem Standard WebSocket API Port von Sensu Backend„8081„.

name: "linux-host1"
namespace: "default"
...
backend-url:
  - "ws://192.168.5.100:8081"
cache-dir: "/var/cache/sensu/sensu-agent"
config-file: "/etc/sensu/agent.yml"

Wenn du fertig bist, speichere und schließe die Datei.

Als Nächstes führst du den folgenden Befehl aus, um den Sensu Agent-Dienst zu starten und zu aktivieren, dass er beim Systemstart automatisch ausgeführt wird.

sudo systemctl start sensu-agent
sudo systemctl enable sensu-agent

configure sensu agent

Führe nun den folgenden Befehl aus, um den Sensu Agent-Dienst zu überprüfen und zu verifizieren. Du solltest sehen, dass der Sensu Agent läuft und aktiviert ist.

sudo systemctl status sensu-agent

sensu agent prüfen

Gehe als Nächstes zurück zu deinem Webbrowser und wähle den Namespace„default„. Dann solltest du sehen, dass der neue Entity-Host„linux-host1“ verfügbar ist.

Du kannst dies auch über die Terminal-Befehlszeile mit dem Befehl„sensuctl“ überprüfen. Du solltest sehen, dass der Agent„linux-host1“ zur Sensu Monitoring Solution hinzugefügt wurde.

sensuctl entity list --format tabular

Liste Entitäten Agent

Serverressourcen mit Checks überwachen

Der Sensu Agent stellt lediglich eine Verbindung zwischen dem Agentenknoten oder dem Zielserver und dem Sensu Backend über die WebSocket API her. Um Server-Ressourcen wie CPU-Nutzung, Bandbreitennutzung und Festplattennutzung zu überwachen, musst du eine „Subscription“ einrichten und einen „Check“ dazu erstellen. Dann kannst du dem Sensu Agent oder dem Zielserver mehrere „Abonnements“ hinzufügen.

Um die Serverressourcen mit Sensu zu überwachen, musst du die folgenden Schritte ausführen:

  • Abonnement erstellen
  • Sensu Runtime Assets registrieren
  • Definiere den Befehl Checks zur Überprüfung der Systemressourcen

Bevor du fortfährst, führe den folgenden „sensuctl“-Befehl aus, um eine neue Subscription namens„system“ für die Entität„linux-host1“ zu erstellen.

sensuctl entity update linux-host1

Du wirst mit den folgenden Fragen konfrontiert:

  • Für die „Entitätsklasse“ gibst du als Standard„agent“ ein und drückst ENTER.
  • Für die „Abonnements“ gibst du den Namen des Abonnements„system“ ein und drückst ENTER.

Abonnement erstellen

Bei Sensu wurde mit„Checks“ im Grunde nur ein Befehl definiert, der zur Überwachung von Serverressourcen verwendet werden kann.„Checks“ ist die Befehlszeile, die du zusätzlich zu den Sensu „Assets“ und „Subscriptions“ für alle deine Überwachungsbedürfnisse definieren kannst. Um„Checks“ zu erstellen, richtest du dynamische Laufzeit-Assets über den Befehl „sensuctl“ ein. Alle Sensu „Assets“ findest du auf https://bonsai.sensu.io/.

Führe nun den unten stehenden Befehl„sensuctl“ aus, um Sensu „Assets“ zur Überwachung der CPU-Auslastung zu erstellen und zu registrieren. Du solltest die folgende Meldung sehen: „added asset: sensu/check-cpu-usage:0.2.2“. In diesem Beispiel benennen wir auch den Standardnamen des Assets in „check-cpu-usage“ mit der Option „-r“ um.

sensuctl asset add sensu/check-cpu-usage:0.2.2 -r check-cpu-usage

Vermögenswerte hinzufügen

Führe nun den folgenden Befehl aus, um die Liste der Sensu-Assets zu überprüfen. Du solltest sehen, dass das Asset„check-cpu-usage“ in Sensu verfügbar ist.

sensuctl asset list

sensu asset lists

Als Nächstes führst du den folgenden Befehl aus, um den Befehl„Checks“ zur Überwachung der CPU-Auslastung zu erstellen. In diesem Beispiel erstellst du einen neuen Prüfbefehl mit dem Namen„check_cpu„, der im Abonnement „system“ verfügbar ist und auf dem Asset„check-cpu-usage“ basiert. Du kannst auch hier die Parameter in der Option „–command“ ändern. Du solltest dann eine Meldung wie„Created“ erhalten.

sensuctl check create check_cpu \
--command 'check-cpu-usage -w 75 -c 90' \
--interval 60 \
--subscriptions system \
--runtime-assets check-cpu-usage

Führe den folgenden„sensuctl„-Befehl aus, um„check_cpu“ zu prüfen und zu verifizieren. Du solltest die Details der„Checks“ des gerade erstellten„check_cpu“ sehen.

sensuctl check info check_cpu --format yaml

sensuctl check info

Jetzt kannst du die Ereignisüberwachung von„check_cpu“ mit dem folgenden Befehl überprüfen. Du solltest sehen, dass die Überwachung der CPU-Auslastung für„linux-host1“ konfiguriert und abgeschlossen ist.

sensuctl event list --format tabular

sensuctl check event list

Gehe nun zum Sensu Administrations-Dashboard und wähle den„Standard„-Namensraum aus. Im Menü„Entität“ solltest du den Agenten„linux-host1“ zum Sensu Monitoring System hinzufügen können.

sensu check enttities

Wenn du jetzt auf die Details des Agenten„linux-host1“ klickst, siehst du die soeben erstellte„Checks“ Überwachung„check_cpu„.

Überwachung im Sinne von

Als Nächstes kannst du weitere „Checks“ für dein Überwachungssystem hinzufügen und erstellen.

Fazit

Du hast nun die Installation von Sensu Monitoring Solution auf Debian 11 Server durchgeführt. Du hast auch die grundlegende Verwendung des Sensuctl-Befehls zur Verwaltung des Sensu-Backends gelernt. Außerdem hast du den Linux-Host-Rechner erfolgreich mit dem Sensu-Agenten überwacht und „Checks“ für die Überwachung deines Zielservers eingerichtet.

Das könnte dich auch interessieren …