Open Source Monitoring für Microsoft-Netzwerke So überwachen Sie das Active Directory mit StackStorm

Von Thomas Joos 5 min Lesedauer

Anbieter zum Thema

StackStorm ist ein Open-Source-Tool, das bei der automatisierten Überwachung und Fehlerbehebung von Microsoft-Netzwerken im Allgemeinen und beim Monitoring und Management von Active Directory im Speziellen helfen kann.

StackStorm ermöglicht eine ereignisgesteuerte Automatisierung und bietet daher eine gute Plattform Für die Orchestrierung bspw. von Active Directory. (Bild:  Joos - StackStorm)
StackStorm ermöglicht eine ereignisgesteuerte Automatisierung und bietet daher eine gute Plattform Für die Orchestrierung bspw. von Active Directory.
(Bild: Joos - StackStorm)

StackStorm ermöglicht eine ereignisgesteuerte Automatisierung und bietet daher eine gute Plattform Für die Orchestrierung bspw. von Active Directory. Grundsätzlich nutzt StackStorm das „If this then that“ Prinzip und kann so Aktionen auslösen, wenn bestimmte Ereignisse eintreten.

Beim Monitoring von Active Directory überwachen Sensoren kontinuierlich die Verfügbarkeit und Performance von AD-Diensten, während Trigger bei Unregelmäßigkeiten automatisch vordefinierte Aktionen auslösen. Diese Aktionen können die Durchführung von Diagnosetests, das Neustarten von Diensten oder das Sammeln relevanter Logdaten umfassen. Workflows orchestrieren komplexe Prozesse, wie die automatische Benachrichtigung von Administratoren oder das Einleiten von Sicherheitsmaßnahmen bei verdächtigen Aktivitäten.

Bildergalerie
Bildergalerie mit 5 Bildern

Durch die flexible Integration bestehender Lösungen und die modulare Architektur können sich wiederholende Aufgaben effizient automatisiert werden, wodurch die Netzwerkstabilität verbessert und manuelle Eingriffe reduziert werden. StackStorm steht unter Apache-2-Lizenz kostenlos zur Verfügung.

StackStorm auf Ubuntu installieren

Ein schneller Weg, um StackStorm in einem Netzwerk zu implementieren, ist die Installation mit einem vorgefertigten Skript. Hat der Server eine Verbindung zum Internet, erfolgt die Installation mit:

