To prevent prolonged periods where Alert Actions are paused, you can use this tweak to have a notification added to the header of your NPM web page. This hack is surely not supported by SolarWinds, use it at your own risk... until they provide a permanent feature as requested here: "Pause all alerts action" should trigger the addition of a message to the Notification section
1 - Create a new Notification Type:
INSERT INTO [SolarWindsOrion].[dbo].[NotificationItemTypes] ( [TypeID], [TypeName], [Module], [DetailsUrl], [Icon], [DisplayAs] ) VALUES ( NEWID(), 'PausedAlertActionsNotification', 'Orion.Core', '/Orion/NetPerfMon/Alerts.aspx', '/Orion/images/NotificationImages/notification_tip_suggestion.gif', 'LatestItemTitle' )
2 - Do a query to find out the newly generated GUID and validate step #1: Note down the resulting GUID, as we will reuse it in the next steps
SELECT [TypeID], [TypeName], [Module], [Caption], [DetailsUrl], [DetailsCaption], [Icon], [Description], [DisplayAs], [CustomDismissButtonText], [HideDismissButton] FROM [SolarWindsOrion].[dbo].[NotificationItemTypes] WHERE [TypeName] = 'PausedAlertActionsNotification'
3 - Insert permissions for newly created Notification Type: Replace the content in line #6 with the GUID givent at Step #2
INSERT INTO [SolarWindsOrion].[dbo].[NotificationTypePermissions] ( [NotificationTypeID], [RequiredRoleID] ) VALUES ( '26484C48-F474-4B05-BB9E-14CCFBF36609', '1' )
4 - Restart the SolarWinds services for this permission to be taken into account
5 - Create a test notification: Replace the content in line #14 with the GUID givent at Step #2
INSERT INTO [SolarWindsOrion].[dbo].[NotificationItems] ( [NotificationID], [Title], [CreatedAt], [Ignored], [NotificationTypeID], [Url] ) VALUES ( NEWID(), 'All Alerts actions were paused', GETUTCDATE(), '0', '26484C48-F474-4B05-BB9E-14CCFBF36609', '/Orion/NetPerfMon/Alerts.aspx' )
6 - Refresh your homepage the notification should be there!
7 - Create a job to automagically trigger a notification when alerts are paused: Once again, replace the GUID at line #23 according to your previous results.
USE [SolarWindsOrion] GO CREATE TRIGGER PausedAlertActionsNotificationSetTrigger ON [SolarWindsOrion].[dbo].[Settings] AFTER UPDATE AS BEGIN SET NOCOUNT ON; INSERT INTO [SolarWindsOrion].[dbo].[NotificationItems] ( [NotificationID], [Title], [CreatedAt], [Ignored], [NotificationTypeID], [Url] ) VALUES ( NEWID(), 'All Alerts actions were paused', GETUTCDATE(), '0', '26484C48-F474-4B05-BB9E-14CCFBF36609', '/Orion/NetPerfMon/Alerts.aspx' ) SELECT I.[SettingID], I.[CurrentValue] FROM [SolarWindsOrion].[dbo].[Settings] s INNER JOIN inserted i on s.SettingID=i.SettingID AND i.SettingID='AlertEngine-PauseActionsOfAllAlerts' AND i.CurrentValue='1' END
The trigger will appear under dbo.Settings/Triggers:
8 - Navigate to YourServer/Orion/Netperfmon/Alerts.aspx and pause actions of all alerts:
9 - Enjoy!
Possible improvements:
- Auto-remove the notification when the condition is no longer true.
- Hide the dismiss button so everyone has visibility on this status
- Add desktop notification, audit trail and/or SW event entries.