ADMIN

2025

01

2024-12-30T12:00:00

Automatisierung

SCHWERPUNKT

070

IT-Infrastruktur

Automatisierung

StackStorm

Netzwerkautomatisierung mit StackStorm

Der perfekte Sturm

von Thomas Joos

Veröffentlicht in Ausgabe 01/2025 - SCHWERPUNKT

Die Anforderungen an moderne Netzwerke steigen stetig, nicht nur was schnelle Reaktionszeiten betrifft. Die Open-Source-Plattform StackStorm hilft Administratoren dabei, Netzwerke effizienter zu verwalten, indem sie sich wiederholende Aufgaben automatisiert und in Echtzeit auf Ereignisse reagiert. Wir haben uns angeschaut, wie Sie die Software installieren, konfigurieren und mit ihr automatische Workflows generieren.

Ein praktisches Beispiel für die Automatisierung von Netzwerkprozessen ist die automatische Fehlerbehebung beim Ausfall von Netzwerkgeräten. So etwa könnte ein Sensor kontinuierlich die Verfügbarkeit eines Routers via SNMP überwachen. Fällt dieser Router aus, wird ein Ereignis ausgelöst und StackStorm [1] startet automatisch einen vordefinierten Workflow. Dieser kann wiederum folgende Schritte beinhalten: Zunächst kommt es zu einem Ping-Test, um sicherzustellen, dass es sich nicht um einen temporären Verbindungsfehler handelt. Schlägt dieser Kontaktversuch fehl, startet der betroffene Dienst neu. Misslingt auch dies, schickt StackStorm eine Benachrichtigung an den Administrator, die die Logdaten des betroffenen Geräts enthält.
Eine solche ereignisgesteuerte Automatisierung erlaubt es, Ausfälle in Echtzeit zu erkennen und automatisch Maßnahmen wie den Neustart von Diensten oder das Blockieren verdächtiger Aktivitäten einzuleiten. Dies führt zu einer signifikanten Reduktion von Ausfallzeiten und manuellen Eingriffen. Doch nicht nur Netzwerkausfälle lassen sich mit StackStorm schneller beheben, sondern auch wiederkehrende Aufgaben effizienter gestalten. Bevor wir zeigen, wie das mit dem unter der Apache-2.0-Lizenz stehenden kostenfreien Open-Source-Werkzeug genau funktioniert, zunächst ein paar Worte zu dessen Aufbau.
StackStorm ist besonders für komplexe Aufgaben geeignet. Ein wesentlicher Vorteil des Tools ist die Kombination von Automatisierung und Orchestrierung. Während die Automatisierung sich wiederholende Aufgaben wie die Konfiguration von Hunderten von Servern übernimmt, geht die Orchestrierung einen Schritt weiter, indem sie Entscheidungen auf der Grundlage von Bedingungen oder Schwellenwerten trifft. Dies ermöglicht das Erstellen von Workflows, die dynamisch auf Ereignisse reagieren.
Ein praktisches Beispiel für die Automatisierung von Netzwerkprozessen ist die automatische Fehlerbehebung beim Ausfall von Netzwerkgeräten. So etwa könnte ein Sensor kontinuierlich die Verfügbarkeit eines Routers via SNMP überwachen. Fällt dieser Router aus, wird ein Ereignis ausgelöst und StackStorm [1] startet automatisch einen vordefinierten Workflow. Dieser kann wiederum folgende Schritte beinhalten: Zunächst kommt es zu einem Ping-Test, um sicherzustellen, dass es sich nicht um einen temporären Verbindungsfehler handelt. Schlägt dieser Kontaktversuch fehl, startet der betroffene Dienst neu. Misslingt auch dies, schickt StackStorm eine Benachrichtigung an den Administrator, die die Logdaten des betroffenen Geräts enthält.
Eine solche ereignisgesteuerte Automatisierung erlaubt es, Ausfälle in Echtzeit zu erkennen und automatisch Maßnahmen wie den Neustart von Diensten oder das Blockieren verdächtiger Aktivitäten einzuleiten. Dies führt zu einer signifikanten Reduktion von Ausfallzeiten und manuellen Eingriffen. Doch nicht nur Netzwerkausfälle lassen sich mit StackStorm schneller beheben, sondern auch wiederkehrende Aufgaben effizienter gestalten. Bevor wir zeigen, wie das mit dem unter der Apache-2.0-Lizenz stehenden kostenfreien Open-Source-Werkzeug genau funktioniert, zunächst ein paar Worte zu dessen Aufbau.
StackStorm ist besonders für komplexe Aufgaben geeignet. Ein wesentlicher Vorteil des Tools ist die Kombination von Automatisierung und Orchestrierung. Während die Automatisierung sich wiederholende Aufgaben wie die Konfiguration von Hunderten von Servern übernimmt, geht die Orchestrierung einen Schritt weiter, indem sie Entscheidungen auf der Grundlage von Bedingungen oder Schwellenwerten trifft. Dies ermöglicht das Erstellen von Workflows, die dynamisch auf Ereignisse reagieren.
Architektur und Komponenten
StackStorm arbeitet nach dem Prinzip "If this then that". Das bedeutet, dass jedes Ereignis in einem Netzwerk oder System, sei es das Hinzufügen eines neuen Servers oder das Empfangen einer bestimmten Nachricht, eine Reihe von Aktionen auslösen kann. Diese können das Erstellen eines neuen VLANs im Netzwerk oder das Starten eines Ansible-Playbooks sein. Mit der Software lassen sich bestehende RESTful-APIs nutzen und diese mit bereits verfügbaren Integrationspaketen erweitern, was den Aufwand für das Schreiben eigenen Codes minimiert.
Ein weiterer Vorteil von StackStorm ist seine Flexibilität. Mithilfe von "Runner Types", Ausführungsumgebungen für Aktionen, lassen sich lokale und entfernte Skripte aufrufen. Dadurch ist es möglich, verschiedene Automatisierungsaktionen miteinander zu verknüpfen, wie zum Beispiel nach der Ausführung eines Ansible-Playbooks automatisch ein Ticket in einem IT-Service-Management-Tool wie ServiceNow zu erstellen. Die große Anzahl verfügbarer Integrationen erleichtert die Verzahnung bestehender Tools und die schnelle Implementierung von Automatisierung in verschiedenen IT-Systemen. Bedenken Sie aber, dass Sie für StackStorm Grundkenntnisse in Python und Datenstrukturen wie JSON mitbringen sollten, da diese das Schreiben und Verwalten von Workflows erleichtern.
StackStorm basiert auf einer modularen Architektur. Die zentrale Funktion übernimmt der Eventbus, der eingehende Ereignisse verarbeitet und Aktionen auslöst. Die wichtigsten Komponenten von StackStorm sehen dabei folgendermaßen aus:
- Sensoren überwachen bestimmte Systeme und Ereignisquellen, zum Beispiel Netzwerkgeräte oder Anwendungen. Sie dienen dazu, Ereignisse zu erfassen und an StackStorm weiterzuleiten. Ein Beispiel ist ein Sensor, der die CPU-Auslastung eines Routers überwacht und bei Überschreiten eines definierten Schwellenwerts ein Ereignis auslöst.
- Trigger verknüpfen Sensoren mit Aktionen. Sie definieren, welche Ereignisse eine Aktion auslösen soll. Ein Beispiel ist der Neustart eines Dienstes, wenn eine Netzwerkverbindung unterbrochen wird.
- Aktionen führen die eigentlichen Automatisierungsschritte aus. Das können einfache Skripte oder komplexe Programme sein. Ein typischer Fall ist das Ausführen eines Skripts zur Konfiguration von Netzwerkgeräten.
- Workflows orchestrieren mehrere Aktionen in einer definierten Reihenfolge. Sie erlauben die Implementierung komplexer Automatisierungsprozesse, wie etwa die automatische Konfiguration und Überwachung neuer Netzwerkgeräte nach ihrer Installation. Ein Beispiel wäre ein Workflow, der nach einem Geräteausfall mehrere Schritte durchführt, zum Beispiel den Neustart des Geräts, den Test der Netzwerkverbindung, und, falls dieser Test fehlschlägt, eine Benachrichtigung an den Administrator. In StackStorm können Sie Workflows mit YAML definieren.
Installation undGrundkonfiguration
Die Installation von StackStorm können Sie auf verschiedenen Plattformen durchführen, darunter gängigen Linux-Distributionen oder Docker-Umgebungen. Für das Aufspielen auf Linux, zum Beispiel Ubuntu, stellen die Entwickler ein Skript zur Verfügung, mit dem Sie über einen einzelnen Befehl StackStorm aufbringen:
bash <(curl -sSL https://stackstorm.com/packages/install.sh)--user=st2admin --password=Ch@ngeMe
Das Skript legt für verschiedene Zugriffe, zum Beispiel für MongoDB oder RabbitMQ, eigene Kennwörter an. Benötigen Sie diese für verschiedene Aktionen, zum Beispiel um direkt auf die Datenbanken zuzugreifen, finden Sie die Informationen in der Datei "/etc/st2/st2.conf". Die ersten Schritte mit können Sie in der CLI vornehmen. Mit dem Befehl st2 --version etwa ist die installierte Version zu sehen, das Kommando st2 -h zeigt eine Hilfe an.
Die Einrichtung kann auch mit Docker erfolgen. Wenn Docker auf dem System verfügbar ist, klonen Sie im ersten Schritt das Repository von StackStorm in ein beliebiges Verzeichnis:
git clone https://github.com/stackstorm/st2-docker
Nach dem Download wechseln Sie in das Verzeichnis und starten die Container mit sudo docker-compose up -d. Die Vorgänge dauern einige Zeit, danach stehen alle Container in der Umgebung zur Verfügung.
Im Terminal können Sie sich mit dem StackStorm-Client-Container verbinden und in der CLI arbeiten. Dazu verwenden Sie bei der Bereitstellung mit Docker diesen Befehl:
docker-compose exec st2client bash
Die Administration von StackStorm erfolgt hauptsächlich über sein CLI. Die erste Anmeldung dort erfolgt im Rahmen einer Standardinstallation mit st2 login st2admin -p "Ch@ngeMe". Danach können Sie die aktuelle Liste der Aktionen, Trigger und Regeln anzeigen. Das geht mit folgenden Kommandos:
st2 action list --pack=core
st2 trigger list
st2 rule list
Die Ausführung von Befehlen über das Netzwerk lässt sich an dieser Stelle ebenso testen. Dazu muss auf dem jeweiligen Host SSH mit kennwortlosem Zugriff konfiguriert sein. Um das Kommando hingegen auf dem lokalen Server auszuführen, verwenden Sie
st2 run core.remotehosts="localhost" -- uname -a
Auf die Weboberfläche von StackStorm greifen Sie zu, indem Sie in der Adressleiste Ihres Browsers https://<IP-Adresse> eingeben. Zur Anmeldung nutzen Sie die gleichen Anmeldedaten wie in der CLI, also den Benutzernamen "st2admin" und das Kennwort "Ch@ngeMe". Mit der GUI lassen sich alle Aktionen durchführen, die Sie auch in der CLI anstoßen können.
Bild 1: Direkt nach dem Aufspielen auf ein Ubuntu-System lässt sich dieStackStorm-Installation über die CLI nutzen.
Sensoren einrichten
In StackStorm haben Sensoren die Aufgabe, Ereignisse zu überwachen und darauf basierend Trigger auszulösen. Sie können einen Sensor so konfigurieren, dass er regelmäßig bestimmte Bedingungen überprüft, zum Beispiel alle fünf Minuten. Sobald die Bedingung erfüllt ist, wird der zugehörige Trigger aktiviert, der wiederum eine Regel aufruft. Diese Regel führt dann die definierten Aktionen aus. Ein typisches Beispiel ist ein Sensor, der Alarme von einem System erfasst und alle fünf Minuten überprüft, ob neue Alarme vorliegen, die es an ein System wie ServiceNow weiterzuleiten gilt. Sensoren sind also das Bindeglied zwischen externen Ereignissen und der darauffolgenden Automatisierung.
Ein weiteres praktisches Szenario ist die Einrichtung eines Sensors, der Syslog-Meldungen von Netzwerkgeräten überwacht. Zu diesem Zweck können Sie entweder vordefinierte Sensoren verwenden oder Ihre eigenen schreiben. Die vordefinierten lassen Sie sich mit st2 sensor list anzeigen. Um einen vorhandenen Sensor zu aktivieren, nutzen Sie die CLI oder die Web-GUI. So aktivieren Sie etwa einen Syslog-Sensor:
st2 sensor enable syslog_sensor
Möchten Sie einen benutzerdefinierten Sensor erstellen, müssen Sie eine YAML-Datei schreiben, die den Sensor definiert. Der Sensor wartet dann auf ein bestimmtes Ereignis, zum Beispiel eine Fehlermeldung oder einen Fehler. In Listing 1 finden Sie ein Beispiel für eine YAML-Datei eines solchen Sensors. In dieser Datei konfigurieren wir den Sensor so, dass er alle 60 Sekunden einen Ping an die angegebene IP-Adresse, in diesem Fall 192. 168.1.1 sendet. Wenn die IP-Adresse nach drei Versuchen nicht erreichbar ist, löst der Sensor den Trigger "ip.ping" aus, der wiederum den Status der IP-Adresse (online oder offline) übermittelt. Der Sensor lässt sich dann mit anderen Aktionen oder Workflows verknüpfen, um eine automatische Reaktion auf den Ausfall der IP-Adresse durchzuführen – etwa das Senden einer Benachrichtigung oder das Starten eines Fehlerbehebungsprozesses.
Listing 1: YAML-Datei für benutzerdefinierten Sensor
class_name: "PingSensor"
description: "Überwacht eine IP-Adresse und prüft, ob sie online ist"
enabled: true
trigger_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 Sekunden
sensor:
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
Trigger und Aktionen erstellen
Sobald ein Sensor ein Ereignis erkennt, löst er einen Trigger aus. Trigger sind Schnittstellen, die definieren, welche Aktionen bei einem bestimmten Ereignis zur Ausführung kommen sollen. Dadurch sind Trigger für viele Arten von Ereignissen einsetzbar, zum Beispiel für Syslog-Ereignisse oder SNMP-Traps. Die Trigger finden Sie auch in der Weboberfläche. Sie konfigurieren diese aber mit dem St2-Befehl in der CLI. Ein Trigger kann folgendermaßen aussehen:
name: syslog_trigger
pack: default
description: "Löst bei kritischen Syslog-Fehlern aus"
type: "core.syslog"
Aktionen wiederum sind die automatisierten Schritte, die StackStorm ausführt, nachdem ein Trigger ausgelöst wurde – etwa das Neustarten eines Diensts, das Versenden einer E-Mail oder das Ausführen eines Skripts. Um eine einfache Aktion zu definieren, greifen Sie auf ein Skript zurück, das einen Dienst neu startet. Auch dazu verwenden Sie eine YAML-Datei – siehe Listing 2. Diese Aktion startet den angegebenen Netzwerkdienst neu, sobald dies durch einen Trigger aktiviert wird.
Listing 2: YAML-Datei für eigene Aktion
name: restart_service
runner_type: "remote-shell-cmd"
description: "Startet einen Netzwerkdienst neu"
enabled: true
entry_point: ""
parameters:
cmd:
type: "string"
default: "sudo systemctl restart network-service"
StackStorm kommt ab Werk mit verschiedenen Aktionen. Dazu zählen Standards wie das Ausführen von Remote-Befehlen auf Linux- oder Windows-Systemen. Sie können diese Aktionen nutzen und bei Bedarf erweitern. Letzteres ist in der Dokumentation beschrieben [2]. Die vorhandenen Aktionen lassen Sie mit dem bereits erwähnten Kommando
st2 action list --pack=core
anzeigen. Außerdem sind Sie im Bereich "Actions" der Weboberfläche einsehbar. Darüber hinaus stehen im Internet auf der Plattform "StackStorm Exchange" [3] zahlreiche vorgefertigte Integrationspakete zur Verfügung, die Sie direkt über die CLI installieren. Mit st2 pack install greifen Sie auf zahlreiche Packs zu, die Verzahnungen mit Kubernetes, Ansible, VMware und mehr bieten. Diese Packs ermöglichen die Erweiterung von Aktionen, ohne dafür eigenen Code schreiben zu müssen.
Bild 2: Aktionen in StackStorm steuern Sie entweder in der CLI oder wie hier in der Weboberfläche.
Aktionen koordinieren mit Workflows
Workflows koordinieren mehrere Aktionen und können mehrstufige Prozesse automatisieren. Ein solcher Ablauf ist in Lage, einen kritischen Fehler zu erkennen, einen Dienst neu zu starten, eine Benachrichtigung zu versenden und die Netzwerkverbindung erneut zu prüfen. Workflows definieren Sie ebenso in einer YAML-Datei. In dem einfachen Beispiel aus Listing 3 löst StackStorm diesen aus, wenn ein Sensor einen Dienstfehler erkennt. Der Workflow führt die Aktion aus, den Dienst neu zu starten, und sendet anschließend eine Benachrichtigung an den Administrator.
Listing 3: YAML-Datei für eigenen Workflow
name: recover_network_service
description: "Automatisierte Wiederherstellung eines Netzwerkdienstes"
type: "direct"
tasks:
restart_service:
action: "default.restart_service"
next:
- when: "{{ succeeded() }}"
do: send_notification
send_notification:
action: "default.send_email"
input:
to: "admin@domain.com"
subject: "Dienst neu gestartet"
body: "Der Netzwerkdienst wurde erfolgreich neu gestartet."
Nachdem Sie Sensoren, Trigger, Aktionen und Workflows konfiguriert haben, können Sie Ihre Automatisierung testen. Dies kann über die CLI erfolgen, indem Sie einen Workflow manuell starten:
st2 rundefault.recover_network_service
In der Web-GUI überwachen Sie den Status laufender Workflows und sehen deren Ergebnisse in Echtzeit ein. Sie erhalten eine grafische Darstellung der einzelnen Schritte und können prüfen, ob alle Aktionen wie gewünscht durchlaufen. Sie entnehmen das zum Beispiel dem Bereich "History".
Vorgefertigte Pakete nutzen
In StackStorm spielen Packs eine zentrale Rolle bei der Implementierung von Automatisierungen. Ein solches Paket enthält alle notwendigen Ressourcen wie Aktionen, Workflows, Sensoren und Trigger, die zusammenarbeiten, um bestimmte Aufgaben zu automatisieren. Betrachten Sie Packs einfach als Erweiterungen, ähnlich wie Apps auf einem Smartphone, die zusätzliche Funktionen hinzufügen.
Auch für Packs stehen auf StackStorm Exchange zahlreiche Packs mit vorgefertigten Automatisierungen für eine Vielzahl von Systemen und Diensten wie das Active Directory, Kubernetes, AWS, VMware und ServiceNow zur Verfügung. Diese vorgefertigten Pakete ermöglichen einen schnellen Einstieg in die Automatisierung, ohne dass alles von Grund auf neu entwickelt werden muss. Dabei interagieren die Pakete in der Regel nahtlos miteinander.
Bild 3: StackStorm lässt sich jederzeit um weitere Packs aus der "StackStorm Exchange" erweitern.
So kann ein Workflow Informationen zwischen verschiedenen Packs austauschen und komplexe, systemübergreifende Automatisierungen anstoßen. Sie können vorhandene Packs installieren und sofort nutzen oder bei Bedarf erweitern, um Ihre spezifischen Anforderungen zu erfüllen. Um ein Pack zu installieren, surfen Sie zu StackStorm Exchange und klicken auf die Schaltfläche "Copy install command" für das entsprechende Pack. Anschließend fügen Sie den Befehl in die StackStorm-CLI ein. Um etwa das Active-Directory-Paket aufzuspielen, geben Sie in der Befehlszeile st2 pack install activedirectory ein. Die Installation dauert dann ein paar Sekunden und danach stehen die Aktionen, Regeln, Sensoren und Trigger zur Verfügung. Sie können diese dann entweder in der CLI oder über das Webinterface verwalten. Die Konfiguration findet aber normalerweise in der CLI statt.
Nachdem das Paket installiert ist, konfigurieren Sie es, indem Sie die Verbindungseinstellungen zum Domänencontroller anpassen. Sie müssen eine Konfi- gurationsdatei in StackStorm bearbeiten, um die IP-Adresse und den Domänencontroller festzulegen. Sie können in der Konfigurationsdatei "/opt/stackstorm/ configs/activedirectory.yaml" die notwendigen Details wie Hostname, IP-Adresse und Anmeldedaten für den Zugriff auf den Controller einfügen.
Ein einfaches Beispiel für die Überwachung ist das Durchführen regelmäßiger LDAP-Abfragen, um sicherzustellen, dass der Domänencontroller ordnungsgemäß funktioniert. Sie könnten einen Sensor einrichten, der bestimmte Ereignisse im Active Directory überwacht, wie das Hinzufügen oder Entfernen von Benutzern. Zusätzlich lassen sich Automatisierungen einrichten, die bei bestimmten Ereignissen automatisch Aktionen ausführen.
Zum Beispiel kann ein Workflow den Neustart des Domänencontrollers bei einem kritischen Fehler auslösen oder einen Administrator benachrichtigen, wenn der Domänencontroller nicht erreichbar ist. In Listing 4 finden Sie ein Beispiel für die Überwachung oder Automatisierung des Domänencontrollers "dc1.joos.int" mit der IP-Adresse "10.0.1.230". Diese Konfiguration fügen Sie in die Datei "/opt/stackstorm/configs/activedirectory.yaml" ein.
Listing 4: YAML-Datei für AD-Überwachung
hostname: "dc1.joos.int"
ip: "10.0.1.230"
username: "Administrator" # AD-Benutzername, der die nötigen Rechte hat
password: "IhrPasswort" # Passwort für den Benutzer
base_dn: "DC=joos, DC=int" # Basis-DN der Active Directory-Domäne
use_ssl: true # SSL für sichere LDAP-Verbindungen verwenden
port: 636 # Standardport für LDAP über SSL
default_ad_server: "10.0.1.230" # IP-Adresse des Domänencontrollers
ad_server: - "10.0.1.230" # Eine Listevon AD-Servern, falls mehrere zumEinsatz kommen
timeout: 30 # Timeout für Verbindungen (in Sekunden)
Automatisierung durch Regeln
Regeln (Rules) spielen eine zentrale Rolle in StackStorm, da sie bestimmen, welche Aktionen aufgrund von Ereignissen auslösen. Eine Regel in StackStorm wartet darauf, dass ein bestimmter Auslöser aktiviert wird. Sobald dies geschieht, überprüft die Regel definierte Kriterien und führt eine zugehörige Aktion aus. Wenn also ein Ereignis (Trigger) eintritt und die Bedingungen erfüllt sind, kommt es zum Auslösen einer Aktion.
Eine Regel beginnt mit der Beschreibung und Definition eines Triggers, der festlegt, welches Ereignis Sie überwachen wollen. Ein häufig verwendetes Beispiel ist der "Interval Timer", ein nativer Trigger in StackStorm, der in regelmäßigen Abständen, zum Beispiel alle 60 Sekunden, aktiv wird. Basierend auf diesem Trigger kann die Regel dann eine Aktion ausführen, zum Beispiel einen Workflow starten oder einen lokalen Befehl ausführen.
Regeln sind sehr flexibel, da sie entweder eine einzelne Aktion oder einen komplexen Workflow mit mehreren Aktionen starten können. Dies macht sie zu einem mächtigen Werkzeug, um Automatisierungen basierend auf nahezu jedem Ereignis auszulösen. Die Konfigurationsdatei sollte wie folgt aussehen:
hostname: "dc1.joos.int"
ip: "10.0.1.230"
username: "Administrator"
password: "IhrPasswort"
base_dn: "DC=joos, DC=int"
use_ssl: true
port: 636
default_ad_server: "10.0.1.230"
Speichern Sie die Datei unter "/opt/stackstorm/configs/activedirectory.yaml" und laden Sie die Konfiguration neu, um die Änderungen wirksam zu machen:
st2ctl reload --register-configs
Jetzt können Sie eine Regel erstellen, die eine spezifische Aktion des Active-Directory-Packs nutzt, um zu überprüfen, ob der Domänencontroller erreichbar ist. Verwenden Sie die Aktion "activedirectory.get_ dc_status", die den Status des Domänencontrollers abfragt. Die YAML-Datei aus Listing 5 definiert eine Regel, die den Status des Domänencontrollers alle 60 Sekunden überprüft und bei Nichterreichbarkeit eine E-Mail-Benachrichtigung sendet. Speichern Sie diese Datei unter "dc_status_ check_rule.yaml" im StackStorm-Verzeichnis und wenden Sie die Regel an:
st2 rule apply /opt/stackstorm/packs/activedirectory/rules/dc_status_check_ rule.yaml
Listing 5: Regel zur DC-Überwachung
name: "dc_status_check_rule"
description: "Überwacht den Status desDomänencontrollers alle 60 Sekunden"
enabled: true
trigger:
type: "core.interval_timer"
parameters:
unit: "seconds"
delta: 60
action:
ref: "activedirectory.get_dc_status"
parameters:
host: "10.0.1.230"
use_ssl: true
username: "Administrator"
password: "IhrPasswort"
result_handler:
when: "result == 'offline'"
action:
ref: "core.sendmail"
parameters:
to: "admin@joos.int"
subject: "Warnung: Domänencontroller dc1.joos.int nicht erreichbar"
body: | Der Domänencontroller dc1.joos.int mit der IP-Adresse 10.0.1.230 ist nicht erreichbar. Bitte überprüfen Sie den Status des Servers.
Stellen Sie sicher, dass die Konfiguration zum E-Mail-Versand korrekt eingerichtet ist, indem Sie die Datei "/opt/stackstorm/ configs/mail.yaml" bearbeiten – etwa so:
smtp_host: "smtp.joos.int"
smtp_port: 587
from: "stackstorm@joos.int"
smtp_user: "stackstorm"
smtp_password: "IhrSMTPPasswort"
use_ssl: false
use_tls: true
Nachdem Sie die E-Mail-Konfiguration angepasst haben, laden Sie sie neu:
st2ctl reload --register-configs
Ab jetzt überprüft StackStorm den Status des Domänencontrollers minütlich mit der Aktion "activedirectory.get_dc_status". Ist der DC offline, sendet StackStorm automatisch eine E-Mail an den Admin.
Fazit
Mit StackStorm lässt sich die Verwaltung und Automatisierung von Netzwerken erheblich verbessern. Die Plattform ermöglicht es Ihnen, wiederkehrende Aufgaben zu automatisieren und in Echtzeit auf Netzwerkereignisse zu reagieren. Dank der modularen Architektur orchestrieren Sie komplexe Abläufe dynamisch. Die zahlreichen Integrationsmöglichkeiten durch Packs bieten einen flexiblen und erweiterbaren Ansatz.
(ln)
Link-Codes
[1] StackStorm: https://stackstorm.com/
[2] Dokumentation zu Aktionen: https://docs.stackstorm.com/actions.html
[3] StackStorm Exchange: https://exchange.stackstorm.org/