趙 鵬,盧常威,袁小飛
(中國廣電山東網(wǎng)絡(luò)有限公司運維中心,山東 濟南 250062)
2017年,中國廣電山東網(wǎng)絡(luò)有限公司建設(shè)了基于HLS協(xié)議的全業(yè)務(wù)云平臺互動電視系統(tǒng),逐步將原有的NGOD架構(gòu)的互動點播業(yè)務(wù)切換到了全業(yè)務(wù)云平臺上,這些業(yè)務(wù)包括時移、回看、SP業(yè)務(wù)(如華數(shù)高清、文廣高清、電視院線等業(yè)務(wù))等,業(yè)務(wù)多、系統(tǒng)復(fù)雜,維護起來比較繁瑣。筆者多年來一直從事互動電視的建設(shè)、運維工作,下面介紹常見的點播故障及排查方法。
為了更好的分析問題排查故障,在報故障時制定了上報故障規(guī)范,并提前通知分公司。規(guī)范如下:一是明確什么業(yè)務(wù)出問題,并提供出故障的機頂盒的智能卡號,時間點,以及錄像或照片;二是根據(jù)分析故障需求,可提供網(wǎng)絡(luò)抓包以進一步分析;三是從地市分公司省公司的匯聚交換機上接出網(wǎng)線連接到STB上,通過繞開地市城域網(wǎng)的方式,點播是否能夠復(fù)現(xiàn)故障,能夠復(fù)現(xiàn)就是省公司或者機頂盒的問題。如果不能夠復(fù)現(xiàn)問題則是分公司本地網(wǎng)絡(luò)的問題。
運維人員需掌握的知識及會使用點播模擬器:一是熟悉互動電視系統(tǒng)的工作原理;二是能夠熟練使用Wireshark工具分析TCP, UDP, HLS協(xié)議;三是掌握點播模擬器的使用,該工具是根據(jù)機頂盒點播的流程開發(fā)的,工具可調(diào)用VLC直接播放點播故障視頻,以查看播放效果,或者將問題節(jié)目下載下來,使用碼流分析儀進行分析。
全省大面積用戶報故障的原因比較好排查,根據(jù)現(xiàn)象逐個模塊排查,以確定原因[1]。以下主要探討的是個別用戶上報的SP、時移回看業(yè)務(wù)黑屏、馬賽克故障排查。
(1)個別用戶點播黑屏故障排查。根據(jù)用戶提供的智能卡號從ES(授權(quán)服務(wù)器)中查看是否有該SP業(yè)務(wù)的套餐,如果沒有套餐,需要重新開套餐。如果有套餐,根據(jù)節(jié)目名稱從CMS(節(jié)目管理系統(tǒng))查詢節(jié)目是否成功注入CDN中,如果沒有注入成功,需要查看注入模塊的日志,進行分析原因, 并重新注入節(jié)目。如果都不是上面的原因,可以通過抓機頂盒的網(wǎng)絡(luò)包,用Wireshark分析報文查找原因,以及開啟機頂盒的日志,抓取日志,并協(xié)調(diào)機頂盒廠家排查。
(2)個別用戶點播馬賽克故障排查。對于馬賽克問題,首先查看是否同一位置馬賽克,如果是同一位置,說明是節(jié)目源有問題,聯(lián)系SP廠家重新注入該節(jié)目。如果是不同位置馬賽克,需要查看推流服務(wù)器的CPU、內(nèi)存、磁盤I/O、推流帶寬是否存在問題,并查看服務(wù)器日志是否有報錯[2]。如果都正常,則需要分公司排查當(dāng)?shù)鼐W(wǎng)絡(luò)。如果查著網(wǎng)絡(luò)正常,需要服務(wù)端和STB端,同時抓網(wǎng)絡(luò)包,進行對比分析,查看到底是網(wǎng)絡(luò)的問題還是服務(wù)器的問題, 還可以使用點播模擬器從PC機端點播查看是否存在馬賽克。如果都不是上述原因,需要機頂盒開啟日志,抓取到日志后協(xié)調(diào)STB廠家分析。
(1)個別用戶點播回看或者時移黑屏。處理方式如上SP業(yè)務(wù)點播黑屏情況;時移黑屏,還有一種情況是時移節(jié)目的頻道信息與實際的頻道信息不一致導(dǎo)致的,需要根據(jù)分公司新提供的頻道信息、頻點、TSID、ServiceID,在系統(tǒng)內(nèi)進行更正。
(2)個別用戶點播或者時移馬賽克。如果馬賽克的位置相同,則排查轉(zhuǎn)碼器出來的節(jié)目源是否馬賽克,如果有馬賽克,需要排查轉(zhuǎn)碼器的輸入節(jié)目源是否正常,與值班同事咨詢直播是否存在馬賽克問題,若無,則需轉(zhuǎn)碼廠家進一步解決。如果馬賽克位置不固定,則與上面SP業(yè)務(wù)點播馬賽克排查方法一致。
獲取IP地址困難,通過STB和DHCP服務(wù)端, 同時抓包分析問題,分析是DHCP服務(wù)端的問題還是STB終端的問題,以及是否是網(wǎng)絡(luò)設(shè)備的問題。
在排查點播故障中使用Wireshark是必須掌握的技能[3],以下是使用Wireshark分析排查直播節(jié)目源和HLS點播故障問題原因。
使用筆記本電腦用網(wǎng)線直接接到交換機上, 使用Wireshark進行抓包,或者登錄錄制節(jié)目服務(wù)器使用命令tcpdump進行抓包。使用wirshark打開獲取到的抓包文件,右鍵→Follow UDP stream→ 使用raw模式Save as成ts流文件,并使用碼流分析儀分析,能夠根據(jù)碼流分析儀的結(jié)果判斷問題。比如:丟包、缺少音頻信息、靜幀等問題。如果抓取到的包比較大,Wireshark分析非常慢,可以采用Windows安裝的Wireshark包里自帶的editcap進行切割成小文件進行分析。
首先從地市分公司的匯聚交換機上,拉出網(wǎng)線,接到STB上,查看是否能夠復(fù)現(xiàn)問題。這樣做的好處是撇開地市分公司的網(wǎng)絡(luò),便于排查問題。如果點播正常,需要排查地市分公司的網(wǎng)絡(luò)情況。如果能夠復(fù)現(xiàn),就需要排查省公司的系統(tǒng),協(xié)調(diào)分公司抓取網(wǎng)絡(luò)包。使用做好端口鏡像的交換機,筆記本電腦抓機頂盒的網(wǎng)絡(luò)包。分析過程如下:
①使用Wireshark打開抓取到的包。
②找到相應(yīng)的m3u8文件所在的包,然后右鍵→follow http stream,查看m3u8問題的問題。M3u8可能存在不標(biāo)準(zhǔn)、時間戳添加不正確等問題。
③若m3u8文件正常,則需要查看ts包的問題。
④從抓包文件中提取ts包文件:File→Export→Objects→HTTP→Save All。
⑤然后采用python腳本,將每個ts包重命名, 并生成m3u8文件,采用VLC進行播放查看效果。若存在卡頓和馬賽克問題,需要排查節(jié)目源。
⑥懷疑某個包有問題時,可以用碼流分析儀器直接分析。
⑦在排查網(wǎng)絡(luò)問題時,首先將http協(xié)議response中的Time since request作為一列http. time,這個參數(shù)含義時:下載m3u8文件或者下載ts 片的時間。然后將這個時間按大到小排序。
⑧在系統(tǒng)中切片的時長是6 s,如果有多個片時間大于6 s,說明機頂盒下載ts片比較慢,可能的原因:網(wǎng)絡(luò)的問題或者推流服務(wù)器性能的問題。需要逐級排查網(wǎng)絡(luò)或詳細(xì)查看推流服務(wù)器CPU、內(nèi)存、磁盤I/O等。
排查問題需要注重前端服務(wù)器和終端機頂盒的結(jié)合分析,注重查看日志,服務(wù)運行情況,對于比較難查的問題,需要通過抓網(wǎng)絡(luò)包和使用PC模擬器測試解決問題。往往分公司上報故障時才知曉系統(tǒng)出問題,迫切需要防患于未然,進行智能化運維,后期的運維思路如下:一是出現(xiàn)問題時通過短信、郵件、微信報警系統(tǒng)及時報警出來;二是系統(tǒng)在出現(xiàn)問題前,往往日志中會有報警信息,所以有必要搭建日志分析系統(tǒng),將所有設(shè)備的日志集中到一起,通過數(shù)據(jù)挖掘出報警信息,及早發(fā)現(xiàn)問題, 解決問題;三是開發(fā)互動電視的探針系統(tǒng),每隔10秒請求一次模擬終端的請求過程,如果發(fā)現(xiàn)問題及時處理。