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