SolarWinds Network Performance Monitor

The SolarWinds Orion platform is a powerful, scalable infrastructure monitoring and management platform designed to simplify IT administration for on-premises, hybrid, and software as a service (SaaS) environments. When events meet predetermined criteria, this integration with xMatters relays critical insight data to the correct people and systems to help them coordinate and resolve incidents faster.

How it works

When an alert is generated in SolarWinds Network Performance Monitor (SolarWinds NPM), it sends a JSON-formatted webhook to xMatters, based on user-defined alert rules. A SolarWinds NPM Alert trigger in xMatters parses the webhook and initiates a flow. The webhook includes essential alert data you can use to enrich notifications to users or when building automated tasks.

Install the workflow

The following instructions describe how to install the workflow through the xMatters one-click installation process. If you already installed the previous, built-in version of the integration, you can find instructions here.

  1. Go to the Workflow Templates page and click the SolarWinds tile.
  2. On the Set up the Workflow tab, give the workflow a name (this must be unique in your instance) and add an optional description.
    • You can edit these later, if needed.

  3. Click Next to set up the connection.
  4. Copy the trigger URL — you’ll use this to configure the webhook in SolarWinds.
    • The trigger URL includes the recipients parameter, which specifies who should be notified. By default, this parameter is set to notify you (the logged in user), but you can set it to target any user or group you want.

  5. You can copy the Configuration Payload to configure the signal in the source application.
  6. Send a test signal to the trigger URL to test the connection.
  7. Click Open Workflow to view and customize the workflow, or Close to return to the Workflows page.

Configure SolarWinds NPM to send requests to the trigger URL

To have SolarWinds NPM send alerts to the flow trigger, you need to create a new alert or edit an existing alert and set it to use the trigger URL.

ClosedConfigure the webhook

  1. In the Orion Web Console, go to Settings > All Settings > Alerts & Reports > Manage Alerts.

  2. Choose whether to create a new alert or use an existing one: 
    • To create a new alert click Add New Alert.
    • To use an existing alert, select the check box next to the alert name and click Edit Alert.

  3. On the Properties tab of the Edit Alert window, click Enabled (On/Off) to enable the alert.

  4. Click Next to continue to the next page of configuration options. For this trigger configuration, the next tab you need is Trigger Actions.
  5. On the Trigger Actions tab, click Add Action.

  6. From the list of actions, select Send a GET or POST Request to a Web Server, then click Configure Action.

  7. On the Configure Action window, fill in the following fields: 
    • Name of action: e.g., Triggered Action
    • URL: paste the trigger URL you copied from Flow Designer. Add the target names of any recipients you want to notify when the alert fires to the end of the URL.
      • For URL authentication, use an ampersand to attach recipients. For example, if you want to notify Emma Pearson and the on-call members in the group responsible for the Antares service, you’d add

        &recipients=epearson,antares

        to the URL.

      • You must URL-encode any special characters or spaces in the target names.
    • Select Use HTTP/S POST.
    • Body to POST: Overwrite the default payload with the Configuration payload for the Add Action in step 7: you copied from the SolarWinds NPM Alerts trigger in Flow Designer:
    • ContentType: Application/JSON

  8. Click Add Action.
  9. On the Reset Actions tab, click Add Action.
  10. From the list, select Send a GET or POST Request to a Web Server.
  11. Fill in the following fields:
    • Name of action: e.g., Triggered Action
    • URL: paste the trigger URL you copied from Flow Designer. Add the target names of any recipients you want to notify when the alert fires to the end of the URL.
      • For URL authentication, use an ampersand to attach recipients. For example, if you want to notify Emma Pearson and the on-call members in the group responsible for the Antares service, you’d add

        &recipients=epearson,antares

        to the URL.

      • For other authentication types, use a question mark to attach recipients. For example, if you want to notify Barry Gull and the on-call members in the group responsible for the Cassiopeia service, you’d add

        ?recipients=bgull,cassiopeia

        to the URL.

      • You must URL-encode any special characters or spaces in the target names.
    • Select Use HTTP/S POST.
    • Body to POST: Overwrite the default payload with the linked Configuration Payload for the Reset Action in step 12:.
    • ContentType: Application/JSON
  12. On the Summary tab, review your changes and click Submit.

You’re ready to use the webhook to trigger automated flows, including steps such as sending alerts and initiating incidents, though we always recommend testing before putting things into use.

 

Configuration payload for the Add Action in step 7:

