基于Zabbix的高速公路機電運維系統(tǒng)研究與設(shè)計
引言
廣西高速公路系統(tǒng)通常由收費系統(tǒng)、視頻監(jiān)控系統(tǒng)、通信系統(tǒng)、供配電系統(tǒng)、照明系統(tǒng)五部分組成[1]。體系龐大、設(shè)備類型多、數(shù)量大、分布廣是高速公路機電系統(tǒng)運維工作的難點。例如,河百高速公路的視頻監(jiān)控子系統(tǒng)的服務(wù)器主機超過30臺,全線攝像頭有1000多個,交換機等網(wǎng)絡(luò)設(shè)備超過20臺,分布在全線超過170km的各個收費站。各路段普遍采用業(yè)務(wù)員反饋和維護員巡檢的方式維護設(shè)備,運維人員的業(yè)務(wù)水平參差不齊,普遍存在發(fā)現(xiàn)不及時、排查難、解決慢、統(tǒng)計難等問題。特別是針對服務(wù)器以及網(wǎng)絡(luò)設(shè)備的監(jiān)控運維能力較弱,發(fā)生故障時通常由運維人員向設(shè)備廠商反饋或者在設(shè)備廠商的遠程指導(dǎo)下進行處理。因此,引入一套高效可靠的機電運維系統(tǒng),實時監(jiān)控服務(wù)器、網(wǎng)絡(luò)設(shè)備、應(yīng)用程序等的運行狀態(tài),提供便捷、及時的通知機制,讓運維人員快速定位并解決故障就顯得尤為重要。
1Zabbix簡介
Zabbix是一個企業(yè)級的分布式開源監(jiān)控系統(tǒng)解決方案,用來監(jiān)控IT基礎(chǔ)設(shè)施的可用性和性能,能夠監(jiān)控各種網(wǎng)絡(luò)設(shè)備、存儲以及服務(wù)器系統(tǒng)應(yīng)用的運行參數(shù),具有健全、靈活的監(jiān)控數(shù)據(jù)采集、存儲以及告警配置,廣泛應(yīng)用于互聯(lián)網(wǎng)行業(yè)。與其他監(jiān)控系統(tǒng)相比,Zabbix有更加詳細的開發(fā)文檔和中文支持文檔,能監(jiān)控幾乎所有類型的設(shè)備,并實現(xiàn)與其他運維管理系統(tǒng)的完美對接。Zabbix提供對外開放接口,支持自定義告警,方便及時有效地發(fā)布通知,對于構(gòu)建分布式監(jiān)控系統(tǒng)具有重要作用?;赯abbix與郵箱短信系統(tǒng)結(jié)合,可以建設(shè)一套能夠及時告警、快速定位、減輕運維人員繁重工作量的運維系統(tǒng)。
2系統(tǒng)設(shè)計
2.1系統(tǒng)結(jié)構(gòu)設(shè)計
Zabbix分布式架構(gòu)分為CPs(client/proxy/server)和CNs(client/node/server)兩種。CPs架構(gòu)是單級分布式架構(gòu),proxy相當(dāng)于一個數(shù)據(jù)收集器,沒有其他任何功能,它不會處理數(shù)據(jù),不會觸發(fā)告警。CNs是多級分布式架構(gòu),node相當(dāng)于一個完整的Zabbixserver,需要收集和處理數(shù)據(jù)、報警、存儲數(shù)據(jù),node中所有的數(shù)據(jù)都會同步到Zabbixserver。Zabbix提供了非常便捷的從server切換到node的方法。根據(jù)目前廣西高速公路現(xiàn)狀以及視頻聯(lián)網(wǎng)的發(fā)展趨勢,未來機電運維系統(tǒng)可能存在的3個階段:(1)各個路段獨立管理機電系統(tǒng):(2)各個運營公司整合其管轄下所有路段的機電系統(tǒng)進行統(tǒng)一管理:(3)省公司整合所有路段的機電系統(tǒng)進行統(tǒng)一管理。選擇CNs架構(gòu),能夠在不破壞上個階段的運維系統(tǒng)運行的基礎(chǔ)上,快速切換到下一階段?;赯abbix的高速公路機電運維系統(tǒng)架構(gòu)如圖1所示。
2.2設(shè)備故障監(jiān)控模塊
設(shè)備故障監(jiān)控內(nèi)容包括服務(wù)器的CPU、內(nèi)存、磁盤等硬件參數(shù),網(wǎng)絡(luò)設(shè)備的端口狀態(tài)和流量,UPs電源的狀態(tài),攝像機的網(wǎng)絡(luò)狀況等,是整個監(jiān)控運維系統(tǒng)的核心。其中,服務(wù)器采用agent的方式采集數(shù)據(jù),安裝agent的方式非常簡單:網(wǎng)絡(luò)設(shè)備、UPs電源設(shè)備不支持安裝agent,采用sNMP的方式采集數(shù)據(jù):攝像機等前端設(shè)備有專門的平臺進行管理,在運維系統(tǒng)中主要考量網(wǎng)絡(luò)連通性,采用ping的方式監(jiān)測。Zabbix對設(shè)備故障已經(jīng)有較為完善可靠的支持,可采用其提供的模板配置進行監(jiān)控。
2.3應(yīng)用程序故障監(jiān)控模塊
除了設(shè)備會發(fā)生故障,應(yīng)用程序在運行過程中也會遇到執(zhí)行錯誤的情況,因此必須有相關(guān)的錯誤監(jiān)控機制。傳統(tǒng)的方式是將錯誤記錄在日志中,待用戶或運維人員發(fā)現(xiàn)問題后,通過日志去定位錯誤。通過二次開發(fā),設(shè)計應(yīng)用程序故障監(jiān)控模塊可以實時監(jiān)控應(yīng)用程序運行狀態(tài),提供應(yīng)用程序錯誤上報接口,對應(yīng)用程序的錯誤進行識別并執(zhí)行相應(yīng)的告警策略。與傳統(tǒng)方式相比,應(yīng)用程序故障監(jiān)控模塊能更及時、有效地發(fā)現(xiàn)應(yīng)用程序的錯誤。
2.4告警模塊
Zabbix提供了豐富的告警策略定義,系統(tǒng)需要根據(jù)路段的監(jiān)控定制有效的告警策略。同時,Zabbix支持多種渠道通知運維人員,包括短信、郵箱、微信、電話等,但因為高速公路運營的敏感性,通常采用局域網(wǎng)郵箱通知的方式?;赯abbix的腳本支持,可以根據(jù)不同場景設(shè)計告警觸發(fā)后的自動化操作,這些操作可以是獲取運維人員需要的信息,也可以是自動修復(fù),比如重啟服務(wù),使系統(tǒng)恢復(fù)更加及時。
2.5數(shù)據(jù)可視化模塊
Zabbix不僅能夠監(jiān)控大量不同類型的數(shù)據(jù)指標,還為這些數(shù)據(jù)及數(shù)據(jù)之間的關(guān)聯(lián)提供了多種可視化工具,通過圖形、展示屏、網(wǎng)絡(luò)拓撲圖等將數(shù)據(jù)直觀展現(xiàn)出來。運維人員可以通過登錄前端web界面,瀏覽和查看監(jiān)控設(shè)備的實時或者歷史狀態(tài)。若其他展示平臺要引用Zabbix的監(jiān)控數(shù)據(jù),只需通過Zabbix提供的AP1接口,就可以方便獲取Zabbix的監(jiān)控數(shù)據(jù)甚至圖表,有助于信息一體化平臺的實現(xiàn)。
2.6可靠性設(shè)計
Zabbix的性能瓶頸主要在數(shù)據(jù)庫,機器數(shù)量越大,數(shù)據(jù)量的增大會使數(shù)據(jù)的讀寫成為發(fā)展瓶頸。實際上,高速公路單路段的服務(wù)器設(shè)備數(shù)量不會超過200臺,而其他設(shè)備的監(jiān)控項少,數(shù)據(jù)量更是遠不及服務(wù)器的監(jiān)控數(shù)據(jù)量。按照Zabbix官網(wǎng)提供的數(shù)據(jù),單臺server節(jié)點可以充分滿足路段級的監(jiān)控需求。因此,基于成本的考慮,路段級的Zabbixserver不進行冗余備份設(shè)計,但是實現(xiàn)聯(lián)網(wǎng)后,路段級的節(jié)點數(shù)據(jù)會與分公司/省中心級的server節(jié)點同步??煽啃栽O(shè)計主要針對中心級的server節(jié)點。中心級的server采用集群方式部署,同時將數(shù)據(jù)庫從server中獨立出來,采用主備機方式部署,主備數(shù)據(jù)庫之間進行實時同步。當(dāng)出現(xiàn)數(shù)據(jù)庫故障時,快速切換到備用數(shù)據(jù)庫。
3結(jié)語
基于Zabbix的監(jiān)控框架,可設(shè)計出一套滿足高速公路機電設(shè)備運維需求的高可靠分布式系統(tǒng):通過Zabbix的模板配置,對設(shè)備的故障狀態(tài)進行監(jiān)控:通過自定義配置項的配置,對應(yīng)用程序的運行狀態(tài)進行監(jiān)控:通過定制有效的告警策略,結(jié)合內(nèi)部郵箱系統(tǒng),及時有效地通知運維人員,由此實現(xiàn)高速公路機電設(shè)備的監(jiān)控數(shù)據(jù)采集、告警、自動恢復(fù)、數(shù)據(jù)展示,幫助運維人員快速定位故障并解決問題,保證應(yīng)用程序的穩(wěn)定運行。