劉 暢,龐菲菲,白水成,曹 波
(1.西安市大氣探測中心,西安 710016;2.陜西省氣象局秦嶺和黃土高原生態環境氣象重點實驗室,西安 710016;3.西安市公共氣象服務中心,西安 710016;4.西安市大氣探測中心,西安 710016;5.陜西省氣象信息中心,西安 710014)
目前陜西省氣象部門主要通過國家氣象信息中心統一開發的“天鏡”系統以及“天擎”的綜合業務監控子系統實現關鍵信息的實時監控和告警,其功能設計主要針對于國家級和省級氣象部門監控運維需求。對于市級氣象部門而言,各類氣象業務系統的運行環境不盡相同,部署環境更加復雜,包括臺站業務計算機、工作站、各類物理服務器以及公有云、私有云等虛擬化環境,同時在基礎網絡通信方面,又涉及各層級的網絡硬件設備。在此背景下,市級氣象部門在信息網絡系統方面通常呈現出體量不大,但種類繁多、新舊摻雜的特點。要保證各類氣象業務系統穩定運行,基層運維人員則需要實時關注與其相關的各類硬件設備和軟件系統的硬件狀態、進程狀態等各類指標是否正常,這就需要依賴于自動化、智能化的監控工具,讓運維人員更加方便、集中地進行運維監控管理。
伴隨氣象信息化的快速發展,近年來市縣兩級氣象部門信息網絡資源規模不斷提升。以西安市氣象局為例,目前全市擁有各類業務核心主機20余臺,核心網絡設備約20臺,物理服務器約30臺,VMware虛擬化平臺一套,上線虛擬機28臺,建設各類業務專線20余條,同時使用公有云資源池并建立IPsecVPN虛擬專線。信息網絡資源具有規模不大,但是種類較多且設備部署分散的特點。一直以來市縣兩級并未建設統一的信息網絡監控系統,而“天鏡”系統的通用型設計,又難以滿足基層的本地化監控需求。對于市級信息網絡保障人員而言,日常運維工作難度大,暴露出的問題主要包括:監控實效差、監控精準程度不夠、處理不及時等。在此背景下,迫切需要對各類業務的日常監控及運維工作進行整合,通過技術手段減輕人工任務,優化運維流程。運維人員需要及時、準確地了解各類硬件設備和業務系統的運行狀態指標,并進行可視化分析應用,通過提高日常運維技術含量,推動氣象信息網絡運維監控轉向精細化、標準化、自動化方向發展。通過對目前國內外主流的IT監控技術進行了調研,對比分析了Zabbix、Prometheus、ELK、ManageEngine等監控系統的優缺點,其中Zabbix作為開源的企業級監控方案已經被全球廣泛使用,具有開源免費、部署配置簡單、監控及功能全面并具有非常強的擴展能力等特性[1],Zabbix監控體系在國內其他行業已經廣泛使用[2],也完全適應和滿足氣象行業信息網絡系統監控的需求。
Zabbix是一款企業級分布式監控系統,是一個開箱即用的成熟解決方案,具有各種完備的功能模塊。Zabbix支持多種采集方式和采集客戶端,有專用的Agent,也支持SNMP、IPMI、Telnet、Http等多種協議,它將采集到的數據存放到數據庫中,然后對其進行分析整理,達到條件觸發告警,并支持對告警數據的分析統計[3]。
Zabbix的通用架構是采用客戶端/服務器端的模式,分布式架構采用客戶端/代理端/服務器端模式。據Zabbix官方資料顯示,單臺服務器節點就可以支持上萬臺設備,所以根據實際被監控設備的數量,選擇單節點服務器/客戶端的模式。在實踐過程中詳細梳理了市、縣兩級氣象部門需要監控的信息網絡系統清單,根據不同設備及系統,選擇合適的監控方式。各個被監控設備的狀態數據將實時采集到Zabbix Server并存放在數據庫中,利用Zabbix Web或者Grafana插件進行數據可視化應用,同時可以使用Zabbix API接口實現系統的二次開發應用,具體架構設計如圖1所示。

