世界杯直播背后的实时日志分析

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 以“世界杯”直播为背景,向大家演示如何通过CDN的播放器、推流等日志实时分析,监控线上业务的质量,了解用户的分布与习惯,构建数字化的运维与运营分析平台。

2018年世界杯网络直播,网络同时在线观看人数超过千万,为了保证直播体验,CDN在其中起到了极其重要的作用,为了保障CDN的播放质量,需要对CDN的各类日志进行实时收集、清洗和分析。我们以类似“世界杯”直播为背景,向大家演示如何通过CDN的播放器、推流等日志实时分析,监控线上业务的质量,了解用户的分布与习惯,构建数字化的运维与运营分析平台。

CDN日志系统通用架构

首先,介绍一下世界杯直播,简化的数据流向:

  • 直播流推送至视频直播中心
  • 直播中心处理之后,视频数据推送到CDN节点
  • 用户通过app或网页播放刚上传至CDN节点的内容

image.png | left | 747x418

CDN实时日志系统,通常有以下几部分构成:

  • 数据实时采集 : 在直播推流、播放期间,都会产生大量日志,需要在秒级延时内,实时采集这些日志到日志中心。
  • 数据清洗:日志采集后,对数据进行清洗,以满足不同场景的处理需求(如,对不同域名日志的定制化分析)。
  • 数据处理和存储 : 对于不同的应用场景,数据的处理和存储方式也不尽相同 :

    • 实时处理 : 在秒级别对海量数据进行实多维度聚合统计分析
    • 表格存储 : 实时统计后的各类监控指标
    • 对象存储 : 日志打包压缩,供用户离线下载
    • 数据仓库 : 数据离线分析、用户行为分析、物业报表等场景

日志系统涉及的平台

image.png | left | 747x420

从整个架构上来说,整个CDN日志分析涉及的环节多,对服务质量也有严苛的要求,依赖的各系统也足够庞大,技术挑战大:

  • 日志采集系统 : 实时从全球多个区域、数万节点采集日志,数据产生后秒级延时内采集至日志中心,通常延时不能超过1分钟,否则日志的实时价值大打折扣。每天都有千亿、万亿的日志需要7*24小时不间断采集,同时也要考虑各类流量高峰等对系统产生的巨大冲击。
  • 流计算系统 : 为了满足报警等实时性要求高的场景,流计算系统在毫秒~秒级时间内,就需要对海量的日志进行实时、多维度的分析,同时对于部分数据,还有大量个性化定制的需求,数据处理组合维度大大增加,计算复杂度也响应增加。
  • 存储平台:为满足不同的应用场景,数据的读取特点也不同,如果保存metric指标的NoSql系统(TableStore),可保证各metric读取延时小于10ms;保存日志供用户下载的对象存储系统(Oss),则提供数据高吞吐下载能力;复杂的分析场景,可由数仓系统来支持。
  • 报警系统:在CDN场景下,对服务的可用性、性能要求苛刻,需要对于各类异常进行实时、准确的报警,这就需要依赖可靠的监控报警系统。

普通CDN用户面临的困境

从上面介绍的整套CDN日志分析流程中,使用依赖多套子系统,任意一个系统要做好都不是一件容易的事情,需要投入大量的时间和资源。而对于用户来说,对于CDN日志也有数据实时、离线的分析的需求,我们先看看普通CDN用户在满足这方面需求上有哪些困境:

image.png | left | 747x418

  • 用户无数据 : CDN的访问日志,在由各大CDN产商上产生,用户不可直接获取。现阶段,绝大部分的CDN产商都只提供离线日志下载,日志数据从产生,到用户可下载,需要几十分钟到数个小时不等。这样大的数据产生延时,大大削减了实时流处理、报警等高实时性要求场景的分析价值。
  • 多种分析需求:为了解决各类定制化的分析需求,通常的做法是搭建和运维开源系统,如,用于做数据通道的kafka、流式分析的storm或flink、做数据分析的spark、hadoop等。
  • 可视化需求: 对于最终的分析结果的展示,依赖数据库(结果集小)、HBase(结果集大)存储结果,再通过对接各可视化工具来完成。
    从上面的介绍来看,对于普通用户,要对CDN日志进行实时、离线分析真不是一件简单的事情,搭建、运维和管理哥依赖系统本身就不是一件容易的事情,为了完成需求,有时还需要编写不少代码,但最终并不一定能得到很好的效果(如数据延时问题不能解决)。那有没有更好的解决办法么?

CDN日志一站式解决方案

阿里云日志服务和CDN,将于9月推出CDN日志实时分析一站式解决方案,CDN日志产生后,在小于60秒的时间内,直接投递至阿里云日志服务,之后,直接使用日志服务提供的实时、交互式分析和报表展示功能,对CDN日志进行实时分析,大大简化整个流程。

