一种分析网络访问日志的方法、系统、装置和存储介质与流程

文档序号:20187855发布日期:2020-03-27 19:19阅读:457来源:国知局
一种分析网络访问日志的方法、系统、装置和存储介质与流程

本发明涉及计算机数据处理技术,尤其涉及一种分析网络访问日志的方法、系统、装置和存储介质。



背景技术:

在hadoop的环境下,每天有大量的网络访问日志记录,日志记录了不同用户访问不同应用(包括网站和app等)的url、访问时间、ip及user-agent等信息,系统通过记录的目的是分析用户每个时间段访问了哪些应用,实现原理是根据用户访问的url、user-agent等特征,从而得到用户使用了什么应用,以及在应用里的操作。由于url等信息是字符串类型,每天的数据量较大,需要尽可能压缩信息,系统要将用户标记信息、命中的应用标记等进行编码。

要完成对用户访问的应用记录进行编号,现在主要方案有:1、直接利用hql使用正则命令去逐个匹配;2、使用mapreduce脚本。在大量应用需要匹配的情况下,第一种方案不可取,而第二种方案通常方法是逐个规则,使用java自带的正则类来轮循去匹配,加上匹配规则的多样性还有java的正则类使用时回溯的原因,匹配速度会不稳定。



技术实现要素:

为了解决上述技术问题,本发明的目的是提供一种能够稳定快速进行匹配的分析网络访问日志的方法、系统、装置和存储介质。

本发明所采用的第一技术方案是:

一种分析网络访问日志的方法,包括以下步骤:

获取日志记录中的url信息,根据url信息获取host字符串;

采用倒序查询的字典树对host字符串进行轮询匹配,根据匹配结果获取对应的应用信息。

进一步,所述获取日志记录中的url信息,根据url信息获取host字符串这一步骤,具体为:

通过运行mapreduce,以读取日志记录中的url信息,根据url信息获取host字符串。

进一步,所述采用倒序查询的字典树对host字符串进行匹配查询,根据匹配查询结果获取对应的应用信息这一步骤,具体包括以下步骤:

采用字典树从host字符串的尾部字母开始进行匹配查询;

根据预设的规则匹配配置文件识别到host字符串的标志后,从host字符串获得目的编号;

根据目的编号将host字符串发送至对应的匹配编号列表中进行轮询后,获得host字符串对应的应用信息。

进一步,所述字典树的数据结构包括子节点数组。

进一步,所述url信息还包括uri路径特征、请求参数特征和user-agent特征。

本发明所采用的第二技术方案是:

一种分析网络访问日志的系统,包括:

特征获取模块,用于获取日志记录中的url信息,根据url信息获取host字符串;

匹配查询模块,用于采用倒序查询的字典树对host字符串进行轮询匹配,根据匹配结果获取对应的应用信息。

进一步,所述特征获取模块具体用于通过运行mapreduce,以读取日志记录中的url信息,根据url信息获取host字符串。

进一步,所述匹配查询模块包括:

匹配查询单元,用于采用字典树从host字符串的尾部字母开始进行匹配查询;

标志识别单元,用于根据预设的规则匹配配置文件识别到host字符串的标志后,从host字符串获得目的编号;

编号轮询单元,用于根据目的编号将host字符串发送至对应的匹配编号列表中进行轮询后,获得host字符串对应的应用信息。

本发明所采用的第三技术方案是:

一种分析网络访问日志的装置,包括:

至少一个处理器;

至少一个存储器,用于存储至少一个程序;

当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述方法。

本发明所采用的第四技术方案是:

一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行如上所述方法。

本发明的有益效果是:本发明倒序查询的字典树对host字符串进行轮询匹配,避免了轮询正则匹配时的回溯问题,极大地提高了host部分的匹配速度,间接地提高了网络访问日志的分析速度。

附图说明

图1是本发明一种分析网络访问日志的方法的步骤流程图;

图2是本发明一种分析网络访问日志的系统的结构框图。

具体实施方式

如图1所示,本实施例提供了一种分析网络访问日志的方法,包括以下步骤:

s1、获取日志记录中的url信息,根据url信息获取host字符串;

s2、采用倒序查询的字典树对host字符串进行轮询匹配,根据匹配结果获取对应的应用信息。

步骤s1具体为:通过运行mapreduce,以读取日志记录中的url信息,根据url信息获取host字符串。

其中,步骤s2具体包括步骤s21~s23:

s21、采用字典树从host字符串的尾部字母开始进行匹配查询;

s22、根据预设的规则匹配配置文件识别到host字符串的标志后,从host字符串获得目的编号;

s23、根据目的编号将host字符串发送至对应的匹配编号列表中进行轮询后,获得host字符串对应的应用信息。

