一种高效可伸缩的CDN日志处理方法及系统技术方案

技术编号:36875910 阅读:13 留言:0更新日期:2023-03-15 20:34
本发明专利技术公开了一种高效可伸缩的CDN日志处理方法及系统,包括:分布式消息引擎模块,接收日志处理任务,将日志处理任务缓存在任务处理队列中等待拉取;原始日志读取模块,从分布式消息引擎模块拉取到日志处理任务,解析并执行日志处理任务,将保存在分布式存储模块的日志文件按流式读取,将读出的日志;日志分流投递模块,解析计算得到消息主题的索引号,由计算的索引号确定对应的消息主题;日志聚合处理模块将日志消息解析、提取、聚合后分别写入到不同的日志文件中并保存。本发明专利技术能够根据不同业务规模动态伸缩处理节点的实例数量,能够更高效地利用机器资源,同时提高系统整体可用性,降低维护人员负担。降低维护人员负担。降低维护人员负担。

【技术实现步骤摘要】
一种高效可伸缩的CDN日志处理方法及系统


[0001]本专利技术涉及CDN日志处理领域,具体涉及一种高效可伸缩的CDN日志处理方法及系统。

技术介绍

[0002]作为云服务提供商,需要为海量客户提供服务,其中CDN加速业务中会产生大量的访问日志。每个加速域名的CDN访问日志是客户用来做问题排查、数据分析以及核对账单等业务的重要依据。
[0003]从CDN边缘节点收集的访问日志称为原始日志,是压缩文件形式,每个文件记录了在一段时间内所有访问该CDN边缘主机的HTTP请求信息。全网CDN节点的原始日志会源源不断地上报到数据中心,并最终保存在分布式存储集群中。
[0004]原技术方案是采用业界流行的大数据处理框架进行统一的日志处理,但实际使用下来,发现这种方案有如下不足:
[0005](1)为满足通用处理场景,资源消耗巨大,需要投入较多的硬件资源和较高的维护成本;
[0006](2)数据模型过于理想,解决实际问题的效率不高;
[0007](3)受限于框架,开发灵活度不高;
[0008](4)日志热点分析耗时过长,且资源消耗过多。

技术实现思路

[0009]本专利技术的第一个目的是提供一种高效可伸缩的CDN日志处理方法及系统,能够根据不同业务规模动态伸缩处理节点的实例数量,能够更高效地利用机器资源,同时提高系统整体可用性,降低维护人员负担。
[0010]实现本专利技术的第一个目的的技术方案是:
[0011]一种高效可伸缩的CDN日志处理方法,包括以下步骤:
[0012]1)获取边缘节点上报的日志文件,保存到分布式存储模块;
[0013]2)存储事件监听模块监测到分布式存储模块有新的日志文件存入,将新存入的日志文件路径包含在新创建的日志处理任务中,将日志处理任务发送到分布式消息引擎模块;
[0014]3)分布式消息引擎模块,接收日志处理任务,将日志处理任务缓存在任务处理队列中等待拉取;
[0015]4)原始日志读取模块,从分布式消息引擎模块拉取到日志处理任务,解析并执行日志处理任务,将保存在分布式存储模块的日志文件按流式读取,将读出的日志,批量发送给日志分流投递模块;
[0016]5)日志分流投递模块,通过解析日志中的域名字段或域名桶字段,将字段值计算哈希并取模,得到消息主题的索引号,日志分流投递模块将日志发送到分布式消息引擎模
块,由计算的索引号确定对应的消息主题;
[0017]步骤5)中,将字段值计算哈希并取模来确定消息主题的索引号,可以确保相同的域名的日志发送到同一个消息主题中,方便后续日志聚合处理;
[0018]将字段值计算哈希并取模来确定消息主题的索引号,有助于为每个消息主题分配数量大致相同的域名,实现消息主题之间的负载均衡。
[0019]6)日志聚合处理模块拉取消息主题的日志消息,将日志消息按特定格式解析,提取出域名字段和域名桶字段,按照配置好的聚合规则依据域名字段或域名桶字段进行日志消息聚合,分别按标准格式写入到不同的日志文件,再将保存的日志文件上传到分布式存储模块,此时保存的日志称为标准日志,最终会提供给客户;
[0020]步骤6)中,同一个消息主题可以分配多个日志聚合处理模块,日志聚合处理模块是无状态服务,可以根据不同域名的日志数据量不同灵活伸缩实例数量。
[0021]7)日志热点分析模块,对保存在分布式存储模块的标准日志,进行扫描并生成分析报告。
[0022]步骤1)中,获取边缘节点上报的日志文件,具体包括:
[0023]1.1)边缘节点日志上报模块通过HTTP请求把边缘节点上的日志文件上传到日志存储代理服务模块;
[0024]HTTP请求包括HTTP请求体、HTTP请求参数;
[0025]1.2)日志存储代理服务模块根据HTTP请求中的参数获取日志元信息,根据日志元信息拼接出目标路径,用目标路径以及HTTP请求体构建RPC请求,发给分布式存储模块;
[0026]日志元信息包括边缘节点的主机IP以及日志文件的类型。
[0027]步骤7)中,扫描并生成分析报告,具体包括:
[0028]7.1)日志热点分析模块选取一个域名目录,逐个对标准日志文件进行流式读取;
[0029]7.2)日志热点分析模块从日志中解析出各指标,使用Filtered

