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