孔祥文 沈辰楠 張重陽 任仕輝
(中國市政工程華北設計研究總院有限公司,天津 300074)
隨著企業(yè)信息化程度的不斷提高,服務器硬件設備、存儲設備、應用系統(tǒng)、中間件、數據庫等數量呈逐年遞增趨勢,對集中式服務器端/群等的提出了更多的考驗。動態(tài)了解企業(yè)信息化需求,合理分配網絡資源;保障信息系統(tǒng)的高效性、穩(wěn)定性、可靠性;及時發(fā)現網絡中潛在的各種風險并采取有效措施,都對企業(yè)日常網絡運維以及系統(tǒng)監(jiān)控工作提出了更高的要求。網絡故障的預警機制不夠完善,運維工程師的大部分時間和精力都花在處理簡單且重復的問題,而且有可能出現難以預見的連鎖反應,這種解決方式無法滿足對網絡故障預警機制的靈活性和可靠性的要求。維護IT基礎設計的穩(wěn)定是企業(yè)發(fā)展的基礎,也是開展業(yè)務的必要條件。通過建立監(jiān)控解決方案,構建了一套穩(wěn)定、實時的智能化監(jiān)控平臺不僅能夠規(guī)范化運維管理流程,有效提升運維工作的效率和服務質量,實時采集硬件、操作系統(tǒng)、服務進程網絡設備等各類被監(jiān)控對象的指標數據,從多角度掌握網絡及信息系統(tǒng)運行狀況,將有限的管理人員從繁雜的運維工作中解放出來,同時可以通過對監(jiān)控數據性能圖表的智能分析,為服務器系統(tǒng)重構和完善提供重要參考,對企業(yè)的標準化、平臺化與智能化推進具有重要意義。
主服務器Server底層運行的環(huán)境為Linux+PHP+MySQL,軟件環(huán)境以CentOS7(64位)操作系統(tǒng)、httpd、PHP和MariaDB為基礎。集成安裝官方RPM包,在此基礎之上導入源碼,安裝數據庫并修改配置文件,編譯生成監(jiān)控平臺管理界面。對主服務器及客戶服務器分別安裝Agent插件,網絡監(jiān)控平臺工作流程在此基礎上進行,Agent將獲取到的監(jiān)控網絡設備的數據,實時/非實時地通過主動推送或者被動響應的模式傳輸給主服務器,將網絡參數以圖表形式進行數據可視化展現,通過監(jiān)控平臺來實現告警的發(fā)送和分析,并具備一定的可擴展能力[1]。監(jiān)控平臺數據處理流程圖1所示。
圖1 監(jiān)控平臺數據處理流程Fig.1 Data processing flow of monitoring platform
Web服務器監(jiān)控對狀態(tài)碼、返回字符串等特定的數據進行比較和監(jiān)控,從而判斷Web服務的高性能和可用性[2]。
2.1.1 基于Web性能的監(jiān)控
HTTP狀態(tài)碼、響應時間和頁面加載速度是直觀反映Web服務的可用性和性能的指標。Web性能監(jiān)控通過幾個環(huán)節(jié)進行設置:(1)通過監(jiān)控平臺設置configure→Hosts→Web→Create Web scenario,建立可視化界面監(jiān)控模板;(2)在Web監(jiān)控中對登錄用戶的賬號和密碼設置變量;(3)定義URL全路徑和登錄回顯參數等模擬Web登錄行為的參數。在監(jiān)控系統(tǒng)的可視化界面可以實時查看服務的運行狀態(tài)。配置觸發(fā)器當頁面加載速度為零或者響應時間大于1000毫秒,并且持續(xù)時間大于5秒,或者HTTP狀態(tài)碼不是200時,監(jiān)控平臺提示服務運行異常的告警數據。
2.1.2 基于Web進程的監(jiān)控
HTTP服務的可用性,是實時判斷HTTP進程運行狀態(tài)的指標,通過幾點設置實現對其監(jiān)控:(1)net.tcp.listen[port]用于監(jiān)控服務器port是否處于開啟狀態(tài)。返回值1:開啟;返回值0:未開啟。(2)service.info[service,]用于監(jiān)控與Web服務相關聯的關鍵服務的進程狀態(tài)。返回值0:服務進程運行正常;返回值1:服務進程暫停;返回值6:服務進程停止;返回值255:服務進程不存在。
2.1.3 基于SNMP協(xié)議對網絡設備的監(jiān)控
針對網絡的核心傳輸中不能或者不方便安裝Agent插件的設備,包括打印機、交換機、路由器、UPS等網絡設備,需要采用SNMP協(xié)議進行數據信息的采集。通過命令行或者Web界面配置被監(jiān)控端網絡設備的SNMP協(xié)議支持,使用snmpwalk獲取SNMP數據。
2.2.1 服務器監(jiān)控
(1)CPU負載監(jiān)控如圖2所示。(2)網卡流量如圖3所示。
圖2 CPU負載監(jiān)控Fig.2 CPU load monitoring
圖3 網卡流量Fig.3 Network card traffic
2.2.2 網絡拓撲圖
監(jiān)控平臺拓撲圖用來直觀地圖形化地顯示設備的整體情況,并可以通過標記顯示不同的故障事件。監(jiān)控平臺如圖4所示。
圖4 監(jiān)控平臺拓撲圖Fig.4 Monitoring platform topology
監(jiān)控系統(tǒng)根據實際應用的需求,實時或非實時地進行數據采集和展示,通過第三方告警介質可編程接口實現多種方式可定制化的告警模塊[3]。
通過關聯SMTP對報警郵件進行實時/非實時推送。郵件推送通過幾個步驟進行配置:(1)在/etc/zabbix/zabbix_server.conf配置文件中的SMTP地址、登錄用戶、授權碼等信息;(2)在/etc/zabbix/alertscripts/目錄下創(chuàng)建郵件Shell腳本程序zabbix_sendmail.py;(3)在監(jiān)控平臺報警媒介中配置自定義Shell腳本程序,并進行觸發(fā)及告警配置。
通過企業(yè)微信提供的接口調用相關的消息發(fā)送接口,在移動終端APP對告警消息進行實時/非實時推送。微信推送通過幾步驟進行配置:(1)在/etc/zabbix/alertscripts/wechat目錄下配置Shell腳本程序;(2)在監(jiān)控平臺Web報警界面中調用微信Shell腳本程序[4]。所配置的參數如圖5所示。
圖5 監(jiān)控平臺報警媒介Fig.5 Monitoring platform alarm media
隨著企業(yè)信息化規(guī)模的不斷擴大以及網絡設備及服務的增多,對網絡基礎架構和信息系統(tǒng)的運行進行監(jiān)控和管理的重要性與日俱增。本文通過對監(jiān)控平臺的開發(fā)與部署,以及深層次的應用實踐,實現了網絡應用的性能監(jiān)控和自動告警,為企業(yè)信息系統(tǒng)自動化、智能化提供了有效的支撐手段。在未來的工作中,將致力于針對監(jiān)控平臺分布式架構進行探索,并將跟隨企業(yè)云平臺的建設提供更多的網絡支持。