譚海波,汪 華,金石聲,李 玨,白鐵男,唐維堯
(貴州省氣象信息中心,貴州 貴陽 550002)
氣象觀測是氣象工作的基礎,是預報精細、服務精準的支柱,是氣象防災減災第一道防線的前哨。貴州省現階段各類地面氣象觀測站(簡稱區域站)共計3 500個左右,站點布局密度大,數據時效要求高,是全省最重要的氣象觀測數據之一,如何保障區域站數據及時、高效傳輸是運維監控工作中急需解決的問題。
目前省級區域站業務工作流程涉及多個環節,包括互聯網入口、橋接器、地面氣象觀測管理系統(SMOS)、氣象數據處理與分發系統(CTS)、數據解碼質控(DPC)、“天擎”數據庫入庫、氣象數據服務接口(MUSIC)等,各個監控環節分散且不連續,出現問題不能及時定位,很難滿足實時業務對監控的需求。目前的監控系統覆蓋面不夠,靈活性和擴展性不強,無法緊跟業務系統的快速升級換代。因此,為解決實際問題,提升區域站數據監控水平,補充分鐘級資料監控和告警,彌補現有監控系統顆粒級不足的問題,在省級通過建立工作流的模式[1],基于Zabbix集群監控技術,利用其開源化、可擴展、可定制的優勢,通過研究將省級區域站全流程傳輸分節點建立監控指標,為區域站業務提供基于工作流的監控視角,從而實現全流程無縫隙的精細化監控,是復雜業務邏輯故障定制化監控的最佳實踐。
監測是業務正常開展的基礎,是發現業務錯誤和性能問題的主要手段,現在主流的技術有面向SaaS的Wgcloud、面向網絡監控的Nagios等[2],其中Zabbix作為能夠監控各類網絡參數、服務器健康性和數據傳輸完整性的基礎平臺,具備靈活的通知機制,支持基于Web的查詢和配置,平臺兼容性強,應用范圍廣。同時在省級應用過程中單機系統不能滿足對海量數據監控分析的需求,因此搭建基于高可用性的Zabbix集群,建立多個數據庫、服務器、前端節點和監控代理,Zabbix集群架構如圖1所示。

圖1 Zabbix集群架構Fig.1 Zabbix cluster architecture
在監控系統安全和數據傳輸安全防護方面,通過設置Zabbix集群安全訪問策略,建立遠程訪問地址白名單,配置TCP10050、3306等業務端口訪問權限,在安全設備上配置Zabbix集群安全加固配置,屏蔽不安全端口;針對不同行業用戶配置訪問控制策略,在滿足用戶資源訪問需求上設置最小訪問權限,確保網絡訪問安全。
根據業務運行需求,全面梳理區域站數據傳輸關鍵點,通過對全流程傳輸環境中的關鍵信息進行提取,對業務流程中可以直接反應故障的表象進行定制開發和配置,從而實現精細化監控。對數據傳輸中的鏈路狀態、網絡設備、業務收發、入庫解碼、數據服務按需定制,部署采集模塊,通過監控項配置、觸發器告警模塊和可視化展示模塊構成區域站全流程監控系統[3],監控系統的結構如圖2所示。

圖2 區域站全流程監控系統結構圖Fig.2 The structure diagram of the whole process monitoring system of the regional station
Zabbix通過Server、Proxy 和 Agents 來執行數據采集,支持 SNMP、SSH、IPMI、JMX、數據庫監控等協議,采集主動輪詢和被動捕獲關鍵數據[4]。其中匯聚和接入網絡設備通過SNMP和簡單檢查協議獲取數據傳輸的端口狀態、數據傳輸流量等監控信息;橋接器、SMOS、CTS等通過安裝Zabbix Agent、SSH等方式收集監控信息;“天擎”緩存庫、實時庫以及MUSIC服務端口通過SSH協議執行開發腳本,獲取區域站存儲和服務數量;SMOS中心站數量通過ODBC獲取,從而實現對區域站關鍵節點監控信息的采集。區域站網絡接入、橋接器和信息入庫等數據采集界面如圖3所示。

圖3 數據采集展示頁面Fig.3 Data collection display page
監控項配置中將每個采集數據的監控項創建為主機,主機是區域站數據全流程監控的載體,網絡設備、終端、服務器都設置為一臺主機,對主機地址和端口進行配置,在此基礎上設計監控項模塊,監控項類型和鍵值配置如表1所示。SNMP代理類型需要設置SNMPV2協議,配置161端口和宏變量公共名{MYMSNMP_COMMUNITY},通過獲取網絡設備的對象標識符(OID)和管理信息基礎(MIB)數據得到端口狀態,使用Snmpwalk命令檢索所需端口,按需監控網絡設備傳輸端口UP或DOWN狀態;“天擎”緩沖庫和實時庫入庫數量通過部署python腳本,連接虛谷數據庫,獲取緩沖庫和實時庫中SURF_WEA_CHN_MUL_MIN_TAB表中區域站入庫數量,通過SSH命令定時啟動腳本進行區域站入庫監控;SMOS中心站接收數量通過定義開放數據庫連接(ODBC),配置ODBC訪問SQLSERVER數據庫驅動,創建查詢SMOS數據庫DYNC_AWS_INFO表中區域站接收數量腳本;CTS接收SMOS中心站區域站數量通過配置Zabbix數據庫配置文件,創建CTS數據庫TB_RCV_FILE表中區域站數量腳本,CTS發送給天擎的區域站數量通過開發CTS數據庫TB_SEND_FILE表中腳本獲取。

表1 監控項類型和鍵值配置Tab.1 Monitoring item type and key value configuration
告警根據業務需求進行設計,通過主機和監控項量化監控要求,實現問題自動檢測和發現,具體的實現方式是通過last()函數和diff()函數獲取監控項數據最近的值,last()獲得監控項最近1次數據,diff()獲得監控項最后1個數值和前1個數值之間的差異,建立靈活可配置的監控指標閾值,一旦低于閾值將觸發告警,區域站數據主要監控項觸發告警腳本如表2所示,告警信息通過Web頁面進行顯示,網絡接入告警監控Web頁面如圖4所示。

表2 主要監控項觸發告警腳本Tab.2 The main monitoring items trigger the alarm script

圖4 區域站網絡接入告警監控圖Fig.4 Regional station network access alarm monitoring diagram
開發和設計網絡拓撲圖,配置地圖元素和定義宏,將區域站數據全流程各個環節的監控項和觸發器腳本編輯在一張圖上,在各個設備上配置狀態信息,設備與設備之間定義標簽,配置鏈路狀態和區域站收發數量,顯示區域站數據全流程可視化動態圖。如圖5所示。

圖5 貴州省地面氣象觀測站數據全流程監控一張圖Fig.5 A picture of the whole process monitoring of the regional station
通過梳理并監控區域站數據的傳輸過程,較好地彌補了現有監控系統的不足,在汛期氣象業務服務中獲得良好應用效果。區域站數據的采集實現分鐘級的故障發現并能準確定位,大大減輕監控運維壓力,提升全省關鍵資料傳輸質量。在貴州省業務應用實踐中總結有以下幾個方面的經驗:
①基于工作流構建監控體系消除了不同設備和系統之間的監控盲點,將不同系統的監控關鍵點統一到一個平臺,減少監控系統之間的交互接口,成為解決業務監控中故障定位復雜性和監控指標多樣性的有效方法。
②在監控體系的構建中要摒除大而全的監控思路,以抓住關鍵點和關鍵指標為核心,通過研發特色采集腳本從海量監控信息中進行篩選,實現在工作流的控制下開展監控事件的快速展現和告警。