I am in a situation where I have to incorporate SQL Server Agent alerts in my monitoring and alerting strategy.
I needed a query (DMV) to get details on what alerts are setup on each server. And the result is the following query that I will run as a multi-server query.
And here is the sample result:
I needed a query (DMV) to get details on what alerts are setup on each server. And the result is the following query that I will run as a multi-server query.
SELECT a.[id] [alert_id],
a.[name] [alert_name],
a.[enabled] [is_alert_enabled],
o.[enabled] [is_operator_enabled],
o.[email_address] [email_address],
o.[pager_address] [pager_address],
o.[netsend_address] [netsend_address],
j.[name] [job_name],
a.[event_source] [alert_event_source],
a.[event_category_id] [alert_event_category_id],
sc.[name] [alert_category_name],
CASE sc.[category_class]
WHEN 1 THEN 'JOB'
WHEN 2 THEN 'ALERT'
WHEN 3 THEN 'OPERATOR'
ELSE '0'
END [alert_class_name],
sm.[description] [alert_message_description],
a.[event_id] [alert_event_id],
a.[message_id] [alert_message_id],
a.[severity] [alert_severity],
a.[enabled] [alert_enabled],
a.[delay_between_responses] [alert_delay_between_responses],
a.[last_occurrence_date] [alert_last_occurrence_date],
a.[last_occurrence_time] [alert_last_occurrence_time],
a.[last_response_date] [alert_last_response_date],
a.[last_response_time] [alert_last_response_time],
a.[notification_message] [alert_notification_message],
a.[include_event_description] [alert_include_event_description],
a.[database_name] [alert_database_name],
a.[event_description_keyword] [alert_event_description_keyword],
a.[occurrence_count] [alert_occurrence_count],
a.[count_reset_date] [alert_count_reset_date],
a.[count_reset_time] [alert_count_reset_time],
a.[job_id] [alert_job_id],
a.[has_notification] [alert_has_notification],
a.[flags] [alert_flags],
a.[performance_condition] [alert_performance_condition],
a.[category_id] [alert_category_id]
FROM msdb.dbo.sysalerts a
LEFT OUTER JOIN msdb.dbo.syscategories sc ON a.category_id = sc.category_id
LEFT OUTER JOIN msdb.dbo.sysnotifications sn ON ( a.id = sn.alert_id )
LEFT OUTER JOIN msdb.dbo.sysoperators o ON ( o.id = sn.operator_id )
LEFT OUTER JOIN msdb.dbo.sysjobs j ON j.job_id = a.job_id
LEFT OUTER JOIN msdb.dbo.sysmessages sm ON sm.error = a.message_id
and sm.msglangid = SERVERPROPERTY('LCID')
ORDER BY 1
And here is the sample result:
Comments
Post a Comment