作為目前山東有線高清機(jī)頂盒的重要擴(kuò)展功能,DVB的HTML5中間件在雙向業(yè)務(wù)中占據(jù)了非常重要的地位。我公司的智慧系列業(yè)務(wù)中,有大量項目運行在H5中間件之上。
對于面向于全體雙向網(wǎng)用戶的中間件功能,屬于全省統(tǒng)一開發(fā)的平臺,且其上僅僅包含頁面顯示和用戶數(shù)據(jù)輸入功能。其數(shù)據(jù)的分析處理和負(fù)載均衡由后臺服務(wù)器進(jìn)行,則用戶終端出現(xiàn)平臺錯誤的概率極小,況且一旦出現(xiàn)功能性故障,技術(shù)人員可以在后臺調(diào)整,對用戶來說是無感知的。
但濟(jì)寧的智慧系列業(yè)務(wù),不同項目面向不同的特定用戶范圍,進(jìn)而形成了不同的運維方法。以某個項目為例,每個月都會有大型會議活動,在此期間約有1000個會議室開會,網(wǎng)絡(luò)運維和平臺維護(hù)工作中涉及到4000個onu、機(jī)頂盒、攝像頭等設(shè)備,以及對應(yīng)的供電網(wǎng)絡(luò)和光纖網(wǎng)絡(luò)。
大多數(shù)主持會議的老干部年齡偏大,當(dāng)平臺出現(xiàn)故障時,由于用戶年齡、文化程度、身體素質(zhì)的不同,沒辦法在電話或群聊中準(zhǔn)確描述故障現(xiàn)象,給一線人員帶來了相當(dāng)巨大的工作量。
經(jīng)過細(xì)致的研究以及部分鄉(xiāng)鎮(zhèn)的試運行,我們設(shè)計了三種工具方法,經(jīng)長時間的統(tǒng)計,將我公司相應(yīng)平臺的一線人員維護(hù)量降低了五層。
圖1 http延時及在線率
我們利用smoke ping、ping pong 等開源代碼,針對不同的項目建立服務(wù)器的服務(wù)實時在線率監(jiān)測,如圖1所示。實時監(jiān)測相關(guān)核心服務(wù)器,可以在重要會議期間或者壓力測試期間,安排專門的同事同時監(jiān)控大量服務(wù)器的web、ssh、ajax、mysql等業(yè)務(wù)的響應(yīng)情況,即使發(fā)現(xiàn)問題進(jìn)行排除。
另外,由于7x24小時的監(jiān)控過于浪費人力,我們同時利用rratool工具繪制各服務(wù)器的流量、cpu、進(jìn)程數(shù)、存儲空間等數(shù)據(jù),方便隨時調(diào)用舊數(shù)據(jù)。
RRA每天、每周、每月都分別提供精確的數(shù)據(jù),但幾天前、幾周前等同類數(shù)據(jù)的舊數(shù)據(jù)將會覆蓋,只保留平均值。為了保證數(shù)據(jù)的安全,防止數(shù)據(jù)量過大時系統(tǒng)自動覆蓋舊數(shù)據(jù),我們編寫了數(shù)據(jù)備份腳本,由服務(wù)器自動定期執(zhí)行。
圖2 服務(wù)器端口流量
在濟(jì)寧智慧平臺的運維中,從機(jī)房到站點方向,我們著重關(guān)注站點設(shè)備的在線率。中心機(jī)房中,我們用兩種方法監(jiān)測。
一是選用相應(yīng)的免費專業(yè)軟件7*24小時監(jiān)測,每小時刷新一遍。以此保證站點設(shè)備的在線情況,一旦遇到個別設(shè)備顯示深色,則安排相應(yīng)的維修人員去現(xiàn)場排除故障。如果遇到某個區(qū)域大面積紅色,則鄉(xiāng)鎮(zhèn)匯聚設(shè)備或干纜異常的可能性較大,如圖3所示。
這種方式可以在大型會議等活動前提前排除線路和設(shè)備故障,避免了開始會議后才由各個鄉(xiāng)鎮(zhèn)大量上報故障,此時再去維修可能已經(jīng)來不及了。
二是使用BAT腳本實時測試。@echo off (for/f %%i in (qian.txt)do for /f "tokens=3 delims=," %%j in ('ping%%i^|findstr /i "平均"')do echo %%i %%j) >> wei.txt
上述提到的統(tǒng)一監(jiān)控平臺可以訪問整個平臺的所有設(shè)備,一旦被攻擊將會危機(jī)整個平臺,因此為了保證平臺的安全,現(xiàn)場只能訪問有限的設(shè)備段。
維修人員處理好故障后,沒辦法登陸監(jiān)控平臺查詢各個設(shè)備和服務(wù)的恢復(fù)情況,只能挨個設(shè)備去ping。因此一個實用的小腳本,可以大量減少工作人員的工作量,加快確認(rèn)設(shè)備恢復(fù)情況。
我們自主開發(fā)了中間件HTML5程序,將其嵌入已有平臺中。
平臺上的排障代碼執(zhí)行心跳檢測,每秒執(zhí)行一次setTimeout ( newlist,1000),每秒均分析一次此機(jī)頂盒到平臺對應(yīng)服務(wù)接口之間的狀態(tài),例如我們測試某村用戶信息同步功能,就使用代碼var mydate
同時在電視機(jī)屏幕上將機(jī)頂盒目前的運行狀態(tài)及平臺故障,也就是上述代碼的各種報錯信息用簡易文字進(jìn)行說明并實時顯示,則現(xiàn)場用戶在使用中遇到簡單故障,可以直接按照屏幕上的提示操作;遇到復(fù)雜故障,屏幕會提示故障關(guān)鍵信息,方便用戶電話中將故障情況報告給運維人員。
圖3 某縣站點設(shè)備在線情況