白鐵男,唐維堯,金石聲,魯 霞,譚海波
(貴州省氣象信息中心,貴州 貴陽 550002)
隨著氣象信息化建設(shè)的推進(jìn),信息機(jī)房作為氣象業(yè)務(wù)后臺支撐的核心組件[1],擔(dān)負(fù)著氣象數(shù)據(jù)傳輸、處理、共享和加工等重要工作,因此對機(jī)房運(yùn)行狀態(tài)的監(jiān)控成了氣象信息技術(shù)人員廣泛關(guān)注的問題。傳統(tǒng)的機(jī)房巡檢靠人工定時對供電狀態(tài)、空調(diào)狀態(tài)、溫濕度等進(jìn)行檢查并記錄,既浪費(fèi)人力又不能做到全天候監(jiān)控[2-4],一旦出現(xiàn)突發(fā)性事故,難以及時發(fā)現(xiàn)并解決問題,無法滿足氣象現(xiàn)代化對運(yùn)行保障的要求[5-6]。為解決上述問題,通過微模塊機(jī)房動環(huán)系統(tǒng),實現(xiàn)對機(jī)房環(huán)境、空調(diào)和供電等信息的實時采集和入庫,再通過對接Zabbix系統(tǒng),將數(shù)據(jù)庫的告警信息實時展示出來,從而實現(xiàn)機(jī)房動環(huán)的實時監(jiān)控告警。
機(jī)房動環(huán)監(jiān)控系統(tǒng)由采集層、傳輸層和監(jiān)控層組成[7]。采集層的功能是通過傳感器將感知到的溫濕度、空調(diào)狀態(tài)和供電狀態(tài)等智能數(shù)據(jù)傳遞到基于Linux系統(tǒng)的采集設(shè)備中,通過協(xié)議類型轉(zhuǎn)換向下層設(shè)備返回數(shù)據(jù)。傳輸層通過核心交換機(jī)、串口等傳輸設(shè)備向采集層請求數(shù)據(jù)并將返回的數(shù)據(jù)返回給下層設(shè)備。監(jiān)控層將上層返回的數(shù)據(jù)轉(zhuǎn)換成具體的信息并存儲到SQL Server數(shù)據(jù)庫中。機(jī)房動環(huán)監(jiān)控系統(tǒng)原理如圖1所示。
圖1 動環(huán)監(jiān)控系統(tǒng)原理圖
Zabbix作為開源構(gòu)架的監(jiān)控系統(tǒng),在各大企事業(yè)單位擁有廣泛的應(yīng)用,其安裝包可在官方網(wǎng)站免費(fèi)下載,且安裝方法便捷。在任意已開通內(nèi)網(wǎng)的服務(wù)器上開發(fā)定時Python腳本,其功能是連接SQL Server數(shù)據(jù)庫并將需要的信息采集出來寫入日志文本中。Zabbix系統(tǒng)內(nèi)建有SSH遠(yuǎn)程協(xié)議,可通過密碼遠(yuǎn)程登錄到服務(wù)器,在指定的目錄下讀取日志文本中的信息,并將這些信息在前端界面展示出來,實現(xiàn)Zabbix系統(tǒng)對接動環(huán)SQL Server數(shù)據(jù)庫。Zabbix系統(tǒng)前端展示界面如圖2所示。
圖2 監(jiān)控系統(tǒng)前端展示圖
機(jī)房動環(huán)監(jiān)控系統(tǒng)主要針對機(jī)房的動力系統(tǒng)和環(huán)境系統(tǒng)進(jìn)行實時監(jiān)控。動力系統(tǒng)監(jiān)控的要素包括空調(diào)狀態(tài)、UPS狀態(tài)等隨時間不能連續(xù)變化的狀態(tài)數(shù)據(jù);環(huán)境系統(tǒng)監(jiān)控包括機(jī)房的溫濕度、電壓電流等隨時間連續(xù)變化的模擬數(shù)據(jù)。信息采集模塊通過在Linux操作系統(tǒng)下定時執(zhí)行Python采集腳本,將被監(jiān)控項的設(shè)備編碼和項目編碼等信息實時輸出到日志文本。Zabbix系統(tǒng)監(jiān)控項模塊內(nèi)建有SSH遠(yuǎn)程協(xié)議,可以遠(yuǎn)程到目的服務(wù)器將日志信息輸出到告警界面。監(jiān)控設(shè)備和項目字段編碼情況如表1所示。
表1 監(jiān)控信息字段編碼情況表
續(xù)表1 監(jiān)控信息字段編碼情況表
目前省級氣象核心機(jī)房已搭建UPS供電系統(tǒng),市電斷供可自動切換到UPS供電,由于UPS供電可維持時間較短,一旦發(fā)電機(jī)啟動不及時就會造成嚴(yán)重的后果。本監(jiān)控系統(tǒng)通過實時采集UPS充放電狀態(tài)和市電電壓狀態(tài)對配電系統(tǒng)進(jìn)行監(jiān)控。開發(fā)定時Python腳本實時從數(shù)據(jù)庫獲取UPS的剩余電量和市電供電電壓信息,再設(shè)置告警閥值在UPS連續(xù)掉電且市電電壓為0時觸發(fā)告警,后勤保障人員聽到告警能在第一時間內(nèi)發(fā)現(xiàn)啟動發(fā)電機(jī)裝置,保障機(jī)房正常供電,供電監(jiān)控界面如圖3。
圖3 供電監(jiān)控圖
為保障氣象機(jī)房電子設(shè)備的正常運(yùn)行,避免因設(shè)備故障導(dǎo)致數(shù)據(jù)丟失,機(jī)房環(huán)境的溫濕度需要平衡在一個穩(wěn)定的范圍內(nèi)。溫濕度作為影響電子設(shè)備壽命的關(guān)鍵因素,亟需尋求技術(shù)手段對其進(jìn)行實時監(jiān)控。氣象核心機(jī)房2路冷通道共6個傳感器,定時采集溫濕度信息存入SQL Server數(shù)據(jù)庫。定時Python采集腳本2 min執(zhí)行1次,通過字段表檢索傳感器設(shè)備的溫度和濕度輸出到1個文本中。Zabbix作為前端展示平臺和報警媒介,通過其內(nèi)建的遠(yuǎn)程協(xié)議定時讀取文本中的信息并在前端展示,通過觸發(fā)器模塊設(shè)置1個溫濕度閥值,在達(dá)到該閥值時觸發(fā)告警機(jī)制,在低于該閥值時啟動告警恢復(fù)機(jī)制。溫濕度監(jiān)控界面如圖4。
圖4 溫濕度監(jiān)控圖
精密空調(diào)作為平衡機(jī)房溫濕度的核心設(shè)備,其正常運(yùn)轉(zhuǎn)關(guān)系到機(jī)房環(huán)境條件,對其實時監(jiān)控至關(guān)重要。可選擇的空調(diào)監(jiān)控項目眾多,包括回風(fēng)溫度、送風(fēng)溫度、電壓、告警狀態(tài)、風(fēng)機(jī)狀態(tài)、制冷狀態(tài)、制熱狀態(tài)、通訊狀態(tài)等[2]。本監(jiān)控系統(tǒng)選擇制冷狀態(tài)和送風(fēng)狀態(tài)作為判斷空調(diào)運(yùn)轉(zhuǎn)狀態(tài)的指標(biāo)。省級信息機(jī)房每路冷通道有4組空調(diào),一般情況下2組負(fù)責(zé)制冷,另外2組負(fù)責(zé)送風(fēng)。隨著機(jī)房溫度的變化會自動增加或減少制冷空調(diào)的個數(shù)以平衡溫度,這無形中增加了對空調(diào)監(jiān)控的難度。為解決上述問題,監(jiān)控系統(tǒng)針對1個冷通道內(nèi)的空調(diào)整體狀態(tài)進(jìn)行監(jiān)控,在設(shè)置告警時僅在冷通道內(nèi)全部空調(diào)處于非制冷狀態(tài)時才觸發(fā)告警機(jī)制。
系統(tǒng)的前端展示及告警基于Zabbix開源監(jiān)控平臺。監(jiān)控項(Item)對實時信息進(jìn)行采集并在最新數(shù)據(jù)界面展示,根據(jù)歷史數(shù)據(jù)形成趨勢圖,以便發(fā)現(xiàn)故障的開始和結(jié)束時間。觸發(fā)器(Trigger)通過設(shè)置閥值在最新數(shù)據(jù)滿足閥值時觸發(fā)警報。通過前端的拓?fù)涞貓D界面可以將機(jī)房動環(huán)監(jiān)控的各個模塊在1張圖上展示出來,在發(fā)生故障時可結(jié)合各模塊之間關(guān)系迅速找出故障節(jié)點。機(jī)房動環(huán)布局如圖5所示。
圖5 機(jī)房動環(huán)布局圖
Zabbix可對接企業(yè)微信客戶端,首先需要登陸服務(wù)端編輯配置文件(Zabbix_server.conf),將告警路徑配置行(AlertScriptsPath)改為Python腳本的絕對路徑。Python腳本實現(xiàn)的主要功能一是根據(jù)企業(yè)微信的CorpID、Appsecret、Agentid構(gòu)建企業(yè)微信的接口軟鏈接(URL);二是接收告警參數(shù)包括告警觸發(fā)用戶(Sendto)、項目名稱(Subject)和告警內(nèi)容(Message);三是將不同告警信息根據(jù)需要推送給相應(yīng)的人或者部門,最后通過URL將告警推送給相應(yīng)的人。在Zabbix前端需要配置動作和告警媒介模塊,動作的功能是將告警內(nèi)容和Zabbix的用戶綁定起來,需要選擇通過微信的方式進(jìn)行告警;告警媒介類型包括微信、短信和電子郵件等,作為動作和Python腳本的中介環(huán)節(jié),其功能是通過綁定腳本,將從動作獲取的告警參數(shù)傳送給Python腳本。
在技術(shù)層面,通過在Linux操作系統(tǒng)下開發(fā)定時Python腳本,訪問SQL Server數(shù)據(jù)庫實時信息表獲取要素信息。在工作層面,通過查閱資料了解動環(huán)數(shù)據(jù)庫的庫表結(jié)構(gòu),從相互耦合的2個庫3張表眾多的要素中找出需要的字段信息。本文介紹了機(jī)房動環(huán)監(jiān)控系統(tǒng)的基本構(gòu)成和實現(xiàn)方法,通過Zabbix開源平臺對系統(tǒng)進(jìn)行優(yōu)化和補(bǔ)充,從繁多且重復(fù)的監(jiān)控要素中找出影響機(jī)房運(yùn)行的關(guān)鍵要素,實現(xiàn)機(jī)房核心要素的全天候監(jiān)控告警,并將這些要素集約于1張拓?fù)浣Y(jié)構(gòu)內(nèi)集中監(jiān)控,方便故障排查,為氣象數(shù)據(jù)服務(wù)和保障提供了較好的支撐[5]。