一种用于对海量dns日志进行多维统计分析的方法及系统的制作方法

文档序号:9869957阅读:450来源:国知局
一种用于对海量dns日志进行多维统计分析的方法及系统的制作方法
【技术领域】
[0001]本发明涉及数据统计技术领域,更具体地说,涉及一种用于对海量DNS日志进行多维统计分析的方法及系统。
【背景技术】
[0002]在数据统计领域,普遍采用基于数据库或文件索引的数据统计方案。该方案在数据量小的情况下,通常做法是先将数据入库,再对数据进行更新,最后基于不同维度对更新数据进行统计及分析。该方案的缺陷在于:随着入库数据规模的大幅增长,数据入库效率逐渐降低,数据处理效率急剧下降,对于大数据的多维统计分析也将愈发困难。

【发明内容】

[0003]本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种用于对海量DNS日志进行多维统计分析的方法及系统。
[0004]本发明解决其技术问题所采用的技术方案是:构造一种用于对海量DNS日志进行多维统计分析的方法,包括如下步骤:
[0005]S1、在海量DNS日志数据成功上传到云服务器时接收由云服务器提交的DNS日志数据处理任务,从云服务器下载海量DNS日志数据,并对下载的海量DNS日志数据作分布式处理;
[0006]S2、汇总经处理的DNS日志数据,并基于给定的多个维度对汇总的DNS日志数据进行统计及分析,生成多维度的DNS日志数据统计及分析结果,并将该多维度的DNS日志数据统计及分析结果存入数据库。
[0007]在本发明上述用于对海量DNS日志进行多维统计分析的方法中,在所述步骤SI之前还包括如下步骤:
[0008]S0、多个DNS数据采集模块通过分光镜像的方式对记录及存储到多台DNS服务器的DNS日志数据进行实时采集,并将采集的DNS日志数据输入DNS数据汇总中心;
[0009]DNS数据汇总中心对由该多个DNS数据采集模块输入的DNS日志数据进行汇总,并将汇总形成的海量DNS日志数据定期上传到云服务器。
[0010]在本发明上述用于对海量DNS日志进行多维统计分析的方法中,所述步骤SI中所述从云服务器下载海量DNS日志数据,并对下载的海量DNS日志数据作分布式处理的步骤包括:
[0011]S11、将海量DNS日志数据处理任务拆分为由M个子任务构成的第一任务队列
(subjobl, sub job 2......subjobM),并将该第一任务队列(subjobl, sub job 2......subjobM)
中的M个子任务随机分配到该M个分布式文件系统;
[0012]S12、指令该M个分布式文件系统根据分配到的子任务分别从云服务器下载该海量DNS日志数据中的其中一部分DNS日志数据,并对该部分DNS日志数据进行分布式处理。
[0013]在本发明上述用于对海量DNS日志进行多维统计分析的方法中,所述步骤S12中所述M个分布式文件系统根据分配到的子任务分别从云服务器下载该海量DNS日志数据中的其中一部分DNS日志数据,并对该部分DNS日志数据进行分布式处理的步骤具体包括:
[0014]S121、在包含一个主服务器及N个子服务器的每一个分布式文件系统中,主服务器在接收到由任务调度中心分配的子任务时,将该子任务进一步拆分为由N个执行任务构成的第二任务队列(task I, task 2......task N);
[0015]S122、基于MapReduce任务调度机制将该第二任务队列(task I, task 2......task
N)中的N个执行任务分配到该N个子服务器,并指令该N个子服务器分别从云服务器下载用于完成各自的执行任务所需的DNS日志数据并对该部分DNS日志数据进行排重、更新或删除处理。
[0016]在本发明上述用于对海量DNS日志进行多维统计分析的方法中,所述步骤S122还包括:
[0017]S1221、基于本地数据优先分配机制,将每一个执行任务优先分配到存储有用于处理该执行任务所需的DNS日志数据的子服务器。
[0018]在本发明上述用于对海量DNS日志进行多维统计分析的方法中,所述步骤S122还包括:
[0019]S1222、在对DNS日志数据排重的同时,判断该DNS日志数据中是否存在解析错误或解析关系失效的DNS日志记录;
[0020]如该下载的DNS日志数据中存在解析错误的DNS日志记录,则对所下载的DNS日志数据中的该条解析错误的DNS日志记录进行更正;
[0021]如该下载的DNS日志数据中存在解析关系失效的DNS日志记录,则将所下载的DNS日志数据中的该条解析关系失效的DNS日志记录进行删除。
[0022]在本发明上述用于对海量DNS日志进行多维统计分析的方法中,所述步骤S2中所述基于给定的多个维度对汇总的DNS日志数据进行统计及分析,生成多维度的DNS日志数据统计及分析结果的步骤包括:
[0023]S21、将客户端IP作为第一维度,从经分布式处理并存储于多个分布式文件系统的DNS日志数据中检索一给定时间段T内的包含该客户端IP的第一 DNS日志记录,基于该第一 DNS日志记录对该给定时段T内该客户端IP用户的访问网站数量及网站类型进行统计,并基于统计结果对该客户端IP用户的上网行为进行分析;
[0024]S22、将解析IP作为第二维度,从经分布式处理并存储于多个分布式文件系统的DNS日志数据中检索一给定时段T内的包含该解析IP的第二 DNS日志记录,基于该第二 DNS日志记录对该给定时段T内对该解析IP所指定的网站服务器进行访问的客户端数量进行统计,以及对该给定时段T内对该解析IP所指定的网站服务器进行访问的客户端的分布状况进行分析;
[0025]S23、将域名作为第三维度,从经分布式处理并存储于多个分布式文件系统的DNS日志数据中检索一给定时段T内的包含该域名信息的第三DNS日志记录。
[0026]在本发明上述用于对海量DNS日志进行多维统计分析的方法中,在所述步骤S23之后还包括如下步骤:
[0027]S231、在接收到包含某一顶级域名名称的网站访问量查询请求时,从该第三DNS日志记录中提取包含有该顶级域名的第四DNS日志记录,对第四DNS日志记录的条数进行统计,并将统计值作为查询结果进行返回。
[0028]本发明还构造一种用于对海量DNS日志进行多维统计分析的系统,所述海量DNS日志的多维统计系统包括:依次连接的多个DNS数据采集模块、DNS数据汇总中心、云服务器、DNS日志处理中心、DNS日志统计分析中心及数据库;
[0029]每一所述DNS数据采集模块均用于对记录及存储到与之对应的一台DNS服务器的DNS日志数据进行实时采集,并将采集的DNS日志数据输入所述DNS数据汇总中心;
[0030]所述DNS数据汇总中心用于汇总由所述多个DNS数据采集模块输入的DNS日志数据,并将汇总形成的海量DNS日志数据定期上传到所述云服务器;
[0031]所述DNS日志处理中心用于在该海量DNS日志数据成功上传到所述云服务器时接收由所述云服务器提交的DNS日志数据处理任务,从所述云服务器下载海量DNS日志数据,对下载的海量DNS日志数据进行分布式处理;
[0032]所述DNS日志统计分析中心用于基于给定的多个维度对经分布式处理的海量DNS日志数据进行统计及分析,生成多维度的DNS日志数据统计及分析结果,并将所得的DNS日志数据统计及分析结果存储于所述数据库。
[0033]在本发明上述用于对海量DNS日志进行多维统计分析的系统中,所述DNS日志处理中心包括一个任务调度中心及多个分布式文件系统;
[0034]所述任务调度中心用于将所述云服务器提交的海量DNS日志数据整理任务拆分为由多个子任务构成的第一任务队列(subjobl, subjob2......subjobM),并将该第一任务队列(subjobl, subjob2......subjobM)中的各个子任务分配到所述多个分布式文件系统;
[0035]每一所述分布式文件系统均用于从所述云服务器下载与其分配到的子任务对
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1