image.png | left | 747x417

日志服务简介

在介绍该方案之前,先简单介绍一下日志服务,我们希望日志服务能够让用户远离日志分析中的各类繁杂“琐事”,更加专注于和业务更紧密、更有价值的数据“分析”上。日志服务提供主要3个功能:

  • 实时采集与消费(Log Hub) : 通过ECS、容器、移动端,开源软件,JS等接入实时日志数据(例如Metric、Event、BinLog、TextLog、Click等);提供实时消费接口,与实时计算及服务对接。
  • 投递数仓(Log Shipper):稳定可靠的日志投递。将日志中枢数据投递至存储类服务进行存储。支持压缩、自定义Partition、以及行列等各种存储方式。
  • 查询与实时分析(Search/Analytics): 实时索引、查询分析数据数据。

    • 查询:关键词、模糊、上下文、范围
    • 统计:SQL聚合等丰富查询手段
    • 可视化:Dashboard + 报表功能
    • 对接:Grafana,JDBC/SQL92

image.png | left | 747x420

接下来,我们介绍一下在直播场景下,CDN日志实时投递只日志服务之后,可以做哪些典型的实时分析:

典型场景:直播推流

直播推流数据非常重要,当有了直播推流的日志之后,可掌控推流端各种实时状态:

  • 推流概览 : 实时知道当前的推流数量、各个推流的流量和速度、从各省、运营商维度统计
  • 推流质量:多维度的推流质量统计、重点推流的实时质量监控
  • 错误根源追踪:快速定位错误产生的源头(直播源、服务端、客户端、运营商)

image.png | left | 747x419

下图是直播推流的各项监控统计,从整体的推流质量上来看,99%以上的推流都是正常的,说明推流的质量非常好。

image.png | left | 747x418

下表统计了各类错误的产生原因,可以看到最大的错误来源是客户端主动断开。

image.png | left | 747x297

典型场景:CDN下行

介绍完直播推流端,我们再看看播放端(CDN下行)。CDN下行是用户直接接触,其质量直接决定用户观看体验,在下行日志中,我也可以从多个维度进行分析:

  • 整体质量:

    • 健康度 : 在所有的访问中,有多少请求是成功的
    • Cache命中率 : 命中率越高,用户访问延时越低,体验越好
    • 下载速度 : 这也是关系到播放质量的重要因素
  • 多维度分析:

    • top域名访问次数、流量 : 重点域名的访问质量
    • 地域、运营商统计:各个链路的质量
    • 下载量、速度、延时:多项关键指标
  • 错误诊断:

    • 实时错误QPS、比例 : 整体错误情况
    • 错误Top 域名、URI : 错误是否和自身相关
    • 错误Top 地域、运营商 : 错误是否和外部因素相关
    • 错误客户端分别 : 是否是新发布版本引入的问题

image.png | left | 747x412

image.png | left | 747x418

在下图中,可以看到,绝大部分错误,都是发生在这个客户端版本,就需要怀疑是不是新的版本发布带来的呢?

image.png | left | 747x419

典型场景:用户行为分析

用户的访问行为,最终可体现在日志上,通过日志的分析,了解到用户是如何进行访问的,哪些资源是热门资源,通过用户的来源,更清楚了解用户来源,以后的运营推广也可以更具有针对性,除此之外,对异常IP进行监控,可更早发现异常,如高频访问的IP,是否存在爬取数据的嫌疑。

image.png | left | 747x405

image.png | left | 747x420

Demo演示:

当系统出现报警或有用户投诉的情况下,通用的处理流程往往是相似的:

  • 整体概述:整体访问是否正常?
  • 缩小范围:是局部错误么,是哪个域名,或是哪个区域,再或者只是某个用户?
  • 精准定位:缩小调查范围后,可对局部数据进行同比、环比的对比;观察更详细的日志;多个维度进行Adhoc的query分析。

image.png | left | 747x411

在这个过程中,我们可以发现,整个分析流程,是从上到下、从面到点、交互式的分析,涉及到Drill Down/Roll Up等多方面。因此,灵活和方便是系统必备的两项。在以下的视频中,展示如何在日志服务中,对CDN日志进行交互式的分析。