{
"NodeID" : "${N=SwisEntity;M=NodeID}",
"DisplayName" : "${N=SwisEntity;M=DisplayName}",
"Status" : "${N=SwisEntity;M=Status;F=Status}",
"StatusDescription" : "${N=SwisEntity;M=StatusDescription}",
"PolledStatus" : "${N=SwisEntity;M=PolledStatus}",
"Category" : "${N=SwisEntity;M=Category}",
"Alert" : {
"AlertAction" : "Trigger",
"AlertDefID" : "${N=Alerting;M=AlertDefID}",
"AlertActiveID" : "${N=Alerting;M=AlertActiveID}",
"AlertMessage" : "${N=Alerting;M=AlertMessage}",
"AlertName" : "${N=Alerting;M=AlertName}",
"Severity" : "${N=Alerting;M=Severity}",
"AlertTriggerTime" : "${N=Alerting;M=AlertTriggerTime;F=DateTime}",
"AcknowledgeLink" : "${N=Alerting;M=AcknowledgeLink;F=OriginalValue}",
"AlertDetailsUrl" : "${N=Alerting;M=AlertDetailsUrl}"
}
}
 

Configuration Payload for the Reset Action in step 12:

{
"NodeID" : "${N=SwisEntity;M=NodeID}",
"DisplayName" : "${N=SwisEntity;M=DisplayName}",
"Status" : "${N=SwisEntity;M=Status;F=Status}",
"StatusDescription" : "${N=SwisEntity;M=StatusDescription}",
"PolledStatus" : "${N=SwisEntity;M=PolledStatus}",
"Category" : "${N=SwisEntity;M=Category}",
"Alert" : {
"AlertAction" : "Reset",
"AlertDefID" : "${N=Alerting;M=AlertDefID}",
"AlertActiveID" : "${N=Alerting;M=AlertActiveID}",
"AlertMessage" : "${N=Alerting;M=AlertMessage}",
"AlertName" : "${N=Alerting;M=AlertName}",
"Severity" : "${N=Alerting;M=Severity}",
"AlertTriggerTime" : "${N=Alerting;M=AlertTriggerTime;F=DateTime}",
"AcknowledgeLink" : "${N=Alerting;M=AcknowledgeLink;F=OriginalValue}",
"AlertDetailsUrl" : "${N=Alerting;M=AlertDetailsUrl}"
}
}
 

Set recipients in the trigger URL

The trigger expects the recipients in the trigger URL. When you copy the URL from xMatters, it includes the recipients parameter: &recipients=<yourname>. Of course, you don’t want to receive all the alerts.

To change the recipients for alerts from this webhook, swap out your name for the people or groups you want to target. For example, to target the ‘DatabaseTeam’, ‘Antares Service Team’, and ‘HR & Marketing’ groups, add &recipients=databaseteam,antares%20service%20team,HR%20%26%20Marketing to the trigger URL. Remember to URL-encode any special characters, including spaces, in your group names.

We recommend using groups so you can take advantage of the xMatters group features — rotations, escalations, and absences — to reach the right on-call people to jump on an issue.

How to use the workflow

When a condition you’ve set fires, it sends a signal to xMatters, which creates an alert and notifies the individual or the on-call members of the people or groups you set as recipients in the webhook URL. When the trigger receives a signal saying the issue is resolved, it automatically terminates related alerts in xMatters.

ClosedNotification responses and associated actions

The person responding to the notification has the following response options:

  • Acknowledge: Acknowledges the notifications and stops escalations.
  • Escalate: Immediately escalates the alert to the next on-call resolver in a targeted group.
  • Close: Ends the

    xMatters

    alert and stops notifying all targeted recipients.

  • Initiate Incident: Initiates an incident in

    xMatters

    .

Next Steps

Now that you’ve installed the workflow, you can use it as-is, or customize it to suit your needs better. Here are some examples of things you can add to the workflow to customize it:

Previous Version

While the previous, built-in version of this integration is no longer available, the instructions for it are included below for anyone who has it installed in their system already and would like to review them.

ClosedPrevious SolarWinds NPM integration instructions

The integration with xMatters supports automated callout to on-call resources. Recipients can engage in a workflow to acknowledge alerts, set maintenance periods and clear alerts from the Orion console. The recipient can also escalate to other on-call resources. All workflow including notification and responses are annotated to the alert.

Do more with this integration

Incorporate this integration into your orchestrated incident resolution workflows with Flow Designer. After you create a configuration, the Flow Designer tab appears. From there, you can build your flows — add new response options, connect to other apps, or even create new xMatters alerts based on activities in the flow — enriching the information injected by this integration along the way.

