楊立苑,胡佳軍,鄧衛(wèi)華,劉喆玥
(江西省氣象信息中心,南昌 330096)
運動隨著近幾年來云計算技術(shù)的飛速蓬勃發(fā)展,云計算技術(shù)已經(jīng)發(fā)展成熟[1],云基礎(chǔ)設(shè)施也融入到各行各業(yè)當(dāng)中,例如政府服務(wù)部門的政務(wù)云[2,3]、教育服務(wù)行業(yè)的教育云[4,5]、公共衛(wèi)生事業(yè)的醫(yī)療云[6,7]等.為了實現(xiàn)氣象部門信息化、現(xiàn)代化的快速發(fā)展,集約化管理氣象信息基礎(chǔ)設(shè)施和業(yè)務(wù)應(yīng)用,江西省氣象部門已經(jīng)建設(shè)了省級氣象云平臺.但是因為氣象云的物理設(shè)備數(shù)量和業(yè)務(wù)應(yīng)用數(shù)量的迅速增加,傳統(tǒng)的集群監(jiān)視技術(shù)已經(jīng)無法滿足當(dāng)下氣象云監(jiān)控運維的需要[8].傳統(tǒng)的集群監(jiān)視技術(shù)只能對物理服務(wù)器的資源利用情況進行簡單的監(jiān)視,一方面無法對氣象云的虛擬機實例和運行在氣象云上的云應(yīng)用進行監(jiān)視,另一方面無法對監(jiān)視到的故障問題進行報警及自動應(yīng)急處理.
江西省氣象云主要分為物理基礎(chǔ)設(shè)施層、虛擬化層、氣象應(yīng)用層.物理基礎(chǔ)設(shè)施層主要包括物理服務(wù)器、路由器、交換機等等,其中物理服務(wù)器經(jīng)常出現(xiàn)硬盤損壞、CPU 負(fù)載過高等問題.虛擬化層主要是基于KVM 虛擬化技術(shù)生成的虛擬機實例,虛擬機經(jīng)常出現(xiàn)假死無響應(yīng)、存儲空間不夠等問題.氣象云應(yīng)用層主要運行的是氣象服務(wù)應(yīng)用,例如氣象數(shù)據(jù)傳輸存儲類應(yīng)用、氣象數(shù)據(jù)統(tǒng)計分析類應(yīng)用、氣象公眾Web服務(wù)類應(yīng)用,這些云應(yīng)用經(jīng)常會出現(xiàn)突然中斷退出、性能變低等問題.
為了建立面向氣象云的監(jiān)控運維系統(tǒng),實現(xiàn)對氣象云的三層監(jiān)控,及時對發(fā)生的故障和問題進行通知和自動處理,減輕值班運維人員的日常維護負(fù)擔(dān),本文基于Zabbix 開源系統(tǒng)設(shè)計了一種氣象云監(jiān)控運維系統(tǒng)(Meteorological Cloud Monitoring and Maintenance System,MCMMS).
Cacti是一種網(wǎng)絡(luò)流量監(jiān)視圖形分析開源工具,它是基于PHP、MySQL、RRDTool 等開發(fā)的[9].它通過SNMP的snmpget 命令和snmpwalk 命令去遠(yuǎn)程獲取網(wǎng)絡(luò)設(shè)備相關(guān)信息,然后基于RRDTool 工具繪制監(jiān)視設(shè)備的性能狀態(tài)圖.Cacti 具備精準(zhǔn)的流量監(jiān)視能力,但不支持分布式集群監(jiān)控,缺乏報警功能,不適應(yīng)目前云環(huán)境下的監(jiān)控需求.
Nagios是一種監(jiān)視系統(tǒng)運行和網(wǎng)絡(luò)設(shè)備信息的開源監(jiān)視系統(tǒng)[10,11].它能夠有效監(jiān)視各類操作系統(tǒng)的狀態(tài)以及路由器、交換機等網(wǎng)絡(luò)設(shè)備的狀態(tài).當(dāng)監(jiān)視對象出現(xiàn)異常時,它能夠以郵件和短信的方式發(fā)出警報.雖然它告警功能強大,但是它的數(shù)據(jù)收集機制不強,在當(dāng)下云環(huán)境虛擬機眾多的情況下,添加配置監(jiān)視對象也很繁瑣,不宜進行維護.
Ganglia是一種可擴展的分布式監(jiān)控系統(tǒng),它是主要為高性能計算集群設(shè)計的[12,13].它可以監(jiān)視高性能計算集群各個節(jié)點的狀態(tài)信息,通過gmond 代理采集各項性能指標(biāo),通過gmetad 進程進行監(jiān)視數(shù)據(jù)的匯總,最后通過PHP 展示機器的性能數(shù)據(jù).但是這個系統(tǒng)對應(yīng)用的監(jiān)視比較薄弱.
Zabbix為分布式系統(tǒng)和網(wǎng)絡(luò)監(jiān)視功能提供了一種基于Web 應(yīng)用的企業(yè)級開源解決方案[14,15].Zabbix的監(jiān)控方式如圖1所示,Zabbix 可以通過代理、JMX、SNMP 等多種方式對服務(wù)器和網(wǎng)絡(luò)進行監(jiān)控數(shù)據(jù)收集,能夠支持包括Linux、Windows 在內(nèi)的各種系統(tǒng)平臺.Zabbix 既解決了Cacti 沒有報警的不足,也解決了Nagios 配置繁瑣的問題.Zabbix 另外的一個優(yōu)點在于能夠允許用戶對監(jiān)視功能進行自定義擴展.
圖1 Zabbix的監(jiān)控方式
江西省氣象云主要分為物理基礎(chǔ)設(shè)施層、虛擬化層、氣象應(yīng)用層[16].物理基礎(chǔ)設(shè)施層主要包括物理服務(wù)器和網(wǎng)絡(luò)設(shè)備.虛擬化層主要包括運行在物理基礎(chǔ)設(shè)施層上的各類虛擬機.氣象云Hypervisor是運行在物理基礎(chǔ)設(shè)施層和虛擬化層之間的軟件,它可以對物理基礎(chǔ)設(shè)施進行硬件資源抽象,然后為虛擬化層供給共享的計算、存儲、網(wǎng)絡(luò)等資源.用戶可以通過Hypervisor對虛擬化層進行一定程度的性能監(jiān)視以及對虛擬機進行生命周期管理.氣象應(yīng)用運行在虛擬機的操作系統(tǒng)上,為用戶提供氣象信息技術(shù)服務(wù).
基于Zabbix的氣象云監(jiān)控運維系統(tǒng)體系結(jié)構(gòu)如圖2所示,主要分為氣象云監(jiān)控代理和氣象云監(jiān)控運維Web 系統(tǒng)兩部分.
圖2 氣象云監(jiān)控運維系統(tǒng)體系結(jié)構(gòu)
氣象云監(jiān)控運維系統(tǒng)需要在物理服務(wù)器和虛擬機中部署監(jiān)控代理.部署在物理服務(wù)器中的監(jiān)控代理主要是監(jiān)視物理服務(wù)器以及運行在其上所有虛擬機的CPU資源、內(nèi)存資源、網(wǎng)絡(luò)資源、硬盤資源的實時使用情況.部署在虛擬機中的監(jiān)控代理主要監(jiān)視運行在虛擬機上氣象應(yīng)用的運行情況.這些部署在氣象云上的監(jiān)控代理會將監(jiān)視數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送給氣象云監(jiān)控運維系統(tǒng).另外,這些監(jiān)控代理還會接收來自監(jiān)控運維系統(tǒng)的操作指令,自動對氣象云進行應(yīng)急運維操作.
氣象云監(jiān)控運維Web 系統(tǒng)自下而上主要分為4 層,分別是業(yè)務(wù)數(shù)據(jù)庫層、數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層、展示層.
業(yè)務(wù)邏輯層使用的是MySQL 數(shù)據(jù)庫,數(shù)據(jù)庫中存儲著各種資源歷史使用情況、設(shè)備實例的詳細(xì)信息、監(jiān)視規(guī)則、觸發(fā)報警規(guī)則、報警事件等.
數(shù)據(jù)訪問層采用的是ORM 框架,它向上為業(yè)務(wù)邏輯層提供了數(shù)據(jù)庫的訪問接口,向下使用面向?qū)ο蟮男问綄?shù)據(jù)庫中的表進行了映射操作.
業(yè)務(wù)邏輯層是氣象云監(jiān)控運維系統(tǒng)的核心部分,它分為兩大部分,一部分是繼承原有的Zabbix 監(jiān)視業(yè)務(wù)邏輯,另一部分是在Zabbix 數(shù)據(jù)庫基礎(chǔ)上對Zabbix進行了可視化以及報警、應(yīng)急操作的擴展.繼承原有的監(jiān)視業(yè)務(wù)邏輯主要包括數(shù)據(jù)收集模塊、主動監(jiān)視模塊、數(shù)據(jù)處理模塊,擴展的業(yè)務(wù)邏輯主要包括可視化模塊、報警模塊、應(yīng)急操作模塊.數(shù)據(jù)收集模塊的作用是接收從氣象云監(jiān)控代理發(fā)送過來的數(shù)據(jù),主動監(jiān)視模塊的作用是監(jiān)控運維系統(tǒng)通過一些常用協(xié)議去主動監(jiān)視Java 應(yīng)用、網(wǎng)絡(luò)設(shè)備、硬件設(shè)備,數(shù)據(jù)處理模塊主要是對監(jiān)視數(shù)據(jù)進行處理、讀取.報警模塊的作用是根據(jù)報警觸發(fā)規(guī)則為用戶推送告警信息,應(yīng)急操作模塊的作用是對運維過程中出現(xiàn)的問題進行及時的簡單處理,可視化模塊是將監(jiān)控的相關(guān)信息展示到前臺頁面.業(yè)務(wù)服務(wù)視圖負(fù)責(zé)對前臺的模型及頁面進行渲染.
展示層需要為PC Web 桌面和智能手機(iOS、Android)提供信息展示功能.值班人員的PC Web 桌面是基于HTML5 開發(fā),采用了BootStrap4、Jquery 等技術(shù),為用戶提供了監(jiān)控報警信息的頁面展示以及和監(jiān)控有關(guān)的配置頁面.面向智能手機的展示層主要是用于接收瀏覽報警信息,報警信息會根據(jù)重要等級分別通過值班平臺、短信平臺、微信平臺推送給值班運維人員.
本系統(tǒng)采用在操作系統(tǒng)中部署監(jiān)視代理(Agent)的方式對氣象云的物理服務(wù)器、虛擬機、關(guān)鍵應(yīng)用進行監(jiān)視,Agent 在獲取到監(jiān)視信息后,會將這些信息發(fā)送給MCMMS Server.Agent 按照與MCMMS Server交互方式分為主動類型和被動類型.
主動類型的Agent與MCMMS Server 交互的流程如圖3所示.主動類型的Agent與MCMMS Server 交互分為準(zhǔn)備期和運行期這兩個階段.首先Agent 發(fā)出與MCMMS Server 建立TCP 連接的請求,建立與MCMMS Server的TCP 通信通道.然后Agent 會向MCMMS Server 發(fā)送請求監(jiān)視項目表的申請,Zabbix 會根據(jù)請求返回相應(yīng)Agent 所需監(jiān)視項目表.Agent 在獲取到自己的監(jiān)視項目表后會對返回的監(jiān)視項目表進行處理,處理完畢后斷開TCP 連接.接下來,Agent 進入運行期,首先會建立與MCMMS Server 發(fā)送監(jiān)視信息的TCP連接通道,然后會根據(jù)配置文件中預(yù)定義的時間間隔發(fā)送監(jiān)視信息給MCMMS Server.MCMMS Server 在收到監(jiān)視信息后會對監(jiān)視信息進行處理,并且存入到數(shù)據(jù)庫中.
圖3 主動類型Agent 交互流程
被動類型的Agent與MCMMS Server 交互的流程如圖4所示.對于被動類型的Agent,MCMMS Server 首先會發(fā)出與Agent 建立TCP 連接的請求,獲取與Agent 數(shù)據(jù)傳輸通信的通道.然后MCMMS Server 會向Agent 發(fā)送相關(guān)數(shù)據(jù)請求,該數(shù)據(jù)請求主要是需要監(jiān)視項目的名字.Agent 在收到MCMMS Server發(fā)來的數(shù)據(jù)請求后,會讀取相應(yīng)的監(jiān)視數(shù)據(jù),然后將獲取的監(jiān)視信息返回給MCMMS Server.MCMMS Server收到返回的監(jiān)視信息后會進行數(shù)據(jù)處理,然后存儲到數(shù)據(jù)庫中,最后斷開TCP 連接.
圖4 被動類型Agent 交互流程
兩種類型的Agent 都會按照設(shè)計約定的數(shù)據(jù)傳輸協(xié)議與MCMMS Server 進行通信,該數(shù)據(jù)協(xié)議采用JSON 數(shù)據(jù)格式,但是會在每條數(shù)據(jù)之前加上頭部標(biāo)識符和數(shù)據(jù)長度標(biāo)識符,格式順序如下所示:<頭部標(biāo)識><數(shù)據(jù)長度標(biāo)識><監(jiān)視數(shù)據(jù)>.頭部標(biāo)識一共是5 個字節(jié),數(shù)據(jù)長度標(biāo)識一共是8 個字節(jié),每一條數(shù)據(jù)量大小不能超過64 M,這是為了防止內(nèi)存消耗過快.
江西省氣象云虛擬化資源是基于libvirt 進行監(jiān)視的,libvirt是一款用于虛擬化平臺管理的開源API 庫.libvirt 提供了針對不同虛擬化平臺的監(jiān)視功能,對于不同的虛擬化平臺都提供了該平臺的驅(qū)動,并且為不同語言提供了統(tǒng)一的編程接口,通過調(diào)用接口可以實現(xiàn)對氣象云的虛擬化操作.對基礎(chǔ)云資源的監(jiān)視主要包括對計算資源的監(jiān)視、對存儲資源的監(jiān)視、對網(wǎng)絡(luò)資源的監(jiān)視.
對于計算資源的監(jiān)視就是對物理服務(wù)器和虛擬機的CPU 利用率進行監(jiān)視.開源庫libvirt 雖然沒有提供接口讓外部系統(tǒng)直接獲取CPU 利用率,但是外部系統(tǒng)可以通過計算CPU Time 間接獲取CPU 利用率,CPU利用率獲取算法如算法1 所示.
算法1.CPU 利用率獲取算法輸入:虛擬機實例集instanceList輸出:虛擬機使用率集合cpuMapList 1.for instancein instanceList:2.get time1,time2 from system time 3.get CPUTime1,CPUTime2,cores_nums,uuidfrom Qemu 4.//計算CPU 時鐘差5.ΔCPUTime=CPUTime2 - CPUTime1 6.//計算自然時間差7.Δtime=time2 - time1 8.//計算CPU 使用率9.CPU_usage=ΔCPUTime×100/(Δtime×cores_nums×109)10.cpuMapList ← map<uuid,Cpu_usage>11.return cpuMapList
對存儲資源的監(jiān)視就是對物理服務(wù)器和虛擬機的內(nèi)存資源和硬盤資源進行監(jiān)視.內(nèi)存資源的使用情況獲取比較簡單,只需要獲取宿主機上每個實例的Domain基礎(chǔ)信息,然后從基礎(chǔ)信息中提取與該實例相關(guān)的最大內(nèi)存大小和已使用內(nèi)存大小.硬盤資源的總量和使用量首先需要通過libvirt 接口獲取Domain的情況及XML 配置文件,然后通過XML 可以獲取每個機器的名稱,最后再通過Domain的設(shè)備塊信息接口blockinfo獲取需要監(jiān)測的數(shù)值.另外,獲取硬盤的I/O 情況與獲取硬盤的使用量過程類似,但是在調(diào)用接口獲取設(shè)備信息時需要調(diào)用設(shè)備快查詢接口blockstats 獲取需要監(jiān)測的數(shù)值.
對于網(wǎng)絡(luò)資源的監(jiān)視就是對虛擬機的虛擬網(wǎng)卡數(shù)據(jù)流入流出量進行監(jiān)視.首先需要使用libvirt的API獲取Domain的情況,然后將虛擬網(wǎng)卡設(shè)備的名稱作為參數(shù)傳遞給libvirt的API,通過interfaceStats 接口去獲取虛擬網(wǎng)卡設(shè)備的屬性字段值,這些值便是虛擬網(wǎng)卡流入流出的數(shù)據(jù)量.對于網(wǎng)絡(luò)設(shè)備如路由器和交換機的監(jiān)視,需要使用SNMP 功能進行監(jiān)視.使用SNMP首先需要使用snmpwalk 命令對對象標(biāo)識符(OID)值進行遍歷,然后再根據(jù)具體的OID 值使用snmpget 命令獲取該設(shè)備的網(wǎng)口狀態(tài)和流量.
對于運行在氣象云上的云應(yīng)用主要監(jiān)視常用的基礎(chǔ)軟件MySQL 數(shù)據(jù)庫和Tomcat Web 容器的性能以及C/S 架構(gòu)和B/S 架構(gòu)的應(yīng)用軟件.
MySQL 數(shù)據(jù)庫是目前主流的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)應(yīng)用軟件.本系統(tǒng)將使用被動類型Agent 模式對Zabbix的監(jiān)視進行擴展.Agent 將會對MySQl的存活狀態(tài)、更新類SQL 執(zhí)行個數(shù)、查詢類SQL 執(zhí)行個數(shù)、插入類SQL 執(zhí)行個數(shù)、刪除類SQL 執(zhí)行個數(shù)、慢查詢語句個數(shù)進行監(jiān)視.首先需要在Agent的配置文件中進行自定義監(jiān)視命令的配置.自定義的監(jiān)視命令需要遵循Zabbix的規(guī)范,按照UserParameter=key,command的形式進行定義,這里監(jiān)視命令基于MySQL自帶的mysqladmin 命令進行編寫.
由于Tomcat Web 應(yīng)用容器是基于JAVA 語言開發(fā)的,所以MCMMS Server 可以通過JMX對Tomcat的性能進行監(jiān)視.JMX是Java 管理的擴展,給應(yīng)用程序提供了監(jiān)控管理功能的接口.使用JMX 不需要在Tomcat 代碼中增加新的機制和代碼,只需要在啟動Tomcat 服務(wù)器前修改相關(guān)的配置文件開啟支持JMX接口的服務(wù)端口即可.通過JMX 監(jiān)視用戶便可以監(jiān)視到Tomcat 服務(wù)占用CPU的情況、并發(fā)線程數(shù)量、內(nèi)存分配情況等.修改配置文件可以開啟JMX 支持.
對于用戶部署在氣象云上的應(yīng)用,系統(tǒng)無法入侵式的監(jiān)視應(yīng)用程序應(yīng)用情況,只能通過監(jiān)視應(yīng)用的日志達(dá)到監(jiān)視應(yīng)用運行狀態(tài)的目的.監(jiān)視應(yīng)用日志的Agent 工作流程如圖5所示.Agent 會定時掃描應(yīng)用的日志目錄,對該日志目錄下的日志文件進行文件名正則表達(dá)式匹配,當(dāng)匹配到文件名相符的日志文件,Agent 會去數(shù)據(jù)庫中讀取該日志文件的字節(jié)計數(shù)器和更新時間計數(shù)器.如果日志文件的大小小于字節(jié)計數(shù)器,那么Agent 將會從日志頭部開始讀取日志文件,計數(shù)器也會重置為0.如果日志文件大小大于字節(jié)計數(shù)器,那么Agent 將會從最新的位置開始讀取文件.Agent 逐行讀取文件時,會按照自定義的應(yīng)用錯誤關(guān)鍵字檢查日志文件內(nèi)容,如果發(fā)現(xiàn)應(yīng)用錯誤信息,Agent會將該信息發(fā)送給MCMMS Server.Agent 每次結(jié)束一個日志文件檢查時,會將數(shù)據(jù)庫中該日志文件的計數(shù)器更新.另外,對B/S 架構(gòu)的Web應(yīng)用軟件,MCMMS Server 可以對自定義的Web 網(wǎng)頁URL 進行定時掃描,收集訪問該網(wǎng)頁的下載速度、響應(yīng)時間以及返回的HTTP 網(wǎng)頁狀態(tài)碼.如果發(fā)現(xiàn)響應(yīng)時間超時或者返回的狀態(tài)碼是404 等錯誤碼,那么將會觸發(fā)對該Web 應(yīng)用的告警.
圖5 Agent 監(jiān)視應(yīng)用日志文件流程
在收集的監(jiān)視數(shù)據(jù)基礎(chǔ)上,系統(tǒng)會對監(jiān)視數(shù)據(jù)進行處理,為值班人員提供報警功能和故障自動化處理功能.報警控制流程如圖所示.報警運維主要分為兩個模塊:觸發(fā)器和應(yīng)急操作.
觸發(fā)器是當(dāng)監(jiān)視數(shù)據(jù)不滿足自定義的約束條件時,會發(fā)出觸發(fā)某個操作的指令.每一臺物理設(shè)備實例或者虛擬機實例都對應(yīng)多條觸發(fā)器.每個觸發(fā)器都會定義一個邏輯表達(dá)式,該邏輯表達(dá)式是監(jiān)事數(shù)據(jù)的約束條件.邏輯表達(dá)式按照約定的格式進行定義,約定的基本格式如下.{<實例名>:<監(jiān)視項>.<函數(shù)>(<參數(shù)>)}<邏輯運算符><約束量>,其中實例名是監(jiān)視系統(tǒng)中物理設(shè)備或者虛擬機的名字,監(jiān)視項是所需要監(jiān)視項目的名稱,包含參數(shù)的函數(shù)是用來返回該函數(shù)指定的監(jiān)視項數(shù)據(jù),邏輯運算符是用來判斷監(jiān)視數(shù)據(jù)是否滿足約束量.表達(dá)式中的函數(shù)一共有5 種,分別是avg、count、last、min、max,具體的作用如表1所示.觸發(fā)器的表達(dá)式由滿足約束到不滿足約束或者由不滿足約束到滿足約束,觸發(fā)器的狀態(tài)會由正常變?yōu)楫惓;蛘哂僧惓W優(yōu)檎?每次觸發(fā)器狀態(tài)的變化都會生成一個事件.事件按照問題的重要性會分成5 個等級,等級從輕到重分別是提示(Information)、警告(Warning)、一般(Average)、重要(High)、災(zāi)難性(Disaster).
表1 各函數(shù)的作用
當(dāng)觸發(fā)器的約束條件不被滿足后,系統(tǒng)會針對該觸發(fā)器采取應(yīng)急操作.應(yīng)急操作主要包括兩個部分,一是將產(chǎn)生的報警信息告知值班人員以及系統(tǒng)運維人員,二是對產(chǎn)生的問題執(zhí)行相應(yīng)的應(yīng)急指令.發(fā)送報警提示的方法主要包括發(fā)出警報聲音、短信通知、微信通知、郵件通知.對于一線24 小時值班人員,一般采用直接發(fā)出警報聲音的方式進行通知.對于二線運維人員,由于不在值班室,會采用短信通知和微信通知兩種方式,短信通知主要通知重要和災(zāi)難性的問題,微信通知主要通知一般性及以下的問題.對于產(chǎn)生的問題執(zhí)行相應(yīng)的應(yīng)急指令主要是指通過遠(yuǎn)程SSH和IPMI 連接到問題設(shè)備實例上,執(zhí)行一定的系統(tǒng)恢復(fù)命令.在運維過程中,常見的需要恢復(fù)場景如表2所示.
表2 常見應(yīng)急恢復(fù)場景
系統(tǒng)的平臺部署環(huán)境如圖6所示,一臺服務(wù)器部署了MySQL 監(jiān)控數(shù)據(jù)庫,一臺服務(wù)器部署了Zabbix服務(wù)器,擴展Zabbix 功能的Web 應(yīng)用部署在另外一臺服務(wù)器上.用戶可以通過Web 桌面訪問Zabbix 服務(wù)應(yīng)用和擴展服務(wù)應(yīng)用.值班運維人員的智能手機會從擴展應(yīng)用服務(wù)上獲得監(jiān)控運維信息.
圖6 系統(tǒng)的平臺部署環(huán)境
圖7是對監(jiān)控告警信息的總覽,圖7上部分是各類告警個數(shù)的統(tǒng)計和當(dāng)天值班人員的信息.圖7下部分是滾動的詳細(xì)告警信息和產(chǎn)生告警信息來源的區(qū)域告警.圖8和圖9是按照服務(wù)器以及虛擬機在實際環(huán)境中的機柜、網(wǎng)段分布信息繪制的告警分布圖,對于不同的告警信息系會用不同的顏色進行標(biāo)注.圖10是監(jiān)控運維系統(tǒng)通過短信平臺和微信平臺推送到智能手機上的監(jiān)控告警信息.
圖7 監(jiān)控告警信息總覽
圖8 服務(wù)器監(jiān)控告警分布圖
圖9 虛擬機監(jiān)控告警分布圖
圖10 智能手機接收監(jiān)控告警信息
本文基于Zabbix 設(shè)計了一套面向氣象云的監(jiān)控運維系統(tǒng),為氣象云環(huán)境中的物理基礎(chǔ)設(shè)施、虛擬機以及運行在其上的云應(yīng)用進行了實時監(jiān)控.如果在氣象云中出現(xiàn)了故障,該系統(tǒng)能夠快速發(fā)現(xiàn)問題,通知值班運維人員,并且會根據(jù)預(yù)定義命令自動進行先行維護.這保障了氣象云的平穩(wěn)運行,減輕了值班運維人員的工作量.目前系統(tǒng)對云應(yīng)用的監(jiān)控種類少、粒度粗,下一步將會研究擴展云應(yīng)用監(jiān)控的種類以及優(yōu)化云應(yīng)用監(jiān)控的方法.