赵 鹏,卢常威,袁小飞
(中国广电山东网络有限公司运维中心,山东 济南 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秒请求一次模拟终端的请求过程,如果发现问题及时处理。