2.2 发送主题
发送主题可了解为邮件的分类,现有主题分类与说明如下。
邮件主题
分类说明
JobError Monitor
作业失败报警
Block Monitor
阻塞报警
SSISError Monitor
轮询失败报警
Identity Monitor
自增长报警
T_Space Monitor
大表监控报警
AG Monitor
AlwayOn高可用监控报警
LoginError Monitor
登录失败报警
Cpu Monitor
Cpu报警
Disk Monitor
磁盘报警
User Connection Monitor
用户连接数报警
AbnormityLogin Monitor
异常用户登录报警
JobTimeout Monitor
作业超时报警
2.3 邮件内容
邮件内容由三部分组成,分别为报警开头,报警内容,报警解释。
此三部分的内容可自定义格式,只要向 M_MailFormart 表添加如下数据:subject为报警主题,可定位此为哪种邮件;Formart为报警表格的列名,用逗号隔开;Desc为报警解释,若要换行用逗号隔开即可。
2.3.1 报警开头
报警开头包括三大块;"DBA"大字体凸显,邮件主题:通过集中处理时添加主题内容,监控时间:当前监控时间。
2.3.2 报警内容
报警内容主要格式是表格,表格包括列名称和列内容。
列名称 :由 M_MailFormart 表的Formart字段控制。通过逗号分隔每个列名称。
列内容:列内容由报警处理脚本用户自定义插入,需要注意的是,用户自定义是要与列名称统一 。
由于表格是以HTML脚本控制,<tr></tr>表示表格的每行,<td></td>表示行中的列。例如要表示2行3列可书写为:
<tr><td>内容1</td><td>内容2</td><td>内容3</td></tr>
<tr><td>内容1</td><td>内容2</td><td>内容3</td></tr>
为了邮件输出的美观,必须设置表格格式,笔者定义 : ‘<td width=100 valign=top style="border:solid lightgrey 1.0pt;border-top:none;height:18pt;font-size:8.0pt;font-family:微软雅黑 ;color:black"> </td>‘
width=100valign=top: 宽度100;向上对齐 border:solid lightgrey 1.0pt; border-top:none: 1pt的灰色边框,去除上边框 height:18pt;font-size:8.0pt;font-family:微软雅黑;color:black : 字体大小8pt,微软雅黑,黑色2.3.3 报警解释
邮件解释描述了报警机制,报警如何处理等方面,此定义通过 M_MailFormart 表指定,需要换行通过逗号指定即可。
2.4 邮件结尾
邮件结尾只是申明此邮件,已经写定。
三、邮件发送列表上述说明了将所有服务器的信息收集到监控服务器,然后统一分析处理,例如阻塞,作业失败等等。将处理完成的信息插入到邮件发送配置表 M_SendMailItem 中。
表中记录了邮件的各个信息,邮件报警通过获取该表信息,确定是否发送报警和报警内容等等。
字段名称
字段解释
MessageID
自增ID
MessageType
报警类型Error,Info
Message
报警内容
ServerName
服务器名称
JobCode
作业code;若非作业则为主题名称
JobName
作业名称;若非作业则为主题名称
Stepid
作业步骤;若非作业则NULL
CreateDate
新建时间
SendDate
发送时间
SendStatu
发送状态:S成功 F未发送 W不发送
SubJect
邮件主题
SenderName
发送主体
Recipients
发送人
CopyRecipients
抄送人
BodyFormat
发送格式HTML
Importance
发送等级
ServerType
服务器类型
四、报警流程
作业名称为:[报警]JK136009YW 发送报警邮件;每分钟执行一次,通过执行spb_M_SendMial发送报警,该存储过程的处理流程如下所示。
五、如何添加邮件报警
5.1方式一:自定义邮件主题
(1)添加邮件格式 M_MailFormart
若需要自定义邮件主题和列名称以及邮件的描述,可向下表插入相关信息。
1 INSERT INTO [ dbo ] . [ M_MailFormart ] ( [ Subject ] , [ Formart ] , [ Desc ] , [ Inserttime ] ) 2 VALUES ( < Subject > , < Formart > , < Desc > , < Inserttime > )
(2)添加邮件内容 M_SendMailItem
上述已经说明了邮件内容格式,M_MailFormart邮件格式表中的Subject内容一定要与M_sendmailitem邮件信息表的Subject对应上,且表格列名称要与邮件内容对应上。
如下定义了四列,也要在M_MailFormart的ForMart字段定义四列。添加完后邮件就会发送。
1 /* 邮件内容定义 */ 2 DECLARE @body VARCHAR ( MAX ) 3 SET @body = 4 ‘ <tr> ‘ + 5 ‘ <td width=80 style="height:18pt"></td> ‘ + 6 ‘ <td width=100 valign=top style="border:solid lightgrey 1.0pt;border-top:none;height:18pt;font-size:8.0pt;font-family:微软雅黑;color:black"> ‘ + 列1内容 + ‘ </td> ‘ + 7 ‘ <td width=100 valign=top style="border:solid lightgrey 1.0pt;border-top:none;height:18pt;font-size:8.0pt;font-family:微软雅黑;color:black"> ‘ + 列2内容 + ‘ </td> ‘ + 8 ‘ <td width=100 valign=top style="border:solid lightgrey 1.0pt;border-top:none;height:18pt;font-size:8.0pt;font-family:微软雅黑;color:black"> ‘ + 列3内容 + ‘ </td> ‘ + 9 ‘ <td width=100 valign=top style="border:solid lightgrey 1.0pt;border-top:none;height:18pt;font-size:8.0pt;font-family:微软雅黑;color:black"> ‘ + 列n内容 + ‘ </td> ‘ + 10 ‘ <td width=80 style="height:18pt"></td> ‘ + 11 ‘ </tr> ‘ 12 /* 添加邮件记录 */ 13 INSERT INTO SQLMONITOR.dbo.m_sendmailitem 14 (messagetype, 15 message, 16 servername, 17 jobcode, 18 jobname, 19 stepid, 20 createdate, 21 senddate, 22 sendstatu, 23 subject, 24 sendername, 25 recipients, 26 copyrecipients, 27 bodyformat, 28 importance, 29 servertype) 30 SELECT ‘ Info ‘ , 31 @body , 32 ‘ 服务器名称 ‘ , 33 ‘ 主题内容 ‘ , 34 ‘ 主题内容 ‘ , 35 NULL , 36 GETDATE (), 37 NULL , 38 ‘ F ‘ , 39 ‘ 主题内容 ‘ , 40 ‘ SqlMonitor ‘ , 41 REPLACE ( Stuff (( SELECT DISTINCT ‘ ; ‘ + email 42 FROM dbdmonitor.dbo.memberlist m WITH (NOLOCK) 43 WHERE id > 9000 AND m.issendmail = ‘ T ‘ 44 FOR XML PATH( ‘‘ )), 1 , 1 , ‘‘ ), ‘‘‘‘ , ‘‘‘‘‘‘ ) AS recipients, 45 NULL , 46 ‘ HTML ‘ , 47 ‘ Normoal ‘ , 48 ‘ P ‘报警邮件内容脚本
以下为用户异常登录自定义的邮件内容。
5.2方式二:通过作业失败添加邮件
若觉得邮件自动格式添加麻烦,可通过已经有的格式添加邮件信息。以作业失败为主题的报警,可直接调用存储过程 spb_AutoGetJobError 添加报警信息。
1 EXECUTE [ dbo ] . [ spb_AutoGetJobError ] 2 @jobcode = ‘ TEST ‘ -- 报警作业Jobcode,若没有作业,则可随便填写。 3 , @Messages = ‘ TEST ‘ -- 报警内容 4 , @Flag = 0 -- 报警类型,默认0:Error 1:Warning 其他:Info
测试结果如下图所示:报警主题是作业失败,报警格式是作业报警格式,在Error Message中显示了需要报警的信息。
SQL Server监控报警架构_如何添加报警
标签:
查看更多关于SQL Server监控报警架构_如何添加报警的详细内容...