劉 暢,龐菲菲,白水成,曹 波
(1.西安市大氣探測中心,西安 710016;2.陜西省氣象局秦嶺和黃土高原生態(tài)環(huán)境氣象重點實驗室,西安 710016;3.西安市公共氣象服務(wù)中心,西安 710016;4.西安市大氣探測中心,西安 710016;5.陜西省氣象信息中心,西安 710014)
目前陜西省氣象部門主要通過國家氣象信息中心統(tǒng)一開發(fā)的“天鏡”系統(tǒng)以及“天擎”的綜合業(yè)務(wù)監(jiān)控子系統(tǒng)實現(xiàn)關(guān)鍵信息的實時監(jiān)控和告警,其功能設(shè)計主要針對于國家級和省級氣象部門監(jiān)控運維需求。對于市級氣象部門而言,各類氣象業(yè)務(wù)系統(tǒng)的運行環(huán)境不盡相同,部署環(huán)境更加復(fù)雜,包括臺站業(yè)務(wù)計算機、工作站、各類物理服務(wù)器以及公有云、私有云等虛擬化環(huán)境,同時在基礎(chǔ)網(wǎng)絡(luò)通信方面,又涉及各層級的網(wǎng)絡(luò)硬件設(shè)備。在此背景下,市級氣象部門在信息網(wǎng)絡(luò)系統(tǒng)方面通常呈現(xiàn)出體量不大,但種類繁多、新舊摻雜的特點。要保證各類氣象業(yè)務(wù)系統(tǒng)穩(wěn)定運行,基層運維人員則需要實時關(guān)注與其相關(guān)的各類硬件設(shè)備和軟件系統(tǒng)的硬件狀態(tài)、進程狀態(tài)等各類指標(biāo)是否正常,這就需要依賴于自動化、智能化的監(jiān)控工具,讓運維人員更加方便、集中地進行運維監(jiān)控管理。
伴隨氣象信息化的快速發(fā)展,近年來市縣兩級氣象部門信息網(wǎng)絡(luò)資源規(guī)模不斷提升。以西安市氣象局為例,目前全市擁有各類業(yè)務(wù)核心主機20余臺,核心網(wǎng)絡(luò)設(shè)備約20臺,物理服務(wù)器約30臺,VMware虛擬化平臺一套,上線虛擬機28臺,建設(shè)各類業(yè)務(wù)專線20余條,同時使用公有云資源池并建立IPsecVPN虛擬專線。信息網(wǎng)絡(luò)資源具有規(guī)模不大,但是種類較多且設(shè)備部署分散的特點。一直以來市縣兩級并未建設(shè)統(tǒng)一的信息網(wǎng)絡(luò)監(jiān)控系統(tǒng),而“天鏡”系統(tǒng)的通用型設(shè)計,又難以滿足基層的本地化監(jiān)控需求。對于市級信息網(wǎng)絡(luò)保障人員而言,日常運維工作難度大,暴露出的問題主要包括:監(jiān)控實效差、監(jiān)控精準(zhǔn)程度不夠、處理不及時等。在此背景下,迫切需要對各類業(yè)務(wù)的日常監(jiān)控及運維工作進行整合,通過技術(shù)手段減輕人工任務(wù),優(yōu)化運維流程。運維人員需要及時、準(zhǔn)確地了解各類硬件設(shè)備和業(yè)務(wù)系統(tǒng)的運行狀態(tài)指標(biāo),并進行可視化分析應(yīng)用,通過提高日常運維技術(shù)含量,推動氣象信息網(wǎng)絡(luò)運維監(jiān)控轉(zhuǎn)向精細化、標(biāo)準(zhǔn)化、自動化方向發(fā)展。通過對目前國內(nèi)外主流的IT監(jiān)控技術(shù)進行了調(diào)研,對比分析了Zabbix、Prometheus、ELK、ManageEngine等監(jiān)控系統(tǒng)的優(yōu)缺點,其中Zabbix作為開源的企業(yè)級監(jiān)控方案已經(jīng)被全球廣泛使用,具有開源免費、部署配置簡單、監(jiān)控及功能全面并具有非常強的擴展能力等特性[1],Zabbix監(jiān)控體系在國內(nèi)其他行業(yè)已經(jīng)廣泛使用[2],也完全適應(yīng)和滿足氣象行業(yè)信息網(wǎng)絡(luò)系統(tǒng)監(jiān)控的需求。
Zabbix是一款企業(yè)級分布式監(jiān)控系統(tǒng),是一個開箱即用的成熟解決方案,具有各種完備的功能模塊。Zabbix支持多種采集方式和采集客戶端,有專用的Agent,也支持SNMP、IPMI、Telnet、Http等多種協(xié)議,它將采集到的數(shù)據(jù)存放到數(shù)據(jù)庫中,然后對其進行分析整理,達到條件觸發(fā)告警,并支持對告警數(shù)據(jù)的分析統(tǒng)計[3]。
Zabbix的通用架構(gòu)是采用客戶端/服務(wù)器端的模式,分布式架構(gòu)采用客戶端/代理端/服務(wù)器端模式。據(jù)Zabbix官方資料顯示,單臺服務(wù)器節(jié)點就可以支持上萬臺設(shè)備,所以根據(jù)實際被監(jiān)控設(shè)備的數(shù)量,選擇單節(jié)點服務(wù)器/客戶端的模式。在實踐過程中詳細梳理了市、縣兩級氣象部門需要監(jiān)控的信息網(wǎng)絡(luò)系統(tǒng)清單,根據(jù)不同設(shè)備及系統(tǒng),選擇合適的監(jiān)控方式。各個被監(jiān)控設(shè)備的狀態(tài)數(shù)據(jù)將實時采集到Zabbix Server并存放在數(shù)據(jù)庫中,利用Zabbix Web或者Grafana插件進行數(shù)據(jù)可視化應(yīng)用,同時可以使用Zabbix API接口實現(xiàn)系統(tǒng)的二次開發(fā)應(yīng)用,具體架構(gòu)設(shè)計如圖1所示。
圖1 Zabbix監(jiān)控架構(gòu)圖
Zabbix具有常見的商業(yè)監(jiān)控軟件所具備的功能,包括主機性能監(jiān)控、網(wǎng)絡(luò)設(shè)備性能監(jiān)控、數(shù)據(jù)庫性能監(jiān)控等。在對監(jiān)控系統(tǒng)進行實際部署及定制化后,針對氣象行業(yè)信息網(wǎng)絡(luò)監(jiān)控需求,重點介紹以下幾項具備代表性的功能。
(1)設(shè)備資產(chǎn)管理
對于市縣兩級氣象業(yè)務(wù)系統(tǒng)架構(gòu)而言,統(tǒng)一納管各臺站的業(yè)務(wù)系統(tǒng)主機是一大難點。通過平臺自動化的數(shù)據(jù)采集,獲取設(shè)備型號、管理IP、Mac地址等資產(chǎn)信息,作為運維過程中重要的資產(chǎn)數(shù)據(jù)提供給運維人員。
(2)設(shè)備運行狀態(tài)實時監(jiān)控
按照系統(tǒng)設(shè)計框架,為不同類型的設(shè)備配置相應(yīng)的監(jiān)控項后,則可以按照管理員的設(shè)置自動化巡檢所有納入監(jiān)控的設(shè)備,獲取主機中各類監(jiān)控項的數(shù)據(jù)或狀態(tài),并且在數(shù)據(jù)異常時觸動觸發(fā)器并發(fā)送告警信息,實現(xiàn)故障問題快速定位,并形成結(jié)果報告,確保運維工作的閉環(huán)管理。
(3)異常告警及報警媒介
當(dāng)主機監(jiān)控項的數(shù)據(jù)滿足所關(guān)聯(lián)觸發(fā)器的條件時,觸發(fā)器被觸發(fā),然后通過報警媒介向關(guān)聯(lián)的用戶發(fā)送告警信息。在Zabbix中通過告警腳本的配置可以自定義相關(guān)告警內(nèi)容,并及時發(fā)送到微信,讓監(jiān)控人員及時獲取重要告警信息。
目前已經(jīng)部署的西安氣象信息網(wǎng)絡(luò)監(jiān)控系統(tǒng),主要采用Agent、SNMP、腳本等方式對西安市氣象核心通信網(wǎng)絡(luò)設(shè)備、硬件服務(wù)器、虛擬化環(huán)境以及臺站業(yè)務(wù)計算機等設(shè)備進行全面監(jiān)控。系統(tǒng)建設(shè)過程中,積累了一些經(jīng)驗供相關(guān)人員參考。
核心網(wǎng)絡(luò)通信設(shè)備的監(jiān)控,包括防火墻、核心路由器、核心交換機等采用SNMP的方式[4],實現(xiàn)對設(shè)備端口狀態(tài)、端口流量、CPU、負載等指標(biāo)的監(jiān)控。在該類設(shè)備的實際監(jiān)控部署過程中,應(yīng)當(dāng)注意采用合適SNMP版本,同時為了提升安全性,應(yīng)當(dāng)避免使用默認的SNMP團體關(guān)鍵字、讀寫關(guān)鍵字。在Zabbix Sever中添加此類監(jiān)控主機時,主要采用通用的交換機、路由器以及SNMP監(jiān)控模板實現(xiàn)。需要注意的是模板中會產(chǎn)生大量的非必要監(jiān)控項和觸發(fā)器,應(yīng)當(dāng)結(jié)合實際業(yè)務(wù)需求,對監(jiān)控項和觸發(fā)器進行精簡,避免大量的無用狀態(tài)數(shù)據(jù)采集和無用告警。
硬件服務(wù)器及臺站業(yè)務(wù)PC機,采用Zabbix-agent插件的方式監(jiān)控[5]。部署過程中注意使用主動模式,請求Server獲取監(jiān)控項列表,并主動將監(jiān)控項內(nèi)所需檢查的數(shù)據(jù)提交給ZabbixServer,有效降低Zabbix Server的IO壓力。另外,使用主動模式監(jiān)控,也為今后進一步研究針對業(yè)務(wù)系統(tǒng)的日志監(jiān)控打好基礎(chǔ)。
市局VMware虛擬化環(huán)境監(jiān)控[6]為Vcenter配置相應(yīng)監(jiān)控項,使用Zabbix自帶的VMware監(jiān)控模板實現(xiàn)虛擬機自動發(fā)現(xiàn)和監(jiān)控。
基于以上部署工作,基本完成了監(jiān)控系統(tǒng)的框架搭建。美中不足的是Zabbix自帶的圖形化界面展示功能單一、UI設(shè)計簡單。本項目中使用第三方插件Grafana來實現(xiàn)監(jiān)控系統(tǒng)的可視化大屏設(shè)計。Grafana是開源的監(jiān)控可視化工具[7],提供了非常豐富的圖表樣式,全面支持Zabbix數(shù)據(jù)源,其自帶的各類圖表樣式能夠很好的展示監(jiān)控數(shù)據(jù)和各類指標(biāo)數(shù)據(jù)。
合理利用Grafana中豐富的圖表組件,結(jié)合運維人員的實際監(jiān)控需求,設(shè)計靈活、實用的各種可視化監(jiān)控大屏,結(jié)合Grafana自帶的輪播系統(tǒng),可以很好的展示各類監(jiān)控指標(biāo)數(shù)據(jù)。
該系統(tǒng)在西安市氣象局部署應(yīng)用期間,其系統(tǒng)集成的告警功能在日常運維監(jiān)控工作中發(fā)揮了較大作用。以兩次系統(tǒng)告警到故障解決的具體事件為例。事件1:核心交換機某固定端口在某一時期經(jīng)常出現(xiàn)狀態(tài)UP/DOWN的告警,運維人員現(xiàn)場檢查發(fā)現(xiàn)是交換機該端口連接的服務(wù)器網(wǎng)線接觸不良,提前發(fā)現(xiàn)并排除了可能因主機網(wǎng)絡(luò)連接不穩(wěn)定而影響業(yè)務(wù)系統(tǒng)正常運行的隱患。事件2:某核心業(yè)務(wù)服務(wù)器持續(xù)告警“Memory used too high (used>90%)”,并且沒有自動恢復(fù),表明該服務(wù)器內(nèi)存占用持續(xù)過高,運維人員初步判斷該服務(wù)后臺應(yīng)用占用資源異常。及時通知該業(yè)務(wù)系統(tǒng)負責(zé)人進行檢查,發(fā)現(xiàn)確實存在因業(yè)務(wù)應(yīng)用程序bug造成的資源占用異常,開發(fā)人員立即對該程序bug進行修復(fù),避免了業(yè)務(wù)中斷的風(fēng)險。
西安氣象信息網(wǎng)絡(luò)監(jiān)控系統(tǒng)是基于Zabbix和Grafana的結(jié)合應(yīng)用,將市級氣象部門日常運維監(jiān)控工作從傳統(tǒng)模式轉(zhuǎn)向一體化、集約化、智能化和可視化,降低運維監(jiān)控難度和風(fēng)險,初步達到了提升監(jiān)控能力和效率的目的。后期將在此監(jiān)控系統(tǒng)架構(gòu)基礎(chǔ)上,進一步根據(jù)氣象探測設(shè)備、終端的特點,利用該系統(tǒng)實現(xiàn)氣象探測設(shè)備的監(jiān)控覆蓋,逐步建立一套面向氣象行業(yè)的,具有參考價值的信息網(wǎng)絡(luò)系統(tǒng)監(jiān)控體系。Zabbix開源監(jiān)控系統(tǒng)自身也在不斷更新迭代,有必要對該系統(tǒng)進行更深入的研究和更廣泛的應(yīng)用,其收集的海量信息網(wǎng)絡(luò)系統(tǒng)狀態(tài)數(shù)據(jù),不僅可以幫助氣象行業(yè)從傳統(tǒng)運維向智能化運維轉(zhuǎn)變,更有可能成為行業(yè)數(shù)字化轉(zhuǎn)型的重要研究依據(jù)。