This discussion has been locked. The information referenced herein may be inaccurate due to age, software updates, or external references.
You can no longer post new replies to this discussion. If you have a similar question you can start a new discussion in this forum.

Solarwinds NPM Integration with Ignio

Hi There,

I have been asked to work with our consulting vendor to integrate our Solarwinds (managed by my team) with Ignio (managed by consulting firm), so they can receive the NPM Alerts.

I know this can be done through API integration, but I am totally new and clueless on API topics.  

Ignio consultant requested:

1. GET REST API details of alerts from our Solarwinds.

2. Enabling JSON request and response on our Solarwinds.

Can someone please direct me on where to start and how to get those informaion.

Regards,

Ali

PS: We are currently running on NPM version 2019.4

  • A few ways that this could theoretically be done, do they just want you to send a json payload to them when alerts trigger/reset so they can just include that data in their tool, or are they also hoping to be able to send data back such as updating alert notes and acknowledging from their system?

    Solarwinds API is very different than most API's. For most API's you have a specific address that you send requests to, and there is a narrowly defined set of options you can pass along with the request and you will get a consistent payload of responses. So they are probably imagining something to the effect of sending a request to yourserver/api/alerts and maybe passing a timestamp in there to get all alerts since then in a format that looks like
    {
    result:200,
    alerts:{
    alertid,
    timestamp,
    message,
    etc
    }
    }

    In reality the SW API is basically a door into the database where you just throw SWQL queries in and the response is based on whatever you asked for, pretty much as if they were reaching directly into the database with SQL. You can ask for almost anything and it will give it to you as a giant array with any number of columns and rows.  Most of the data related to alert events will be on tables like orion.alerthistory, orion.alertobjects, orion.alertconfiguration.

    Together you guys are going to definitely need to install SWQL Studio on a box and start poking around in the database to decide what data is useful to you.
    https://github.com/solarwinds/OrionSDK
    https://github.com/solarwinds/OrionSDK/wiki
    https://github.com/solarwinds/OrionSDK/wiki/Alerts

    Also, there is no enabling the API, its always enabled for any account that can log into the console. The uri is in the wiki articles linked to there.

  • Thanks for the respond Marc.

    In our case, Ignio would only get/fetch alerts from Solarwinds. It won't send/write data to Solarwinds.  Having said that, there is no need for me to create an Alert Action to Post a request to their server, right?

    Ali

  • Most often I've seen that process, just adding an action to every alert where it http posts certain variables and that's not too far from how the built in service now integration works under the covers.
  • I would suggest to do it with an alternative approach. Configure SolarWinds to push the alerts to ignio; instead of ignio pulling from SolarWinds.

    Configuration Steps in SolarWinds:

    1. Navigate to Alerts & Activity > Alerts and click Manage Alerts (to the right) to reach the Alert Manager
    2. Select Add New Alert. Name the alert “Send Alert to ignio, then configure your desired trigger, reset, and time of day conditions
    3. Within the Trigger Actions tab select Add Action
    4. Select the Send a Get or Post a URL to a Web Server action and select Configure Action
    5. Name your action something like “Create ignio Alert“, select Use HTTP/S POST, and enter your ignio URL. It will be like http(s)://<ignio domain>/integration/event
    6. In the Body to POST, copy/paste an applicable Trigger Action payload like sample provided below.
    7. In the Authentication, select "Token" and provide the Header Name and Header Value.

    Header name – ApplicationAuthorization
    Value 
    – Auth token (generated from the ignio instance)

    ** There will be configuration required to be done in ignio to accept and process the alerts, ignio consultant should be able to take care of that.

    Sample Payload for ignio and the details of the fields expected by ignio:

    {
    "createdTime": "2019-04-18 12:14:09 EST",
    "description": " DIPUWIN2K2009: CPU utilization exceeded threshold. Current value=91%",
    "externalRefId": "alert-20190418-121409",
    "faultName": "High CPU Utilization",
    "priority": "HIGH",
    "rootEntity": "DIPUWIN2K2009",
    "severity": "CRITICAL",
    "source": "Zabbix"
    }

    Input Fields

    Sr. No.FieldDescriptionMandatory / Optional
    1ExternalRefIdIdentifier for the alert/incident which can be used for searching theMandatory
    2RootEntityEntity / CI on which the issue occurred. Usually it would be the host name, database name etc on which the issue has occurredMandatory
    3DescriptionThis is the alert description. This field expects text that carries information about the CI's(one or more) and specific issues. This can be a free flowing text that will allow ignio to mine for the above information.Mandatory
    4FaultName

    Name of the fault.

    Provide this information only if known. This name should match the fault name in the ignio catalogue

    Optional
    5SourceSource of the alert/incidentOptional
    6SeveritySeverity of the alert/incidentOptional
    7PriorityPriority of the alert/incidentOptional
    8CreatedTimeCreated timeOptional

    Reference: https://documentation.solarwinds.com/en/Success_Center/orionplatform/Content/Core-Using-Get-or-Post-URL-Functions-sw1058.htm

  • Thank You. I will give that a try and advise the result.

    Cheers,

    Ali

  • Hi There,

    We tried to create an Alert with "Send a POST Request" to our Ignio server with no success.  I tried to simulate the alert but keep getting failure message.  Could you please advise:

    1. Does Orion version HF4 will support "Send a POST Request" as and action on Alert, or should we upgrade to version 20202.2?
    2. Does the format of the "Body to Post" must be in JSON format?
    3. I am trying to create an Alert when a node goes down to "Send a POST Request" to our Ignio for creating an Incident ticket. Could you please show me a sample of "Body to Post" content?
    4. This "Send a POST Request" action should work on all the monitored nodes such as Routers, switches, and Servers, correct?

    Please advise,

    Ali

  • Just Added couple of site notes:

     Configuration Steps in SolarWinds:

    1. Navigate to Alerts & Activity > Alerts and click Manage Alerts (to the right) to reach the Alert Manager
    2. Select Add New Alert. Name the alert “Send Alert to ignio, then configure your desired trigger, reset, and time of day conditions
    3. Within the Trigger Actions tab select Add Action
    4. Select the Send a Get or Post a URL to a Web Server action and select Configure Action
    5. Name your action something like “Create ignio Alert“, select Use HTTP/S POST, and enter your ignio URL. It will be like http(s)://<ignio domain>/integration/event
    6. In the Body to POST, copy/paste an applicable Trigger Action payload like sample provided below.
    7. In the Authentication, select "Token" and provide the Header Name and Header Value.    (You need to run Orion version 2020.2 or newer)

    Header name AuthorizationToken (This is supported by Ignio Butterfly version)
    Value 
    – Auth token (generated from the ignio instance)

    ** There will be configuration required to be done in ignio to accept and process the alerts, ignio consultant should be able to take care of that.