孔祥文 沈辰楠 張重陽 任仕輝
(中國市政工程華北設計研究總院有限公司,天津 300074)
隨著企業信息化程度的不斷提高,服務器硬件設備、存儲設備、應用系統、中間件、數據庫等數量呈逐年遞增趨勢,對集中式服務器端/群等的提出了更多的考驗。動態了解企業信息化需求,合理分配網絡資源;保障信息系統的高效性、穩定性、可靠性;及時發現網絡中潛在的各種風險并采取有效措施,都對企業日常網絡運維以及系統監控工作提出了更高的要求。網絡故障的預警機制不夠完善,運維工程師的大部分時間和精力都花在處理簡單且重復的問題,而且有可能出現難以預見的連鎖反應,這種解決方式無法滿足對網絡故障預警機制的靈活性和可靠性的要求。維護IT基礎設計的穩定是企業發展的基礎,也是開展業務的必要條件。通過建立監控解決方案,構建了一套穩定、實時的智能化監控平臺不僅能夠規范化運維管理流程,有效提升運維工作的效率和服務質量,實時采集硬件、操作系統、服務進程網絡設備等各類被監控對象的指標數據,從多角度掌握網絡及信息系統運行狀況,將有限的管理人員從繁雜的運維工作中解放出來,同時可以通過對監控數據性能圖表的智能分析,為服務器系統重構和完善提供重要參考,對企業的標準化、平臺化與智能化推進具有重要意義。
主服務器Server底層運行的環境為Linux+PHP+MySQL,軟件環境以CentOS7(64位)操作系統、httpd、PHP和MariaDB為基礎。集成安裝官方RPM包,在此基礎之上導入源碼,安裝數據庫并修改配置文件,編譯生成監控平臺管理界面。對主服務器及客戶服務器分別安裝Agent插件,網絡監控平臺工作流程在此基礎上進行,Agent將獲取到的監控網絡設備的數據,實時/非實時地通過主動推送或者被動響應的模式傳輸給主服務器,將網絡參數以圖表形式進行數據可視化展現,通過監控平臺來實現告警的發送和分析,并具備一定的可擴展能力[1]。監控平臺數據處理流程圖1所示。

圖1 監控平臺數據處理流程Fig.1 Data processing flow of monitoring platform
Web服務器監控對狀態碼、返回字符串等特定的數據進行比較和監控,從而判斷Web服務的高性能和可用性[2]。
2.1.1 基于Web性能的監控
HTTP狀態碼、響應時間和頁面加載速度是直觀反映Web服務的可用性和性能的指標。Web性能監控通過幾個環節進行設置:(1)通過監控平臺設置configure→Hosts→Web→Create Web scenario,建立可視化界面監控模板;(2)在Web監控中對登錄用戶的賬號和密碼設置變量;(3)定義URL全路徑和登錄回顯參數等模擬Web登錄行為的參數。在監控系統的可視化界面可以實時查看服務的運行狀態。配置觸發器當頁面加載速度為零或者響應時間大于1000毫秒,并且持續時間大于5秒,或者HTTP狀態碼不是200時,監控平臺提示服務運行異常的告警數據。
2.1.2 基于Web進程的監控
HTTP服務的可用性,是實時判斷HTTP進程運行狀態的指標,通過幾點設置實現對其監控:(1)net.tcp.listen[port]用于監控服務器port是否處于開啟狀態。返回值1:開啟;返回值0:未開啟。(2)service.info[service,]用于監控與Web服務相關聯的關鍵服務的進程狀態。返回值0:服務進程運行正常;返回值1:服務進程暫停;返回值6:服務進程停止;返回值255:服務進程不存在。
2.1.3 基于SNMP協議對網絡設備的監控
針對網絡的核心傳輸中不能或者不方便安裝Agent插件的設備,包括打印機、交換機、路由器、UPS等網絡設備,需要采用SNMP協議進行數據信息的采集。通過命令行或者Web界面配置被監控端網絡設備的SNMP協議支持,使用snmpwalk獲取SNMP數據。
2.2.1 服務器監控
(1)CPU負載監控如圖2所示。(2)網卡流量如圖3所示。

圖2 CPU負載監控Fig.2 CPU load monitoring

圖3 網卡流量Fig.3 Network card traffic
2.2.2 網絡拓撲圖
監控平臺拓撲圖用來直觀地圖形化地顯示設備的整體情況,并可以通過標記顯示不同的故障事件。監控平臺如圖4所示。

圖4 監控平臺拓撲圖Fig.4 Monitoring platform topology
監控系統根據實際應用的需求,實時或非實時地進行數據采集和展示,通過第三方告警介質可編程接口實現多種方式可定制化的告警模塊[3]。
通過關聯SMTP對報警郵件進行實時/非實時推送。郵件推送通過幾個步驟進行配置:(1)在/etc/zabbix/zabbix_server.conf配置文件中的SMTP地址、登錄用戶、授權碼等信息;(2)在/etc/zabbix/alertscripts/目錄下創建郵件Shell腳本程序zabbix_sendmail.py;(3)在監控平臺報警媒介中配置自定義Shell腳本程序,并進行觸發及告警配置。
通過企業微信提供的接口調用相關的消息發送接口,在移動終端APP對告警消息進行實時/非實時推送。微信推送通過幾步驟進行配置:(1)在/etc/zabbix/alertscripts/wechat目錄下配置Shell腳本程序;(2)在監控平臺Web報警界面中調用微信Shell腳本程序[4]。所配置的參數如圖5所示。

圖5 監控平臺報警媒介Fig.5 Monitoring platform alarm media
隨著企業信息化規模的不斷擴大以及網絡設備及服務的增多,對網絡基礎架構和信息系統的運行進行監控和管理的重要性與日俱增。本文通過對監控平臺的開發與部署,以及深層次的應用實踐,實現了網絡應用的性能監控和自動告警,為企業信息系統自動化、智能化提供了有效的支撐手段。在未來的工作中,將致力于針對監控平臺分布式架構進行探索,并將跟隨企業云平臺的建設提供更多的網絡支持。