How to Integrate SolarWinds NPM with PagerDuty

SolarWinds Network Performance Monitor (NPM) is a powerful network fault and availability management system that makes it easy to quickly detect, diagnose, and resolve performance issues before outages occur. SolarWinds NPM tracks response time, availability, uptime of routers and displays performance statistics in real time, and notifies users when something goes awry. PagerDuty and SolarWinds NPM work together to provide better incident alerting and easy-to-manage on-call schedules to SolarWinds’ network monitoring. PagerDuty alerts can be sent by a wide breadth of contact methods to ensure quick and reliable responses.  This guide will walk you through the process of integrating SolarWinds NPM with PagerDuty.  If you run into any issues with this integration, please contact our support.

In PagerDuty:

  1. Login to your PagerDuty account, and select Services > Add New Service.
    Add PagerDuty Service
  2. Enter a service name and select an escalation policy.
  3. Start typing “SolarWinds” under “Integration Type” to filter your choices. Then, click the Add Service button.
    SolarWinds

In SolarWinds NPM:

  1. From your Solarwinds NPM server, login to your PagerDuty account.  Go to the SolarWinds NPM service that you just created and download the Trigger Action and Reset Action files.
    Download PagerDuty Actions
  2. Open the Advanced Alert Manager (Start > Programs > SolarWinds Orion > Alerting, Reporting, and Mapping > Advanced Alert Manager)
  3. Either select an existing alert or create a new alert.  If configuring a new alert, set up the Alert Name, Trigger Condition and Reset Condition fields.
  4. Go to the Trigger Actions tab.  Click on Import Actions.
    Import Trigger Action
  5. Select the Trigger.AlertActions file and click Open.
    Select Trigger Action
  6. Go to the Reset Actions tab.  Click on Import Actions.
    Import Reset Action
  7. Select the Reset.AlertActions file and click on Open.
    Select Reset Action
  8. Click on OK to save your alert.
    Save Alert Triggers
  9. If you would like to test your alert, select it from the list and click on the Test button.
    Test Alert
  10. Select a node for the test, and then click on Test Alert Trigger.
    test_trigger_alert
    It takes a moment for the test to initialize, but you will get an alert within PagerDuty.
    Triggered PagerDuty Incident
  11. You can now run a test to clear the alert, so click on the Clear Alert Test button and then click on the Test Alert Reset button.
    Test Reset Alert
    The incident within PagerDuty will now resolve.
    Resolved PagerDuty Incident

Congratulations!  You’ve now configured SolarWinds NPM to integrate with PagerDuty. Please contact support@pagerduty.com with any questions or issues.

 

FAQ

How do I setup SolarWinds NPM to use multiple PagerDuty services?

In order to tie SolarWinds NPM to multiple PagerDuty services, you will repeat all of the steps of this guide.  The only things that you will do differently are that you will create multiple services within PagerDuty, download the new actions and use those for your alert within SolarWinds NPM.

Can I customize the message that I receive from SolarWinds & PagerDuty?

Yes, you can customize the message that is sent to you.  The AlertAction files that are generated for you are simply text configuration files.  Below is a sample AlertAction file:

<AlertActions>
<AlertAction ActionType='GetURL' DOW='1,2,3,4,5,6,7' EndTime='11:59:59 PM' ExecuteIfAcknowledged='True' NetObjectType='' RepeatInterval='0' SortOrder='1' StartTime='12:00:00 AM' Target='https://events.pagerduty.com/generic/2010-04-15/create_event.json' TimeOffset='0' Title="Trigger PagerDuty 'SolarWinds' service" TriggerAction='False'>
<Parameter1>POST</Parameter1>
<!-- Additional fields may be added to the 'details' dictionary. See: -->
<!-- http://www.solarwinds.com/NetPerfMon/SolarWinds/wwhelp/wwhimpl/js/html/wwhelp.htm#href=OrionAGBasicAlertEngineVariables.htm -->
<Parameter2>
{
 "service_key": "YOUR_SERVICE_API_KEY_HERE",
 "event_type": "trigger",
 "description": "${AlertName}",
 "client": "SolarWinds",
 "incident_key": "${AlertID}-${ObjectID}",
 "details":
 {
 "alert_name": "${AlertName}",
 "node_name": "${NodeName}",
 "alert_id": "${AlertID}",
 "node_id": "${NodeID}",
 "severity": "${Severity}",
 "object_id": "${ObjectID}"
 }
}
</Parameter2>
<Parameter3></Parameter3>
<Parameter4></Parameter4>
</AlertAction>
</AlertActions>

The message that is sent to you in PagerDuty is the description field.  You can modify this field to include other SolarWinds Macros.  The full list of available macros can be found here.

If you would like to change how your incidents are de-duplicated, you can modify the incident_key as well.