蔣增恒
摘 要:本文提出一種能夠適用于LINUX空管自動化操作系統(tǒng)的集中監(jiān)控系統(tǒng),以解決空管自動化系統(tǒng)不能靈活配置監(jiān)控系統(tǒng)的困難。集中監(jiān)控系統(tǒng)基于Zabbix軟件,通過C/S 模式,部署相應(yīng)的監(jiān)控主機對來自各個服務(wù)器終端的運行環(huán)境和主要監(jiān)控指標進行采集,最終通過數(shù)據(jù)庫集中處理后進行顯示和告警。系統(tǒng)由監(jiān)控系統(tǒng)調(diào)度模塊、數(shù)據(jù)采集模塊、日志監(jiān)控模塊、告警模塊4 個模塊構(gòu)成,采用mysql數(shù)據(jù)庫和python語言進行設(shè)計編寫。針對Zabbix 對于文本型數(shù)據(jù)類型監(jiān)控顯示方面的不足,開發(fā)設(shè)計了基于Flask 框架的日志監(jiān)控系統(tǒng),作為Zabbix的監(jiān)控補充,輕量級的日志監(jiān)控系統(tǒng)很好的彌補了Zabbix 在代碼、軟件等性能監(jiān)控上對于文本信息數(shù)據(jù)采集及顯示上的不足。
關(guān)鍵詞:空管自動化;集中監(jiān)控;Zabbix
引言
民航空管自動化系統(tǒng)配備有完善的集中監(jiān)控系統(tǒng),自動化系統(tǒng)發(fā)生故障時,監(jiān)控能夠準確的將軟硬件故障信息發(fā)送給維護人員,極大的增強了系統(tǒng)的安全性和可維護性。隨著空管改革以及“大崗位、大值班”模式的推廣,維護人員需要在多個崗位上監(jiān)視自動化系統(tǒng)的運行情況,但是廠家提供的監(jiān)控服務(wù)配置不靈活,且占用系統(tǒng)節(jié)點資源,并不能很好的滿足工作需要。
本文針對此需求,提出了在使用開源Zabbix的基礎(chǔ)上設(shè)計集中監(jiān)控系統(tǒng),用Zabbix對自動化系統(tǒng)的軟硬件進行監(jiān)控,然后開發(fā)日志監(jiān)控模塊對自動化軟件模塊在運行過程中可能發(fā)生的故障進行監(jiān)控。
1 系統(tǒng)分析
1. 1 監(jiān)控調(diào)度及數(shù)據(jù)采集存儲
基于Zabbix的監(jiān)控調(diào)度主程序?qū)⒈O(jiān)控自動化系統(tǒng)服務(wù)器主機的CPU、內(nèi)存、磁盤等硬件參數(shù)和交換機、路由器等網(wǎng)絡(luò)設(shè)備參數(shù),并將采集到的監(jiān)控信息格式化后存儲到mysql數(shù)據(jù)庫中,是整個集中監(jiān)控系統(tǒng)的核心。
1. 2 日志監(jiān)控
自動化軟件模塊、外部信號在運行過程中,也會遇到執(zhí)行錯誤或中斷的情況,因此相關(guān)的軟件錯誤監(jiān)控機制是必須的。日志監(jiān)控模塊通過讀取自動化監(jiān)控服務(wù)器OASYS上的日志,收集程序運行中的錯誤,利用基于Flask框架編寫的web前端進行顯示,并執(zhí)行相應(yīng)的告警策略,將錯誤信息發(fā)送給維護人員。
1. 4 告警
監(jiān)控平臺應(yīng)在故障發(fā)生時,可以通過多種渠道通知運維人員,包括本機的聲光告警以及短信、郵件等通信方式。聲光告警是最為常用的一種告警方式,Zabbix軟件本身就可以實現(xiàn)。郵件推送告警則可以通過一些開源項目輕松實現(xiàn)。
2 系統(tǒng)設(shè)計
2.1 集中監(jiān)控系統(tǒng)基本結(jié)構(gòu)設(shè)計
該系統(tǒng)共由基于簡單網(wǎng)絡(luò)管理協(xié)議SNMP 與Zabbix agent 客戶端的網(wǎng)絡(luò)數(shù)據(jù)采集模塊,基于mysql 數(shù)據(jù)庫的監(jiān)控數(shù)據(jù)存儲模塊,基于Zabbix server 的監(jiān)控調(diào)度模塊,基于Flask 框架的web 端日志監(jiān)控模塊組成。
2.2集中監(jiān)控系統(tǒng)的功能模塊設(shè)計
2.2.1監(jiān)控調(diào)度模塊和數(shù)據(jù)采集存儲模塊設(shè)計
Zabbix集中監(jiān)控系統(tǒng)基于web 形式,可以靈活的修改需要監(jiān)控的服務(wù)器、監(jiān)控的內(nèi)容、監(jiān)控的時間等項目。集中監(jiān)控系統(tǒng)需要在服務(wù)器和被監(jiān)控端安裝相應(yīng)的軟件,Zabbix 就利用10050端口監(jiān)聽Agent發(fā)回的信息。Zabbix軟件可以靈活的調(diào)用mysql數(shù)據(jù)庫,通過在數(shù)據(jù)庫中建立告警表,監(jiān)控調(diào)度主程序在收到監(jiān)控信息之后會判斷是否存在相應(yīng)的告警策略,并將信息存儲到數(shù)據(jù)庫的告警表中。
數(shù)據(jù)采集則采用基于簡單網(wǎng)絡(luò)協(xié)議SNMP 與C/S 架構(gòu)相結(jié)合的數(shù)據(jù)采集方法。采集到的數(shù)據(jù)將格式化后存儲到mysql相應(yīng)的表中,相關(guān)硬件采集到的數(shù)據(jù)基本都包括:
(1)資源列表:服務(wù)器對應(yīng)的ip 地址,dns 域名,對應(yīng)應(yīng)用的端口號,使用狀態(tài)等。
(2)監(jiān)控項列表:被監(jiān)控主機上,所有被監(jiān)控的網(wǎng)絡(luò)節(jié)點的信息,比如cpu 負載等。
(3)告警列表:監(jiān)控系統(tǒng)不單單是完成數(shù)據(jù)展示的作用,還要完成對監(jiān)控數(shù)據(jù)配置閾值,超過既定閾值,實施報警策略。
2.3.2日志監(jiān)控模塊設(shè)計
空管自動化系統(tǒng)在運行時, OASYS上會實時生成大量的運行日志,日志會實時的記錄在日志文件中,我們可以在集中監(jiān)控系統(tǒng)上讀取該日志文件,實現(xiàn)對日志的監(jiān)控。THALES自動化系統(tǒng)中自帶python軟件,可以通過編寫python腳本實現(xiàn)對日志的相關(guān)操作。采集到的日志將利用python中的相關(guān)模塊存入mysql數(shù)據(jù)庫中。
2.3.3 前端web模塊的設(shè)計
本文使用基于python語言編寫的Flask框架建立前端web模塊,F(xiàn)lask是輕量級的web框架,其總體的系統(tǒng)框架采用MVC 模式,即模型,視圖函數(shù)和控制器函數(shù)相分離的架構(gòu)模式。通過python語言,可以將mysql數(shù)據(jù)庫中采集到的日志文件讀入,并通過匹配關(guān)鍵字的方法對系統(tǒng)運行日志在web端進行分級顯示。例如:設(shè)置如下關(guān)鍵字:“Failed、NOT OK、down”等,如果匹配成功的話,將關(guān)鍵字后的10 行內(nèi)容顯示在web 端顯示,相關(guān)人員可以在web 上查看錯誤詳情,并且給出相應(yīng)的處理方法。
2.3.4 告警模塊
告警模塊分為兩個部分,其一為Zabbix Server的告警和郵件推送,告警內(nèi)容主要為自動化系統(tǒng)的硬件告警,如CPU、硬盤等,或者通過SNMP協(xié)議收集到的網(wǎng)絡(luò)設(shè)備的告警,這些功能通過Zabbix Server就可以實現(xiàn)。
其二為web前端監(jiān)控日志的告警和郵件推送。告警內(nèi)容主要為采集到的日志中關(guān)于自動化系統(tǒng)軟件模塊和外部接入信號的告警。我們在數(shù)據(jù)采集及存儲模塊中設(shè)定,如果日志中出現(xiàn)告警關(guān)鍵字,則根據(jù)記錄的相關(guān)信息,以郵件的形式發(fā)送給維護人員。集中監(jiān)控系統(tǒng)本機聲音告警可以通過python語言調(diào)用語音包實現(xiàn),而郵件推送告警則可利用 python 標準庫中的smtplib 模塊發(fā)送郵件。
3 結(jié)束語
本文從空管終端運行現(xiàn)場實際需求出發(fā),提出一種基于開源監(jiān)控軟件Zabbix的空管自動化集中監(jiān)控系統(tǒng)。系統(tǒng)可以在不占用自動化系統(tǒng)節(jié)點的情況下,將自動化系統(tǒng)的監(jiān)控延伸到各個崗位上,為空管技術(shù)保障提供了雙重保障。
參考文獻:
[1]周萌. CentOS 下ZABBIX 的配置與使用[J]. 北京信息科技大學學報(自然科學版). 2015,(01).
[2] 姚仁捷. Zabbix 監(jiān)控系統(tǒng)深度實踐[M]. 北京:電子工業(yè)出版社,2014.
[3] Miguel Grinberg. Flask Web 開發(fā)[M]. 北京:人民郵電出版社,2014.
[4] 郭曉慧,李潤知,張 茜,等. 基于Zabbix 的分布式服務(wù)器監(jiān)控應(yīng)用研究[J]. 通信學報,2013,34:94-98.
[5]THLAES SHANGHAI TMA SYSTEM/SEGMENT SPECIFICATIONS