Microsoft_SQL_Server_Logo

Mobile Alarmierung mit Quittierung & Eskalation für Microsoft SQL Abfragen

app_sql2

Warum Enterprise Alert

Mit der zunehmenden Digitalisierung einher gehen große Datensammlungen. Dazu wird in vielen Fällen ein zentrales Repository in Form einer Datenbank realisiert. Der nächste Schritt dann ist es diesen zur Verfügung stehenden Datenschatz zu heben und auch zur Effizienzsteigerung einzusetzen. Wir erweitern an dieser Stelle ihre Möglichkeiten durch Enterprise Alerts ausgereiftes Alarmierungs- und Filterungssystem. In dem wir die zur Verfügung stehenden Datensätze auf bestimmte Schwellwerte und Schlüsselinformationen hin überprüfen und zielgerichtet an verantwortliche User eskalieren.

Oft ist der erste Schritt im Digitalisierungsprozess Daten überhaupt erst einmal zu erfassen. Dazu wird in vielen Fällen eines zentralen Repository in Form einer Datenbank realisiert. Der nächste Schritt dann ist es diesen zur Verfügung stehenden Datenschatz zu heben und auch zur Effizienzsteigerung einzusetzen. Wir erweitern an dieser Stelle ihre Möglichkeiten durch Enterprise Alerts ausgereiftes Alarmierungs- und Filterungssystem. In dem wir die zur Verfügung stehenden Datensätze auf bestimmte Schwellwerte und Schlüsselinformationen hin überprüfen und zielgerichtet, zuverlässig und in einer aufbereiteten Form an verantwortliche User eskalieren.

Wie es funktioniert

Der Windows Task Scheduler führt einen PowerShell script aus, der Daten abfragt und diese Mittels eines REST Requests an eine dedizierte Enterprise Alert REST API weitergibt.

Integrationsvorteile

  • Alarmierung von mobilen Teams in Enterprise Alert per mobilem Push, Text und Sprache
  • Anbindung an Enterprise Alert per REST API
  • Transparente Quittierung in der mobilen App
  • Eskalation von Alarmen wenn eine bestimmte Zeit verstrichen ist
  • Team-Kommunikation innerhalb von Alarmen
  • Nachvollziehbarkeit der Störungs-Behebung
  • Integrierte Bereitschafts-Planung, um die richtigen Personen zur richtigen Zeit zu alarmieren
  • Alarmierung über kritische IoT-Status

Einsatzszenarien

  • Wartungs-Management
  • Direkte Maschine-zu-Person Kommunikation
  • Industrielles IoT
  • Industrie 4.0
  • IoT Service Benachrichtigung
  • IoT Geräte-Management
  • Produktion, Versorgung, Öl und Gas, Landwirtschaft, etc.

Wie wird's gemacht

Die Lösung, die wir hier veranschaulichen möchten, funktioniert durch eine Kombination aus verschiedenen Komponenten. Dies ist einerseits der SQL-Server-Agenten zur Planung und Ausführung einer Aufgabe und das PowerShell-Skript zur Überprüfung der Benutzerprofile. Außerdem arbeiten wir mit einem REST-Endpunkt in Enterprise Alert, um die Informationen zu den problematischen Profilen zu erhalten, und mit Richtlinien zur Analyse des Problems sowie zum Senden der entsprechenden Warnung an einen Administrator.

  1. Legen sie einen neuen REST Endpunkt in Enterprise Alert an so wie in unserem Integrationsartikel beschrieben (https://www.derdack.com/de/portfolio_item/webhook-rest-api-alarmierung-sms-anruf-push-rufbereitschaft/)
  2. Legen Sie ein neues Powershellscript mit dem unterstehenden Script Code an. Beachten sie dabei die Parameter für DB, REST Endpunkt und SQL query entsprechend anzupassen. Speichern sie es an einer für sie passenden Location in diesem Fall habe ich einfach C:/Scripts gewählt.
    $sql = "select sensor, location, temp from Datatable_furnace";
    $sqlConnection = new-object System.Data.SqlClient.SqlConnection("Server=sqlserver;User ID=dbread;Password=pw2020;Database=EnterpriseAlert;Integrated Security=true")
    $sqlConnection.open()
    $sqlCommand = $sqlConnection.CreateCommand()
    $sqlCommand.CommandText = $sql
    $DataSet = new-object System.Data.DataTable
    $Adapter = new-object System.Data.SqlClient.SqlDataAdapter($sqlCommand)
    $DataSet = New-Object System.Data.DataSet;
    $Adapter.Fill($DataSet)
    $dbConn.Close();
    $dbConn.Dispose();
    
    $MyResults = $DataSet.Tables[0];
    $MyResults | foreach-object {
    $sensor = $_.sensor;
    $location = $_.location;
    $temp = $_.temp;
    
    $request = Invoke-RestMethod "" -Method POST -ContentType "application/json" -Body "{'Sensor':'$sensor','Location':'$location','Temp':'$temp'}"
    
    if ($request.response_type -eq 'error')
    {
    $request.error.extended_error_text;
    }
    }
  3. Nun legen Sie im Windows Taskscheduler einen neuen Task, konfigurieren sie ihn sodass er in dem von ihnen gewünschten Intervall triggert und legen sie eine Action an in der sie Powershell wie untenstehend ansteuern und setzen sie die Argumente wie ebenfalls untenstehend beschrieben.

    C:WindowsSystem32WindowsPowerShellv1.0powershell.exe
    -ExecutionPolicy Bypass -File "C:Scriptssql_request.ps1"
  4. Sollte alles richtig konfiguriert sein werden sie nun in ihrer Enterprise Alert Installation neue REST Requests passend zu ihren Datenbankanfragen erhalten und können, basierend auf diesen Events nun Alarmierungsrichtlinien Konfigurieren.

Benachrichtigungen innerhalb der Enterprise Alert App

Enterprise Alert wird durch die mobile Anwendung komplettiert, durch die alle kritischen Alarmdetails von überall eingesehen werden können. Benutzer können Alarme quittieren und die Verantwortung übernehmen und mit Remote-Aktionen sogar lösen. Die Teammitglieder arbeiten mit ihren Kollegen zusammen, so dass selbst dann, wenn es sich bei einem Bereitschaftsdienstmitarbeiter nicht um ein KMU handelt, diese Person per Sprachanruf, Text oder E-Mail leicht erreichbar ist.

Ein zentralisiertes Alarmzentrum kann über das Webportal eingesehen werden. Alle Alarmierungen, ob aktiv, überfällig oder geschlossen, sind für EA-Administratoren sichtbar. Die Eigentümerschaft und sogar die Delegierung ist so einfach wie das Ziehen und Ablegen des Alarms an die Person/das Team.