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. Dieser curl Befehl 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
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
Jetzt kannst du deinen Debian-Paketindex mit dem folgenden apt-Befehl aktualisieren und auffrischen.
sudo apt update
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
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
Ü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
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
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
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.
Jetzt solltest du das Sensu Web-Administrations-Dashboard sehen.
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
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.
Führe den folgenden„sensuctl„-Befehl aus, um deine Konfiguration zu überprüfen. Du solltest detaillierte API-Konfigurationen von„sensuctl“ sehen.
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
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
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
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
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.
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
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
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
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
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.
Wenn du jetzt auf die Details des Agenten„linux-host1“ klickst, siehst du die soeben erstellte„Checks“ Überwachung„check_cpu„.
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.