Space Saving(FSS)流数据算法,统计不同热门指标的请求次数和请求大小。读取完所有标准日志文件,即可导出前K条热点统计结果,格式化导出为热点分析报告
[0030]步骤7.2)中,使用FSS流数据算法为每个指标创建TopK算子,每条日志中解析出的对应指标值按照SipHash算法计算64位哈希摘要后作为存储键。其优点在于:
[0031]统计热门指标的传统方法是利用小根堆算法,但是面对海量日志请求,该算法需要消耗大量内存,且效率随数据量增长而下降。选用FSS流数据算法,可以将内存消耗控制在稳定范围,其代价仅仅是牺牲少量准确性,我们生成热门分析报告准确度达到99%即可满足需求,所以牺牲少量准确性,就能让计算资源需求可控,且统计热门资源更加高效;另外使用结合使用SipHash算法预处理存储键,进一步提高计算性能。
[0032]一种高效可伸缩的CDN日志处理系统,包括边缘节点日志上报程序、日志存储代理服务,分布式存储集群、存储事件监听模块、分布式消息引擎集群、原始日志读取模块、日志分流投递模块、日志聚合处理模块、日志热点分析模块。
[0033]与现有技术相比,本专利技术具有如下优点:
[0034]一、本专利技术提供高效可伸缩的CDN日志处理系统,可以满足特定的CDN日志处理需求,而无需消耗过多机器资源;
[0035]二、本专利技术的各个处理模块均实现多实例化,可方便伸缩,没有单点故障隐患,大
大提高了系统整体可用性;
[0036]三、本专利技术通过多个模块组合,提高零活度,因而更方便实现热点分析功能的迭代;
[0037]四、本专利技术通过采用FSS流数据算法提高热点分析效率,节省计算资源。
附图说明
[0038]图1为本专利技术一种高效可伸缩的CDN日志处理系统的数据流图。
[0039]图2为本专利技术日志代理服务的处理流程图。
[0040]图3为本专利技术一种高效的热点分析方法处理流程图。
具体实施方式
[0041]具体地,一种高效可伸缩的CDN日志处理系统,包括;
[0042]边缘节点日志上报模块,通过HTTP请求把边缘节点上的日志文件上传到日志存储代理服务模块;HTTP请求包括HTTP请求体、HTTP请求参数
[0043]日志存储代理服务模块,根据HTTP请求中的参数获取日志元信息,根据日志元信息拼接出目标路径,用目标路径以及HTTP请求体构建RPC请求,发给分布式存储模块;日志元信息包括边缘节点的主机IP以及日志文件的类型;
[0044]分布式存储模块,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种高效可伸缩的CDN日志处理方法,其特征在于,包括以下步骤:1)获取边缘节点上报的日志文件,保存到分布式存储模块;2)存储事件监听模块监测到分布式存储模块有新的日志文件存入,将新存入的日志文件路径包含在新创建的日志处理任务中,将日志处理任务发送到分布式消息引擎模块;3)分布式消息引擎模块,接收日志处理任务,将日志处理任务缓存在任务处理队列中等待拉取;4)原始日志读取模块,从分布式消息引擎模块拉取到日志处理任务,解析并执行日志处理任务,将保存在分布式存储模块的日志文件按流式读取,将读出的日志,批量发送给日志分流投递模块;5)日志分流投递模块,解析计算得到消息主题的索引号,日志分流投递模块将日志发送到分布式消息引擎模块,由计算的索引号确定对应的消息主题;6)日志聚合处理模块拉取消息主题的日志消息,将日志消息解析、提取、聚合后分别写入到不同的日志文件中并保存,再将保存的日志文件上传到分布式存储模块,此时保存的日志文件中的日志称为标准日志,最终会提供给客户;7)日志热点分析模块,对保存在分布式存储模块的标准日志,进行扫描并生成分析报告。2.根据权利要求1所述的高效可伸缩的CDN日志处理方法,其特征在于,步骤1)中,获取边缘节点上报的日志文件,具体包括:1.1)边缘节点日志上报模块通过HTTP请求把边缘节点上的日志文件上传到日志存储代理服务模块;1.2)日志存储代理服务模块根据HTTP请求中的参数获取日志元信息,根据日志元信息拼接出目标路径,用目标路径以及HTTP请求体构建RPC请求,发给分布式存储模块。3.根据权利要求2所述的高效可伸缩的CDN日志处理方法,其特征在于,步骤1.1)中,HTTP请求包括HTTP请求体、HTTP请求参数。4.根据权利要求2所述的高效可伸缩的CDN日志处理方法,其特征在于,步骤1.2)中,日志元信...

【专利技术属性】
技术研发人员:李文宇刘亮为沈志华
申请(专利权)人:杭州又拍云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1