Microsoft_SQL_Server_Logo

Mobile Alarmierung mit Quittierung & Eskalation für Microsoft SQL Agent Jobs

app_PLC

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

Ein SQL Server Agent Job führt einen Powershell Skript 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. Öffnen Sie das SQL Management Studio und verbinden sie sich zu ihrer EA Datenbank und navigieren sie zum SQL-Server Agent und starten sie ihn sofern notwendig.
  3. Legen Sie einen neuen Job an, indem sie im SQL-Server Agent auf „Jobs“ rechts-klicken
  4. Geben sie den neuen Job einen passenden Namen und tragen Sie eine Funktionsbeschreibung ein
  5. Im soeben angelegten Job legen Sie unter „Steps“ einen neuen Step an, wählen Sie PowerShell unter Type aus und fügen Sie den PowerShell Skript ein.
    • Kopieren sie den untenstehenden SKriptcode
      $sql = "select sensor, location, temp from Datatable_furnace";
      $dbConn = New-Object Data.SqlClient.SqlConnection;
      $dbConn.ConnectionString = "Data Source=mydbserver;User ID=someuserid;Password=mypassword;Initial Catalog=mydatabase";
      $dbConn.Open();
      $QueryCmd = $dbConn();
      $QueryCmd.CommandText = $sql;
      $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter;
      $QueryCmd.Connection = $dbConn;
      $SqlAdapter.SelectCommand = $QueryCmd;
      $DataSet = New-Object System.Data.DataSet;
      $SqlAdapter.Fill($DataSet)
      $dbConn.Close();
      $dbConn.Dispose();
      
      $MyResults = $DataSet.Tables[0];
      $MyResults | foreach-object {
      $param.sensor = $_.sensor;
      $param.location = $_.location;
      $param.temp = $_.temp;
      
      $request = Invoke-RestMethod "" -Method POST -ContentType "application/json" -Body "{'Sensor':'$Param.sensor','Location':'$Param.location','Temp':'$Param.temp'}"
      
      if ($request.response_type -eq 'error')
      {
      $request.error.extended_error_text;
      }
      }
    • Fügen sie den Skriptcode ein.
    • Ersetzen Sie alle Placeholder in URL und Connection String durch die für Sie passenden Werte.
    • Optional: Passen sie den SQL query an ihre persönlichen Bedürfnisse an
  6. Navigieren Sie zu “Schedules” und legen Sie einen neuen Schedule an. Untenstehend sehen sie ein Beispiel für einen Täglich um 17 Uhr triggernden Schedule.
  7. In Enterprise Alert legen Sie nun neue Alarmierungsrichtlinen mit den untenstehnden Bedingungen.

 

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.