考慮對(duì)生產(chǎn)環(huán)境所有SQL Server服務(wù)器開啟數(shù)據(jù)庫(kù)郵件功能,它是數(shù)據(jù)庫(kù)自帶的郵件發(fā)送功能,通過配置到郵件服務(wù)器的訪問,及時(shí)接收SQL Server事件告警。
成都創(chuàng)新互聯(lián)主營(yíng)匯川網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app開發(fā)定制,匯川h5小程序開發(fā)搭建,匯川網(wǎng)站營(yíng)銷推廣歡迎匯川等地區(qū)企業(yè)咨詢
SQL Server警報(bào)是基于引擎的事件通知機(jī)制發(fā)送告警,當(dāng)事件發(fā)生時(shí)出發(fā)告警通知。
現(xiàn)階段,需要收集如下兩類SQL Server事件告警:
Severity - 事件嚴(yán)重性級(jí)別13到25告警;
Error Number - 包括操作系統(tǒng)錯(cuò)誤、IO錯(cuò)誤、內(nèi)存錯(cuò)誤、AlwaysOn狀態(tài)相關(guān)告警。
策略調(diào)整
我們考慮將這些需要監(jiān)控的告警整合到應(yīng)用程序日志,接入ELK日志分析系統(tǒng)。
我們了解到,在下列情況下,SQL Server 和 SQL Server 應(yīng)用程序產(chǎn)生的錯(cuò)誤/消息將發(fā)送到Windows 應(yīng)用程序日志:
嚴(yán)重級(jí)別為 19 或更高的 sys.messages 錯(cuò)誤
任何使用 WITH LOG 語法調(diào)用的 RAISERROR 語句
所有使用 sp_altermessage 修改或創(chuàng)建的 sys.messages 錯(cuò)誤
所有使用 xp_logevent 記錄的日志事件
引用自 https://docs.microsoft.com/en-us/sql/ssms/agent/create-an-alert-using-severity-level“Severity levels from 19 through 25 send a SQL Server message to the Microsoft Windows application log and trigger an alert. Events with severity levels less than 19 will trigger alerts only if you have used sp_altermessage, RAISERROR WITH LOG, or xp_logevent to force them to be written to the Windows application log. ”
針對(duì)上文提到、我們需要監(jiān)控的Severity和Error Number告警,我們需要做如下變更調(diào)整:
Severity - 經(jīng)過討論,不記錄嚴(yán)重級(jí)別19以下的用戶級(jí)別的錯(cuò)誤,19級(jí)別及以上的Fatal Error默認(rèn)記錄到應(yīng)用程序日志,我們不用做任何更改。
Error Number - 需要監(jiān)控的錯(cuò)誤,根據(jù)附件的查詢結(jié)果,部分錯(cuò)誤號(hào)的is_event_logged字段為0,表示沒有記錄到應(yīng)用程序日志??梢酝ㄟ^上面的sp_altermessage修改該字段為1達(dá)到記錄到應(yīng)用程序日志的目的。