CA Spectrum
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.
Install the Integration
Install the integration by following these steps:
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
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.
Uninstall 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.
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.
Alert resolution for inactive integrations
Any active alerts belonging to an inactive integration must be manually resolved or they will stay in the system until the auto-resolve window is reached.
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.
Manually resolve any open alerts sent from the integration to remove the associated incidents from your incident feed. These incidents will not automatically resolve without an ok status from the original sending integration.
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.