bash <(curl -sSL https://stackstorm.com/packages/install.sh) --user=st2admin --password=Ch@ngeMe

Das Skript legt alle notwendigen Objekte an. Anpassen lassen sich die einzelnen Aktionen nach der Installation von StackStorm in der Datei "/etc/st2/st2.conf". Nach der Installation steht das StackStorm-CLI (Command Line Interface) zur Verfügung. Um die installierte Version abzurufen, kann man den Befehl "st2 --version" nutzen. Hilfe zu den Parametern des Command Line Interface zeigt das CLI mit dem Befehl "st2 -h" an.

Ein weiterer, schneller Weg für die Bereitstellung von StaackStorm erfolgt mit Hilfe von Docker und Docker-Compose:

git clone https://github.com/stackstorm/st2-dockersudo docker-compose up -d

Nach der Installation oder der Bereitstellung mit Docker, ist Stackstorm einsatzbereit. Die Weboberfläche steht über die URL "https://<IP-Adresse>" zur Verfügung. Zur Anmeldung werden die gleichen Anmeldedaten wie im CLI genutzt, zum Beispiel Benutzername "st2admin" und Kennwort "Ch@ngeMe". Im Terminal kann man sich mit dem StackStorm-Client-Container verbinden und im CLI arbeiten. Dazu wird bei der Bereitstellung mit Docker der folgende Befehl genutzt:

docker-compose exec st2client bash

In StackStorm bilden Aktionen, Trigger und Regeln die Grundlage der Automatisierung – auch für Active Directory. Aktionen führen konkrete Aufgaben aus, wie das Neustarten eines AD-Dienstes oder das Sammeln von Diagnosedaten. Trigger lösen diese Aktionen aus, sobald ein definiertes Ereignis, etwa ein Authentifizierungsfehler, eintritt. Regeln verknüpfen Trigger mit Aktionen und definieren die Bedingungen, unter denen eine Automatisierung gestartet wird, etwa wenn die CPU-Auslastung eines Domänencontrollers einen bestimmten Schwellenwert überschreitet. Diese Struktur ermöglicht eine präzise und flexible Automatisierung von AD-Verwaltungsprozessen. Um die vorhandenen Actions, Trigger und Regeln anzuzeigen, kommen die folgenden Befehle zum Einsatz:

st2 action list --pack=corest2 trigger listst2 rule list

Die Ausführung von Befehlen mit StackStorm lässt sich mit dem CLI ebenfalls testen. Dazu kommt zum Beispiel SSH zum Einsatz. Wichtig dabei ist die Konfiguration von SSH mit Schlüssel-Authentifizierung also nicht mit Benutzername und Kennwort. Um auf dem lokalen Server Befehle zu testen, kann man auch folgenden Befehl verwenden:

st2 run core.remote hosts=”localhost” -- uname -a

Darüber hinaus stehen auf der Plattform „StackStorm Exchange“ zahlreiche vorgefertigte Integrationspakete zur Verfügung, die direkt über das CLI in StackStorm integriert werden können. Mit dem Befehl "st2 pack install" greifen Admins dabei auf zahlreiche Packs zu, die Integrationen für Plattformen wie Kubernetes, Ansible, VMware und andere bieten. Generell ist der Einsatz von StackStorm jedoch ist nicht trivial. Daher ist es sinnvoll, sich parallel mit der Dokumentation der Umgebung auseinanderzusetzen.

Wissen, was läuft

Täglich die wichtigsten Infos aus dem ITK-Markt

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Sensoren in StackStorm

Sensoren haben in StackStorm die Aufgabe, Ereignisse zu überwachen und beim Eintreten eines Ereignisses einen Trigger auszulösen. Sensoren lassen sich so konfigurieren, dass sie in Echtzeit arbeiten oder in bestimmten Zeitabständen. Um eine Liste der aktuell verfügbaren Sensoren anzuzeigen, kommt der Befehl "st2 sensor list" zum Einsatz. Um einen bestimmten Sensor zu aktivieren, zum Beispiel einen Syslog-Sensor, wird der folgende Befehl genutzt:

st2 sensor enable syslog_sensor

Neben den vorgefertigten Sensoren können Admins auch eigene Sensoren erstellen. Hierfür kommt YAML zum Einsatz. Ein Sensor, der zum Beispiel einfache Pings ausführt, kann dabei folgendermaßen aussehen:

class_name: "PingSensor"description: "Überwacht eine IP-Adresse und prüft, ob sie online ist"enabled: truetrigger_types: - name: "ip.ping" description: "Trigger, wenn die IP-Adresse nicht erreichbar ist" payload_schema: type: "object" properties: ip_address: type: "string" status: type: "string" enum: ["online", "offline"]poll_interval: 60 # Prüft alle 60 Sekundensensor: module: "ping_sensor" class_name: "PingSensor" config: ip_address: "192.168.1.1" # Zu überprüfende IP-Adresse timeout: 5 # Ping-Zeitüberschreitung in Sekunden retries: 3 # Anzahl der Ping-Versuche, bevor der Host als offline gilt

In der YAML-Datei konfiguriert der Sensor einen Ping an die IP-Adresse 192.168.1.1 im 60-Sekunden-Intervall. Bleibt die IP-Adresse nach drei Versuchen unerreichbar, löst der Sensor den Trigger ip.ping aus und übermittelt den Status der IP-Adresse als „online“ oder „offline“. Anschließend lässt sich der Sensor mit Aktionen oder Workflows verknüpfen, um automatisiert auf den Ausfall der IP-Adresse zu reagieren, beispielsweise durch das Versenden einer Benachrichtigung oder den Start eines Fehlerbehebungsprozesses.

Trigger und Aktionen definieren

Ein Sensor erkennt ein Ereignis und löst einen Trigger aus. Trigger dienen als Schnittstellen, die festlegen, welche Aktionen bei einem spezifischen Ereignis ablaufen. Ein Beispiel für einen Trigger sieht so aus:

name: syslog_triggerpack: defaultdescription: "Löst bei kritischen Syslog-Fehlern aus"type: "core.syslog"

Trigger befinden sich in der Weboberfläche unter „Triggers“, wo auch vordefinierte Trigger verfügbar sind. Die Konfiguration der Trigger für StackStorm erfolgt jedoch über das CLI. Aktionen bilden die automatisierten Schritte, die StackStorm nach dem Auslösen eines Triggers ausführt. Eine Aktion kann etwa einen Dienst neu starten, eine E-Mail versenden oder ein Skript ausführen. Ein einfaches Beispiel definiert eine Aktion zum Neustart eines Dienstes mithilfe einer YAML-Datei:

name: restart_servicerunner_type: "remote-shell-cmd"description: "Startet einen Netzwerkdienst neu"enabled: trueentry_point: ""parameters: cmd: type: "string" default: "sudo systemctl restart network-service"

Diese Aktion führt den Neustart des angegebenen Netzwerkdienstes aus, sobald ein zugeordneter Trigger sie aktiviert.

(ID:50384805)