Example: IBM SevOne Network Management System (NMS) generic webhook event mappings
Review the following example mappings for a generic webhook integration between IBM Cloud Pak for AIOps and IBM SevOne Network Management System (NMS). Use these mappings to help you configure your own event mapping for a generic webhook integration.
- Example event (alert) JSON
- Example event mapping JSONata expression
- Example event result JSON
- Example Curl Command
Example event (alert) JSON
{
"routes": [
"IBM CloudPak for AIOps"
],
"host": "hur-ka-cpb2a.net.hursley.ibm.com",
"description": "Threshold triggered -- hur-ka-cpb2a.net.hursley.ibm.com's Ethernet1/59's Out Discards: 147.98 Number >= 120 Number totaled over 5.00 minutes",
"alertMessage": "Threshold triggered -- hur-ka-cpb2a.net.hursley.ibm.com's Ethernet1/59's Out Discards: 147.98 Number >= 120 Number totaled over 5.00 minutes",
"check": "AS-4.3-Nov - Ethernet1/59",
"cluster": "Hursley-A",
"alertId": "913284",
"alertType": "system",
"alertState": "Critical",
"occurrences": "1",
"assignedTo": "unassigned",
"deviceId": "42",
"deviceIp": "9.20.253.60",
"deviceName": "hur-ka-cpb2a.net.hursley.ibm.com",
"deviceAltName": "",
"groupName": "Special",
"objectId": "17325",
"objectName": "Ethernet1/59",
"objectAltName": "",
"objectDescription": "fcxhurb14",
"pluginName": "SNMP",
"pluginDescription": "SNMP Poller",
"policyId": "84",
"policyName": "AS-4.3-Nov",
"thresholdId": "39649",
"thresholdName": "AS-4.3-Nov - hur-ka-cpb2a.net.hursley.ibm.com - Ethernet1/59",
"linkURL": "<DI_URL.com/redirect/v1/reports?reportName=Indicator%20Summary&datasourceName=Hursley-A&indicators=SNMP%26%26Interface%26%26hur-ka-cpb2a.net.hursley.ibm.com%26%26Ethernet1%2F59%26%26ifOutDiscards&startTime=1701075605000|View in Data Insight>",
"triggeringConditions": [
{
"aggregationDuration": "5.00",
"aggregationOperation": "Total",
"baselineValue": "0.00",
"comparisonOperation": ">=",
"comparisonUnits": "Number",
"comparisonValue": "120",
"dataUnits": "Number",
"dataValue": "147.98",
"indicatorDescription": "Out Discards",
"indicatorName": "ifOutDiscards",
"sigmaDirection": "above or below",
"sigmaValue": "nan",
"thresholdValue": "120.00"
}
],
"closureMessage": "N/A"
}
Example event mapping JSONata expression
(
{
"severity": alertState="Alert" ? 6 : alertState="Emergency" ? 6 : alertState="Critical" ? 6 : alertState="Error" ? 5 : alertState="Warning"? 3 : alertState="Notice" ? 2 : alertState="Info"? 2 : alertState="Debug" ? 2 : 1,
"summary": description,
"resource": {
"name": deviceName
},
"type": {
"classification": policyName,
"eventType": ($exists(closureMessage) and closureMessage != "N/A") ? "resolution" : alertState = "Cleared" ? "resolution" : "problem"
},
"sender": {
"name": "IBM SevOne",
"type": "Webhook Connector"
},
"expirySeconds": alertId="-1" ? 300
}
)
Example event result JSON
{
"summary": "Threshold triggered -- hur-ka-cpb2a.net.hursley.ibm.com's Ethernet1/59's Out Discards: 147.98 Number >= 120 Number totaled over 5.00 minutes",
"severity": 6,
"sender": {
"name": "IBM SevOne",
"type": "Webhook Connector"
},
"resource": {
"name": "hur-ka-cpb2a.net.hursley.ibm.com"
},
"occurrenceTime": 1701662721822,
"type": {
"condition": null,
"eventType": "problem",
"classification": "AS-4.3-Nov"
}
}
Example Curl Command
- Create a payload json file
cat << EOF | tee > sevone-payload.json | cat
{
"routes": [
"IBM CloudPak for AIOps"
],
"host": "hur-ka-cpb2a.net.hursley.ibm.com",
"description": "Threshold triggered -- hur-ka-cpb2a.net.hursley.ibm.com's Ethernet1/59's Out Discards: 147.98 Number >= 120 Number totaled over 5.00 minutes",
"alertMessage": "Threshold triggered -- hur-ka-cpb2a.net.hursley.ibm.com's Ethernet1/59's Out Discards: 147.98 Number >= 120 Number totaled over 5.00 minutes",
"check": "AS-4.3-Nov - Ethernet1/59",
"cluster": "Hursley-A",
"alertId": "913284",
"alertType": "system",
"alertState": "Critical",
"occurrences": "1",
"assignedTo": "unassigned",
"deviceId": "42",
"deviceIp": "9.20.253.60",
"deviceName": "hur-ka-cpb2a.net.hursley.ibm.com",
"deviceAltName": "",
"groupName": "Special",
"objectId": "17325",
"objectName": "Ethernet1/59",
"objectAltName": "",
"objectDescription": "fcxhurb14",
"pluginName": "SNMP",
"pluginDescription": "SNMP Poller",
"policyId": "84",
"policyName": "AS-4.3-Nov",
"thresholdId": "39649",
"thresholdName": "AS-4.3-Nov - hur-ka-cpb2a.net.hursley.ibm.com - Ethernet1/59",
"linkURL": "<DI_URL.com/redirect/v1/reports?reportName=Indicator%20Summary&datasourceName=Hursley-A&indicators=SNMP%26%26Interface%26%26hur-ka-cpb2a.net.hursley.ibm.com%26%26Ethernet1%2F59%26%26ifOutDiscards&startTime=1701075605000|View in Data Insight>",
"triggeringConditions": [
{
"aggregationDuration": "5.00",
"aggregationOperation": "Total",
"baselineValue": "0.00",
"comparisonOperation": ">=",
"comparisonUnits": "Number",
"comparisonValue": "120",
"dataUnits": "Number",
"dataValue": "147.98",
"indicatorDescription": "Out Discards",
"indicatorName": "ifOutDiscards",
"sigmaDirection": "above or below",
"sigmaValue": "nan",
"thresholdValue": "120.00"
}
],
"closureMessage": "N/A"
}
EOF
cat << EOF | tee > sevone-payload-clear.json | cat
{
"routes": ["IBM CloudPak for AIOps"],
"host": "hur-ka-cpb2a.net.hursley.ibm.com",
"description": "Threshold triggered -- hur-ka-cpb2a.net.hursley.ibm.com's Ethernet1/29's Out Discards: 800.34 Number >= 100 Number totaled over 3.00 minutes",
"alertMessage": "Threshold triggered -- hur-ka-cpb2a.net.hursley.ibm.com's Ethernet1/29's Out Discards: 800.34 Number >= 100 Number totaled over 3.00 minutes",
"check": "AS-4.3-Nov - Ethernet1/29",
"cluster": "Hursley-A",
"alertId": "898689",
"alertType": "system",
"alertState": "Critical",
"occurrences": "2",
"assignedTo": "unassigned",
"deviceId": "42",
"deviceIp": "9.20.253.60",
"deviceName": "hur-ka-cpb2a.net.hursley.ibm.com",
"deviceAltName": "",
"groupName": "Special",
"objectId": "17296",
"objectName": "Ethernet1/29",
"objectAltName": "",
"objectDescription": "fshurb1",
"pluginName": "SNMP",
"pluginDescription": "SNMP Poller",
"policyId": "84",
"policyName": "AS-4.3-Nov",
"thresholdId": "39640",
"thresholdName": "AS-4.3-Nov - hur-ka-cpb2a.net.hursley.ibm.com - Ethernet1/29",
"linkURL" : "<DI_URL.com/redirect/v1/reports?reportName=Indicator%20Summary&datasourceName=Hursley-A&indicators=SNMP%26%26Interface%26%26hur-ka-cpb2a.net.hursley.ibm.com%26%26Ethernet1%2F29%26%26ifInErrors%7C%7CSNMP%26%26Interface%26%26hur-ka-cpb2a.net.hursley.ibm.com%26%26Ethernet1%2F29%26%26ifOutErrors%7C%7CSNMP%26%26Interface%26%26hur-ka-cpb2a.net.hursley.ibm.com%26%26Ethernet1%2F29%26%26ifInDiscards%7C%7CSNMP%26%26Interface%26%26hur-ka-cpb2a.net.hursley.ibm.com%26%26Ethernet1%2F29%26%26ifOutDiscards&startTime=1700650083000|View in Data Insight>",
"triggeringConditions": [] ,
"closureMessage": "Alert cleared by clear condition"
}
EOF
- Send the payload with a
curl
command
# Webhook details
WEBHOOK_URL=https://webhook-connector-1a2bc34d-1ab2-1abc-1a2b-1234a56bc789-aiops.apps.mysite.com/webhook-connector/abcdefgh1jk
AUTH=test:test
# Send alert
curl -X POST -u ${AUTH} --insecure \
-H 'Content-Type: application/json' ${WEBHOOK_URL} \
-d @./sevone-payload.json
# Send clear event
curl -X POST -u ${AUTH} --insecure \
-H 'Content-Type: application/json' ${WEBHOOK_URL} \
-d @./sevone-payload-clear.json