引言:有些機房受限于空間等局限,只有一臺大型空調負責制冷。當空調出現故障,如不能及時發現處理,就會使計算機面臨宕機、數據損壞等風險。因此需要基于現有設備條件實現對機房溫度的監控報警,以便及時發現處理的問題。
機房是3個相鄰的南向房間,面積分別約為11平米。三個房間內均設有若干個網絡機柜、服務器機柜、存儲設備機柜。
主要網絡設備熱源包括樓層匯聚交換機、核心交換機、上網行為管理設備、防火墻、鏈路負載均衡設備。
主要服務器熱源為11臺x86架構的服務器,其中5臺為4路CPU、512G內存、4U大小,并配合4路1200W電源的服務器。另外6臺為2路CPU、64G內存、2U大小,并配合2路700W電源的服務器。
主要存儲設備熱源為一臺專業的磁盤陣列存儲設備。其由1臺2U大小的雙路控制器及4個磁盤柜組成,每個磁盤柜都配置24塊15000轉以及3.5寸高速硬盤。
根據對各主要熱源散熱口溫度的測量及出風量的估算,機房的核心熱源集中在存儲設備盤柜、5臺4U的服務器和核心交換機上。這些設備既是各機房的核心設備,也是各機房溫度最高的區域,因此重點是要實現對這些設備溫度的監控報警。
要基于機房現有設備對溫度進行監控報警需要基本的溫度傳感數據,為此對機房的核心熱源設備進行了逐一的檢查:
(1)存儲 設備:存儲設備都會有溫度傳感信息,通過登錄存儲設備的圖形管理界面,發現有與溫度相關的傳感信息,但這些信息不便直接利用。
再通過登錄存儲設備的命令行管理界面,發現有非常詳盡的,與溫度相關的傳感信息。命令行管理界面通過網絡基于SSH2協議進行通訊,較便于利用。
(2)服務器:服務器都會有溫度傳感信息,且服務器的操作系統安裝的都是Windows操作系統。因此可以通過WMI系統組件實現遠程獲取服務器上的與溫度相關的傳感信息。
(3)核心交換機:大型的核心交換機都會有溫度傳感信息,通過登錄核心交換的命令行管理界面會發現非常詳盡的與溫度相關的傳感信息,且命令行界面是通過網絡基于SSH2協議進行通訊,較便于利用。

圖 1 系統結構圖
至此,可以確認機房核心熱源自身都具備溫度傳感數據,且具備通過網絡獲取數據的條件。除了獲取溫度傳感數據還要通過及時、便利的方式將信息傳遞給管理員。
機房現有一臺短信收發設備,原用于OA辦公系統發送公文流轉通知。因此考慮利用該設備將信息傳遞給管理員。
根據機房可利用的設備設計一套對機房溫度進行監控報警的可行系統。
系統核心為溫度監控報警服務(TMAS),TMAS通過網絡利用SSH2協議和Windows系統的WMI系統模塊,分別獲取核心熱源的存儲設備、服務器、網絡設備的溫度傳感器信息。根據設置的規則再調用短信網絡服務接口(SMS WebService),通過接口與短信發送設備進行交互,最終將溫度監控報警信息發送到管理員的手機上。具體的結構圖如圖1所示。
(1)操作系統:核心熱源的服務器部分、TMAS服務器、短信網絡服務接口均采用Windows操作系統。
(2)編程語言、開源框架及具體實現:系統基于C#語言進行開發,利用SharpSSH開源SSH2客戶端框架,主要包含3個部分:
第一部分,讀取配置文件信息,根據配置實現相應的功能,通過配置文件實現功能的靈活設置。
其中主要的幾個參數為:溫度傳感器數據掃描頻度的參數,即每隔多少秒或多少分鐘檢測一次核心熱源的相關溫度傳感器數據。
溫度傳感器數據掃描失敗的報警參數,即超過多少次無法獲取到核心熱源的溫度傳感器信息即向管理員發送報警信息,以提示網絡或者設備異常。
定時報告的參數,例如根據設定的時間實現每日定時發送溫度報告。
趨勢變化的參數,即設定在單位時間內(如1分鐘)溫度升高超過一定的閾值(如1攝氏度),即發送溫度異常變化警報報告。
閾值警報的參數,即根據設定的閾值,當檢測到溫度傳感器的數據高于設定的閾值時,即發送溫度警報報告。
第二部分,獲取溫度傳感器數據,主要是散熱出風口溫度數據和主板的溫度數據。
首先,基于SSH2協議,通過網絡模擬登陸核心熱源的存儲設備及核心交換機的命令行管理界面。再通過命令行獲取全部的設備運行數據,利用正則表達式對獲取的數據進行篩選,從中濾出溫度傳感器的相關信息,即得到散熱出風口溫度數據。
其次,基于Windows操作系統的WMI系統組件,通過網絡遠程獲取服務器的溫度傳感器信息,即得到主板溫度數據。
第三部分,調用短信網絡應用接口(SMS WebService)。短信網絡應用接口是TMAS與短信發送程序之間的橋梁,負責將TMAS需要發送的短信信息傳遞給短信發送程序。
傳統的短信發送程序都是非網絡化的單機應用,只需利用WebService技術就可以實現短信發送功能的網絡調用了。
TMAS是將需要發送的短信信息、發送對象的手機號碼作為參數傳遞給SMS WebService,再 由SMS WebService傳遞給短信發送程序,從而實現TMAS報告短信的發送。
為保證系統報告的及時性,在TMAS中設定的溫度傳感器數據掃描頻度參數為30秒,即每30秒掃描一次溫度信息。
一般每天的最高氣溫基本都在下午2點前后,因此在TMAS中設定了每日下午2點向管理員的手機發送實時的溫度監控數據短信,包括每個機房的獨立的溫度信息,起到了一個日常巡檢的作用。
為及時發現溫度的異常變化,在TMAS中設定了當溫度變化速度大于1攝氏度每分鐘時,即向管理員的手機發送溫度異常變化的信息,具體報告是哪個機房的核心熱源溫度發生了異常變化。
當溫度變化緩慢,沒有觸發趨勢變化報告時,閾值警報報告就起作用了。例如,在機房空調正常工作的狀態下,熱源溫度基本都低于47攝氏度,因此在TMAS中設定閾值為47攝氏度。當機房溫度緩慢上升超過47攝氏度時,即向管理員發送溫度異常信息,具體報告是哪個機房的核心熱源溫度異常。
目前,TMAS主要是利用了現有存儲、服務器及網絡設備的溫度傳感器來間接感知機房溫度,但不排除有可能出現這些核心熱源發生嚴重的故障,而致溫度傳感器數據異常的現象。
因此,需要在改進中考慮通過多設備的溫度傳感器、風扇轉速傳感器等綜合判斷機房溫度情況,從而建立傳感器數據綜合判斷模型,這樣可以很大程度地降低極端情況下系統的誤判。
以上是作者提出的在條件受限的情況下,基于現有設備獲取機房溫度情況的解決方案。作者利用網絡管理、網絡編程和Web應用服務設計等相關領域的知識積累,實現了機房溫度的遠程監控和報警。
盡管方案還有待改進,但可以不增加硬件設備的投入,并且通過短信的方式報告,還是相當實用的。該方法不僅保證了信息的及時性,而且實現了與專業溫度監控系統近似的功能。