譚海波,汪 華,金石聲,李 玨,白鐵男,唐維堯
(貴州省氣象信息中心,貴州 貴陽 550002)
氣象觀測是氣象工作的基礎(chǔ),是預(yù)報精細(xì)、服務(wù)精準(zhǔn)的支柱,是氣象防災(zāi)減災(zāi)第一道防線的前哨。貴州省現(xiàn)階段各類地面氣象觀測站(簡稱區(qū)域站)共計3 500個左右,站點布局密度大,數(shù)據(jù)時效要求高,是全省最重要的氣象觀測數(shù)據(jù)之一,如何保障區(qū)域站數(shù)據(jù)及時、高效傳輸是運維監(jiān)控工作中急需解決的問題。
目前省級區(qū)域站業(yè)務(wù)工作流程涉及多個環(huán)節(jié),包括互聯(lián)網(wǎng)入口、橋接器、地面氣象觀測管理系統(tǒng)(SMOS)、氣象數(shù)據(jù)處理與分發(fā)系統(tǒng)(CTS)、數(shù)據(jù)解碼質(zhì)控(DPC)、“天擎”數(shù)據(jù)庫入庫、氣象數(shù)據(jù)服務(wù)接口(MUSIC)等,各個監(jiān)控環(huán)節(jié)分散且不連續(xù),出現(xiàn)問題不能及時定位,很難滿足實時業(yè)務(wù)對監(jiān)控的需求。目前的監(jiān)控系統(tǒng)覆蓋面不夠,靈活性和擴展性不強,無法緊跟業(yè)務(wù)系統(tǒng)的快速升級換代。因此,為解決實際問題,提升區(qū)域站數(shù)據(jù)監(jiān)控水平,補充分鐘級資料監(jiān)控和告警,彌補現(xiàn)有監(jiān)控系統(tǒng)顆粒級不足的問題,在省級通過建立工作流的模式[1],基于Zabbix集群監(jiān)控技術(shù),利用其開源化、可擴展、可定制的優(yōu)勢,通過研究將省級區(qū)域站全流程傳輸分節(jié)點建立監(jiān)控指標(biāo),為區(qū)域站業(yè)務(wù)提供基于工作流的監(jiān)控視角,從而實現(xiàn)全流程無縫隙的精細(xì)化監(jiān)控,是復(fù)雜業(yè)務(wù)邏輯故障定制化監(jiān)控的最佳實踐。
監(jiān)測是業(yè)務(wù)正常開展的基礎(chǔ),是發(fā)現(xiàn)業(yè)務(wù)錯誤和性能問題的主要手段,現(xiàn)在主流的技術(shù)有面向SaaS的Wgcloud、面向網(wǎng)絡(luò)監(jiān)控的Nagios等[2],其中Zabbix作為能夠監(jiān)控各類網(wǎng)絡(luò)參數(shù)、服務(wù)器健康性和數(shù)據(jù)傳輸完整性的基礎(chǔ)平臺,具備靈活的通知機制,支持基于Web的查詢和配置,平臺兼容性強,應(yīng)用范圍廣。同時在省級應(yīng)用過程中單機系統(tǒng)不能滿足對海量數(shù)據(jù)監(jiān)控分析的需求,因此搭建基于高可用性的Zabbix集群,建立多個數(shù)據(jù)庫、服務(wù)器、前端節(jié)點和監(jiān)控代理,Zabbix集群架構(gòu)如圖1所示。
圖1 Zabbix集群架構(gòu)Fig.1 Zabbix cluster architecture
在監(jiān)控系統(tǒng)安全和數(shù)據(jù)傳輸安全防護(hù)方面,通過設(shè)置Zabbix集群安全訪問策略,建立遠(yuǎn)程訪問地址白名單,配置TCP10050、3306等業(yè)務(wù)端口訪問權(quán)限,在安全設(shè)備上配置Zabbix集群安全加固配置,屏蔽不安全端口;針對不同行業(yè)用戶配置訪問控制策略,在滿足用戶資源訪問需求上設(shè)置最小訪問權(quán)限,確保網(wǎng)絡(luò)訪問安全。
根據(jù)業(yè)務(wù)運行需求,全面梳理區(qū)域站數(shù)據(jù)傳輸關(guān)鍵點,通過對全流程傳輸環(huán)境中的關(guān)鍵信息進(jìn)行提取,對業(yè)務(wù)流程中可以直接反應(yīng)故障的表象進(jìn)行定制開發(fā)和配置,從而實現(xiàn)精細(xì)化監(jiān)控。對數(shù)據(jù)傳輸中的鏈路狀態(tài)、網(wǎng)絡(luò)設(shè)備、業(yè)務(wù)收發(fā)、入庫解碼、數(shù)據(jù)服務(wù)按需定制,部署采集模塊,通過監(jiān)控項配置、觸發(fā)器告警模塊和可視化展示模塊構(gòu)成區(qū)域站全流程監(jiān)控系統(tǒng)[3],監(jiān)控系統(tǒng)的結(jié)構(gòu)如圖2所示。
圖2 區(qū)域站全流程監(jiān)控系統(tǒng)結(jié)構(gòu)圖Fig.2 The structure diagram of the whole process monitoring system of the regional station
Zabbix通過Server、Proxy 和 Agents 來執(zhí)行數(shù)據(jù)采集,支持 SNMP、SSH、IPMI、JMX、數(shù)據(jù)庫監(jiān)控等協(xié)議,采集主動輪詢和被動捕獲關(guān)鍵數(shù)據(jù)[4]。其中匯聚和接入網(wǎng)絡(luò)設(shè)備通過SNMP和簡單檢查協(xié)議獲取數(shù)據(jù)傳輸?shù)亩丝跔顟B(tài)、數(shù)據(jù)傳輸流量等監(jiān)控信息;橋接器、SMOS、CTS等通過安裝Zabbix Agent、SSH等方式收集監(jiān)控信息;“天擎”緩存庫、實時庫以及MUSIC服務(wù)端口通過SSH協(xié)議執(zhí)行開發(fā)腳本,獲取區(qū)域站存儲和服務(wù)數(shù)量;SMOS中心站數(shù)量通過ODBC獲取,從而實現(xiàn)對區(qū)域站關(guān)鍵節(jié)點監(jiān)控信息的采集。區(qū)域站網(wǎng)絡(luò)接入、橋接器和信息入庫等數(shù)據(jù)采集界面如圖3所示。
圖3 數(shù)據(jù)采集展示頁面Fig.3 Data collection display page
監(jiān)控項配置中將每個采集數(shù)據(jù)的監(jiān)控項創(chuàng)建為主機,主機是區(qū)域站數(shù)據(jù)全流程監(jiān)控的載體,網(wǎng)絡(luò)設(shè)備、終端、服務(wù)器都設(shè)置為一臺主機,對主機地址和端口進(jìn)行配置,在此基礎(chǔ)上設(shè)計監(jiān)控項模塊,監(jiān)控項類型和鍵值配置如表1所示。SNMP代理類型需要設(shè)置SNMPV2協(xié)議,配置161端口和宏變量公共名{MYMSNMP_COMMUNITY},通過獲取網(wǎng)絡(luò)設(shè)備的對象標(biāo)識符(OID)和管理信息基礎(chǔ)(MIB)數(shù)據(jù)得到端口狀態(tài),使用Snmpwalk命令檢索所需端口,按需監(jiān)控網(wǎng)絡(luò)設(shè)備傳輸端口UP或DOWN狀態(tài);“天擎”緩沖庫和實時庫入庫數(shù)量通過部署python腳本,連接虛谷數(shù)據(jù)庫,獲取緩沖庫和實時庫中SURF_WEA_CHN_MUL_MIN_TAB表中區(qū)域站入庫數(shù)量,通過SSH命令定時啟動腳本進(jìn)行區(qū)域站入庫監(jiān)控;SMOS中心站接收數(shù)量通過定義開放數(shù)據(jù)庫連接(ODBC),配置ODBC訪問SQLSERVER數(shù)據(jù)庫驅(qū)動,創(chuàng)建查詢SMOS數(shù)據(jù)庫DYNC_AWS_INFO表中區(qū)域站接收數(shù)量腳本;CTS接收SMOS中心站區(qū)域站數(shù)量通過配置Zabbix數(shù)據(jù)庫配置文件,創(chuàng)建CTS數(shù)據(jù)庫TB_RCV_FILE表中區(qū)域站數(shù)量腳本,CTS發(fā)送給天擎的區(qū)域站數(shù)量通過開發(fā)CTS數(shù)據(jù)庫TB_SEND_FILE表中腳本獲取。
表1 監(jiān)控項類型和鍵值配置Tab.1 Monitoring item type and key value configuration
告警根據(jù)業(yè)務(wù)需求進(jìn)行設(shè)計,通過主機和監(jiān)控項量化監(jiān)控要求,實現(xiàn)問題自動檢測和發(fā)現(xiàn),具體的實現(xiàn)方式是通過last()函數(shù)和diff()函數(shù)獲取監(jiān)控項數(shù)據(jù)最近的值,last()獲得監(jiān)控項最近1次數(shù)據(jù),diff()獲得監(jiān)控項最后1個數(shù)值和前1個數(shù)值之間的差異,建立靈活可配置的監(jiān)控指標(biāo)閾值,一旦低于閾值將觸發(fā)告警,區(qū)域站數(shù)據(jù)主要監(jiān)控項觸發(fā)告警腳本如表2所示,告警信息通過Web頁面進(jìn)行顯示,網(wǎng)絡(luò)接入告警監(jiān)控Web頁面如圖4所示。
表2 主要監(jiān)控項觸發(fā)告警腳本Tab.2 The main monitoring items trigger the alarm script
圖4 區(qū)域站網(wǎng)絡(luò)接入告警監(jiān)控圖Fig.4 Regional station network access alarm monitoring diagram
開發(fā)和設(shè)計網(wǎng)絡(luò)拓?fù)鋱D,配置地圖元素和定義宏,將區(qū)域站數(shù)據(jù)全流程各個環(huán)節(jié)的監(jiān)控項和觸發(fā)器腳本編輯在一張圖上,在各個設(shè)備上配置狀態(tài)信息,設(shè)備與設(shè)備之間定義標(biāo)簽,配置鏈路狀態(tài)和區(qū)域站收發(fā)數(shù)量,顯示區(qū)域站數(shù)據(jù)全流程可視化動態(tài)圖。如圖5所示。
圖5 貴州省地面氣象觀測站數(shù)據(jù)全流程監(jiān)控一張圖Fig.5 A picture of the whole process monitoring of the regional station
通過梳理并監(jiān)控區(qū)域站數(shù)據(jù)的傳輸過程,較好地彌補了現(xiàn)有監(jiān)控系統(tǒng)的不足,在汛期氣象業(yè)務(wù)服務(wù)中獲得良好應(yīng)用效果。區(qū)域站數(shù)據(jù)的采集實現(xiàn)分鐘級的故障發(fā)現(xiàn)并能準(zhǔn)確定位,大大減輕監(jiān)控運維壓力,提升全省關(guān)鍵資料傳輸質(zhì)量。在貴州省業(yè)務(wù)應(yīng)用實踐中總結(jié)有以下幾個方面的經(jīng)驗:
①基于工作流構(gòu)建監(jiān)控體系消除了不同設(shè)備和系統(tǒng)之間的監(jiān)控盲點,將不同系統(tǒng)的監(jiān)控關(guān)鍵點統(tǒng)一到一個平臺,減少監(jiān)控系統(tǒng)之間的交互接口,成為解決業(yè)務(wù)監(jiān)控中故障定位復(fù)雜性和監(jiān)控指標(biāo)多樣性的有效方法。
②在監(jiān)控體系的構(gòu)建中要摒除大而全的監(jiān)控思路,以抓住關(guān)鍵點和關(guān)鍵指標(biāo)為核心,通過研發(fā)特色采集腳本從海量監(jiān)控信息中進(jìn)行篩選,實現(xiàn)在工作流的控制下開展監(jiān)控事件的快速展現(xiàn)和告警。