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