另外,我们也提供了一个Demo,可以实际体验一下Mock的CDN日志分析: Demo连接
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
10月前
|
存储 缓存 监控
直播系统聊天技术(九):千万级实时直播弹幕的技术实践
疫情期间,线上演唱会是一种很常见的直播娱乐形式,由于线下社交距离的限制,线上形式演唱会比以往更火爆,而对技术的要求也更高。 本文基于网易云信针对TFBOYS某场线上演唱会的技术支持,为你分享千万级在线用户量的直播系统中实时弹幕功能的技术实践,希望能带给你启发。
224 0
|
前端开发 机器人
赛事比分直播系统程序 快至三天搭建上线开发解决方案
采用东莞梦幻网络科技独创研发体育比分直播系统平台,功能齐全,支持各类赛事直播/比分预测/赛程数据/比分数据/赛事情报/赛事社区/微短视频/新闻话题/会员中心等模块功能。采用PHP+JAVA+VUE+Object-c的技术语言开发,PC+H5+Android+IOS多端程序。
赛事比分直播系统程序 快至三天搭建上线开发解决方案
|
机器学习/深度学习 人工智能 文字识别
预约直播 | 主流视觉算法介绍及在PAI上的应用
阿里云AI技术分享会第一期《主流视觉算法介绍及在PAI上的应用》将在2022年06月30日开启直播,精彩不容错过!
预约直播 | 主流视觉算法介绍及在PAI上的应用
|
缓存 5G 视频直播
一对一直播平台源码开发的新思路,从直播开始分析
现如今科技发展飞速,一对一直播平台开发也没有想象中的那么困难,但是如果没有相对的开发经验,开发周期可能会相对较长,也比较容易踩坑。这时候可以选择靠谱的一对一直播平台源码,再进行二次开发,节省时间和成本,还可以保证一对一直播平台源码运行的稳定性。
|
人工智能 达摩院 安全
天气炎热等公交,实时查询动口不动手|语音AI在高德
近日,高德地图发布新版本,由达摩院语音实验室提供全链路技术支持的“小德”智能语音助手实现了业内首家支持实时公交查询和播报的功能。公交车到哪儿了,动动嘴即可实时掌握。目前,该语音助手已实现地点查询、驾车导航、公交地铁查询、实时公交、打车等全出行场景的语音操控。
天气炎热等公交,实时查询动口不动手|语音AI在高德
|
SQL 数据采集 运维
实时数仓入门训练营:实时数仓助力互联网实时决策和精准营销
《实时数仓入门训练营》由阿里云研究员王峰、阿里云高级产品专家刘一鸣等实时计算Flink版和 Hologres 的多名技术/产品一线专家齐上阵,合力搭建此次训练营的课程体系,精心打磨课程内容,直击当下同学们所遇到的痛点问题。由浅入深全方位解析实时数仓的架构、场景、以及实操应用,7 门精品课程帮助你 5 天时间从小白成长为大牛!
实时数仓入门训练营:实时数仓助力互联网实时决策和精准营销
|
人工智能 边缘计算 文字识别
跨境电商直播实时字幕,如何做到 “实时”?
2020 的双 11 狂潮已然提早,年度氪金剁手大会已吹响号角。
跨境电商直播实时字幕,如何做到 “实时”?
|
人工智能 达摩院 自然语言处理
淘宝直播“一猜到底”——移动端实时语音识别技术方案及应用
过去一年淘宝直播快速发展,截止2020年9月底,80个淘宝直播产业基地在全国落地开花,从农村走出10万农民主播,直播真正意义上成为帮助商家和消费者完成交易的利器,同时通过各种互动玩法让直播购物变得有趣好玩。在2020年双11开始阶段,淘宝直播App升级了18年直播答题「点题成金」的玩法,推出「一猜到底」新玩法。如果说传统的直播答题是「选择题」,一猜到底的玩法更像是几万人同时在线的「抢答题」,将答题方式从文字选择升级成语音抢答,给出猜中价格高低提示,让用户增加了更多的参与的乐趣。
26876 0
淘宝直播“一猜到底”——移动端实时语音识别技术方案及应用
|
SQL 存储 NoSQL
王者荣耀背后的实时大数据平台用了什么黑科技?
实时方面主要是补足我们对游戏运营的体验,比如说在游戏里玩完一局或者做完一个任务后,立马就能得到相应的奖励,或者下一步的玩法指引。对用户来说,这种及时的刺激和干预,对于他们玩游戏的体验会更好。其实不单单是游戏,其他方面也是一样的,所以我们在做这套系统的时候,就是离线+实时结合着用,但主要还是往实时方面去靠拢,未来大数据的方向也是,尽量会往实时方向去走。
王者荣耀背后的实时大数据平台用了什么黑科技?
|
数据采集 消息中间件 SQL
单日课程超10万节!VIPKID 如何解决在线教育实时直播互动的难题?
截止目前,仅付费学生规模超 70 万人 ,单日一对一课量超 10 万节,高峰时段课程并发最高达到 3.5 万节。拥有覆盖了全球 35 个国家的 5 条跨海专线,在 16 个国家、55 个城市完成数据中心传输节点布局,能够根据实时动态在一分钟内完成智能切换。
单日课程超10万节!VIPKID 如何解决在线教育实时直播互动的难题?