Zurück zu Ressourcen
Blog 2017-09-01 3 min Lesezeit Kai Bosch

Individuelle Netzwerküberwachung mit dem SolarWinds SDK

SolarWinds Orion mit SWIS, SWQL, PowerShell und SWIS-Verbs abfragen, erweitern und automatisieren.

Das Software Development Kit für SolarWinds Orion ist eine Werkzeugsammlung, mit der sich die Monitoring-Plattform individuell erweitern lässt. Es unterstützt vor allem Softwarelösungen in PowerShell und Python, kann aber auch unabhängig davon über SOAP und REST verwendet werden. Das Orion SDK wird auf GitHub bereitgestellt.

Einfache Datenmanipulation mit SWIS

Der SolarWinds Information Service (SWIS) ist eine zentrale Schnittstelle zum Abfragen und Bearbeiten von Orion-Daten. Dafür stellt er mit der SolarWinds Query Language (SWQL) eine SQL-ähnliche Abfragesprache bereit. Das zugrunde liegende SWIS-Datenschema ist online dokumentiert.

Das folgende PowerShell-Beispiel sucht Anwendungen, die einen Component Monitor namens get mountpoints enthalten. Anschließend ermittelt es die zugehörigen Knoten und gibt deren Name und ID aus:

Add-PSSnapin SwisSnapin;

$swis = Connect-Swis;

# Name of the application monitor
$ComponentName = "get mountpoints";

# Get application IDs for applications containing the component monitor
[string]$sAppIDs = Get-SwisData $swis "SELECT ApplicationID FROM Orion.APM.Component WHERE Name = @name" @{name = $ComponentName};
$aAppIDs = $sAppIDs.Split(" ");

Write-Output "Found $($aAppIDs.Length) Application(s) with Component";

ForEach ($sAppID in $aAppIDs) {
    # Get its node ID and name
    $nodeID = Get-SwisData $swis "SELECT NodeID FROM Orion.APM.Application WHERE ApplicationID = @AppID" @{AppID = $sAppID};
    $NodeName = Get-SwisData $swis "SELECT NodeName FROM Orion.Nodes WHERE NodeID = @node;" @{node = $nodeID};
    Write-Output "Node ID: $($nodeID) Name: $($NodeName)";
}

Vor der Ausführung muss das PowerShell Snap-in installiert werden. Die PowerShell-Dokumentation des Orion SDK beschreibt die Einrichtung.

SWIS verwendet SolarWinds-Anmeldedaten und berücksichtigt die Berechtigungen des jeweiligen Benutzers. Die Schnittstelle schirmt Clients außerdem von direkten Änderungen am Datenbankschema ab und kann damit ein konsistentes Datenmodell für Integrationen bereitstellen.

Für den Aufbau von Abfragen enthält die SDK-Installation das SWQL Studio.

SWQL Studio mit dem Schema und einer Abfrage auf Orion-Daten

Neben lesenden SWQL-Abfragen stellt SWIS Funktionen für CRUD-Operationen bereit. Sie können über das PowerShell Snap-in, den Python-Client, SOAP oder REST aufgerufen werden, sind aber nicht für jeden Orion-Datentyp implementiert.

SWIS-Funktionen verwenden eine SWIS-URI zur Auswahl eines Objekts:

$swisUri = 'swis://localhost/Orion/Orion.Nodes/NodeID=$nodeID/Volumes/VolumeID=$volumeId';

SolarWinds-Management mit SWIS-Verbs automatisieren

SWIS-Verbs führen häufige Orion-Aktionen direkt per Skript aus. Das folgende Beispiel nimmt einen Knoten zeitweise aus der Überwachung.

Zuerst wird die Node ID per SWQL ermittelt:

SELECT NodeID, Caption, Status, StatusDescription
FROM Orion.Nodes
WHERE Caption LIKE '%Test%';

Beispielergebnis:

NodeID  Caption     Status  StatusDescription
78      Testserver  1       Node status is Up.

Anschließend wird die ID an Invoke-SwisVerb übergeben. Die im historischen Beispiel verwendeten Daten sind bewusst beibehalten:

Add-PSSnapin SwisSnapin;

$swis = Connect-Swis;
[datetime]$timestampNow = "01.09.2017";
[datetime]$timestampLater = "12.09.2017";

Invoke-SwisVerb $swis Orion.Nodes Unmanage @("N:78", $timestampNow, $timestampLater, "false");

Der Knoten wird zum ersten Zeitpunkt aus der Überwachung genommen und zum zweiten wieder aufgenommen. Eine erneute Abfrage zeigt den Status 9 als „Unmanaged“.

Die Argumente eines Verbs lassen sich im SWQL Studio über die Metadaten abfragen:

SELECT EntityName, VerbName, Position, Name, Type, IsOptional
FROM Metadata.VerbArgument
WHERE VerbName = 'Unmanage'
  AND EntityName = 'Orion.Nodes';

Argumente des SWIS-Verbs Unmanage im SWQL Studio

Welche Verbs eine konkrete Installation unterstützt, liefert ebenfalls eine SWQL-Abfrage:

SELECT Name, EntityName
FROM Metadata.Verb;

Dokumentation und Community

Das Wiki des Orion SDK ist der zentrale Einstieg in die produktive Nutzung der Werkzeuge. Ergänzend stehen das SWIS-Schema und die THWACK-Community zur Verfügung.

Bereit für den nächsten Schritt?

Erzählen Sie uns von Ihrer aktuellen Landschaft und Ihren Zielen. Wir geben Ihnen eine ehrliche Einschätzung zum nächsten praktischen Schritt.

Konkrete Umsetzung

Aus der Ressource einen umsetzbaren nächsten Schritt machen

Besprechen Sie Ihre konkrete Ausgangslage mit heureka. Gemeinsam ordnen wir Prioritäten, Verantwortlichkeiten und den sinnvollsten Startpunkt.