由於之前ESB是供應商部署的,且部署在C盤(C盤空間很小,還添加了很多ESB的windows服務日志在C盤,很容易把C盤空間占滿,導致ESB服務運行宕機,幾乎每隔幾周發生一次事故,需要人工干預處理,不甚其煩), 因此前段時間對於基於RabbitMQ構建的ESB進行了綜合優化,以確保ESB服務的穩定可靠,同時初步建立了自動化的ESB監控和運維體系,本文介紹一種其中用到技術之一,通過SSIS監控遠程服務器磁盤空間並發送郵件報警,目的是當自動化ESB運維失效的時候,可以進行人工干預處理。
通過WMI可以很容易查詢和獲得遠程服務器的磁盤空間,如磁盤空間不足1G,自動發送郵件給自定人員進行報警,具體過程如下:

WMI的連接管理器:

定義的兩個包變量如下圖:

通過WMI的WQL的語句:
SELECT FreeSpace FROM Win32_LogicalDisk where DriveType= 3 and DeviceID='C:'

腳本任務中主要實現磁盤空間的變量賦值並判斷是否小於1G:

long gb = 1024 * 1024 * 1024; // TODO: Add your code here Dts.Variables["DiskResults"].Value = double.Parse(Dts.Variables["DiskUsageResults"].Value.ToString()) / gb; Dts.TaskResult = (int)ScriptResults.Success;

磁盤空間不足1G,發送報警郵件,如下圖:


最終實現效果,如下圖:

| 本博客為軟件人生原創,歡迎轉載,轉載請標明出處:http://www.cnblogs.com/nbpowerboy/p/3367918.html。演繹或用於商業目的,但是必須保留本文的署名軟件人生(包含鏈接)。如您有任何疑問或者授權方面的協商,請給我留言。 |
