• Products
  • Get started
  • Documentation
  • Resources

Integrate Opsgenie with Solarwinds NPM

Solarwinds logo

With SolarWinds NPM's quick installation, discover devices to start monitoring them. SolarWinds NPM monitors & displays response time, availability, and performance of network devices. It also has an intelligent alerting system and executes actions (sending email, using Get or Post URL Functions etc.) on alert creation and reset.

A SolarWinds NPM alert is an automated notification that a network event has occurred, such as a server becoming unresponsive. The network event that triggers an alert is determined by conditions set up during alert configuration.

What does Opsgenie offer SolarWinds NPM users?

Opsgenie provides a bidirectional integration for SolarWinds NPM. The integration leverages SolarWinds NPM's "Send a Post Request to a Web Server" functionality and OEC utility to automatically create alerts and synchronizes alert status between SolarWinds NPM and Opsgenie.

With Opsgenie’s SolarWinds NPM Integration, Opsgenie acts as a dispatcher for these alerts, determines the right people to notify based on on-call schedules– notifies via email, text messages (SMS), phone calls, and iPhone & Android push notifications, and escalates alerts until the alert is acknowledged or closed.

Opsgenie has a specific API for SolarWinds NPM Integration, SolarWinds NPM sends alerts to Opsgenie and Opsgenie handles the automatic creation of alerts.

Functionality of the integration

  • SolarWinds NPM triggers an alert when a monitored object satisfies the alert's conditions. When an alert is created in SolarWinds NPM, an alert is also created in Opsgenie automatically through the integration.

  • When the alert is acknowledged in Opsgenie, alert is acknowledged automatically in SolarWinds NPM as well, by executing the script in OEC.

  • When a note added to the alert in Opsgenie, a note is also added to the alert in SolarWinds NPM as well, by executing the script in OEC.

Important Note: Make sure that Microsoft servers in use have the following update installed: https://support.microsoft.com/en-us/kb/3109853
Microsoft servers (.NET based apps, MS S Channel, etc.) have problems with handling TLS(https) against Cloudflare; connection failures occur every one hour. Install this update for a more stable integration

Add SolarWinds NPM Integration in Opsgenie

You can add this integration from your team dashboard

If you're using Opsgenie's Free or Essentials plan, or if you’re using Opsgenie with Jira Service Management's Standard plan, you can only add this integration from your team dashboard as the Integrations page under Settings is not available in your plan.

Adding the integration from your team dashboard will make your team the owner of the integration. This means Opsgenie will assign the alerts received through this integration to your team only.

To do that,

  1. Go to your team’s dashboard from Teams,

  2. Select Integrations, and select Add integration.

Follow the rest of the steps to complete the integration.

  1. Go to Settings > Integrations. Search for SolarWinds NPM and select Add.

  2. Specify who is notified of SolarWinds NPM alerts using the Responders field. Auto-complete suggestions are provided as you type.

  3. Copy the API Key.

  4. Select Save Integration.

Configuration in SolarWinds NPM

  1. In SolarWinds NPM, navigate to the Alert Manager from "Settings" -> "Manage Alerts".

  2. In "Alert Manager" click Add New Alert.

  3. Set alert properties. Provide information about the alert, including its name, severity, how frequently to evaluate the conditions, and whether to restrict access to the alert using account limitations.

Solarwinds alert properties

4. Set trigger conditions. The trigger action is executed when trigger conditions meet. SolarWinds NPM has a strong conditioning mechanism that gives users the opportunity to build complex conditions. All fields available in the database can be used in these conditions.

Because of available variable variety and flexibility, building conditions in SolarWinds rather than Opsgenie is highly recommended.

Solarwinds NPM trigger condition

5. Set a reset condition. The reset action is executed when the condition is met.

Solarwinds NPM reset condition

6. Set the time interval for the alert to monitor your network, either always enabled or restricted to a specified time.

Solarwinds NPM time of day

7. Set the trigger action. With this trigger action, SolarWinds NPM posts alert data to Opsgenie and an alert is created in Opsgenie. To POST data to Opsgenie, set the trigger action to Send a Get or Post Request to a Web Server.

Solarwinds NPM trigger action
Solarwinds NPM add action

Choose Post Method, paste the Integration URL copied previously while saving SolarWinds NPM Integration in Opsgenie.

Then, enter the variables to send to Opsgenie with the format variable1=val1&variable2=val2. All variables sent with a Trigger action to Opsgenie can be used in the alerts field "Create Alert Action" of the SolarWinds NPM Integration.

Specify teams, recipients, and tags by putting them into the content. The default trigger action body can be sent from SolarWinds here.

The "alias" field in the following example becomes the SolarWinds NPM alerts alias field. To make different alias configurations, change the value of the alias field in post content. Make sure the alias configurations in both "Trigger" and "Reset" are the same.

Solarwinds NPM HTTP Request Settings

Opsgenie parses incoming data and creates robust alerts according to the incoming content. Modifying alert fields with incoming data can be done via draggable fields.

Create alerts for any monitored object (Nodes, Volumes, Interfaces etc.) in SolarWinds NPM. Use a "Send Http Request" action to send common fields and monitored object-specific fields. In the Opsgenie SolarWinds NPM Integration, alert specific fields are available as custom integration fields. It still supports dynamic fields to be sent to Opsgenie.

SolarwindsNPM Settings

Example: To include a NodeID variable in an alert in Opsgenie – It's not one of the integration fields available so send it from the SolarWinds NPM to use it in alert configuration, dynamically. Make sure the variable name used in Opsgenie and SolarWinds NPM is the same.

