CA Spectrum
Send monitoring events from CA Spectrum to BigPanda.
Supported Versions | Type | Authentication Type |
---|---|---|
CA Spectrum Version 9.4.x | Custom Spectrum Scripts, Python (Version 2.6.x - 2.7.x) | Org Bearer Token |
CA Spectrum delivers advanced scalability and features that enable your organization to effectively monitor and manage its dynamic, complex IT infrastructure—including physical, virtual, and cloud environments as well as software-defined networks (SDN). CA Spectrum is a single platform that features proactive network change management, fault isolation, and root cause analysis. With CA Spectrum, you can track, manage, and optimize not only the network infrastructure but also the business services running on top of it.
Before You Integrate
Before you start, you must have access to the following:
- CA Spectrum
- CA Spectrum Alarm Notification Manager (SANM)
- CA Spectrum AlarmNotifier & AlarmNotifier Enhancements
- BigPanda Account
- CA Spectrum Admin User With Read/Write Access
Install the Integration
Create An AlarmNotifier
On your CA Spectrum server, create an AlarmNotifier. See Chapter 5 of your CA Spectrum & Alarm Notification User Manual.
In the following sections, you will edit the SetScript, UpdateScript, and ClearScript for the AlarmNotifier.
The directory path to your AlarmNotifier is typically located at: <$SPECROOT>/Notifier
.
Edit The SetScript
Add the following code to the SetScript that is executed by the AlarmNotifier.
CURL=/usr/bin/curl # Define directory
URL="https://api.bigpanda.io/data/v2/alerts" #lambda endpoint
APP_KEY="<Your App Key>"
ORG_TOKEN="<Your Org Bearer Token>"
if [ -n "$SANM_0x12b4c" ]
then
ALARM_TITLE="$SANM_0x12b4c"
else
PCAUSE_HEAD=`echo "$PCAUSE" | /usr/bin/head -1`
ALARM_TITLE="$PCAUSE_HEAD"
fi
if [ -n "$SANM_0x11f7e" ]
then
IFALIAS=${SANM_0x11f7e}
else
IFALIAS="NA"
fi
# CA Alarm Variables
DATE=$1
TIME=$2
MODEL_TYPE=$3
HOST=$4
ALARM_ID=$5
SEVERITY=$6
CAUSE=$7
REPAIR_PERSON=$8
SPECTRO_SERVER=$9
LANDSCAPE=${10}
MODEL_HANDLE=${11}
MODEL_TYPE_HANDLE=${12}
IP_ADDRESS=${13}
SECURITY_STRING=${14}
ALARM_STATE=${15}
ACKNOWLEDGED=${16}
CLEARABLE=${17}
DEVICE_TYPE=${18}
CASTATUS=${STATUS}
# define additional tags and variables here... e.g.
# SERVERNAME=${SANM_0x00012b4c}
# SWITCH=${SANM_0x13376}
DESCRIPTION=`echo ${EVENTMSG} | sed -e "s/\"//g"`
ADDITIONAL_INFO=`echo ${PCAUSE} | sed -e "s/\"//g"`
echo "$(date) Sending SET event to BigPanda"
DATA="{
\"app_key\" : \"${APP_KEY}\",
\"incident_identifier\" : \"${ALARM_ID}\",
\"date\" : \"${DATE}\",
\"time\" : \"${TIME}\",
\"model_type\" : \"${MODEL_TYPE}\",
\"host\" : \"${HOST}\",
\"mac_address\" : \"${SANM_0X110DF}\",
\"alarm_id\" : \"${ALARM_ID}\",
\"alarm_severity\" : \"${SEVERITY}\",
\"cause\" : \"${CAUSE}\",
\"repair_person\" : \"${REPAIR_PERSON}\",
\"spectro_server\" : \"${SPECTRO_SERVER}\",
\"landscape\" : \"${LANDSCAPE}\",
\"model_handle\" : \"${MODEL_HANDLE}\",
\"model_type_handle\" : \"${MODEL_TYPE_HANDLE}\",
\"ip_address\" : \"${IP_ADDRESS}\",
\"security_string\" : \"${SECURITY_STRING}\",
\"alarm_state\" : \"${ALARM_STATE}\",
\"acknowledged\" : \"${ACKNOWLEDGED}\",
\"clearable\" : \"${CLEARABLE}\",
\"device_type\" : \"${DEVICE_TYPE}\",
\"castatus\" : \"${CASTATUS}\",
\"alarm_description\" : \"${DESCRIPTION}\",
\"additional_info\" : \"${ADDITIONAL_INFO}\",
\"device_location\" : \"${DEVICE_LOCATION}\",
\"topology_model\" : \"${TOPOLOGY_MODEL}\",
\"alarm_title\" : \"${ALARM_TITLE}\",
\"ifalias\" : \"${IFALIAS}\",
\"action\" : \"set\"
}"
echo `${CURL} -H "Authorization: Bearer ${ORG_TOKEN}" -H "Accept: application/json" -H "Content-Type: application/json" -X POST --data "${DATA}" ${URL}`
echo "$(date) Sent SET event to BigPanda"
Edit The UpdateScript
Add the following code to the UpdateScript that is executed by the AlarmNotifier.
CURL=/usr/bin/curl # Define directory
URL="https://api.bigpanda.io/data/v2/alerts" #lambda endpoint
APP_KEY="<Your App Key>"
ORG_TOKEN="<Your Org Bearer Token>"
if [ -n "$SANM_0x12b4c" ]
then
ALARM_TITLE="$SANM_0x12b4c"
else
PCAUSE_HEAD=`echo "$PCAUSE" | /usr/bin/head -1`
ALARM_TITLE="$PCAUSE_HEAD"
fi
if [ -n "$SANM_0x11f7e" ]
then
IFALIAS=${SANM_0x11f7e}
else
IFALIAS="NA"
fi
# CA Alarm Variables
DATE=$1
TIME=$2
MODEL_TYPE=$3
HOST=$4
ALARM_ID=$5
SEVERITY=$6
CAUSE=$7
REPAIR_PERSON=$8
SPECTRO_SERVER=$9
LANDSCAPE=${10}
MODEL_HANDLE=${11}
MODEL_TYPE_HANDLE=${12}
IP_ADDRESS=${13}
SECURITY_STRING=${14}
ALARM_STATE=${15}
ACKNOWLEDGED=${16}
CLEARABLE=${17}
DEVICE_TYPE=${18}
CASTATUS=${STATUS}
# define additional tags and variables here... e.g.
# SERVERNAME=${SANM_0x00012b4c}
# SWITCH=${SANM_0x13376}
DESCRIPTION=`echo ${EVENTMSG} | sed -e "s/\"//g"`
ADDITIONAL_INFO=`echo ${PCAUSE} | sed -e "s/\"//g"`
echo "$(date) Sending UPDATE event to BigPanda"
DATA="{
\"app_key\" : \"${APP_KEY}\",
\"incident_identifier\" : \"${ALARM_ID}\",
\"date\" : \"${DATE}\",
\"time\" : \"${TIME}\",
\"model_type\" : \"${MODEL_TYPE}\",
\"host\" : \"${HOST}\",
\"mac_address\" : \"${SANM_0X110DF}\",
\"alarm_id\" : \"${ALARM_ID}\",
\"alarm_severity\" : \"${SEVERITY}\",
\"cause\" : \"${CAUSE}\",
\"repair_person\" : \"${REPAIR_PERSON}\",
\"spectro_server\" : \"${SPECTRO_SERVER}\",
\"landscape\" : \"${LANDSCAPE}\",
\"model_handle\" : \"${MODEL_HANDLE}\",
\"model_type_handle\" : \"${MODEL_TYPE_HANDLE}\",
\"ip_address\" : \"${IP_ADDRESS}\",
\"security_string\" : \"${SECURITY_STRING}\",
\"alarm_state\" : \"${ALARM_STATE}\",
\"acknowledged\" : \"${ACKNOWLEDGED}\",
\"clearable\" : \"${CLEARABLE}\",
\"device_type\" : \"${DEVICE_TYPE}\",
\"castatus\" : \"${CASTATUS}\",
\"alarm_description\" : \"${DESCRIPTION}\",
\"additional_info\" : \"${ADDITIONAL_INFO}\",
\"device_location\" : \"${DEVICE_LOCATION}\",
\"topology_model\" : \"${TOPOLOGY_MODEL}\",
\"alarm_title\" : \"${ALARM_TITLE}\",
\"ifalias\" : \"${IFALIAS}\",
\"action\" : \"update\"
}"
echo `${CURL} -H "Authorization: Bearer ${ORG_TOKEN}" -H "Accept: application/json" -H "Content-Type: application/json" -X POST --data "${DATA}" ${URL}`
echo "$(date) Sent UPDATE event to BigPanda"
Edit The ClearScript
Add the following code to the ClearScript that is executed by the AlarmNotifier.
CURL=/usr/bin/curl # Define directory
URL="https://api.bigpanda.io/data/v2/alerts" #lambda endpoint
APP_KEY="<Your App Key>"
ORG_TOKEN="<Your Org Bearer Token>"
if [ -n "$SANM_0x12b4c" ]
then
ALARM_TITLE="$SANM_0x12b4c"
else
PCAUSE_HEAD=`echo "$PCAUSE" | /usr/bin/head -1`
ALARM_TITLE="$PCAUSE_HEAD"
fi
if [ -n "$SANM_0x11f7e" ]
then
IFALIAS=${SANM_0x11f7e}
else
IFALIAS="NA"
fi
# CA Alarm Variables
DATE=$1
TIME=$2
MODEL_TYPE=$3
HOST=$4
ALARM_ID=$5
SEVERITY=$6
CAUSE=$7
REPAIR_PERSON=$8
SPECTRO_SERVER=$9
LANDSCAPE=${10}
MODEL_HANDLE=${11}
MODEL_TYPE_HANDLE=${12}
IP_ADDRESS=${13}
SECURITY_STRING=${14}
ALARM_STATE=${15}
ACKNOWLEDGED=${16}
CLEARABLE=${17}
DEVICE_TYPE=${18}
CASTATUS=${STATUS}
# define additional tags and variables here... e.g.
# SERVERNAME=${SANM_0x00012b4c}
# SWITCH=${SANM_0x13376}
DESCRIPTION=`echo ${EVENTMSG} | sed -e "s/\"//g"`
ADDITIONAL_INFO=`echo ${PCAUSE} | sed -e "s/\"//g"`
echo "$(date) Sending CLEAR event to BigPanda"
DATA="{
\"app_key\" : \"${APP_KEY}\",
\"incident_identifier\" : \"${ALARM_ID}\",
\"date\" : \"${DATE}\",
\"time\" : \"${TIME}\",
\"model_type\" : \"${MODEL_TYPE}\",
\"host\" : \"${HOST}\",
\"mac_address\" : \"${SANM_0X110DF}\",
\"alarm_id\" : \"${ALARM_ID}\",
\"alarm_severity\" : \"${SEVERITY}\",
\"cause\" : \"${CAUSE}\",
\"repair_person\" : \"${REPAIR_PERSON}\",
\"spectro_server\" : \"${SPECTRO_SERVER}\",
\"landscape\" : \"${LANDSCAPE}\",
\"model_handle\" : \"${MODEL_HANDLE}\",
\"model_type_handle\" : \"${MODEL_TYPE_HANDLE}\",
\"ip_address\" : \"${IP_ADDRESS}\",
\"security_string\" : \"${SECURITY_STRING}\",
\"alarm_state\" : \"${ALARM_STATE}\",
\"acknowledged\" : \"${ACKNOWLEDGED}\",
\"clearable\" : \"${CLEARABLE}\",
\"device_type\" : \"${DEVICE_TYPE}\",
\"castatus\" : \"${CASTATUS}\",
\"alarm_description\" : \"${DESCRIPTION}\",
\"additional_info\" : \"${ADDITIONAL_INFO}\",
\"device_location\" : \"${DEVICE_LOCATION}\",
\"topology_model\" : \"${TOPOLOGY_MODEL}\",
\"alarm_title\" : \"${ALARM_TITLE}\",
\"ifalias\" : \"${IFALIAS}\",
\"action\" : \"clear\"
}"
echo `${CURL} -H "Authorization: Bearer ${ORG_TOKEN}" -H "Accept: application/json" -H "Content-Type: application/json" -X POST --data "${DATA}" ${URL}`
echo "$(date) Sent CLEAR event to BigPanda"
Test the Integration by Sending a Test Alert
- Restart the AlarmNotifier application service.
- Test the custom SetScript by generating an alert on a system that is monitored by Spectrum.
Delete the Integration
Deleting an integration requires that you remove the integration in both the integrated system and BigPanda. We recommend that you first uninstall the integration on the integrated system to prevent traffic from being sent and rejected by BigPanda, since the app key will not exist once you delete the integration in BigPanda.
Caution During Replacement
When replacing an existing integration with a new tool or system, we recommend configuring the new integration first to ensure no data is lost.
Deactivate Inbound Integration
If you want to stop sending data to BigPanda but don’t want to delete your integration, you can temporarily deactivate it.
This feature is currently only available for inbound integrations.
To deactivate an inbound integration:
- In BigPanda, navigate to the Integrations tab and select the desired integration from the list. This will open integration details on the right side of the window.
- At the top of the integration details, click the Active/Inactive toggle next to the application name to change the status of the integration.
In the integrations list, inactive integrations will be marked with a gray bar.
Stop Sending Data to BigPanda
Within the integrated system, disable any settings that send data to BigPanda.
Each system requires specific changes to disable the integration with BigPanda. For example, you must delete the topic in CloudWatch, and you must disable the alert channel in New Relic. To determine the changes for your integrated system, reference the relevant documentation or contact BigPanda support.
Delete the Integration in BigPanda
Take the following steps to delete the integration from BigPanda:
- In BigPanda, navigate to the Integrations tab and select the desired integration from the list.
- In the integration details on the right of the page, click the trash icon, then confirm you want to delete the integration. The integration will be removed immediately.
️Automatic Alert Resolution for Deleted Integrations
All active alerts from the integration will be resolved after deletion.
Data Removal
This procedure does not remove any data from the integrated system.
Updated 4 months ago