王 茹
(中國(guó)移動(dòng)通信集團(tuán)海南有限公司,海南 海口 570125)
網(wǎng)管支撐系統(tǒng)監(jiān)控的具體需求,主要包括三大部分:應(yīng)用服務(wù)器的性能、各系統(tǒng)之間的接口連接狀態(tài)以及系統(tǒng)上報(bào)文件的數(shù)據(jù)質(zhì)量。
主要包括硬件和操作系統(tǒng)指標(biāo)、數(shù)據(jù)庫(kù)指標(biāo)和中間件指標(biāo)。
(1)硬件和操作系統(tǒng)指標(biāo)能反映系統(tǒng)當(dāng)前狀態(tài)和硬件資源的使用情況,包括CPU使用率、內(nèi)存使用率、硬盤使用率等;
(2)數(shù)據(jù)庫(kù)指標(biāo)包含了數(shù)據(jù)庫(kù)軟件運(yùn)行的狀態(tài)與性能相關(guān)參數(shù),包括數(shù)據(jù)庫(kù)連接統(tǒng)計(jì)、數(shù)據(jù)庫(kù)表鎖統(tǒng)計(jì)、數(shù)據(jù)庫(kù)表空間等;
(3)網(wǎng)管支撐類系統(tǒng)常用的中間件軟件主要包含Proftpd、WPS、IBMQ和ActiveMQ等。中間件服務(wù)內(nèi)容不同,監(jiān)控的關(guān)注點(diǎn)也不同,例如Proftpd主要關(guān)注用戶連接總數(shù),而WPS主要關(guān)注流程運(yùn)行實(shí)例的狀態(tài)。
各網(wǎng)管系統(tǒng)之間通過(guò)各種類型的接口協(xié)議實(shí)現(xiàn)信息的共享與傳遞,單個(gè)網(wǎng)管系統(tǒng)內(nèi)部各模塊之間也通過(guò)不同的接口互相聯(lián)系,因此及時(shí)的預(yù)防和發(fā)現(xiàn)接口故障是監(jiān)控體系重要的功能之一。監(jiān)控內(nèi)容主要是根據(jù)不同的接口協(xié)議特點(diǎn)進(jìn)行通斷性連接測(cè)試。
各網(wǎng)管支撐系統(tǒng)承擔(dān)著省內(nèi)上報(bào)集團(tuán)的諸多指標(biāo)文件,為確保上傳文件的正確性和可用性,該部分監(jiān)控的內(nèi)容主要是文件上傳的及時(shí)性、文件數(shù)據(jù)的完整性及數(shù)據(jù)的有效性。
系統(tǒng)從下至上分為四個(gè)層次:
(1)被管設(shè)備層:特指監(jiān)控實(shí)體,是各網(wǎng)管系統(tǒng)的服務(wù)器,每臺(tái)服務(wù)器上安裝netsnmp代理,并進(jìn)行相關(guān)配置。
(2)采集層:通過(guò)標(biāo)準(zhǔn)的snmp接口規(guī)范進(jìn)行數(shù)據(jù)采集,提取重點(diǎn)關(guān)注的指標(biāo)參數(shù)。
(3)存儲(chǔ)層:將采集層上傳的數(shù)據(jù)進(jìn)行緩存和持久化存儲(chǔ)。
(4)展示層:提供友好的用戶界面和直觀的圖表,將所管理的網(wǎng)元自動(dòng)發(fā)現(xiàn)分組,配置告警事件、事件告警通知設(shè)置和事件處理設(shè)置等,不同的網(wǎng)元告警事件發(fā)送給不同的系統(tǒng)管理員,便于維護(hù)人員快速準(zhǔn)確定位和處理故障。

