使用警示規則讓您隨時掌握SQL Database的狀況
說明
SQL Server內建許多工具來幫助DBA監控資料庫的效能及健全狀態,像是擴充事件、資源管理員等、SQL Server Agent等。當您使用雲端上的資料庫平台 - SQL Database,雖然可以節省很多管理資料庫的例行工作,但也犧牲了部分的彈性和便利性,以監控這件事情而言,Microsoft Azure為SQL Database量身打造了警示規則,來讓您針對您所關心的一些效能或安全度量(如下圖)達到您所設定的門檻值時,能夠通知系統管理員。
接下來,筆者將帶您了解SQL Database警示規則如何設定,並且進行簡單的測試及管理警示規則。而目前SQL Database警示功能僅支援Preview Portal,原有的管理入口網站並不支援這項功能。
學習目標
一、建立警示規則。
二、測試警示規則。
三、管理警示規則。
建立警示規則
在Microsoft Azure Preview Portal點選【您的SQL Database>警示規則>加入警示】來建立警示規則。
在加入警示規則的設定步驟,可以看到資源欄位自動帶出目前所選擇的SQL Database,代表要將警示規則套用在這個資料庫上,接著請輸入警示規則的名稱,描述的部分為選填的欄位,但警示名稱和描述等欄位目前不支援中文,在您輸入相關欄位之後,會立即檢查所輸入的字串是否符合規定,符合規定會在該欄位出現一個綠色的打勾。度量的欄位則是用來選擇要針對哪像您所關心的指標進行提供警示,本文以Failed Connections做示範,當嘗試連線到SQL Database失敗時會觸發這個警示規則。
另外,如果符合度量的條件較觸發警示,可能會不堪其擾,因此接下來的步驟可以讓您設定符合什麼樣的條件(大於、大於或等於、小於、小於或等於)臨界值而且在一定時間間隔內的事件才算是警示,若希望符合上述條件時,以電子郵件通知共同管理員或服務管理員,可以勾選【電子郵件服務和共同管理員】,設定完畢後按確定即可建立警示規則。
警示規則建立完成後,在目前所選擇的SQL Database中有多少警示規則以及詳細列表都一目了然,如下圖。
另外,建立警示規則的歷程,可以在【作業過程>通知】的視窗中看到,在Microsoft Azure上的各項操作都可以在這個地方忠實呈現。
順帶一提,除了上述步驟外,您也可以點選Successful Connections and Failed Connectsions today圖表,在度量的視窗中加入警示規則。
測試警示規則
上一節我們針對SQL Database建立一個24小時內連線失敗超過3次就要通知系統管理員的警示規則,預設SQL Database伺服器只允許Azure服務來存取。
筆者利用此一特性,先故意不將目前電腦的外部IP加入SQL Database防火牆規則,然後嘗試連線到SQL Database,藉此引發Failed Connection的事件,下列Azure PowerShell指令碼用來連接SQL Database:
#取得Azure訂用帳戶認證 Get-Credential #取得訂用帳戶 Get-AzureSubscription | Where-Object {$_.SubscriptionName -like '*Premium'} | Select-AzureSubscription #取得SQL Database伺服器 $sqldbsrv=Get-AzureSqlDatabaseServer #取得SQL Database防火牆設定 $sqldbsrv | Get-AzureSqlDatabaseServerFirewallRule #連線字串 $constr='Server=tcp:sqldbsrv.database.windows.net,1433;Database=sqldb-standard;User ID=dba;Password=P@ssw0rd;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;' #建立SqlConnection物件 $con=New-Object System.Data.SqlClient.SqlConnection $con.ConnectionString = $constr #開啟連線 $con.Open()
想當然一定會造成連線失敗,下圖的錯誤訊息告訴您必須將目前的IP位址加入到防火牆規則。
執行上述PowerShell指令碼數次之後,回到Preview Portal可以在Successful Connections and Failed Connectsions today圖表中看到連線失敗的事件已經被記錄下來,正常情況下Preview Portal會自動重新整理畫面,如果尚未看到資料被更新,可以自行重新整理。您可以看到在警示規則區塊原本是綠色打勾,代表一切正常的圖示已經變成三角形驚嘆號,表示警示規則已經被觸發,而從警示規則列表中也可以看到警示觸發的相關資訊,包含多久之前被觸發等。
由於剛剛我們有勾選警示規則超過設定的條件時要Azure的服務管理員或共同管理員,因此可以在管理員的信箱中看到如下圖的通知郵件。
管理警示規則
警示規則建立後,您可以點選【您的SQL Database>警示規則】,接著在警示規則列表點選您所藥管理的項目,就可以針對該規則進行修改、停用或是刪除。
另外也可以從【Successful Connections and Failed Connectsions today圖表>度量】來開啟警示規則列表,進而進行後續的管理作業。
不論您使用哪種方式,管理警示規則的步驟都相當直覺,不妨加入幾個警示規則來試試看。