Microsoft_SQL_Server_Logo

Mobile alerting with tracking & escalation for Data polled from Microsoft SQL

app_sql2

Why Enterprise Alert

With the ever-increasing need to digitalize processes in production and administration, data is being collected and stored in various systems and formats. The main storage systems for the collected data are usually Microsoft SQL databases. Enterprise Alert tabs into the collected data to provide automatic, reliable, and easy to read notifications to concerned parties on the shop floor and administration through email, push, SMS, and voice calls – even targeting your on-call personnel.

 How it Works

Creating a Windows Task scheduler Job requesting Data from a Microsoft SQL DB and triggering a REST Request to a dedicated Enterprise Alert REST API link will provide a connection between the systems.

Integration Capabilities

  • Forwards SQL information to Enterprise Alert for mobile alerting
  • Uses REST API to connect to your Enterprise Alert instance
  • Staff can acknowledge and take ownership of critical events that occur
  • Communicate within an alert to address a problem
  • Alerts are escalated in case of no response
  • On-call scheduling to alert the right people at the right time

Scenarios

  • Server Monitoring
  • Resource Monitoring
  • Network Analytics
  • Application Monitoring

How to Integrate

We will use PowerShell and Windows Task Scheduler to periodically extract information from the external database and then send a REST request to Enterprise Alert.  Once received, the magic of EA takes over, filtering through the data to identify if the conditions are within range and then quickly notifying the Maintenance team of the issue.

  1. Create a PowerShell script like the one listed below.  Make sure to update the parameters for DB, REST Endpoint, and SQL query according to your environment and needs. Save the file to a location that is easily accessible like in this case C:/Scripts.
    $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;
        }
    }
  2. Create a new Task within the Windows Task Scheduler and configure it to trigger at regular intervals. The action should be configured to run PowerShell with a few specific arguments (details below).

    C:WindowsSystem32WindowsPowerShellv1.0powershell.exe
    -ExecutionPolicy Bypass -File "C:Scriptssql_request.ps1"
  3. In case everything has been configured correctly you should now receive REST requests matching the DB requests done by the PowerShell script. These show up as Incoming Events within Enterprise Alert. Based on these events you can now start to build your Workflows and Policies.

Notifications within the Enterprise Alert mobile app

Enterprise Alert comes complete with a mobile app allowing for all critical alert details to be seen from anywhere.  Users can acknowledge and take ownership of alerts and with remote actions, even resolve them.  Team members collaborate with their peers so that even if an on-call person is not the SME, that person is easily within reach via voice call, text or email.

A centralized Alert Center can be viewed from the web portal.  All alerts, whether active, overdue or closed are visible to EA admins.  Ownership and even delegation is as easy as drag-and-dropping the alert to the person/team.