背景
CDN是非常重要的互联网基础设施,用户可以通过CDN,快速的访问网络中各种图片,视频等资源。在访问过程中,CDN会产生大量的日志数据,而随着如今越来越复杂的网络环境变化,和业务的迅速增长,日志数据变得更大量、更多维度。这些数据通常都与用户的下一步业务决策息息相关。
在与CDN用户的沟通中,我们发现通常用户会面临以下困境:
• 用户无数据 : CDN的访问日志,由各大CDN产商上产生,用户不可直接获取。现阶段,绝大部分的CDN产商都只提供离线日志下载,日志数据从产生,到用户可下载,需要几十分钟到数个小时不等。这样大的数据产生延时,大大削减了实时流处理、报警等高实时性要求场景的分析价值。
• 多种分析需求:为了解决各类定制化的分析需求,通常的做法是搭建和运维开源系统,如用于做数据通道的kafka、流式分析的storm或flink、做数据分析的spark、hadoop等。
• 可视化需求:对于最终的分析结果的展示,依赖数据库(结果集小)、HBase(结果集大)存储结果,再通过对接各可视化工具来完成。
综上所述,更实时地、详细地关注和分析日志的需求逐渐显露,但是普通用户对CDN日志进行实时、离线分析又并不容易,需要付出搭建、运维和管理成本,为了完成需求,有时还需要编写不少代码,但最终并不一定能得到很好的效果。整个CDN实时日志涉及的环节多,对服务质量也有严苛的要求,技术挑战比较大。那有没有更好的解决办法么?
CDN实时日志一站式解决方案上线
近期,阿里云CDN上线了实时日志功能,打通日志服务(SLS)的能力,将CDN采集的实时日志,在小于60秒的时间内投递至日志服务,进行实时、交互式分析和报表呈现。通过CDN日志的实时分析,可以快速的发现和定位问题,进而对日志数据的挖掘,提高数据的决策能力,将业务推向一个新的高度。点击跳转CDN实时日志专题页,了解功能详情。
CDN实时日志服务与日志下载的区别
CDN实时日志为实时采集的日志数据,日志数据延迟平均不超过30秒。同时,CDN打通了日志服务分析的能力,为客户定制4张分析报表,可快速对日志进行分析,发现问题,及时决策。而CDN提供的离线日志下载,只能下载4小时前的每小时日志数据。
CDN实时日志系统中简化的数据流向如下图构成:
• 数据实时采集 : 在直播推流、播放期间,都会产生大量日志,需要在秒级延时内,实时采集这些日志到日志中心。
• 数据清洗:日志采集后,对数据进行清洗,以满足不同场景的处理需求(如,对不同域名日志的定制化分析)。
• 数据处理和存储 : 对于不同的应用场景,数据的处理和存储方式也不尽相同 。
- 实时处理 : 在秒级别对海量数据进行实多维度聚合统计分析。
- 表格存储 : 实时统计后的各类监控指标。
- 对象存储 : 日志打包压缩,供用户离线下载。
- 数据仓库 : 数据离线分析、用户行为分析、物业报表等场景。
CDN实时日志的价值
1. 实时
传统的日志分析模式,需要您将日志下载后,重新上传至数据仓库,在数据仓库进行一系列的清洗和数据模型定义后,再进数据分析,这个过程需要维护的人力较多,时间较长。
CDN实时日志可以从全球多个区域、数万节点实时采集日志,通常延时不超过60秒,否则日志的实时价值大打折扣。同时,在开通服务后,CDN将日志数据自动投递到日志服务(SLS),免去繁琐的传统日志分析的流程,实时查看日志分析结果。
2. 无需写代码,无需运维
前面也提到,想要自行搭建日志系统,解决业务定制化的需求,开发、运维、管理的成本是比较高的,接入CDN实时日志系统,可以让开发者回归业务的创新和性能本身,减少不必要的投入。
3. 多维度SQL分析,秒级10亿+规模
CDN实时日志系统支持每天千亿、万亿的日志7*24小时不间断采集,并实时对海量日志进行多维度分析,流计算系统在毫秒级。让用户远离日志分析中的各类繁杂“琐事”,更加专注于和业务更紧密、更有价值的数据“分析”上。
同时,实时日志可以轻松应对数据处理组合维度大、计算复杂度大、各类流量高峰冲击等业务场景。保存日志供用户下载的对象存储系统(Oss)可提供数据高吞吐下载能力,复杂的分析场景,可由数仓系统来支持。
4. 数据可视化及大数据挖掘
最终分析结果的展示也非常关键,CDN实时日志可以为用户提供基于业务的可视化报表服务,用户可轻松地掌控业务健康度、缓存命中率、平均下载速度、流量情况、网速、运营商、延时分布等数据。
5.日志、监控、告警联动的一站式解决方案
在CDN场景下,对服务的可用性、性能要求苛刻,需要对于各类异常进行实时、准确的报警,这就需要依赖可靠的监控报警系统。CDN日志系统未来将和监控、告警、处理机制联动,自动化的解决常规问题,缩短业务故障的时间,避免用户损失。
五、典型应用场景
1. 直播推流
在直播场景下,CDN日志实时投递至日志服务之后,可以做几个典型的实时分析。
直播推流数据非常重要,当有了直播推流的日志之后,可掌控推流端各种实时状态:
• 推流概览 : 实时知道当前的推流数量、各个推流的流量和速度、从各省、运营商维度统计
• 推流质量:多维度的推流质量统计、重点推流的实时质量监控
• 错误根源追踪:快速定位错误产生的源头(直播源、服务端、客户端、运营商)
下图是直播推流的各项监控统计,从整体的推流质量上来看,99%以上的推流都是正常的,说明推流的质量非常好。
下表统计了各类错误的产生原因,可以看到最大的错误来源是客户端主动断开。
2.CDN下行
播放端(CDN下行)是用户直接接触,其质量直接决定用户观看体验,在下行日志中,我也可以从多个维度进行分析:
• 整体质量:
健康度 : 在所有的访问中,有多少请求是成功的
Cache命中率 : 命中率越高,用户访问延时越低,体验越好
下载速度 : 这也是关系到播放质量的重要因素
• 多维度分析:
top域名访问次数、流量 : 重点域名的访问质量
地域、运营商统计:各个链路的质量
下载量、速度、延时:多项关键指标
• 错误诊断:
实时错误QPS、比例 : 整体错误情况
错误Top 域名、URI : 错误是否和自身相关
错误Top 地域、运营商 : 错误是否和外部因素相关
错误客户端分别 : 是否是新发布版本引入的问题
在下图中,可以看到,绝大部分错误,都是发生在这个客户端版本,就需要怀疑是不是新的版本发布带来的呢?
3.用户行为分析
用户的访问行为,最终可体现在日志上,通过日志的分析,了解到用户是如何进行访问的,哪些资源是热门资源,通过用户的来源,更清楚了解用户来源,以后的运营推广也可以更具有针对性,除此之外,对异常IP进行监控,可更早发现异常,如高频访问的IP,是否存在爬取数据的嫌疑。
Demo演示:
当系统出现报警或有用户投诉的情况下,通用的处理流程往往是相似的:
- 整体概述:整体访问是否正常?
- 缩小范围:是局部错误么,是哪个域名,或是哪个区域,再或者只是某个用户?
- 精准定位:缩小调查范围后,可对局部数据进行同比、环比的对比;观察更详细的日志;多个维度进行Adhoc的query分析。
在这个过程中可以发现,整个分析流程,是从上到下、从面到点、交互式的分析,涉及到Drill Down/Roll Up等多方面。因此,灵活和方便是系统必备的两项。在以下的视频中,展示如何在日志服务中,对CDN日志进行交互式的分析。
另外,我们也提供了一个Demo,可以实际体验一下Mock的CDN日志分析:Demo连接
六、接入流程
目前实时日志功能已经在CDN控制台上线,用户可以通过简单操作,快速的、无障碍的使用CDN实时日志的能力。主要步骤如下:
- 登录CDN控制台。
- 在左侧导航栏,单击日志。
- 在日志页,单击实时日志推送。
- 单击一键创建日志服务。
- 配置Project、Logstore、地域等信息,然后单击下一步。
- 选择关联域名并绑定,然后单击创建。
七、计费方式与活动
通常,实时日志按照推送成功条数,每万条0.06元进行付费,该费用已经包含日志服务分析的费用。因此,在一定使用边界内,您无需支付任何的日志服务费用。
但是在以下情况下,您还需要支付日志服务的费用:
1.日志存储超过7天的存储部分,由日志服务单独收费。
2.日志服务的外网读写费用。
原文链接
本文为云栖社区原创内容,未经允许不得转载。