天天看點

SQL Server自動化運維系列——監控磁盤剩餘空間及SQL Server錯誤日志(Power Shell)

需求描述

在我們的生産環境中,大部分情況下需要有自己的運維體制,包括自己健康狀态的檢測等。如果發生異常,需要提前預警的,通知形式一般為發郵件告知。

在所有的自檢流程中最基礎的一個就是磁盤剩餘空間檢測。作為一個高效的DBA不可能每天都要上生産機上檢視磁盤剩餘或者直到磁盤無剩餘空間報錯後才采取擴容措施。

當然,作為微軟的伺服器有着自己的監控軟體:SCCM(System Center Configuration Manager)。但本篇就介紹如果通過Power shell實作狀态值監控,相比SCCM更輕量級和更具靈活性。

本篇實作

1、每天檢測磁盤剩餘空間大小,如果剩餘空間超過了閥值,則發郵件告訴管理者

2、每天檢測SQL Server運作的錯誤日志(Window平台的錯誤日志),形成郵件附件發送給管理者

 監控腳本

 首先我們來解決第一個問題,關于磁盤剩餘空間的問題,對于磁盤的監控的存在兩個需要解決的問題:

 <1>一般監控我們需要監控很多台伺服器的磁盤,是以對于伺服器的量控制我們需要生成一個配置檔案。

配置檔案名字:computername.xml,這樣就解決很多伺服器的問題,隻需要在配置檔案中增加就可以,因為我在本地測試,是以就配置了我的本地電腦

<2>對于伺服器的磁盤監控也需要定義一個閥值,用來動态改變,用來定義生成預警的閥值。簡單點就是定義我們檢測的磁盤剩餘空間到了多少了就自動發郵件提醒。

檔案名為:alter_disk.xml,我定義了四個盤符:C: D: E: F:

當以上四個盤符那個盤符少于10G了就生成郵件預警。

實作代碼如下:

通過如上腳本,生成跑批任務,就可以自動的檢測磁盤剩餘空間了,而不需要我們去手動檢測了。

上述代碼中,有兩個技術點:1、需要自己配置SQL Server郵件代理;2、需要自己配置跑批計劃,方法自己網上搜,很簡單。

效果圖如下

SQL Server自動化運維系列——監控磁盤剩餘空間及SQL Server錯誤日志(Power Shell)
SQL Server自動化運維系列——監控磁盤剩餘空間及SQL Server錯誤日志(Power Shell)

嘿...看到上面的郵件,就是需要聯系硬體架構師,讓其擴容或者清除備援資料的時候了。

在上面的腳本中,的确隻有我的F盤符超了閥值,是以警報了!

SQL Server自動化運維系列——監控磁盤剩餘空間及SQL Server錯誤日志(Power Shell)

其次,我們來解決第二個問題,關于SQL Server錯誤日志的問題,作為日常的DBA管理系統中,檢視SQL Server錯誤日志是一種常用的方式。當然,如果系統運作正常,不會産生錯誤日志,一單出現問題,就會生成錯誤日志,但是對于SQL Server錯誤日志會産生很多條,為了友善查找,我們會讓其生成一個文本檔案。

以郵件附件的形式,告知管理者,然後管理者就可以通過日志檔案快速的定位問題的源頭。

同樣,本篇也是通過computername.xml檔案,對多台伺服器進行錯誤日志進行篩選

腳本很簡單,如下

SQL Server自動化運維系列——監控磁盤剩餘空間及SQL Server錯誤日志(Power Shell)

直接下載下傳附件,然後檢視錯誤日志就可以了。

該錯誤日志還是挺詳細的,發生時間,錯誤明細等

SQL Server自動化運維系列——監控磁盤剩餘空間及SQL Server錯誤日志(Power Shell)

當然,上述腳本還欠缺一點邏輯:

比如:篩選一段時間周期的錯誤日志、或者隻檢視上次啟動之後的錯誤日志等。

這些邏輯加上也不麻煩,本身PowerShell實作起來就很簡單。這裡就不展開了,自己靈活實作。

但是,在我們日常的分析中,在日志記錄多的時候,用文本分析的方式還是比較慢,通常用Excel檢視效果會好很多。

這個實作也不麻煩,隻需要更改腳本如下:

我們下載下傳生成的日志檔案,然後打開Excel,然後選擇:資料——>從Xml檔案導入:

SQL Server自動化運維系列——監控磁盤剩餘空間及SQL Server錯誤日志(Power Shell)

如此分析就友善多了。

結語 

本篇就列舉了一下利用PowerShell實作自動化運維和檢測。算作抛磚引玉了吧,自己另有需求可以自己靈活實作。

關于SQL Server自動化運維和檢測的内容很廣泛,其中很多都是從日常的經驗中出發,一步步的從手動到自動的過程。

後面的文章,我們将會更深入關于SQL Server的自動化優化運維進行分析。有興趣的童鞋,可以提前關注。

如果您看了本篇部落格,覺得對您有所收獲,請不要吝啬您的“推薦”。