圖1 Zabbix監控架構圖
Zabbix具有常見的商業監控軟件所具備的功能,包括主機性能監控、網絡設備性能監控、數據庫性能監控等。在對監控系統進行實際部署及定制化后,針對氣象行業信息網絡監控需求,重點介紹以下幾項具備代表性的功能。
(1)設備資產管理
對于市縣兩級氣象業務系統架構而言,統一納管各臺站的業務系統主機是一大難點。通過平臺自動化的數據采集,獲取設備型號、管理IP、Mac地址等資產信息,作為運維過程中重要的資產數據提供給運維人員。
(2)設備運行狀態實時監控
按照系統設計框架,為不同類型的設備配置相應的監控項后,則可以按照管理員的設置自動化巡檢所有納入監控的設備,獲取主機中各類監控項的數據或狀態,并且在數據異常時觸動觸發器并發送告警信息,實現故障問題快速定位,并形成結果報告,確保運維工作的閉環管理。
(3)異常告警及報警媒介
當主機監控項的數據滿足所關聯觸發器的條件時,觸發器被觸發,然后通過報警媒介向關聯的用戶發送告警信息。在Zabbix中通過告警腳本的配置可以自定義相關告警內容,并及時發送到微信,讓監控人員及時獲取重要告警信息。
目前已經部署的西安氣象信息網絡監控系統,主要采用Agent、SNMP、腳本等方式對西安市氣象核心通信網絡設備、硬件服務器、虛擬化環境以及臺站業務計算機等設備進行全面監控。系統建設過程中,積累了一些經驗供相關人員參考。
核心網絡通信設備的監控,包括防火墻、核心路由器、核心交換機等采用SNMP的方式[4],實現對設備端口狀態、端口流量、CPU、負載等指標的監控。在該類設備的實際監控部署過程中,應當注意采用合適SNMP版本,同時為了提升安全性,應當避免使用默認的SNMP團體關鍵字、讀寫關鍵字。在Zabbix Sever中添加此類監控主機時,主要采用通用的交換機、路由器以及SNMP監控模板實現。需要注意的是模板中會產生大量的非必要監控項和觸發器,應當結合實際業務需求,對監控項和觸發器進行精簡,避免大量的無用狀態數據采集和無用告警。
硬件服務器及臺站業務PC機,采用Zabbix-agent插件的方式監控[5]。部署過程中注意使用主動模式,請求Server獲取監控項列表,并主動將監控項內所需檢查的數據提交給ZabbixServer,有效降低Zabbix Server的IO壓力。另外,使用主動模式監控,也為今后進一步研究針對業務系統的日志監控打好基礎。
市局VMware虛擬化環境監控[6]為Vcenter配置相應監控項,使用Zabbix自帶的VMware監控模板實現虛擬機自動發現和監控。
基于以上部署工作,基本完成了監控系統的框架搭建。美中不足的是Zabbix自帶的圖形化界面展示功能單一、UI設計簡單。本項目中使用第三方插件Grafana來實現監控系統的可視化大屏設計。Grafana是開源的監控可視化工具[7],提供了非常豐富的圖表樣式,全面支持Zabbix數據源,其自帶的各類圖表樣式能夠很好的展示監控數據和各類指標數據。
合理利用Grafana中豐富的圖表組件,結合運維人員的實際監控需求,設計靈活、實用的各種可視化監控大屏,結合Grafana自帶的輪播系統,可以很好的展示各類監控指標數據。
該系統在西安市氣象局部署應用期間,其系統集成的告警功能在日常運維監控工作中發揮了較大作用。以兩次系統告警到故障解決的具體事件為例。事件1:核心交換機某固定端口在某一時期經常出現狀態UP/DOWN的告警,運維人員現場檢查發現是交換機該端口連接的服務器網線接觸不良,提前發現并排除了可能因主機網絡連接不穩定而影響業務系統正常運行的隱患。事件2:某核心業務服務器持續告警“Memory used too high (used>90%)”,并且沒有自動恢復,表明該服務器內存占用持續過高,運維人員初步判斷該服務后臺應用占用資源異常。及時通知該業務系統負責人進行檢查,發現確實存在因業務應用程序bug造成的資源占用異常,開發人員立即對該程序bug進行修復,避免了業務中斷的風險。
西安氣象信息網絡監控系統是基于Zabbix和Grafana的結合應用,將市級氣象部門日常運維監控工作從傳統模式轉向一體化、集約化、智能化和可視化,降低運維監控難度和風險,初步達到了提升監控能力和效率的目的。后期將在此監控系統架構基礎上,進一步根據氣象探測設備、終端的特點,利用該系統實現氣象探測設備的監控覆蓋,逐步建立一套面向氣象行業的,具有參考價值的信息網絡系統監控體系。Zabbix開源監控系統自身也在不斷更新迭代,有必要對該系統進行更深入的研究和更廣泛的應用,其收集的海量信息網絡系統狀態數據,不僅可以幫助氣象行業從傳統運維向智能化運維轉變,更有可能成為行業數字化轉型的重要研究依據。