Got questions about integrating with Solarwinds? Take a live, online workshop led by one of our xPerts.

Get started with SolarWinds

 

ClosedHow to install a built-in workflow

To install this integration in xMatters, simply go to Workflow Templates on the Workflows tab and start typing the name of the integration you’re looking for to filter the list. Once you find it, click its tile then click Next to get to the configuration screen.

How to set up a SolarWinds configuration

Before you get started, make sure that you have already installed and configured an xMatters Agent on your SolarWinds server. This integration uses the xMatters Agent to handle communication between xMatters On-Demand and SolarWinds.

After you give your configuration a name and description, type a name to use when sending alerts (so you can easily tell which configuration or integration the alerts are from), and add all of the users and groups you want to be notified.

In the list of available xMatters Agents, select the Agent that you installed on the SolarWinds server, and then supply the following information about your SolarWinds system:

  • SolarWinds API Endpoint URL: A URL that

    xMatters

    can access to post back to your SolarWinds system via the SolarWinds API. If you use a local address (for example, localhost), make sure the hostname matches the one for the SolarWinds certificate on the machine where the

    xMatters

    Agent is installed.

  • SolarWinds API Username: The username of a SolarWinds user that can grant

    xMatters

    access to the SolarWinds API.

  • SolarWinds API Password: The SolarWinds user’s password.

Once you save the configuration, xMatters displays the information you need to configure SolarWinds:

You can now create a trigger action and a reset action for an alert in SolarWinds and use the payload and URLs supplied on the configuration screen to configure them.

ClosedHow to install the

xMatters

integration in SolarWinds

  1. In the SolarWinds web console, navigate to the Alerts tab, and then click Manage Alerts.
  2. Create a new alert using the wizard, and follow the steps until you reach the Trigger Actions step.
  3. On the Trigger Actions page, click Add Action.
  4. For the type of action, select Send a GET or POST Request to a Web Server.
  5. In the Configure Action dialog box, type a name for the action (for example, “Post to

    xMatters

    “).

  6. In the URL field, paste the first URL you copied from the configuration screen in

    xMatters

    .

  7. Select the Use HTTP Post option, and then paste the payload you copied from

    xMatters

    into the Body to POST field.

  1. Save the action and continue to the Reset Actions step.
  2. On the Reset Actions page, click Add Action.
  3. For the type of action, select Send a GET or POST Request to a Web Server.
  4. In the Configure Action dialog box, type a name for the action (for example, “

    xMatters

    Reset”).

  5. In the URL field, paste the first URL you copied from the configuration screen in

    xMatters

    .

  6. Select the Use HTTP Post option, and then paste the payload you copied from

    xMatters

    into the Body to POST field.

  7. Save the action, and complete the alert configuration.

Your integration is now complete!

Use your integration

Whenever an event in SolarWinds triggers the alert, the HTTP POST will send the information to xMatters and initiate the form. The integration will send the information to the recipient specified in the HTTP request, prompting them to respond. When xMatters receives the response, the integration will send the response back to SolarWinds via the xMatters Agent, and update the original event.

ClosedHow to use your integration

To test the integration, you can use the test alert feature available in SolarWinds on the alert configured to send an xMatters notification. This integration also provides the ability to put a node or service into maintenance mode, or “unmanaged” in SolarWinds terminology. Whenever you put a node into an unmanaged state, you must specify a duration.

Notification recipients can select from the following response options:

  • Acknowledge: assigns the alert to the responder, and stops notifying other recipients.
  • Maintenance Period 5 minutes: stops notifying the responder, and tells SolarWinds to put the node into maintenance mode for 5 minutes.
  • Maintenance Period 15 minutes: stops notifying the responder, and tells SolarWinds to put the node into maintenance mode for 15 minutes.
  • Maintenance Period 1 hour: stops notifying the responder, and tells SolarWinds to put the node into maintenance mode for 1 hour.
  • Close: stops notifying all recipients and terminates the alert.
  • Escalate: stops notifying the responder about the alert, and immediately escalates the notification to the next available group member defined in

    xMatters

    .

Troubleshooting

SolarWinds NPM doesn’t escape certain characters in the payload it sends out (& or % for example). This will cause issues when xMatters tries to parse the payload. We’re looking into a permanent fix, but, if you need help adjusting the payload to work around this issue in the meantime, reach out to us at https://support.xmatters.com.

Extending your integration

Looking to do more with xMatters and Solarwinds? If you want to tailor the settings and notifications for the integration, you can convert it to a custom workflow.