圖1 系統(tǒng)框架圖
數(shù)據(jù)采集是監(jiān)控系統(tǒng)的核心功能,如果采用集中化的管理站,當(dāng)管理站出現(xiàn)故障,那么采集服務(wù)將不可用,造成監(jiān)控信息丟失。因此,為了將數(shù)據(jù)采集和存儲(chǔ)兩個(gè)過(guò)程進(jìn)行解耦,便于采集和存儲(chǔ)可擴(kuò)展,系統(tǒng)采用了基于ZooKeeper+ActiveMQ的采集集群設(shè)計(jì)方案,實(shí)現(xiàn)高可用及負(fù)載均衡。
為了保障數(shù)據(jù)庫(kù)請(qǐng)求的連續(xù)性,避免單點(diǎn)故障造成數(shù)據(jù)丟失,系統(tǒng)采用基于Mysql的主主模式+負(fù)載均衡器的failover方式實(shí)現(xiàn)數(shù)據(jù)庫(kù)集群。兩臺(tái)主庫(kù)之間使用負(fù)載均衡器F5連接,F(xiàn)5配置成failover。如果一臺(tái)主庫(kù)down掉,可以在極短的時(shí)間內(nèi)切換到另一臺(tái)主庫(kù)上,盡可能減少主庫(kù)宕機(jī)對(duì)業(yè)務(wù)造成的影響。
為了確保展示層的業(yè)務(wù)連續(xù)性,避免單點(diǎn)故障造成展示頁(yè)面不可用的情況,系統(tǒng)基于負(fù)載均衡器F5的輪詢(RoundRobin)方式分發(fā)頁(yè)面連接請(qǐng)求。RoundRobin是在序列循環(huán)中連接每個(gè)服務(wù)器,當(dāng)其中一臺(tái)服務(wù)器發(fā)生故障時(shí),F(xiàn)5將其從序列循環(huán)隊(duì)列中取出,并在恢復(fù)正常之前不參與下一次輪詢。
3.1.1 系統(tǒng)管理模塊
系統(tǒng)管理模塊用于進(jìn)行用戶管理、角色管理和權(quán)限管理,以及系統(tǒng)本身的日志管理等。
3.1.2 服務(wù)管理模塊
服務(wù)管理模塊提供在系統(tǒng)前臺(tái)進(jìn)行服務(wù)、接口注冊(cè)的功能,對(duì)已注冊(cè)的服務(wù)和接口提供目錄功能進(jìn)行查詢和編輯。
3.1.3 服務(wù)測(cè)試模塊
服務(wù)測(cè)試模塊提供各網(wǎng)管支撐系統(tǒng)之間的接口的監(jiān)控以及各系統(tǒng)對(duì)外提供的服務(wù)可用狀態(tài)的測(cè)試功能。監(jiān)控內(nèi)容如果出現(xiàn)異常,會(huì)觸發(fā)生成告警。
3.1.4 數(shù)據(jù)質(zhì)量監(jiān)控模塊
數(shù)據(jù)質(zhì)量監(jiān)控模塊提供業(yè)務(wù)文件的數(shù)據(jù)質(zhì)量監(jiān)控功能,包括數(shù)據(jù)完整性及數(shù)據(jù)有效性監(jiān)測(cè)。監(jiān)控內(nèi)容如果出現(xiàn)異常,會(huì)觸發(fā)生成告警。
3.1.5 服務(wù)監(jiān)控模塊
服務(wù)監(jiān)控模塊提供告警查詢和告警處理、轉(zhuǎn)發(fā)、配置及監(jiān)測(cè)任務(wù)管理等功能。監(jiān)控內(nèi)容如果出現(xiàn)告警,系統(tǒng)會(huì)根據(jù)告警通知方式(郵件、短信)給告警系統(tǒng)的維護(hù)人員自動(dòng)發(fā)送告警信息。
3.2.1 服務(wù)器性能數(shù)據(jù)采集設(shè)計(jì)與實(shí)現(xiàn)
服務(wù)器性能數(shù)據(jù)采集由部署在各服務(wù)器上的netsnmp代理通過(guò)設(shè)定定時(shí)器,周期性獲取服務(wù)器的相關(guān)信息,滿足告警條件則觸發(fā)生成SNMP告警包上報(bào)。
性能數(shù)據(jù)采集具體實(shí)現(xiàn)流程如下:
(1)在snmp.conf中配置監(jiān)控對(duì)象。
(2)通過(guò)shell命令獲取各個(gè)監(jiān)控對(duì)象的數(shù)據(jù)。
(3)被監(jiān)控參數(shù)滿足告警條件,通過(guò)netsnmp的trap功能觸發(fā)告警上報(bào)。
3.2.2 接口連接狀態(tài)信息采集設(shè)計(jì)與實(shí)現(xiàn)
本系統(tǒng)對(duì)接口連接狀態(tài)的采集,通過(guò)設(shè)置調(diào)用頻率閾值,模擬客戶端調(diào)用服務(wù)端服務(wù),主動(dòng)發(fā)現(xiàn)接口故障。
接口連接狀態(tài)具體實(shí)現(xiàn)流程如下:
(1)各接口進(jìn)行服務(wù)注冊(cè)。
(2)采集程序周期性讀取接口注冊(cè)列表。
(3)根據(jù)接口注冊(cè)的服務(wù)類型,采集程序模擬客戶端,調(diào)用服務(wù)端的服務(wù)。
(4)采集程序解析返回的報(bào)文。
(5)判斷接口服務(wù)是否正常,不正常則生成XML格式的告警報(bào)文,上傳到ActiveMQ。
3.2.3 數(shù)據(jù)質(zhì)量核查結(jié)果采集設(shè)計(jì)與實(shí)現(xiàn)
本系統(tǒng)對(duì)數(shù)據(jù)質(zhì)量核查結(jié)果的采集,通過(guò)設(shè)置調(diào)用核查閾值,核查目錄文件是否正常生成、格式是否正常等。
數(shù)據(jù)質(zhì)量核查結(jié)果采集具體實(shí)現(xiàn)流程如下:
(1)各文件目錄注冊(cè)監(jiān)測(cè)服務(wù)。
(2)采集程序周期性讀取文件目錄注冊(cè)列表。
(3)運(yùn)行文件目錄監(jiān)控腳本。
(4)判斷文件是否按時(shí)上傳,按時(shí)上傳則進(jìn)行文件格式檢測(cè),否則生成告警,生成XML格式的告警報(bào)文,上傳到ActiveMQ。
(5)判斷文件的格式是否正常,不正常則生成XML格式的告警報(bào)文,上傳到ActiveMQ。
目前,該系統(tǒng)已投入生產(chǎn),接入電子運(yùn)維系統(tǒng)、故障管理系統(tǒng)、統(tǒng)一采集平臺(tái)、掌上運(yùn)維、ESB系統(tǒng)等省級(jí)重要網(wǎng)管系統(tǒng)進(jìn)行監(jiān)控,并逐漸將其他網(wǎng)管支撐平臺(tái)納入監(jiān)控。
(1)64臺(tái)aix系統(tǒng)及l(fā)inux系統(tǒng)服務(wù)器。
(2)10臺(tái)windows系統(tǒng)服務(wù)器。
(3)300+接口服務(wù)。
(4)60+文件目錄。
本項(xiàng)目實(shí)施以來(lái),已取得了很好的應(yīng)用效果,具體體現(xiàn)在:
4.2.1 有效發(fā)現(xiàn)故障隱患,縮短故障歷時(shí)
本系統(tǒng)自主監(jiān)控各個(gè)服務(wù)器的硬件、進(jìn)程及軟件,有效發(fā)現(xiàn)故障隱患,大大降低了問(wèn)題擴(kuò)大的幾率,縮短故障歷時(shí)。
4.2.2 先于用戶發(fā)現(xiàn)網(wǎng)管應(yīng)用中的問(wèn)題
通過(guò)接口實(shí)時(shí)監(jiān)控和接口能力監(jiān)控等功能,先于用戶發(fā)現(xiàn)網(wǎng)管應(yīng)用問(wèn)題,并針對(duì)問(wèn)題查找原因,制定優(yōu)化處理措施,使網(wǎng)管應(yīng)用更順暢。
以掌上運(yùn)維系統(tǒng)為例,主動(dòng)實(shí)時(shí)監(jiān)控系統(tǒng)的無(wú)效連接數(shù),當(dāng)無(wú)效連接數(shù)達(dá)到閾值(50)時(shí),自動(dòng)重新啟動(dòng)鑒權(quán)程序,先于用戶解決問(wèn)題,提升用戶感知。
4.2.3 提高維護(hù)效率,節(jié)約人力成本
在實(shí)施本項(xiàng)目前,主要依靠人工檢查系統(tǒng)運(yùn)行情況,每個(gè)系統(tǒng)平均花費(fèi)時(shí)長(zhǎng)為1小時(shí)/天。實(shí)施本項(xiàng)目后,系統(tǒng)檢查和接口通斷均能由系統(tǒng)自動(dòng)完成,出現(xiàn)問(wèn)題能以電話和短信的方式通知維護(hù)人員。
系統(tǒng)上傳集團(tuán)的文件數(shù)據(jù)質(zhì)量監(jiān)測(cè)也實(shí)現(xiàn)自動(dòng)化,既節(jié)約了維護(hù)人員成本,又提升了維護(hù)效率,將維護(hù)人員從繁雜的、重復(fù)性的檢查工作中解放出來(lái),重點(diǎn)關(guān)注存在問(wèn)題的分析處理,降低問(wèn)題發(fā)生的幾率。
4.2.4 數(shù)據(jù)異常自動(dòng)檢測(cè)通告,提升數(shù)據(jù)質(zhì)量
經(jīng)統(tǒng)計(jì),2020年下半年,及時(shí)發(fā)現(xiàn)數(shù)據(jù)上傳異常案例約50例,即能避免集團(tuán)通報(bào)省內(nèi)指標(biāo)未及時(shí)上傳,又能大大提升用戶滿意度。
本文從日常實(shí)際運(yùn)維工作需求出發(fā),實(shí)現(xiàn)對(duì)服務(wù)器性能、系統(tǒng)間接口連接狀態(tài)以及各系統(tǒng)上報(bào)文件數(shù)據(jù)質(zhì)量提供全面監(jiān)控服務(wù)。通過(guò)這些監(jiān)控服務(wù),本系統(tǒng)填補(bǔ)網(wǎng)管系統(tǒng)架構(gòu)演進(jìn)引起的自監(jiān)控功能缺失,實(shí)現(xiàn)網(wǎng)管支撐系統(tǒng)自身服務(wù)器監(jiān)控的自動(dòng)化、集中化,幫助用戶解決運(yùn)維困難、效率低下的問(wèn)題。
雖然完成了系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),系統(tǒng)應(yīng)用效果還比較良好,但內(nèi)容上還有一些不足的地方,比如目前提供的監(jiān)控內(nèi)容還比較有限,尚不能完全應(yīng)對(duì)復(fù)雜運(yùn)維狀況,需進(jìn)一步擴(kuò)展監(jiān)控范圍和內(nèi)容。