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





