程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SCOM如何監控SQL數據庫特定表值

SCOM如何監控SQL數據庫特定表值

編輯:關於SqlServer
 

在企業實際監控需求中,我們需要監控SQL數據庫特定的表值,如果該表值超出了預期的鍵值,將觸發SCOM報警機制立即以郵件或短信的方式通知SQL數據庫管理員。我們知道,該需求在SCOM監控系統中,無法通過SCOM本身自帶的功能實現,而SCOM默認也沒有MP包可以實現對SQL某個數據庫的字段表進行監控。那我們該如何實現該監控需求呢?

【正文】

大家應該已想到,腳本可以實現往往我們不能實現的監控需求。通過腳本我們能夠實現絕大部分的監控需求。因此,對於SQL數據庫特定表值的監控,我們通過腳本自定義去設置SCOM監控MP包。至於腳本的編寫,也是大家比較苦惱的事情,這裡我們提供現成的腳本實現該需求監控。腳本內容如下:

Dim objConn
Dim objRS
Dim strSQL
 
'' Create the required SCOM objects
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()
 
'' Set SQL Connection Parameters
Set objConn = CreateObject("ADODB.Connection")
strDbConnection = "Provider=SQLOLEDB;Data Source=192.168.0.55;Database=dntest;User ID=sa;Password=1qaz@WSX;"
objConn.Open(strDbConnection)
 
'' String to be executed, contained in SP
strSQL = "SELECT logmsg FROM FOR_IDS where logmsg='error'"
 
'' Create recordset and execute SP
Set objRS = CreateObject("ADODB.Recordset")
Set objRS = objConn.Execute(strSQL)
 
'' Determine health
 
  If(objRS.EOF) Then
    Call oBag.AddValue("State","GOOD")
    Call oAPI.Return(oBag)
  Else
    Call oBag.AddValue("State","ERROR")
    Call oAPI.Return(oBag)
  End If
 
 
objRS.Close()
Set objRS = Nothing
 
objConn.Close()
Set objConn = Nothing

在生產環境中如要實現該監控需求,請修改第11行~第12行中的SQL數據庫服務器、數據庫實例名、監控所用用戶名和密碼(該密碼為SA帳號)。還需修改腳本中第16行的表名和表值(FOR_IDS替換為監控SQL表名、error替換為監控表值)。另外,大家會認為SA帳號作為SQL最大權限的帳號,會很不安全。其實不然,我們並不需要使用默認的SA這麼的權限。為實現最小化的權限監控,我們可以創建一個具有連接SQL權限的SA帳號即可,不用為該SA授予其他的權限。
接下來,將按照以下步驟在SCOM服務器中配置該監控規則。配置過程如下:
1.      打開Operations Manager管理控制台,導航到“創作”菜單\管理包對象\監視器,右鍵選擇“創建單元監視器”;
2.      在創建監視器向導中,選擇腳本\通用\定時腳本二態監視器,並選擇對應的管理包;

3.      在創建單元監視器向導的常規選項中,為監控填入名稱,以及根據實際監控目標選擇監視器目標;

4.      在腳本向導中,填入腳本內容;

5.      在構建事件表達式的不正常表達式中,插入表達式,在參數名稱中輸入“Property[@Name='State']”,運算符為“不等於”,值為實際監控的值(如:error);

6.      在構建事件表達式的正常表達式中,插入表達式,在參數名稱中輸入“Property[@Name='State']”,運算符為“等於”,值為實際監控的值(如:error);
7.      配置將監視器條件映射到運行狀況的狀態為不正常時,指定為“錯誤”。並為其配置生成警報設置。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved