■ 河北 溫帥
編者按:筆者在工作中發現一款監測溫度的軟件,利用該軟件,可以實現機房溫度監測報警機制。
筆者單位機房的普通格力120空調出現兩次故障,一次出現報錯,一次直接關機,兩次故障導致的原因都是外機溫度過高。
第一次發現是在例行檢查時,機房溫度已經超過了45度,兩臺服務器(加配外置風扇)的溫度已經超過了50度,網絡設備溫度未報警,風扇正常運轉。

圖1 Core Temp軟件
發現后馬上開啟備用空調,清理空調外機,外機進風口已經完全被糊住了,導致進風困難,持續運轉溫度升高,經過清理恢復運行。
第二次還是在例行檢查時發現空調關閉,沒有報錯,機房溫度超過44度,服務器溫度超過50度。
兩次故障幸虧是在例行檢查的時候發現,如果有其他工作耽誤了例行檢查,很有可能造成溫度更高,甚至服務器損壞。

圖3 監測界面
于是研究如何檢測機房溫度,以便在不穩定的空調宕機時能及時收到消息。
第一想法是使用服務器的溫度傳感器監測溫度,并經過一定的觸發報警,通知到管理人員。
經過從網上搜索,找到一款Core Temp軟件(如圖1所示),可以持續監測服務器各個核心的溫度,并觸發過熱保護,通過聲音報警或觸發程序報警,并自動向郵箱發送郵件。
以前的腳本發現是vbs的,而該軟件需要bat或者exe格式的文件,于是筆者從網上搜了一下,找到一個腳本,這個腳本的特點是,擴展名為vbs或者bat,兩種腳本都可以用,其中的語句在vbs和bat中具有不同的意義,或者被忽略,但都能實現發郵件的效果。
具體腳本如圖2所示。
軟件安裝到了一臺物理服務器上后,還需要對溫度持續監測,了解到正常溫度的最大值是多少,才能設定報警值。
經過1周的監測,發現在空調設置24度恒溫的情況下,4個CPU核心最高溫度為45,我手動同時運行多個大型程序,也不會超過這個溫度,于是將過熱保護值設定為46度,觸發過熱保護后,運行sendmail.bat腳本,發送郵件,如圖3所示。
該報警方式實現服務器溫度傳感器同時應用于服務器溫度檢測和機房溫度檢測,實現硬件的復用,節省費用,也實現了高溫報警,運行效果良好。

圖2 具體腳本內容