利用数据库邮件服务实现监控和预警

利用数据库邮件服务实现监控和预警

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

背景

    现在越来越多的企业、公司要求对于数据库实现7*24小时的数据库监控,一般情况下采用的就是第三方的平台来实现邮件和手机短信的监测提醒。前几日公司新上了一台服务器,急于部署程序还没来得及搭建其他相关平台,为了更好的监控数据库,暂时用SQL Server自带的邮件服务来实现对数据库的监控和预警。下面简要介绍下配置的过程便于以后使用。

配置邮件

    整个部分的核心就是配置邮件服务,这部分需要一个邮件账户以及相应的邮件服务器。下面就以QQ的邮件为例进行说明。

1.设置邮件服务器

1

开启SMTP服务,点击开启,然后点击下方的生成授权码,获得授权码就是数据库发送邮件账号的密码。

2.配置数据库邮件

 

打开MSSM–》管理–》数据库邮件–》邮件配置数据库邮件—》如下选择

image

点击下一步后按照步骤123进行配置。

首先创建账户如下:

2

使用创建的账户作为配置账户

3 

 

接下来需要选择安全公共配置,选中刚才配置的文件名,然后后面默认为配置文件

4

 

然后,可以修改“配置系统参数”,比如账户重试次数,禁止的附件文件扩展名,单击下一步,,默认配置即可:

5

 

都完成后会显示如下四个成功状态:

image

 

这样配置邮件服务就完成了可以右键“数据库邮件”点击测试邮件。也可以代码执行

--发送邮件
EXEC msdb.dbo.sp_send_dbmail 
    @profile_name = 'XXXX',         --配置文件名称
    @recipients = 'XXX@QQ.com',  --收件email地址
    @subject = '你好',                 --邮件主题
    @body = '…'            --邮件正文内容

 

 
执行完毕后可以通过错误日志下面的邮件日志来查看详细情况。
 
如果收到了邮件那么就可以进行下一步对于数据库的监控了,这里介绍两种一种是job的指定监控还有一种是警报监控。

job自定义语句监控

 

1.创建作业,核心就是在步骤中加入对指定数据的监测超过时触发通知。这里通过一个raiseerror 即可:

image

2.配置通知,当失败是发送电子邮件。

image 

2.警报监控

何为警报:MS SQL SERVER自动将发生的事情记录在Windows的程序日志中。SQL SERVER AGENT会自动监视由SQL SERVER记录的程序执行日志,如果找到符合定义的Action发生,将拉响响应事件的警报。
 警报的机制如图
6 忘记哪里的图了

机制理解:

要创建不同级别的警报,就必须得将错误写到Windows时间日志中。这个不难理解。因为在警报概念部分我们已经说了,SQL SERVER代理是从事件日志上读取错误信息。当SQL SERVER代理读取了事件日志并在此发现了新错误时,就会搜索整个数据库来寻找相应的警报。一旦SQL SERVER代理发现了Match的警报,将立即激活该警报,从而通知相关人员或者根据Job的设定来做出相应的反应。
简要配置如下,主要有三种监控类型:事件警报/性能警报/WMI警报,这里就不一一介绍了举例一个说明
 
可以选择警报类型,针对数据库和严重性中选择监测内容比如权限不足,当发生权限不足时报警:
image 
 
如下图所示,可以设定发生警报时向哪些操作员进行通知。点击新增操作员按钮,可以完成添加警报通知的操作员,选择电子邮件即可
image 
 
如下图所示,可以设定警报错误发送的方式,可以选择[E-mail]、[Pager]、[Net send]复选框(可多选),
同时可以填写在发送警报的同时给出的通知消息,并能够对响应的间隔时间进行设定。
image 
 

总结

   由于平时习惯了第三方平台的使用所以很少配置邮件服务,近日尝试一下以后发现如果服务器网络通畅或者内网服务完整,使用该服务还是很方便的,而且毕竟是微软自己的东西对于很多指标的监控也比较快捷到位。需要主要的是该功能对于权限的要求比较高,有时候需要调整用户权限等等才可以正常发送邮件。当没有第三方发送预警平台时可以考虑这种方式,是很不错的体验。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119618.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • phpstorm2021.3.19 激活码破解方法

    phpstorm2021.3.19 激活码破解方法,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • SQL存储过程之更新[通俗易懂]

    SQL存储过程之更新[通俗易懂]—添加存储过程USETestDBGOifOBJECT_ID(‘UpdataStudent’,‘P’)ISNOTNULLDropProcedureUpdataStudentgoCreateProcedureUpdataStudent@SN0INT,@SNameCHAR(10),@GenderCHAR(2),@BirthdayDATETIME,@MobileCHAR(20),@EmailCHAR(100),@HomeAddressCHAR(100),@P

  • sql中listagg用法_listagg是不是公开的函数

    sql中listagg用法_listagg是不是公开的函数跃然一笑MySQLSELECTFieldA,GROUP_CONCAT(FieldBORDERBYFieldBSEPARATOR’,’)ASFieldBsFROMTableNameGROUPBYFieldAORDERBYFieldA;Oracle&DB2SELECTFieldA,LISTAGG(FieldB,’,’)WITHIN…

  • docker下载安装教程_安卓安装docker

    docker下载安装教程_安卓安装docker前言Docker提供轻量的虚拟化,你能够从Docker获得一个额外抽象层,你能够在单台机器上运行多个Docker微容器,而每个微容器里都有一个微服务或独立应用,例如你可以将Tomcat运行在一个D

  • 数据结构(一)线性存储结构[通俗易懂]

    线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系。线性结构拥有两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的,链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息。线性结构中存在两种操作受限的使用场景,即队列和栈。栈的操作只能在线性表的一端进行,…

  • 全免费建站攻略!freewebhostingarea空间+免费tk域名

    全免费建站攻略!freewebhostingarea空间+免费tk域名原文地址:http://www.cguage.com/2010/05/free_space_domain.html前几天,无意中发现dot.tk提供的免费tk域名,现在已经开始支持绑定DNS了。而一个

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号