本实施例中,预先分析好应用的url特征,包括host特征、uri路径特征、请求参数特征和user-agent特征,并生成好规则匹配配置文件,上传到hadoop环境。通过运行mapreduce读取日志记录,基于规则匹配配置文件,针对host部分的字符串,本实施例采用采取字典树的思路,插入字符是从某一规则的后面开始,如某个host为“*.sport.qq.com”,字典树的生成是从“m”开始生成,直到轮询到最前面的“*”,则标志此规则结束,并将目的编号加到此节点的编号列表里。这是因为,对于url信息中的host部分,大部分应用的规则都是前部分是模糊的,而后面部分是明确的,如某个应用的规则是“*.sports.qq.com”,其中,“*”代表前部分不确定部分,“.sports.qq.com”为明确的部分,当匹配到host明确部分即认为匹配上。

具体地,为了更快速得到匹配过程中字符对应的信息,且由于host的字符取值范围不大且ascii大部分为连号,所以选择采用数组。树的节点的数据结构包括:字符、编号列表和子节点数组。字符的范围考虑在十进制33到126,共94个字符,故每一层的节点数是94的倍数,如果有子节点,则必然存在94个子节点。

具体在匹配时,根据日志记录的url,快速截取到host部分,然后从截取到的字符串尾部开始,按照查字典的思路去字典树轮询匹配,当轮询到的字符的兄弟节点中或下一层节点中的“*”对应节点对象不为空,则认为匹配到对应的应用,即可将对应的应用编号加到匹配应用编号集合里,直至轮询到头部。由于本实施例主要提升了在host匹配部分的速度,根据匹配应用编号集合,完成根据host匹配步骤,可以根据其他特征(比如uri路径特征、请求参数特征和user-agent特征)去进一步筛选,该部分可以采用现有的技术手段来实现。

本实施例通过构建倒序查询的字典树,直接避免轮询的正则匹配,避免了正则匹配时的回溯问题,单条记录的匹配速度至少提高一倍。假设规则有1000条的话,使用正则轮询匹配的话,每条记录的匹配预估时间是不稳定的,最坏情况也不能预估。而通过本实施例的方法,考虑到host的长度常规情况是不会太长,绝大部分都在50个字符以下,故最坏情况也就是一条记录需要轮询50个字符,而且这种情况还是建立在匹配规则每一层都有字符对应的基础下的。因此,本实施例的方法极大地提升了匹配的速度,降低了系统的运算压力,同时也相应的提升业务处理速度,避免了计算资源的耗费。

具体实施例

本实施例提供一种分析网络访问日志的方法,包括以下步骤:

第一步骤:预先设置有以下的匹配规则:“*.snssdk.com”、“*.uczzd.cn”、“*news.qq.com”,获得规则匹配配置文件;

第二步骤:根据文件中的规则匹配配置文件生成的字典树部分数据如下:

上面的字典树省略了其他规则的加载效果,省略部分中,如果对应字符是有规则的,则数组对应位置的对象不为空,如果没有,则对象为空。例如第一层没有a对应的规则,则数组中a对应位置的对象为空。字符对应数组的下标是通过字符的ascii十进制值减33得到的,33为考虑的字符范围的起始字符的ascii十进制。

第三步骤、假设分析的日志里面的url的host为“api.snssdk.com”时,从尾部字母开始匹配,即为“moc.kdssns.”。字符依次得到匹配后,因为“.”下一层节点中“*”对象不为空,则将“*.snssdk.com”这条规则对应的应用编号插入到匹配编号列表里面。继续轮询直至“a”,没有匹配到其他规则,则最终得到“api.snssdk.com”的应用编号。

如图2所示,本实施例还提供了一种分析网络访问日志的系统,包括:

特征获取模块,用于获取日志记录中的url信息,根据url信息获取host字符串;

匹配查询模块,用于采用倒序查询的字典树对host字符串进行轮询匹配,根据匹配结果获取对应的应用信息。

进一步作为优选的实施方式,所述特征获取模块具体用于通过运行mapreduce,以读取日志记录中的url信息,根据url信息获取host字符串。

进一步作为优选的实施方式,所述匹配查询模块包括:

匹配查询单元,用于采用字典树从host字符串的尾部字母开始进行匹配查询;

标志识别单元,用于根据预设的规则匹配配置文件识别到host字符串的标志后,从host字符串获得目的编号;

编号轮询单元,用于根据目的编号将host字符串发送至对应的匹配编号列表中进行轮询后,获得host字符串对应的应用信息。

本实施例的一种分析网络访问日志的系统,可执行本发明方法实施例所提供的一种分析网络访问日志的方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。

本实施例还提供了一种分析网络访问日志的装置,包括:

至少一个处理器;

至少一个存储器,用于存储至少一个程序;

当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述方法。

本实施例的一种分析网络访问日志的装置,可执行本发明方法实施例所提供的一种分析网络访问日志的方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。

本实施例还提供了一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行如上所述方法。

本实施例的一种存储介质,可执行本发明方法实施例所提供的一种分析网络访问日志的方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1