Add NodeID variable to Http Post Body by: NodeID=${N=SwisEntity;M=NodeID}

 and then use it the SolarWinds NPM Integration "Create Alert Action" alert fields like in the following example of {{NodeID}}:

SolarwindsNPM Dynamic Field

8. Set the reset action. With a reset action, SolarWinds NPM posts the data that closes the corresponding alert in Opsgenie. Configure the reset action with Send a Get or Post Request to a Web Server option. Find the default reset action body to send from SolarWinds NPM here.

SolarwindsNPM HTTP request settings

9. After reviewing the alert configuration, click SUBMIT.

Configure Opsgenie to SolarWinds Integration (Optional)

Use Opsgenie’s OEC and the SolarWinds script to update alerts on SolarWinds. This enables deployment of your own scripts/ability to modify the ones provided and execute customized actions on SolarWinds.

To use the SolarWinds integration package, follow the steps in the sections below through the end.

Download the latest version of OEC

To download the latest version of Solarwinds package, please use readme file of oec-scripts repository.

Installation

  • Unzip Opsgenie integration zip file which contains OEC package into a directory (C:\opsgenie\oec is the preferred path.) Follow the instructions here to install OEC on Windows.

  • In order to learn more about how to run OEC you can refer to the Running OEC documentation.

To be able to execute actions in SolarWinds, OEC gets the configuration parameters from the configuration file. The configuration file can be found under the directory where the zip file is extracted. As per the above instructions, it is C:\opsgenie\oec\config.json

In order to use this feature, the "Send Alert Actions To SolarWinds" checkbox should be enabled in Opsgenie SolarWinds Integration.

Configuration Parameters

 

url

URL to update SolarWinds alerts when alerts get acknowledged, commented, etc.

host

SolarWinds host.

login

Credentials to authenticate SolarWinds web server to get update alerts when alerts get acknowledged, commented, etc.

password

Credentials to authenticate SolarWinds web server to get update alerts when alerts get acknowledged, commented, etc.

SolarWinds integration package does not support SSL v1.0. If your SolarWinds Server has SSL v1.0, we suggest you to upgrade your SSL server.

Sample parameters sent from SolarWinds to Opsgenie

Text

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ActionType:Create alias:1 ObjectID:1 NodeName:172.31.14.211 Acknowledged:Not Acknowledged AcknowledgedBy: AcknowledgedTime:Never AcknowledgeUrl:http://WIN-PM7542TQNF9:8787/Orion/Netperfmon/AckAlert.aspx?AlertDefID=1 AlertDefID:e896e98d-b36b-4d7d-a32b-d6016269841d AlertDescription:default description AlertDetailsUrl:http://WIN-PM7542TQNF9:8787/Orion/View.aspx?NetObject=AAT:1 AlertID:49 AlertMessage:deneme was triggered AlertName:deneme AlertTriggerCount:312 AlertTriggerTime:Tuesday, January 5, 2016 8:16 AM Application:SolarWinds.Core.Common DateTime:Tuesday, January 5, 2016 8:16 AM DownTime:0 LastEdit:Tuesday, January 5, 2016 8:16 AM ObjectType:Node Severity:Critical TimeOfDay:Alert is always enabled teams:team1, team2 recipients:test@abc.com, test2@abc.com tags:tag1,tag2

These parameters are parsed by Opsgenie as:

JSON

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [ "ActionType": "Create", "ObjectID": "1", "NodeName": "172.31.14.211", "AlertDefID": "e896e98d-b36b-4d7d-a32b-d6016269841d", "DownTime": 0, "AlertTriggerTime": "Tuesday, January 5, 2016 8:16 AM", "DateTime": "Tuesday, January 5, 2016 8:16 AM", "AlertTriggerCount": 312, "ObjectType": "Node", "AlertID": "49", "alias": "1", "AcknowledgedTime": "Never", "AlertMessage": "deneme was triggered", "TimeOfDay": "Alert is always enabled", "AcknowledgedBy": "", "AlertName": "deneme", "teams": "[team1, team2]", "originalTags": "[tag1, tag2]", "AcknowledgeUrl": "http://WIN-PM7542TQNF9:8787/Orion/Netperfmon/AckAlert.aspx?AlertDefID=1", "Severity": "Critical", "originalExtraProperties": "[AlertDefinitionID:e896e98d-b36b-4d7d-a32b-d6016269841d, ObjectType:Node, ObjectID:1]", "tags": "[tag1, tag2]", "AlertDescription": "default description", "LastEdit": "Tuesday, January 5, 2016 8:16 AM", "recipients": "[test@abc.com, test2@abc.com]", "AlertDetailsUrl": "http://WIN-PM7542TQNF9:8787/Orion/View.aspx?NetObject=AAT:1", "Application": "SolarWinds.Core.Common", "Acknowledged": "Not Acknowledged" ]

Troubleshooting

SolarWinds NPM sends body without making any escapes on data. So, if any variables contain any characters that need to be escaped (like &), please send the data in advanced mode. Use µ#µ instead of = and §#§ instead of &. You can find a troubleshooting version of the default content for trigger action here and reset action here.

Sending the data from SolarWinds NPM to Opsgenie in either of the following two formats produces the same result in Opsgenie.

SolarwindsNPM URL Parameter content
SolarwindsNPM Advanced Content

Please make sure that the Body to Post text matches the one in here to be able to Acknowledge/Close/AddNote actions on SolarWinds side.



Additional Help