利用數據庫郵件服務實現監控和預警

背景

    如今愈來愈多的企業、公司要求對於數據庫實現7*24小時的數據庫監控,通常狀況下采用的就是第三方的平臺來實現郵件和手機短信的監測提醒。前幾日公司新上了一臺服務器,急於部署程序還沒來得及搭建其餘相關平臺,爲了更好的監控數據庫,暫時用SQL Server自帶的郵件服務來實現對數據庫的監控和預警。下面簡要介紹下配置的過程便於之後使用。數據庫

配置郵件

    整個部分的核心就是配置郵件服務,這部分須要一個郵件帳戶以及相應的郵件服務器。下面就以QQ的郵件爲例進行說明。安全

1.設置郵件服務器服務器

1

開啓SMTP服務,點擊開啓,而後點擊下方的生成受權碼,得到受權碼就是數據庫發送郵件帳號的密碼。網絡

2.配置數據庫郵件性能

 

打開MSSM--》管理--》數據庫郵件--》郵件配置數據庫郵件—》以下選擇測試

image

點擊下一步後按照步驟123進行配置。代理

首先建立帳戶以下:日誌

2

使用建立的帳戶做爲配置帳戶blog

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 
 

總結

   因爲平時習慣了第三方平臺的使用因此不多配置郵件服務,近日嘗試一下之後發現若是服務器網絡通暢或者內網服務完整,使用該服務仍是很方便的,並且畢竟是微軟本身的東西對於不少指標的監控也比較快捷到位。須要主要的是該功能對於權限的要求比較高,有時候須要調整用戶權限等等才能夠正常發送郵件。當沒有第三方發送預警平臺時能夠考慮這種方式,是很不錯的體驗。

相關文章
相關標籤/搜索