日志异常检测方法及装置与流程

专利2022-06-30  63


本申请要求于2019年12月02日提交的申请号为201911214265.0、发明名称为“日志异常检测的方法、装置、服务器及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。本申请涉及计算机
技术领域
,特别涉及一种日志异常检测方法及装置。
背景技术
:通过在软件源代码中填加的一些特定的代码,可以将软件运行的实时状态记录以文本形式记录在文件中,该文件称为日志(logs)或日志文件。一个日志包括多行日志记录(也称日志语句),每一行日志记录用于记录软件运行时的一个事件。当日志中出现异常情况,软件开发者(或运维工作人员)可以基于异常情况进行软件性能优化。日志中的日志记录通常具有隐含的日志模板(schema),即该记录本身的模式或格式。目前若需要确定日志中是否存在异常,分析设备将该日志(或者一个时间段内的日志)与指定的参考日志进行对比,得到两者的日志模板的变化情况,并呈现该变化情况,由软件开发者基于呈现的内容识别日志中的异常情况。但是,由于日志中是否存在异常仍然需要人工识别,因此异常检测的效率低。技术实现要素:本申请实施例提供了一种日志异常检测方法及装置,能够解决目前的日志异常检测方法的运算代价较大的问题。所述技术方案如下:第一方面,提供一种日志异常检测方法,所述方法包括:获取日志的多个日志分片,该多个日志分片中的每个日志分片包括所述日志中的多行日志记录;该多个日志分片中不同的日志分片的至少一行日志记录不同;确定该多个日志分片中的每两个日志分片之间的距离;基于该多个日志分片中的每两个日志分片之间的距离,确定该多个日志分片中是否存在异常的日志分片。本申请实施例通过获取日志的多个日志分片中的每两个日志分片之间的距离,并基于获取的每两个日志分片之间的距离,确定多个日志分片中是否存在异常的日志分片,进而定位出异常的日志分片,无需人工识别日志中是否存在异常,有效提高日志的异常检测效率。可选地,该确定该多个日志分片中的每两个日志分片之间的距离的过程,包括:基于该多个日志分片中的每个日志分片的局部敏感哈希码,确定该多个日志分片中的每两个日志分片之间的距离。由于日志分片的局部敏感哈希码能够反映该日志分片的数据与其他日志分片的数据的相似度,因此可以获取每两个日志分片的局部敏感哈希码的距离,将获取的距离确定为对应的每两个日志分片之间的距离。如此能够快速确定每两个日志分片之间的距离。可选地,该方法还包括:基于该多个日志分片中的每个日志分片的多个词条,确定该多个日志分片中的每个日志分片的局部敏感哈希码。采用该方式获,求取每每个日志分片的局部敏感哈希码时的数据粒度为词条,运算次数更小,能够节约运算代价。可选地,基于该多个日志分片中的每个日志分片的多个词条,确定该多个日志分片中的每个日志分片的局部敏感哈希码的过程,包括:将该每个日志分片的多个词条进行去重处理得到词条集合;基于该每个日志分片对应的词条集合,确定该每个日志分片的局部敏感哈希码。该去重处理可以简化后续计算局部敏感哈希码所采用的词条的个数从而提高分析设备的运算效率。可选地,基于该每个日志分片对应的词条集合,确定该每个日志分片的局部敏感哈希码的过程,包括:计算该每个日志分片对应的词条集合中所有词条的哈希码之和;对该每个日志分片对应的哈希码之和进行降维处理,得到该每个日志分片的局部敏感哈希码。计算该每个日志分片对应的词条集合中所有词条的哈希码之和,相当于所有词条的权值均为1,计算时延较短,计算效率较高。并且相当于放大了异常词条出现的概率,提高了识别出异常的日志分片的概率。在一种可选方式中,基于该多个日志分片中的每两个日志分片之间的距离,确定该多个日志分片中是否存在异常的日志分片的过程,包括:基于该多个日志分片中的每两个日志分片之间的距离,确定该多个日志分片中的每个日志分片的k-距离,该多个日志分片中任一日志分片的k-距离为该多个日志分片中距离该任一日志分片第k近的日志分片与该任一日志分片之间的距离,k为正整数,k小于g,该g为该多个日志分片的总数;基于该多个日志分片中的每个日志分片的k-距离,确定该多个日志分片中是否存在异常的日志分片。通过将多个日志分片中的每两个日志分片之间的距离转化为每个日志分片的k-距离,可以仅执行一次日志分片的检测过程,有效简化了异常的日志分片的检测过程,降低了计算复杂度,提高了异常判定的效率。可选地,基于该多个日志分片中的每个日志分片的k-距离,确定该多个日志分片中是否存在异常的日志分片的过程,包括:基于该多个日志分片中每个日志分片的k-距离,确定目标取值范围[μ–3×σ,μ 3×σ],其中,该μ为该多个日志分片的k-距离的均值,该σ为该多个日志分片的k-距离的标准差,当该多个日志分片中任一日志分片的k-距离不在该目标取值范围[μ–3×σ,μ 3×σ]内时,确定该任一日志分片为异常的日志分片;或者,确定第一日志分片对应的目标取值范围[mu–3×sigma,mu 3×sigma],其中,该第一日志分片为该多个日志分片中的任一日志分片,该mu为该多个日志分片中除该第一日志分片之外的日志分片的k-距离的均值,该sigma为该多个日志分片中除该第一日志分片之外的日志分片的k-距离的标准差,当该第一日志分片的k-距离不在该目标取值范围[mu–3×sigma,mu 3×sigma]内时,确定该第一日志分片为异常的日志分片;或者,确定该多个日志分片中每个日志分片对应的熵值,其中,任一日志分片对应的熵值为该多个日志分片在移除该任一日志分片后,剩余日志分片的k-距离的熵值,当获取的熵值中最大的熵值与最小的熵值的差值大于指定差值阈值时,将与该最大的熵值对应的日志分片确定为异常的日志分片。在另一种可选方式中,基于该多个日志分片中的每两个日志分片之间的距离,确定该多个日志分片中是否存在异常的日志分片的过程,包括:分析设备基于多个日志分片中的每两个日志分片之间的距离,将多个日志分片划分为多个日志分片集合,每个日志分片集合包括至少一个日志分片;当任一日志分片集合中的日志分片的个数小于指定数量阈值,确定该日志分片集合中的日志分片为异常的日志分片;当任一日志分片集合中的日志分片的个数不小于指定数量阈值,确定该日志分片集合中的日志分片不为异常的日志分片。可选地,分析设备可以按照均分原则划分日志分片,以保证最终定位得到的异常的日志分片准确性,示例的,最终划分得到的日志分片中,不同该日志分片包括相同行数的的日志记录;或者,不同该日志分片包括相同数据量的日志记录。可选地,在获取多个日志分片中的每两个日志分片之间的距离后,还可以基于获取的距离,确定多个日志分片中的每两个日志分片之间的相似度。在本申请实施例中,每两个日志分片之间的距离与该两个日志分片的相似度负相关,也即是距离越近(即越小),相似度越高;距离越远(即越大),相似度越低。例如,每两个日志分片之间的相似度d满足:d=1/(1 s),s为与该每两个日志分片之间的相似度对应的每两个日志分片之间的距离。分析设备可以基于多个日志分片中的每两个日志分片之间的相似度,确定多个日志分片中是否存在异常的日志分片。在一种示例中,该过程包括:当任一日志分片与其他日志分片之间的相似度均小于相似度阈值时,确定该任一日志分片为异常的日志分片;当任一日志分片与其他日志分片之间的相似度均不小于相似度阈值时,确定该任一日志分片不为异常的日志分片。在另一种示例中,分析设备可以基于该多个日志分片中的每两个日志分片之间的相似度,确定多个日志分片中的每个日志分片的k-距离,多个日志分片中任一日志分片的k-距离为该多个日志分片中距离该任一日志分片第k远的日志分片与任一日志分片之间的相似度,k为正整数,k小于g,g为多个日志分片的总数,如此,该k-距离与前述直接基于该多个日志分片中的每两个日志分片之间的距离确定的k-距离的定义不同;基于多个日志分片中的每个日志分片的k-距离,确定多个日志分片中是否存在异常的日志分片。基于与前述第一方面的同一构思,本申请实施例的第二方面,提供一种日志异常检测方法,该方法包括:获取日志的多个日志分片,该多个日志分片中的每个日志分片包括该日志中的多行日志记录;该多个日志分片中不同的日志分片的至少一行日志记录不同;确定该多个日志分片中的每两个日志分片之间的相似度;基于该多个日志分片中的每两个日志分片之间的相似度,确定该多个日志分片中是否存在异常的日志分片。第三方面,提供一种日志异常检测装置,所述装置可以包括至少一个模块,该至少一个模块可以用于实现上述第一方面、第二方面或者第一方面、第二方面的各种可能实现提供的所述日志异常检测方法。第四方面,本申请提供一种计算机设备,该计算机设备包括处理器和存储器。该存储器存储计算机指令;在该处理器执行该存储器存储的计算机指令时,该计算机设备执行上述第一方面、第二方面或者第一方面、第二方面的各种可能实现提供的方法,使得该计算机设备部署上述第三方面或者第三方面的各种可能实现提供的该日志异常检测装置。第五方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,该计算机指令指示该计算机设备执行上述第一方面、第二方面或者第一方面、第二方面的各种可能实现提供的方法,或者该计算机指令指示该计算机设备部署上述第三方面或者第三方面的各种可能实现提供的日志异常检测装置。第六方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面、第二方面或者第一方面、第二方面的各种可能实现提供的方法,使得该计算机设备部署上述第三方面或者第三方面的各种可能实现提供的日志异常检测装置。第六方面,提供一种分析系统,包括:终端和分析设备,所述分析设备包括第三方面或者第三方面的各种可能实现所述的日志异常检测装置或第四方面所述的计算机设备。第七方面,提供一种芯片,所述芯片可以包括可编程逻辑电路和/或程序指令,当所述芯片运行时用于实现如第一方面、第二方面或者第一方面、第二方面的各种可能实现提供的方法。本申请实施例通过获取日志的多个日志分片中的每两个日志分片之间的距离,并基于获取的每两个日志分片之间的距离,确定多个日志分片中是否存在异常的日志分片,进而定位出异常的日志分片,无需人工识别日志中是否存在异常,有效提高日志的异常检测效率。本申请实施例提供的日志异常检测方法,可以支持日志异常检测功能,一方面,该日志异常检测功能可以人工触发,也可以自动触发,例如在指定时间点或指定时段触发,还可以周期性自动执行;另一方面,该日志异常检测功能无需指定参考日志;又一方面,该日志异常检测功能可以未识别到异常的日志分片,基于此可以准确定位到异常的日志记录。综上可知,本申请实施例提供的日志异常检测方法中,异常检测的灵活性更高,实现过程简便,可以进行异常的日志分片的定位,从而能够有效提高日志的异常检测的效率。并且,本申请实施例提供的日志异常检测方法,通过通过比较日志的多个日志分片的内容的相似性,以定位到异常的日志分片,可以检测到未知的异常的日志分片。进一步的,本申请实施例提供的日志异常检测方法应用在在线分析场景中时,可以快速定位到异常的日志分片,有效降低日志定位的时间复杂度和空间复杂度。附图说明图1是本申请实施例提供的一个日志中的部分日志内容的示意图;图2是本申请实施例提供的一种日志异常检测方法所涉及的应用环境示意图;图3是本申请实施例提供的另一种日志异常检测方法所涉及的应用环境示意图;图4是本申请实施例提供的一个日志异常检测方法的流程示意图;图5是本申请实施例提供的一种日志为实时日志数据的分片流程示意图;图6是本申请实施例提供的一种日志为批量日志数据的分片流程示意图;图7是本申请实施例提供的一种局部敏感哈希算法处理流程示意图;图8是本申请实施例提供的一种采用空格分词的方式进行分词得到的分词结果示意图;图9是本申请实施例提供的另一种采用空格分词的方式进行分词得到的分词结果示意图;图10是本申请实施例提供的一种采用特殊字符分词的方式进行分词得到的分词结果示意图;图11是本申请实施例提供的一种局部敏感哈希码的获取过程示意图;图12是本申请实施例提供的另一种局部敏感哈希码的获取过程示意图;图13为本申请实施例提供的一种距离矩阵的示意图;图14是本申请实施例提供的一种日志分片对应的空间点的分布示意图;图15是本申请实施例提供的一种正态分布原理示意图;图16是本申请实施例提供的一种日志异常检测装置的结构示意图;图17是本申请实施例提供的另一种日志异常检测装置的结构示意图;图18是本申请实施例提供的一种计算机设备的示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。日志用于记录软件运行的实时状态,如图1所示,图1是一个日志中的部分日志内容的示意图,日志包括多行日志记录(也称日志文本),每一行(也称每一条)日志记录用于记录软件运行时的一个事件。每一行日志记录都由多个字符组成,该多个字符可以包括字母和/或符号等。通过分析日志,可以进行日志的异常检测。当日志中出现异常情况,软件开发者(或运维工作人员)可以基于异常情况进行软件性能优化。但是,目前日志中是否存在异常仍然需要人工识别,因此异常检测的效率低。本申请实施例提供一种日志异常检测方法,可以提高日志异常检测的效率。请参考图2,图2是本申请实施例提供的一种日志异常检测方法所涉及的应用环境示意图。该应用环境包括终端110、分析设备120和网络设备130。终端110可以是显示器、计算机、智能手机、平板电脑和膝上型便携计算机等等能够与用户交互的设备。分析设备120可以是一台服务器,或者由若干台服务器组成的服务器集群等等能够进行数据分析的设备。可选地,该分析设备120可以是云服务器(也称云计算服务器),例如,用于提供的深度学习服务(deeplearningservice,dls)的深度学习服务器。终端110通过通信网络与分析设备120建立有线或无线的通信连接。其中,网络设备130可以为传感器或终端等能够运行软件并产生日志数据的设备。网络设备130用于向分析设备120提供待分析的数据,分析设备120用于进行日志数据的分析,终端110用于将分析结果呈现给用户。本申请实施例中所涉及的通信网络是第二代(2-generation,2g)通信网络、第三代(3rdgeneration,3g)通信网络、长期演进(longtermevolution,lte)通信网络或第五代(5rdgeneration,5g)通信网络等。可选地,前述应用环境还可以包括存储设备,其用于存储终端110、分析设备120和/或网络设备130所需存储的数据,该存储设备可以为分布式存储设备,终端110、分析设备120和/或网络设备130可以对该存储设备所存储的数据进行读写。这样在应用场景中的数据较多的情况下,由存储设备进行数据存储,可以减轻分析设备的负载,提高分析设备的数据分析效率。需要说明的是,当应用环境中的数据量较少时,也可以不单独设置该存储设备。在这种情况下,终端110和分析设备120的功能也可以由同一设备实现,例如计算机。如图3所示,该应用环境包括前台201和后台202两部分。前台201用于向用户呈现数据,以及接收用户输入的数据,实现与用户的交互;后台202用于与前台201进行数据交互,并进行管理操作和/或数据处理等。其中,前台201可以部署于前述终端110中。后台202可以部署于前述分析设备120中。示例的,终端110中可以安装有客户端、脚本或者浏览器,以实现前台201的部署。如此,终端110可以以客户端界面、终端界面或者与浏览器对应网页的形式呈现用户界面。本申请实施例提供的日志异常检测方法可以用于软件调试、性能优化或业务分析等日志分析场景中。具体可以应用在这些日志分析场景中异常检测场景中。异常检测是指对不符合预期的模式进行检测。本申请实施例中,异常检测的数据来源(也称数据源)为应用、进程、操作系统、设备或者网络中的软件运行所产生的日志数据,这些数据可以存储在数据库、本地文件或消息队列中。如日志为日志流的流式场景,数据存储在消息队列,可选地,该消息队列为卡夫卡(kafka)消息队列。示例的,前述分析设备120可以采用深度学习(deeplearning)算法进行日志数据的异常检测。本申请实施例提供一种日志异常检测方法,通过获取日志的多个日志分片(也称日志分片),通过比较日志分片的内容的相似性,以检测异常的日志分片,该异常的日志分片的内容与其他日志分片的内容存在明显的不同。基于此原理,如图4所示,该方法包括:步骤301、分析设备获取日志,该日志包括多行日志记录。日志分析的场景包括离线分析场景和在线分析场景。在离线分析场景中,进行分析的日志数据可以为存储在日志数据库的批量(batch)日志数据,如日志文件,或者在日志数据库中查询得到的日志数据,其中,日志文件通常是用户、软件开发者或运维工作人员下载得到的文件,或者通过关键词搜索得到的文件。分析设备可以通过在日志数据库中读取日志,以实现日志的获取。在在线分析场景中,进行分析的日志数据可以为实时采集的日志数据,也称日志流(logstream)数据。分析设备可以通过采集器采集日志,以实现日志的获取。如前所述,日志有批量日志数据和实时日志数据两种形式。本申请实施例中,分析设备支持这两种形式的日志的分析。在一种可选示例中,分析设备周期性获取日志文件,或者在指定时段获取日志文件,以得到批量日志数据,该指定时段可以是终端和/或服务器的低功耗时段(即功耗小于指定功耗阈值的时段),如此可以降低日志文件获取以及后续日志分析对终端和/或服务器的其他功能的影响;在另一种可选示例中,分析设备持续获取实时日志数据;在又一种可选示例中,分析设备在接收到分析指令后,获取批量日志数据或者实时日志数据。该分析指令可以是用户在终端触发生成,并由终端发送至分析设备的。当分析设备实时获取日志流并进行分析时,由于能够及时对日志流进行监控,若日志流中出现异常可以及时发现并上报,提高异常检测的实效性,避免大规模异常的出现,从而提高用户体验。步骤302、分析设备获取日志的多个日志分片。本申请实施例中,在获取日志后,分析设备可以基于该日志,获取多个日志分片。该多个日志分片中的每个日志分片包括日志中的多行日志记录,也即是一个日志分片为多行日志记录的集合。可选地,每个日志分片包括日志中的连续的多行日志记录。多个日志分片中不同的日志分片的至少一行日志记录不同。由于本申请实施例是通过比较日志分片之间的相似度来判定日志的异常,当各个日志分片的大小相同或相近时,判定的准确度较高。因此,本步骤中,获取的多个日志分片的大小相同或相近。其中,获取多个日志分片的方式可以有多种,本申请实施例以以下几种方式为例进行说明:第一种方式,按照日志记录的行数将日志划分得到多个日志分片。可选地,日志分片的划分规则为:划分得到的不同日志分片包括相同行数的日志记录。相应的,分析设备可以按照指定顺序将每连续的m行日志记录划分为一个日志分片,m为大于1的整数,可选地,500≤m≤1500。例如,m=1000。该指定顺序可以为日志中日志记录由前到后的顺序。在日志为实时日志数据时,分析设备可以在每获取m行日志记录后(例如每次从数据源读取m行日志记录后),将获取的日志记录存储为一个日志分片,以得到多个日志分片。在日志为批量日志数据时,采用第一种方式容易出现划分到最后一个日志分片时,日志记录的行数不足m个的情况,假设此时剩余的日志记录的行数为n,这种情况下可以将与该n行日志记录相邻的m-n行日志记录,以及该n行日志记录划分为一个日志分片,如此,划分得到的最后两个相邻的日志分片的日志记录有m-n行日志记录相同。本申请实施例在实际实现时,也可以将其他m-n行日志记录与该n行日志记录划分为一个日志分片,只要保证最终划分得到的不同日志分片均包括m行日志记录即可。第二种方式,按照日志记录的数据量将日志划分得到多个日志分片。可选地,日志分片的划分规则为:划分得到的不同日志分片包括相同数据量的日志记录。相应的,分析设备可以按照指定顺序将数据量为指定数据量的日志记录划分为一个日志分片,指定数据量可以为5兆至15兆,例如10兆。该指定顺序可以为日志中日志记录由前到后的顺序。在日志为实时日志数据时,分析设备可以在每获指定数据量的日志记录后(例如每次从数据源读取指定数据量的日志记录后),将获取的日志记录存储为一个日志分片,以得到多个日志分片。在日志为批量日志数据时,采用第二种方式容易出现划分到最后一个日志分片时,日志记录的行数不足指定数据量,假设此时剩余的日志记录的数据量为x,指定数据量为y,这种情况下可以将与该剩余的日志记录相邻的数据量为y-x的一行或多行日志记录,以及该剩余的日志记录划分为一个日志分片,如此,划分得到的最后两个相邻的日志分片的日志记录有数据量为y-x的日志记录相同。本申请实施例在实际实现时,也可以将其他的数据量为y-x的日志记录与该剩余的日志记录划分为一个日志分片,只要保证最终划分得到的不同日志分片均包括指定数据量的日志记录即可。为了便于读者理解,图5以日志为实时日志数据(即日志流)为例,对分片流程进行说明。分析设备在读取日志的日志记录后,将读取的日志记录写入消息队列(如卡夫卡(kafka)消息队列)。在用户通过用户设备读取消息队列中的日志记录后,若读取的日志记录的数据未达到目标大小,例如,m行或者指定数据量,分析设备先将其缓存起来,到每次用户通过用户设备读取消息队列中的日志记录后,将读取的日志记录与缓存的日志记录进行拼接,直至拼接得到的日志记录达到目标大小,将目标大小的日志记录分割为一个日志分片。图5以目标大小为1000行,分割得到的日志分片为4片为例,但对此并不进行限定。图6以日志为批量日志数据为例,对分片流程进行说明。分析设备一次性可以把所有的日志的日志记录加载到内存中,然后分析设备遍历日志的日志记录,按照目标大小(例如,m行或者指定数据量)进行分片操作,直到所有日志记录完成分片。图6以分割得到的日志分片为4片为例,但对此并不进行限定。值得说明的是,前述第一种方式和第二种方式均按照均分原则划分日志分片,本申请实施例在实际实现时,划分得到的多个日志分片包括的日志记录的行数也可以不同,只要保证任意两个日志分片包括的日志记录的行数差值在指定行数差值范围内即可。或者,划分得到的多个日志分片包括的数据量也可以不同,只要保证任意两个日志分片包括的日志记录的数据量差值在指定数据量差值范围内即可。可选地,前述多个日志分片还可以采用滑窗划分的方式划分,本申请实施例对此不做赘述。步骤303、分析设备确定多个日志分片中的每两个日志分片之间的距离。其中,每两个日志分片之间的距离用于反映每两个日志分片之间的相似度。可选地,分析设备确定多个日志分片中的每两个日志分片之间的距离的过程包括:步骤a1、确定多个日志分片中的每个日志分片的局部敏感哈希码。为了便于读者理解,下面对局部敏感哈希(localitysensitivehash,lsh)码进行简单介绍。局部敏感哈希码是基于局部敏感哈希算法获取的哈希码。局部敏感哈希码能够反映采用局部敏感哈希算法所需处理的数据(可以称为输入的数据)的相似度。在本申请实施例中,该数据可以为前述日志分片的数据。局部敏感哈希算法可以保持输入数据间的相似关系。如图7所示,对于相似的输入数据,得到的局部敏感哈希码(可以称为输出的数据)也十分相近;对于输入数据极为相似的场景(图7中以输入的数据分别为两行日志记录为例进行说明),得到的局部敏感哈希码甚至产生了哈希碰撞:即对于不同的但相似的输入数据,输出的局部敏感哈希码完全一样(图7中以输出的数据均为“1101101”为例进行说明)。由上述陈述可知,局部敏感哈希码可以作为日志分片的特征,本申请实施例将其称为日志分片的签名,两个日志分片的签名越相似,说明两者的内容越接近。在本申请实施例中,分析设备可以通过多种方式确定每个日志分片的局部敏感哈希码,本申请实施例以以下两种可选实现方式为例进行说明:在第一种可选实现方式中,确定多个日志分片中的每个日志分片的局部敏感哈希码的过程,包括:步骤a11、分析设备获取多个日志分片中的每个日志分片的多个词条(token)。可选地,分析设备可以通过分词技术对每个日志分片中每行日志记录进行分词,以得到每个日志分片的多个词条。词条包括至少一个最小语义单元,通常仅包括一个最小语义单元。语义单元为单词、词组或符号,该符号可以为数字符号,简称数字,如1或2,也可以为其他符号,如“/”或“:”。通常情况下,每个日志分片中,一行日志记录可以划分得到至少两个词条;少数情况下,一行日志记录可以划分得到一个词条,本申请实施例对每个日志分片中划分得到的词条个数不做限定。分词的目的是将每个日志分片的每行日志记录切割成一个词条的集合,通过分词处理可以减少日志记录的处理复杂度,降低后续局部敏感哈希码的运算代价,提高运算效率。本申请实施例中,可以采用不同方式进行分词。例如,采用空格分;或者,采用特殊字符分词;或者,采用指定切分符分词,该指定切分符包括空格或特殊字符;或者采用自然语言分词。如图8所示,图8为一种采用空格分词的分词结果示意图。采用空格分词,指的是将一行日志记录按照空格切分成多个词条,其切分实现过程简单,切分效率高。采用特殊字符分词时,特殊字符通常为用户指定的字符,如“\n”、“[”、“:”、“=”、“{”、“(”、“\t”、“\r”、“|”或“##”等等。若一个词条仅包括一个最小语义单元,则相对于采用空格分词,采用特殊字符分词可以使得切分到的词条包括的语义单元更准确,切分精度更高。例如,对于以下日志记录:“20171223-22:15:35:11|step_sputils|30002312|gettodaytotaldetailsteps=1514038440000##7015##548365##8661##13026##27177962”,采用空格分词的方式得到的分词结果如图9所示。可以看出,第一个词条和最后一个词条,都包含了很多信息。例如第一个词条里有时间,有类名,还有一个数字信息。而最后一个词条里有很多数字被特殊字符“##”隔开,每一个数字代表了一定的意义,应该单独切割出来。因此,每个词条无法被有效切割成一个最小语义单元。假设特殊字符包括:“|”,“##”或“=”,则采用特殊字符分词的方式得到的分词结果如图10所示。切分得到的每个词条均为一个最小语义单元,如此切分精度更高。采用指定切分符分词是采用空格和采样特殊字符分词方式的组合方式。示例的,指定切分符可以包括:“\n”、“[”、“:”、“=”、“{”、“(”、“\t”、“\r”、“|”、“##”和空格中的一种。采用自然语言分词的方式较为常用,在这种方式中可以直接将日志分片中的日志记录输入基于自然语言的分词器,例如nltk(naturallanguagetoolkit)中的word_tokenizer,treebank_tokenizer,s-expression_tokenizer等分词器。采用自然语言分词的方式相对于前述采用指定切分符或特殊字符分词的方式,无需用户预先指定用于切分的符号,从而简化用户操作。可选地,前述分词过程中,分析设备可以将每个日志分片作为一个字符流输入指定分词器,由该分词器进行分词处理,分析设备接收分词器输出的分词结果即可。步骤a12、分析设备基于多个日志分片中的每个日志分片的多个词条,确定多个日志分片中的每个日志分片的局部敏感哈希码。在本申请实施例中,每个日志分片的多个词条可以以不同形式存储,相应的,确定每个日志分片的局部敏感哈希码的方式也各有不同。本申请实施例以以下两种情况为例进行说明:在第一种情况中,每个日志分片的多个词条以词条集合形式存储。在每个日志分片对应的词条集合中,每个日志分片的多个词条不再具有顺序关系。对于每个日志分片,分析设备可以直接将分词得到的该日志分片的多个词条的集合作为词条集合;或者,分析设备可以将该日志分片的多个词条进行去重处理得到词条集合。然后,分词设备可以基于每个日志分片对应的词条集合,确定每个日志分片的局部敏感哈希码。其中,前述去重处理可以简化后续计算局部敏感哈希码所采用的词条的个数从而提高分析设备的运算效率。分词设备基于每个日志分片对应的词条集合,确定每个日志分片的局部敏感哈希码的方式可以有多种,例如,分析设备可以基于目标局部敏感哈希算法,以及每个日志分片对应的词条集合,确定每个日志分片的局部敏感哈希码。示例的,该目标局部敏感哈希算法中的局部敏感哈希计算过程可以参考simhash算法或minhash算法中的局部敏感哈希计算过程。该目标局部敏感哈希算法所处理的数据的最小单位为词条。本申请实施例以以下两种可选示例进行说明:在第一种可选示例中,在目标局部敏感哈希算法中,在获取每个日志分片对应的词条集合后,可以采用加权求和的方式确定该某一日志记录的局部敏感哈希码。该过程可以参考simhash算法。该采用加权求和的方式确定该某一日志记录的局部敏感哈希码的过程可以包括:步骤a121、对于任一日志分片,计算该任一日志分片对应的词条集合中各个词条的哈希码,该哈希码由二进制数0和1组成。步骤a122、对计算得到的各个词条的哈希码进行加权求和,即w=∑hash×weight,其中,w表示加权求和后得到的哈希序列,hash表示每个词条的哈希码,weight表示各个词条的权值。可选地,各个词条的权值可以与该词条在词条集合中的词频正相关。也即是词频越高,权值越大。通常情况下,每个词条的权值等于该词条在词条集合中的词频。词频指的是词条出现的次数。例如,词条“we”在一个词条集合中出现5次,则该词条“we”的词频为5。步骤a123、对获取的加权求和的结果进行降维处理得到局部敏感哈希码。在前述步骤a122的加权求和过程中,每个哈希码与其权值的乘积采用如下规则表示:遇到哈希码中的值为1,则对应位置的求和结果为:1和权值正相乘,遇到哈希码中的值为0,则对应位置的求和结果为:1和权值负相乘。前述步骤a123中的降维指的是将大于0的数值的降为1,将不大于0的数值降为0。对获取的加权求和的结果进行降维处理的过程包括,将获取的加权求和的结果中大于0的数值,设置为1,将加权求和的结果中不大于0的数值,设置为0。例如,假设日志分片x1对应的词条集合包括的词条分别为:“flush”、“cost”、“time”、“is”和“122”,图11示出了日志分片x1的一种局部敏感哈希码获取的过程。图11中,假设第一个词条的权值为3,第二个词条的权值为2,其他词条的权值为1,“flush”的哈希码为:“10010111”,其与权值3的乘积为“3,-3,-3,3,-3,3,3,3”(其中,逗号是为了进行间隔,实际计算过程中并不存在)。对计算得到的各个词条的哈希码进行加权求和,指的是对加权后的哈希码对位求和(即对应位置求和)。最终确定的加权求和的结果为“6,-4,-6,6,-6,0,8,4”,其中,首位:6是各个词条与对应权值的乘积的首位之和,即3 2 1 1-1,第二位:-4是各个词条与对应权值的乘积的第二位之和,即(-3) (-2) 1 (-1) 1,其他位的计算方式同理。加权求和的结果“6,-4,-6,6,-6,0,8,4”所对应的降维的结果为“10010111”,即日志分片x1的局部敏感哈希码为“10010111”。值得说明的是,当前述词条集合是通过去重处理得到的,在一种可选方式中,可以记录去重处理前每个词条的词频,以确定每个词条的权值。如此,无论是否采用去重处理,对于同一日志分片,采用前述步骤a121至a123的过程均能计算得到相同的局部敏感哈希码;在另一种可选方式中,可以不记录去重处理前每个词条的词频,将每个词条的权值置为1。如此,对于同一日志分片中的各个词条,权值均相等且为1。则分析设备基于目标局部敏感哈希算法,以及每个日志分片对应的词条集合,确定每个日志分片的局部敏感哈希码的过程包括:步骤a124、分析设备计算每个日志分片对应的词条集合中所有词条的哈希码之和。步骤a124可以参考前述步骤a121和步骤a122中weight=1的情况。则对于任一日志分片,其局部敏感哈希码为各个词条的哈希码之和,即:w=∑hash,hash表示哈希码。步骤a125、对每个日志分片对应的哈希码之和进行降维处理,得到每个日志分片的局部敏感哈希码。该步骤a125可以参考前述步骤a123中weight=1的情况。采用前述目标局部敏感哈希算法,若设置权值均为1,计算时延较短,计算效率较高。并且由于直接获取了所有词条的哈希码之和,相当于所有词条的权值均为1。若按照每个词条的词频设置权值,则由于一个日志分片中正常词条的个数通常远远大于异常词条的个数,因此正常词条的权值远远大于异常词条的权值。而将所有词条的权值设置为1,也即是降低了正常词条的权值,相当于放大了异常词条出现的概率,提高了识别出异常的日志分片的概率。例如,一个日志分片x中包括5个异常词条,1000个正常词条,若另一个日志分片y包括1005个正常词条,其中1000个词条与前述日志分片x的1000个正常词条相同,不包括异常词条,则通过将所有词条的权值设置为1,可以使得日志分片x的局部敏感哈希和日志分片y的局部敏感哈希产生明显的不同,从而在后续过程中有效区分出异常的日志分片。其中,异常的日志分片中包括与其他日志分片明显不同的词条,该明显不同的词条即为前述异常词条。图12示出了日志分片x1的另一种局部敏感哈希码获取的过程。图12中,假设所有词条的权值为1,例如,图12中,“flush”的哈希码为:“10010111”,其与权值1的乘积为“1,-1,-1,1,-1,1,1,1”(其中,逗号是为了进行间隔,实际计算过程中并不存在)。对计算得到的各个词条的哈希码进行加权求和,指的是对加权后的哈希码对位求和(即对应位置求和)。日志记录x1最终确定的加权求和的结果为“3,-1,-3,3,-3,-1,5,1”,其中,首位:3是各个词条与权值1的乘积的首位之和,即1 1 1 1-1,第二位:-1是各个词条与权值1的乘积的第二位之和,即(-1) (-1) 1 (-1) 1,其他位的计算方式同理。加权求和的结果“3,-1,-3,3,-3,-1,5,1”所对应的降维的结果为“10010011”,即日志记录x1的局部敏感哈希码为“10010011”。在第二种可选实现方式中,确定多个日志分片中的每个日志分片的局部敏感哈希码的过程,包括:直接基于每个日志分片的内容,确定每个日志分片的局部敏感哈希码,也即是不执行前述步骤a11的词条获取步骤。分析设备可以基于前述目标局部敏感哈希算法,以及每每个日志分片的内容,确定每行日志记录的局部敏感哈希码。示例的,分析设备可以分别将每个日志分片的内容(即字符流)输入目标局部敏感哈希算法的算法模型,接收该算法模型输出的每个日志分片的局部敏感哈希码。该目标局部敏感哈希算法所处理的数据的最小单位为字符。该第二种可选实现方式中求取每个日志分片的局部敏感哈希码时的数据粒度(即前述目标局部敏感哈希算法所处理的数据的最小单位)为字符,前述第一种可选实现方式中求取每每个日志分片的局部敏感哈希码时的数据粒度为词条。因此,前述第一种可选实现方式相对于该第二种可选实现方式,求取每个日志分片的局部敏感哈希码时的数据粒度更大,由此可知,第一种可选实现方式相对于该第二种可选实现方式运算次数更小,能够节约运算代价。在第二种情况中,每个日志分片的多个词条以词条序列形式保存。在每个日志分片对应的词条序列中,每个日志分片的多个词条具有顺序关系。对于每个日志分片,分析设备可以直接将分词得到的该日志分片的多个词条按照分词前的顺序排列得到词条序列。然后,分词设备可以基于每个日志分片对应的词条序列,确定每个日志分片的局部敏感哈希码。分词设备基于每个日志分片对应的词条序列,确定每个日志分片的局部敏感哈希码的过程可以参考前述基于未进行去重处理得到的词条集合确定每个日志分片的局部敏感哈希码的过程,本申请实施例对此不再赘述。步骤a2、分析设备基于每个日志分片的局部敏感哈希码,确定多个日志分片中的每两个日志分片之间的距离。如步骤a1所述,由于日志分片的局部敏感哈希码能够反映该日志分片的数据与其他日志分片的数据的相似度,因此可以获取每两个日志分片的局部敏感哈希码的距离,将获取的距离确定为对应的每两个日志分片之间的距离。如此能够快速确定每两个日志分片之间的距离。示例的,分析设备可以基于每个日志分片的局部敏感哈希码,以及指定距离算法计算每两个日志分片的局部敏感哈希码的距离,并将计算得到距离确定为对应的每两个日志分片之间的距离。示例的,该指定距离算法可以为海明距离算法,相应的,获取的距离为海明距离。则分析设备可以将每两个日志分片的局部敏感哈希码的海明距离确定为两个日志分片之间的距离。其中,海明距离指的是字符序列相同位置上数据不同的个数。比如字符序列:010和010,基于海明距离算法分析可知其第二位和第三位不同,则两个字符序列的海明距离是2。示例的,该指定距离算法还可以为其他距离算法。如该指定距离算法为欧式距离算法。则分析设备可以将每两个日志分片的局部敏感哈希码的欧氏距离确定为两个日志分片之间的距离。其中,欧氏距离为空间点距离。需要说明的是,本申请实施例还可以采用其他算法计算每两个日志分片的局部敏感哈希码的距离,本申请实施例对此不再赘述。值得说明的是,前述步骤a1和a2仅仅是本申请实施例提供的一种示例性的确定多个日志分片中的每两个日志分片之间的距离的方法,本申请实施例在实际实现时,分析设备还可以采用其他方式确定每两个日志分片之间的距离,例如,分析设备还可以采用杰卡德(jaccard)相似度函数确定每两个日志分片之间的距离,该距离称为杰卡德距离、杰卡德相似度(jaccardsimilarity)或者杰卡德系数。示例的,该杰卡德相似度函数为:d=r1/r2;其中,d表示杰卡德距离,r1为两个日志分片的内容的交集,r2为两个日志分片的内容的并集;或者,d表示杰卡德距离,r1为两个日志分片的词条的交集,r2为两个日志分片的词条的并集。可选地,在采用杰卡德相似度函数确定每两个日志分片之间的距离时,若需要获取每个日志分片的多个词条,则获取每个日志分片的多个词条的过程可以参考前述步骤a11。由于分析设备获取了多个日志分片中每个日志分片与其他日志分片的距离,且一个日志可以划分得到的日志分片个数较多,如3至8个,因此,最终分析设备可以获取多个距离值,例如,日志分片有w个,若获取的距离值包括日志分片与自身的距离(即距离为0),则获取的距离值为w2个;若获取的距离值不包括日志分片与自身的距离,则获取的距离值为(w2-w)个。该多个距离值可以通过如图13所示的距离矩阵表示。图13假设分析设备获取了4个日志分片,分别为日志分片1至4,日志分片1至4的局部敏感哈希码分别为01010101、01010111、00010111和11110010,并假设将每两个日志分片的局部敏感哈希码的海明距离确定为两个日志分片之间的距离。则如图13所示,日志分片1与日志分片2至4之间的距离分别为1、2和5;日志分片2与日志分片1、3和4之间的距离分别为1、1和4;日志分片3与日志分片1、2和4之间的距离分别为2、1和5;日志分片4与日志分片1至3之间的距离分别为5、4和5。图13中的距离矩阵中左下角和右上角的距离值是对称分布的,因此,可以仅以距离矩阵中左下角或右上角的内容表示多个日志分片中每个日志分片与其他日志分片的距离。从图13中的距离矩阵中可以看出,日志分片1至3的距离都比较接近,也即是,日志分片1至3的内容比较相近,而日志分片4的局部敏感哈希码和日志分片1至3的局部敏感哈希码距离都比较大,因此日志分片4的内容和日志分片1至3的内容相差比较远,日志分片4可能有异常。通过后续步骤304可以识别出异常的日志分片。步骤304、分析设备基于多个日志分片中的每两个日志分片之间的距离,确定多个日志分片中是否存在异常的日志分片。在本申请实施例中,分析设备基于多个日志分片中的每两个日志分片之间的距离,确定多个日志分片中是否存在异常的日志分片的过程可以通过多种异常检测方式实现,本申请实施例以以下两种异常检测方式为例进行说明:第一种异常检测方式,基于多个日志分片中的每两个日志分片的k-距离(k-distance)确定多个日志分片中是否存在异常的日志分片,该异常检测方式包括:步骤b1、分析设备基于多个日志分片中的每两个日志分片之间的距离,确定多个日志分片中的每个日志分片的k-距离。该多个日志分片中任一日志分片的k-距离为多个日志分片中距离该任一日志分片第k近的日志分片与任一日志分片之间的距离,k为正整数,k小于g,g为多个日志分片的总数。也即是,k小于或等于多个g-1。例如,假设k=2,g=8,则每个日志分片与其他日志分片之间的距离共7个,对于该多个日志分片中任一日志分片x2,其k-距离为多个日志分片中距离日志分片x2第2近的日志分片与该日志分片x2的距离。在步骤b1中,k值越大,敏感度越低,最终确定的异常的日志分片的准确度越高,因此,此处可以设置较小的k值,例如,k为1,或者,当g×5%大于1时,k小于或等于g×5%。在获取每个日志分片的k-距离时,分析设备可以先获取每两个日志分片之间的距离,然后,对于每个日志分片,将获取的与该日志分片之间的距离排序,例如按照升序排序或者降序排序,之后基于排序结果,确定该日志分片的k-距离。如步骤303所述,由于分析设备可以获取每个日志分片所对应的多个距离值。该多个距离值可以通过距离矩阵表示,若直接基于距离矩阵进行异常的日志分片的分析,假设日志分片有w个,对于每个日志分片,需要基于其与其他的日志分片的(w-1)个距离,确定该日志分片是否为异常的日志分片。则对于多个日志分片,需要(w-1)次日志分片的检测过程,该检测过程可以参考后续步骤b2的过程。而本申请实施例,由于通过采用k-距离算法,将获取的距离矩阵(如前述包括(w2-w)个距离值的距离矩阵)转化为一维的距离值集合,该距离值集合包括w个距离值。如此,仅需执行一次日志分片的检测过程,有效简化了异常的日志分片的检测过程,降低了计算复杂度,提高了异常判定的效率。步骤302中获取的多个日志分片中的每个日志分片,实际上可以视为高维空间内的一个点,每两个日志分片之间的距离,即为高维空间内两个点之间的距离。参考步骤304,若以每个日志分片的局部敏感哈希码标识该日志分片,则高维空间的维度可以为局部敏感哈希码的位数。例如,对于一个128位的局部敏感哈希码,可以看作是一个128维空间内的一个点。为了便于读者理解,图14以多个日志分片包括日志分片1至5共5个日志分片,每个日志分片为2维空间的一个点为例进行说明,在图14中,该5个日志分片分别以点a至e一一对应表示。如表1所示,表1为记录如图14所示的日志分片之间的距离的距离矩阵,假设k=2,结合图14和表1可知,a点距离b点的距离是1,距离c点的距离是2,距离d点的距离是9,距离e点的距离是1.5,可以看出,e点是距离a点第二近的点,a点到e点的距离就是a点的2-距离,即1.5。同理,可以计算每个点的2-距离,最终基于该表1得到的各个日志分片(与前述a点至e点对应)的k-距离如表2所示,分别为1.5、1.5、2、8和2。其中,表1记录的日志分片共5个,即w=5,记录的距离值为w2-w=20个,即使按照该距离矩阵中的右上角的数据记录每两个日志分片之间的距离,也需要记录10个距离值,基于该10个距离值直接进行日志分片的检测过程,需要进行4次日志分片的检测过程;表2记录的k-距离共5个,需要进行1次日志分片的检测过程。因此,采用多个日志分片中的每个日志分片的k-距离进行日志分片的检测过程,可以有效节约运算代价。表1日志分片1日志分片2日志分片3日志分片4日志分片5日志分片11291.5日志分片211.592日志分片321.582日志分片49988日志分片51.5228表2日志分片1日志分片2日志分片3日志分片4日志分片5k-距离1.51.5282步骤b2、分析设备基于多个日志分片中的每个日志分片的k-距离,确定多个日志分片中是否存在异常的日志分片。在本申请实施例中,基于多个日志分片中的每个日志分片的k-距离,确定多个日志分片中是否存在异常的日志分片的方式有多种,本申请实施例以以下几种可选方式为例进行说明:在第一种可选方式中,基于拉伊达准则(也称3-sigma规则)确定异常的日志分片。基于统计学原理可知,一个样本如果服从正态分布,就满足3-sigma规则,3-sigma规则如图15所示,样本的均值为μ,样本的标准差(即方差)为σ,样本落在取值范围[μ–3×σ,μ 3×σ]的概率为99.7%,约等于100%。因此,如果一个值超出这个取值范围,即小于μ–3×σ,或者大于μ 3×σ,该概率是0.3%。可以认为这是一个小概率事件,定义为异常事件。基于3-sigma规则,本申请实施例提供以下两种可选示例,以确定多个日志分片中每个日志分片是否为异常的日志分片:第一种可选示例中,分析设备可以基于多个日志分片中每个日志分片的k-距离,确定目标取值范围[μ–3×σ,μ 3×σ],其中,该μ为多个日志分片的k-距离的均值,该σ为多个日志分片的k-距离的标准差,当多个日志分片中任一日志分片的k-距离不在目标取值范围[μ–3×σ,μ 3×σ]内时,确定该任一日志分片为异常的日志分片;当多个日志分片中任一日志分片的k-距离不在目标取值范围[μ–3×σ,μ 3×σ]内时,确定该任一日志分片不为异常的日志分片。该第一种可选示例的原理为:由于多个日志分片对应的多个点中正常点很多时,异常点对均值和标准差的影响不大。则假设该多个点中没有异常点,计算该多个点的均值和标准差,基于此确定是否存在超出目标取值范围的点,若存在该点,则确定该点为异常点。该第一种可选示例适用于日志分片的个数较多时,也即是样本点较多时,如此,只需要计算一次目标取值范围,计算开销小。仍然以前述图14所示的例子为例,假设采用前述第一种可选示例确定异常的日志分片。则通过3-sigma规则,判断a点是否为一个异常点,也即是日志分片1是否为异常的日志分片的过程如下:计算a点至e点的均值和标准差,基于计算得到的均值和标准差确定目标取值范围;当a点的k-距离不在目标取值范围内时,确定该a点为异常点,日志分片1为异常的日志分片;当a点的k-距离在目标取值范围内时,确定该a点不为异常点,日志分片1不为异常的日志分片。b点至e点的计算方式同理,本申请实施例不再赘述。在第二种可选示例中,假设第一日志分片为多个日志分片中的任一日志分片,则本申请实施例提供的日志分片的检测过程包括:确定第一日志分片对应的目标取值范围[mu–3×sigma,mu 3×sigma],其中,该mu为多个日志分片中除第一日志分片之外的日志分片的k-距离的均值,该sigma为多个日志分片中除第一日志分片之外的日志分片的k-距离的标准差,当第一日志分片的k-距离不在目标取值范围[mu–3×sigma,mu 3×sigma]内时,确定第一日志分片为异常的日志分片;当第一日志分片的k-距离在目标取值范围[mu–3×sigma,mu 3×sigma]内时,确定第一日志分片不为异常的日志分片,也即是正常的日志分片。多个日志分片中其他日志分片的检测过程可以参考前述第一日志分片的检测过程,本申请实施例对此不做赘述。该第二种可选示例的原理为:由于多个日志分片对应的多个点中正常点较少时,异常点对均值和标准差的影响较大。则对于该多个点中的每个点,假设该点为异常点,剩余点为正常点,计算该剩余点的均值和标准差,基于此确定该点是否超出目标取值范围,从而确定该点是否为异常点。该第二种可选示例适用于日志分片的个数较少时,也即是样本点较少时。仍然以前述图14所示的例子为例,假设采用前述第二种可选示例确定异常的日志分片。则通过3-sigma规则,判断a点是否为一个异常点,也即是日志分片1是否为异常的日志分片的过程如下:计算a点至e点中除a点之外的剩余点(即b点至e点)的均值和标准差。其中,剩余点的均值为:(1.5 2 8 2)/4=3.375;剩余点的标准差为:1/(4-1)×[(3.375-1.5)2 (3.375-2)2 (3.375-8)2 (3.375-2)2]0.5=3.52 1.89 18.06 1.89=1.68。则a点对应的目标取值范围为:[3.375–3×1.68,3.375 3×1.68]=[-1.67,8.415]。由于a点的k-距离在该目标取值范围内,因此,可以判定a点为正常点,日志分片1不为异常的日志分片。同理,通过3-sigma规则,判断d点是否为一个异常点,也即是日志分片4是否为异常的日志分片的过程如下:计算a点至e点中除d点之外的剩余点(即a点、b点、c点、e点)的均值和标准差。其中,剩余点的均值为:(1.5 1.5 2 2)/4=1.75;剩余点的标准差为:则d点对应的目标取值范围为:[1.75–3×0.167,1.75 3×0.167]=[1.25,2.25]。由于d点的k-距离不在该目标取值范围内,因此,可以判定d点为异常点,日志分片5为异常的日志分片。值得说明的是,前述两种可选示例可以根据实际情况选择使用,例如,分析设备在获取日志分片后,当获取的日志分片的数量大于指定数量阈值(日志分片的数量较多,对应的点较多),采用前述第一种示例所提供的方式确定异常的日志分片;当获取的日志分片的数量不大于指定数量阈值(日志分片的数量较少,对应的点较少),采用前述第二种示例所提供的方式确定异常的日志分片。如此,虽然需要确定每个日志分片的目标取值范围,但是由于日志分片的数量较少,因此整体的计算量也在可接受范围内。在第二种可选方式中,基于熵变原则确定异常的日志分片。基于热力学原理可知,熵用来描述分子状态的混乱程度。在数据处理过程中,借鉴了熵的概念,描述数据的不确定度。例如,对于一组样本t=[1,1,1,1,1,1,1,1,1,1],t中样本分布均匀,因此确定性高,熵值大。相反,对于另一组样本u=[1,2,3,4,5,6,7,8,9,10],样本分布不均匀,因此确定性低,熵值低于t。对于又一组样本v=[1,2,3,4,5,6,7,8,900,1000],样本分布相比u更不均匀,其熵值最低。熵值与样本的分布均匀程度呈反比,也即是熵值越高,样本分布均匀程度更高,熵值越低,样本分布均匀程度更低。本申请实施例提供一种样本的熵值计算公式,该熵值计算公式如下所示:其中,h(i)表示样本的熵值,i表示样本中的数据。基于该熵值计算公式确定样本的熵值的原则称为熵变原则。基于熵变原则,则本申请实施例提供的日志分片的检测过程包括:确定多个日志分片中每个日志分片对应的熵值,其中,参考前述熵值计算公式,任一日志分片对应的熵值h(i)为多个日志分片在移除任一日志分片后,剩余日志分片的k-距离的熵值,i表示剩余日志分片的k-距离。当获取的熵值中最大的熵值与最小的熵值的差值大于指定差值阈值时,说明多个日志分片中在移除不同日志分配后的分布均匀程度变化较大,对于最大的熵值所对应的日志分片而言,多个日志分片在移除该日志分片之后,分布最为均匀。因此,可以将与最大的熵值对应的日志分片确定为异常的日志分片。当获取的熵值中最大的熵值与最小的熵值的差值不大于指定差值阈值时,说明多个日志分片中在移除不同日志分配后的分布均匀程度变化不大,也即是多个日志分片的内容较为接近,通常不存在异常的日志分片。仍然以前述图14所示的例子为例,假设a点至e点对应的多个日志分片组成的集合称为分片集合;当分片集合中移除日志分片1后的熵值h1如表3所示,为1.1199994100487753,该熵值为最小的熵值;当分片集合中移除日志分片4后的熵值h2如表4所示,为1.3760552852604169,该熵值为最大的熵值。表3-p(i)log(i)b1.5/13.5=0.111c2/13.5=0.148d8/13.5=0.593e2/13.5=0.148熵1.1199994100487753表4-p(i)log(i)a1.5/7=0.214b1.5/7=0.214c2/7=0.286e2/7=0.286熵1.3760552852604169如表3所示,移除a点后,即移除日志分片1后的熵值h1变小了,如此表示把日志分片1移除之后,分片集合的k-距离变得更乱了;同理,如表4所示,移除d点后的熵值h2变大了,如此表示把日志分片4移除之后,分片集合的k-距离变得更均匀了。因此,d点可能是一个异常点。假设指定差值阈值为0.2,由于熵值h2与熵值h1的差值大于0.2,因此确定d点为异常点,日志分片4为异常的日志分片。值得说明的是,前述第二种可选方式中,默认如果出现了异常的日志分片,则该异常的日志分片有一个,且为最大的熵值对应的日志分片。在实际实现时,异常的日志分片可能有多个。则在基于前述第二种可选方式确定了一个异常的日志分片后,可以将该异常的日志分片剔除,得到多个日志分片作为更新后的多个日志分片,再次采用前述第二种可选方式,基于更新后的多个日志分片,确定是否还存在异常的日志分片,如此往复,直至更新后的日志分片中不存在异常的日志分片。第二种异常检测方式,基于层次聚类(hierarchicalclustering)算法确定多个日志分片中是否存在异常的日志分片。层次聚类是指,基于被聚类的元素之间的距离,将属于同一类的的元素聚集在一起。在本申请实施例中,该第二种异常检测方式的过程包括:分析设备基于多个日志分片中的每两个日志分片之间的距离,将多个日志分片划分为多个日志分片集合,每个日志分片集合包括至少一个日志分片;当任一日志分片集合中的日志分片的个数小于指定数量阈值,确定该日志分片集合中的日志分片为异常的日志分片;当任一日志分片集合中的日志分片的个数不小于指定数量阈值,确定该日志分片集合中的日志分片不为异常的日志分片。例如,该指定数量阈值为2。在这种情况下,假设日志分片集合g1中的日志分片的个数小于2,也即是,该日志分片集合g1中的日志分片个数仅为1,该日志分片与多个日志分片中的其他日志分片均不属于同一类,也即是与其他日志分片均不同,因此该日志分片为异常的日志分片。值得说明的是,本申请实施例还可以采用其他方式基于多个日志分片中的每两个日志分片之间的距离,确定异常的日志分片,例如,多个日志分片中的每两个日志分片之间的距离以立体图、表格或者直方图的方式呈现给用户,并呈现每个日志分片的标识,以供用户选择用户认为异常的日志分片,接收用户触发的选择指令,该选择指令中携带用户选择的目标日志分片的标识,该目标日志分片确定为异常的日志分片。申请实施例对基于多个日志分片中的每两个日志分片之间的距离,确定异常的日志分片的方式不做限定。步骤305、分析设备在异常的日志分片中确定异常日志记录。在确定了异常的日志分片后,分析设备可以采用多种方式确定异常日志记录。在一种可选方式中,分析设备可以呈现异常的日志分片,由用户选择异常日志记录;在另一种可选方式中,分析设备可以确定异常的日志分片的日志模板,呈现日志模板,由用户选择异常日志模板,在获取异常日志模板后,再呈现该异常日志模板对应的日志记录。分析设备还可以采用其他方式确定异常日志记录,本申请实施例对此不做限定。为了便于读者理解,本申请实施例对日志模板进行简单介绍,日志中的日志记录通常具有隐含的日志模板,日志模板指的是用于生成日志中日志记录的标准样式,或者固定格式。例如,前述日志记录对应的代码在实际运行后,输出得到日志中的用于记录用户登录的信息的多行日志记录。在本申请实施例将该多行日志记录所在日志称为第一日志:“user025862loginat2018-12-0302:03:00user045210loginat2018-12-0402:03:15user033658loginat2018-12-0502:03:38user010100loginat2018-12-0602:04:06user023025loginat2018-12-0702:04:51user046523loginat2018-12-0802:05:22”。日志的日志模板即该日志中的日志记录的日志模板。通常,在对日志记录进行日志异常检测时,若识别出日志记录的变量部分,会采用预设的变量标识符对变量部分进行标记,该标记方式实质为采用变量标识符将变量部分替换。该变量标识符通常为通配符“*”。示例的,对上述第一日志的多行日志记录进行日志异常检测时,可以将变量部分采用通配符“*”替换,得到的每行日志记录的日志模板为“user*loginat*”,则第一日志的日志模板为“user*loginat*”。本申请实施例提供的日志异常检测方法的步骤先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,例如,在其他应用场景中,如关键词检索等,可以不执行前述步骤305。例如,在前述步骤304中,在获取多个日志分片中的每两个日志分片之间的距离后,还可以基于获取的距离,确定多个日志分片中的每两个日志分片之间的相似度。在本申请实施例中,每两个日志分片之间的距离与该两个日志分片的相似度负相关,也即是距离越近(即越小),相似度越高;距离越远(即越大),相似度越低。例如,每两个日志分片之间的相似度s满足:s=1/(1 d),d为与该每两个日志分片之间的相似度对应的每两个日志分片之间的距离。通常,该距离d是一个非负的实数,相似度的数值范围为[0,1]。分析设备可以基于多个日志分片中的每两个日志分片之间的相似度,确定多个日志分片中是否存在异常的日志分片。在一种示例中,该过程包括:当任一日志分片与其他日志分片之间的相似度均小于相似度阈值时,确定该任一日志分片为异常的日志分片;当任一日志分片与其他日志分片之间的相似度均不小于相似度阈值时,确定该任一日志分片不为异常的日志分片。如此可以不执行前述步骤b1和b2。在另一种示例中,分析设备可以基于所述多个日志分片中的每两个日志分片之间的相似度,确定多个日志分片中的每个日志分片的k-距离,多个日志分片中任一日志分片的k-距离为该多个日志分片中距离该任一日志分片第k远的日志分片与任一日志分片之间的相似度,k为正整数,k小于g,g为多个日志分片的总数,如此,k-距离与前述步骤b1中的k-距离的定义不同,在本步骤中,k值越小,敏感度越低,最终确定的异常的日志分片的准确度越低,因此,此处可以设置较大的k值,例如,k为g;基于多个日志分片中的每个日志分片的k-距离,确定多个日志分片中是否存在异常的日志分片,该过程可以参考前述步骤b2。又例如,分析设备还可以采用余弦夹角算法(也称余弦相似度算法)确定每两个日志分片之间的相似度。余弦夹角算法指的是将一个向量空间中两个向量夹角间的余弦值作为衡量两个向量之间差异的大小,余弦值接近1,夹角趋于0,表明两个向量越相似,余弦值接近于0,夹角趋于90度,表明两个向量越不相似。因此,可以在获取多个日志分片中的每个日志分片的局部敏感哈希码后,将每两个局部敏感哈希码之间的余弦值作为对应的每两个日志分片之间的相似度。再例如,基于与前述日志异常检测方法的实施例的同一构思,本申请实施例还可以在步骤302中获取日志的多个日志分片之后,分析设备可以采用其他方式获取多个日志分片中的每两个日志分片之间的相似度,基于多个日志分片中的每两个日志分片之间的相似度,确定多个日志分片中是否存在异常的日志分片。在本申请实施例中,相似度和距离可以相互转换,任何熟悉本
技术领域
的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。相关技术中,若需要确定日志中是否存在异常,分析设备将该日志(或者一个时间段内的日志)与指定的参考日志进行对比,得到两者的日志模板的变化情况,并呈现该变化情况,由软件开发者基于呈现的内容识别日志中的异常情况,该功能称为日志比较(logcompare)功能。一方面,该日志比较功能需要人工触发;另一方面,需要人工指定参考日志;又一方面,该日志比较功能实质并未识别到日志的异常,仅仅是为软件开发者寻找日志异常提供了参考信息。而本申请实施例提供的日志异常检测方法,可以支持日志异常检测功能,一方面,该日志异常检测功能可以人工触发,也可以自动触发,例如在指定时间点或指定时段触发,还可以周期性自动执行;另一方面,该日志异常检测功能无需指定参考日志;又一方面,该日志异常检测功能可以未识别到异常的日志分片,基于此可以准确定位到异常的日志记录。综上可知,本申请实施例提供的日志异常检测方法中,异常检测的灵活性更高,实现过程简便,可以进行异常的日志分片的定位,从而能够有效提高日志的异常检测的效率。并且,本申请实施例提供的日志异常检测方法,通过通过比较日志的多个日志分片的内容的相似性,以定位到异常的日志分片,可以检测到未知的异常的日志分片。进一步的,本申请实施例提供的日志异常检测方法应用在在线分析场景中时,可以快速定位到异常的日志分片,有效降低日志定位的时间复杂度和空间复杂度。本申请实施例提供一种日志异常检测装置40,如图16所示,所述装置包括:获取模块401,用于获取日志的多个日志分片,所述多个日志分片中的每个日志分片包括所述日志中的多行日志记录;所述多个日志分片中不同的日志分片的至少一行日志记录不同;第一确定模块402,用于确定所述多个日志分片中的每两个日志分片之间的距离;第二确定模块403,用于基于所述多个日志分片中的每两个日志分片之间的距离,确定所述多个日志分片中是否存在异常的日志分片。本申请实施例通过获取日志的多个日志分片中的每两个日志分片之间的距离,并基于获取的每两个日志分片之间的距离,确定多个日志分片中是否存在异常的日志分片,进而定位出异常的日志分片,无需人工识别日志中是否存在异常,有效提高日志的异常检测效率。可选地,所述第一确定模块402,用于:基于所述多个日志分片中的每个日志分片的局部敏感哈希码,确定所述多个日志分片中的每两个日志分片之间的距离。可选地,如图17所示,所述装置40还包括:第三确定模块404,用于基于所述多个日志分片中的每个日志分片的多个词条,确定所述多个日志分片中的每个日志分片的局部敏感哈希码。可选地,所述第三确定模块404,用于:将所述每个日志分片的多个词条进行去重处理得到词条集合;基于所述每个日志分片对应的词条集合,确定所述每个日志分片的局部敏感哈希码。可选地,所述第三确定模块404,用于:计算所述每个日志分片对应的词条集合中所有词条的哈希码之和;对所述每个日志分片对应的哈希码之和进行降维处理,得到所述每个日志分片的局部敏感哈希码。可选地,所述第二确定模块403,用于:基于所述多个日志分片中的每两个日志分片之间的距离,确定所述多个日志分片中的每个日志分片的k-距离,所述多个日志分片中任一日志分片的k-距离为所述多个日志分片中距离所述任一日志分片第k近的日志分片与所述任一日志分片之间的距离,k为正整数,k小于g,所述g为所述多个日志分片的总数;基于所述多个日志分片中的每个日志分片的k-距离,确定所述多个日志分片中是否存在异常的日志分片。可选地,所述第二确定模块403,用于:基于所述多个日志分片中每个日志分片的k-距离,确定目标取值范围[μ–3×σ,μ 3×σ],其中,所述μ为所述多个日志分片的k-距离的均值,所述σ为所述多个日志分片的k-距离的标准差,当所述多个日志分片中任一日志分片的k-距离不在所述目标取值范围[μ–3×σ,μ 3×σ]内时,确定所述任一日志分片为异常的日志分片;或者,确定第一日志分片对应的目标取值范围[mu–3×sigma,mu 3×sigma],其中,所述第一日志分片为所述多个日志分片中的任一日志分片,所述mu为所述多个日志分片中除所述第一日志分片之外的日志分片的k-距离的均值,所述sigma为所述多个日志分片中除所述第一日志分片之外的日志分片的k-距离的标准差,当所述第一日志分片的k-距离不在所述目标取值范围[mu–3×sigma,mu 3×sigma]内时,确定所述第一日志分片为异常的日志分片;或者,确定所述多个日志分片中每个日志分片对应的熵值,其中,任一日志分片对应的熵值为所述多个日志分片在移除所述任一日志分片后,剩余日志分片的k-距离的熵值,当获取的熵值中最大的熵值与最小的熵值的差值大于指定差值阈值时,将与所述最大的熵值对应的日志分片确定为异常的日志分片。可选地,不同所述日志分片包括相同行数的的日志记录;或者,不同所述日志分片包括相同数据量的日志记录。可选地,图18示意性地提供本申请所述计算设备的一种可能的基本硬件架构。该计算设备可以为服务器。参见图18,计算设备500包括处理器501、存储器502、通信接口503和总线504。计算设备500中,处理器501的数量可以是一个或多个,图18仅示意了其中一个处理器501。可选地,处理器501,可以是中央处理器(centralprocessingunit,cpu)。如果计算设备500具有多个处理器501,多个处理器501的类型可以不同,或者可以相同。可选地,计算设备500的多个处理器501还可以集成为多核处理器。存储器502存储计算机指令和数据;存储器502可以存储实现本申请提供的日志异常检测方法所需的计算机指令和数据,例如,存储器502存储用于实现日志异常检测方法的步骤的指令。存储器502可以是以下存储介质的任一种或任一种组合:非易失性存储器(例如只读存储器(rom)、固态硬盘(ssd)、硬盘(hdd)、光盘),易失性存储器。通信接口503可以是以下器件的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。通信接口503用于计算设备500与其它计算设备或者终端进行数据通信。总线504可以将处理器501与存储器502和通信接口503连接。这样,通过总线504,处理器501可以访问存储器502,还可以利用通信接口503与其它计算设备或者终端进行数据交互。在本申请中,计算设备500执行存储器502中的计算机指令,使得计算设备500实现本申请提供的日志异常检测方法,或者使得计算设备500部署日志异常检测装置。在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由服务器的处理器执行以完成本申请各个实施例所示的日志异常检测方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。本申请实施例提供一种分析系统,包括:终端和分析设备,该分析设备包括前述任一所述的日志异常检测装置。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机的可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质,或者半导体介质(例如固态硬盘)等。需要说明的是:上述实施例提供的日志异常检测装置在进行日志异常检测时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的日志异常检测装置与日志异常检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。在本申请中,术语“第一”和“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“多个”指两个或两个以上,除非另有明确的限定。a参考b,指的是a与b相同或者a为b的简单变形。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页1 2 3 
技术特征:

1.一种日志异常检测方法,其特征在于,所述方法包括:

获取日志的多个日志分片,所述多个日志分片中的每个日志分片包括所述日志中的多行日志记录;所述多个日志分片中不同的日志分片的至少一行日志记录不同;

确定所述多个日志分片中的每两个日志分片之间的距离;

基于所述多个日志分片中的每两个日志分片之间的距离,确定所述多个日志分片中是否存在异常的日志分片。

2.根据权利要求1所述的方法,其特征在于,所述确定所述多个日志分片中的每两个日志分片之间的距离,包括:

基于所述多个日志分片中的每个日志分片的局部敏感哈希码,确定所述多个日志分片中的每两个日志分片之间的距离。

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

基于所述多个日志分片中的每个日志分片的多个词条,确定所述多个日志分片中的每个日志分片的局部敏感哈希码。

4.根据权利要求3所述的方法,其特征在于,所述基于所述多个日志分片中的每个日志分片的多个词条,确定所述多个日志分片中的每个日志分片的局部敏感哈希码,包括:

将所述每个日志分片的多个词条进行去重处理得到词条集合;

基于所述每个日志分片对应的词条集合,确定所述每个日志分片的局部敏感哈希码。

5.根据权利要求4所述的方法,其特征在于,所述基于所述每个日志分片对应的词条集合,确定所述每个日志分片的局部敏感哈希码,包括:

计算所述每个日志分片对应的词条集合中所有词条的哈希码之和;

对所述每个日志分片对应的哈希码之和进行降维处理,得到所述每个日志分片的局部敏感哈希码。

6.根据权利要求1至5任一所述的方法,其特征在于,所述基于所述多个日志分片中的每两个日志分片之间的距离,确定所述多个日志分片中是否存在异常的日志分片,包括:

基于所述多个日志分片中的每两个日志分片之间的距离,确定所述多个日志分片中的每个日志分片的k-距离,所述多个日志分片中任一日志分片的k-距离为所述多个日志分片中距离所述任一日志分片第k近的日志分片与所述任一日志分片之间的距离,k为正整数,k小于g,所述g为所述多个日志分片的总数;

基于所述多个日志分片中的每个日志分片的k-距离,确定所述多个日志分片中是否存在异常的日志分片。

7.根据权利要求6所述的方法,其特征在于,所述基于所述多个日志分片中的每个日志分片的k-距离,确定所述多个日志分片中是否存在异常的日志分片,包括:

基于所述多个日志分片中每个日志分片的k-距离,确定目标取值范围[μ–3×σ,μ 3×σ],其中,所述μ为所述多个日志分片的k-距离的均值,所述σ为所述多个日志分片的k-距离的标准差,当所述多个日志分片中任一日志分片的k-距离不在所述目标取值范围[μ–3×σ,μ 3×σ]内时,确定所述任一日志分片为异常的日志分片;

或者,确定第一日志分片对应的目标取值范围[mu–3×sigma,mu 3×sigma],其中,所述第一日志分片为所述多个日志分片中的任一日志分片,所述mu为所述多个日志分片中除所述第一日志分片之外的日志分片的k-距离的均值,所述sigma为所述多个日志分片中除所述第一日志分片之外的日志分片的k-距离的标准差,当所述第一日志分片的k-距离不在所述目标取值范围[mu–3×sigma,mu 3×sigma]内时,确定所述第一日志分片为异常的日志分片;

或者,确定所述多个日志分片中每个日志分片对应的熵值,其中,任一日志分片对应的熵值为所述多个日志分片在移除所述任一日志分片后,剩余日志分片的k-距离的熵值,当获取的熵值中最大的熵值与最小的熵值的差值大于指定差值阈值时,将与所述最大的熵值对应的日志分片确定为异常的日志分片。

8.根据权利要求1至7任一所述的方法,其特征在于,不同所述日志分片包括相同行数的的日志记录;或者,不同所述日志分片包括相同数据量的日志记录。

9.一种日志异常检测装置,其特征在于,所述装置包括:

获取模块,用于获取日志的多个日志分片,所述多个日志分片中的每个日志分片包括所述日志中的多行日志记录;所述多个日志分片中不同的日志分片的至少一行日志记录不同;

第一确定模块,用于确定所述多个日志分片中的每两个日志分片之间的距离;

第二确定模块,用于基于所述多个日志分片中的每两个日志分片之间的距离,确定所述多个日志分片中是否存在异常的日志分片。

10.根据权利要求9所述的装置,其特征在于,所述第一确定模块,用于:

基于所述多个日志分片中的每个日志分片的局部敏感哈希码,确定所述多个日志分片中的每两个日志分片之间的距离。

11.根据权利要求10所述的装置,其特征在于,所述装置还包括:

第三确定模块,用于基于所述多个日志分片中的每个日志分片的多个词条,确定所述多个日志分片中的每个日志分片的局部敏感哈希码。

12.根据权利要求11所述的装置,其特征在于,所述第三确定模块,用于:

将所述每个日志分片的多个词条进行去重处理得到词条集合;

基于所述每个日志分片对应的词条集合,确定所述每个日志分片的局部敏感哈希码。

13.根据权利要求12所述的装置,其特征在于,所述第三确定模块,用于:

计算所述每个日志分片对应的词条集合中所有词条的哈希码之和;

对所述每个日志分片对应的哈希码之和进行降维处理,得到所述每个日志分片的局部敏感哈希码。

14.根据权利要求9至13任一所述的装置,其特征在于,所述第二确定模块,用于:

基于所述多个日志分片中的每两个日志分片之间的距离,确定所述多个日志分片中的每个日志分片的k-距离,所述多个日志分片中任一日志分片的k-距离为所述多个日志分片中距离所述任一日志分片第k近的日志分片与所述任一日志分片之间的距离,k为正整数,k小于g,所述g为所述多个日志分片的总数;

基于所述多个日志分片中的每个日志分片的k-距离,确定所述多个日志分片中是否存在异常的日志分片。

15.根据权利要求14所述的装置,其特征在于,所述第二确定模块,用于:

基于所述多个日志分片中每个日志分片的k-距离,确定目标取值范围[μ–3×σ,μ 3×σ],其中,所述μ为所述多个日志分片的k-距离的均值,所述σ为所述多个日志分片的k-距离的标准差,当所述多个日志分片中任一日志分片的k-距离不在所述目标取值范围[μ–3×σ,μ 3×σ]内时,确定所述任一日志分片为异常的日志分片;

或者,确定第一日志分片对应的目标取值范围[mu–3×sigma,mu 3×sigma],其中,所述第一日志分片为所述多个日志分片中的任一日志分片,所述mu为所述多个日志分片中除所述第一日志分片之外的日志分片的k-距离的均值,所述sigma为所述多个日志分片中除所述第一日志分片之外的日志分片的k-距离的标准差,当所述第一日志分片的k-距离不在所述目标取值范围[mu–3×sigma,mu 3×sigma]内时,确定所述第一日志分片为异常的日志分片;

或者,确定所述多个日志分片中每个日志分片对应的熵值,其中,任一日志分片对应的熵值为所述多个日志分片在移除所述任一日志分片后,剩余日志分片的k-距离的熵值,当获取的熵值中最大的熵值与最小的熵值的差值大于指定差值阈值时,将与所述最大的熵值对应的日志分片确定为异常的日志分片。

16.根据权利要求9至15任一所述的装置,其特征在于,不同所述日志分片包括相同行数的的日志记录;或者,不同所述日志分片包括相同数据量的日志记录。

17.一种计算机设备,其特征在于,包括处理器和存储器;

在所述处理器执行所述存储器存储的计算机指令时,所述计算机设备执行权利要求1至8任一所述的日志异常检测方法。

18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机指令,所述计算机指令指示计算机设备执行权利要求1至8任一所述的日志异常检测方法。

技术总结
本申请公开了一种日志异常检测方法及装置,属于计算机技术领域。所述方法包括:获取日志的多个日志分片,所述多个日志分片中的每个日志分片包括所述日志中的多行日志记录;所述多个日志分片中不同的日志分片的至少一行日志记录不同;确定所述多个日志分片中的每两个日志分片之间的距离;基于所述多个日志分片中的每两个日志分片之间的距离,确定所述多个日志分片中是否存在异常的日志分片。本申请解决了目前日志异常检测效率较低的问题,本申请应用于日志的异常检测。

技术研发人员:王琛
受保护的技术使用者:华为技术有限公司
技术研发日:2020.01.20
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-59058.html

最新回复(0)