一种日志检测方法、系统、设备及介质与流程

文档序号:24034567发布日期:2021-02-23 14:35阅读:84来源:国知局
一种日志检测方法、系统、设备及介质与流程

[0001]
本申请涉及人工智能(artificial intelligence,ai)技术领域,尤其涉及一种日志检测方法、系统、设备以及计算机可读存储介质。


背景技术:

[0002]
随着计算机技术的不断发展,对于日志进行异常检测的需求日益增加。所谓日志是用于记录发生在运行中的操作系统或其他软件系统中的事件的文件。日志对于了解复杂系统的活动轨迹至关重要,可以帮助使用者了解系统活动和诊断问题。
[0003]
日志的异常检测是指挖掘日志中不符合预期模式的数据。其应用场景十分广泛,例如可以应用于金融风控、网络安全等场景中。从海量日志中挖掘异常往往要耗费大量的人力和时间。为了提高检测效率,节约人力成本,业界引入了机器学习技术对日志进行异常检测。
[0004]
基于统计机器学习的检测方法通常是提取日志的事件计数矩阵作为模型的输入,模型根据该输入进行打分,当分值超过指定阈值,则模型将该日志则判定为异常。然而,这种日志检测方法的准确度较低。业界亟需提供一种准确度较高的日志检测方法。


技术实现要素:

[0005]
本申请提供了一种日志检测方法,该方法通过将日志文件转换为有向数据结构,以保留日志文件中事件的时间顺序信息,然后基于该有向数据结构进行日志检测,提高了检测准确度。本申请还提供了上述方法对应的系统、设备、计算机可读存储介质以及计算机程序产品。
[0006]
第一方面,本申请提供了一种日志检测方法。该方法可以由日志检测系统执行。该日志检测系统可以是具有日志异常检测功能的软件系统,该软件系统可以部署在服务器、路由器、交换机、基站等网络设备中。该日志检测系统也可以是具有日志异常检测功能的硬件系统。
[0007]
具体地,日志检测系统获取待检测的日志文件,然后根据日志文件获得至少一个有向数据结构,该有向数据结构例如可以是有向序列图、有向序列表或者有向序列文本等等,至少一个有向数据结构中的每个有向数据结构与一个事件序列对应,其中,事件序列包括来自于日志文件的多个事件,然后日志检测系统将至少一个有向数据结构输入日志检测模型,该日志检测模型能够对有向数据结构进行处理,从而确定日志文件是否异常。
[0008]
在该方法中,日志检测系统通过将日志文件转换为有向数据结构,有向数据结构是指具有方向的数据结构,其中,方向与该有向数据结构对应的事件序列中多个事件的时间顺序对应,例如,有向序列图中事件a与事件b之间的连边为由事件a指向事件b,则表征事件b在事件a之后发生,因此,有向数据结构保留有日志文件中事件的时间顺序信息,基于该有向数据结构对日志文件进行检测,具有较高准确度。
[0009]
在一些可能的实现方式中,有向数据结构携带多个事件的时间顺序信息,与基于
统计机器学习的检测方法相比,该方法考虑了日志文件中事件发生的时间顺序,因此,具有更高的检测准确度。
[0010]
在一些可能的实现方式中,有向数据结构可以是有向序列图、有向序列表或有向序列文本。日志检测系统可以根据实际需求将日志文件转换为对应的有向数据结构,采用与该有向数据结构的类型对应的日志检测模型进行日志检测。例如有向数据结构为有向序列图时,日志检测系统采用图模型进行日志检测。又例如有向数据结构为有向序列表文本时,日志检测系统采用文本模型进行日志检测。
[0011]
无论是有向序列图、有向序列表,或者是有向序列文本,均保留了日志文件中事件的时间顺序信息,因此,基于有向序列图、有向序列表或者是有向序列文本进行日志检测具有较高的准确度。
[0012]
在一些可能的实现方式中,日志检测系统根据有向序列图进行日志检测。该有向序列图包括多个节点。其中,多个节点中的至少一个节点还可以包括先验特征。该先验特征是日志文件所在领域的特有信息,例如是事件转换信息、事件发生信息。事件转换信息可以包括事件a发生后事件b发生的频次(或者是频率、概率)等等。
[0013]
通过在有向序列图中增加先验特征,例如将先验特征与节点的初始化特征进行拼接,如此可以保留较多信息,增强数据质量,为日志检测模型的预测提供帮助,进一步提高日志检测的准确度。并且,针对不同领域的日志文件,均可以通过有向序列图对相应领域的日志文件进行异常检测,因此,该方法具有通用性和可移植性。
[0014]
在一些可能的实现方式中,有向数据结构为有向序列图,日志检测系统可以根据日志检测模型获得至少一个有向序列图的下一连接节点集合,该下一连接节点集合包括所述日志检测模型预测的、下一连接节点的至少一个候选项,然后根据所述至少一个有向序列图的下一连接节点集合确定所述日志文件是否异常。
[0015]
在一些可能的实现方式中,所述有向数据结构为有向序列图,所述日志检测系统通过日志检测模型获取至少一个有向序列图的全局特征和局部特征,根据所述全局特征和所述局部特征,确定所述日志文件是否异常。
[0016]
其中,全局特征是根据有向序列图中各个节点的特征所得的特征,局部特征是有向序列图中局部节点的特征,例如是有向序列图中一个或多个节点的特征。考虑到日志检测模型用于预测有向序列图的下一连接节点,下一连接节点的近邻节点尤其是最近邻节点(具体是有向序列图的最后一个节点)对于下一连接节点的影响较大,因此日志检测模型可以获取最后一个节点的特征作为局部特征。
[0017]
日志检测模型基于有向序列图的全局特征和局部特征进行预测可以提高预测准确度,进而提高日志检测的准确度。
[0018]
在一些可能的实现方式中,所述日志检测模型包括图神经网络和基于注意力机制的序列嵌入网络,所述图神经网络用于提取所述至少一个有向序列图中节点的特征,所述序列嵌入网络用于确定所述节点的权重。
[0019]
其中,日志检测模型可以根据注意力自动确定各个节点的特征的权重,基于各个节点的特征以及权重可以确定较为准确的全局特征,如此,可以进一步提高预测准确度,进而提高日志检测的准确度。并且,日志检测模型通过图神经网络和序列化嵌入技术可以自动地从有向序列图这种图结构数据中提取特征,无需领域专家结合该领域的知识和经验人
工提取一些特征和规则,避免花费大量的时间成本和人力成本在特征工程上,提高了检测效率,降低了检测成本。进一步地,日志检测模型基于上述特征进行预测,可以实现端到端的异常检测,具有较高可用性。
[0020]
在一些可能的实现方式中,所述日志检测模型根据历史日志文件采用自监督方式训练得到。由于无需人工标注异常的样本数据,节省了标注所需的人力和时间,降低了日志检测的成本。
[0021]
在一些可能的实现方式中,所述日志检测模型为图模型,所述日志检测模型的训练样本包括历史有向序列图和自监督信息,所述历史有向序列图与所述历史日志文件的一个历史事件序列对应,所述自监督信息为所述历史事件序列的最后一个事件,所述历史有向序列图的每个节点分别对应所述最后一个事件之前的多个不重复事件。
[0022]
该方法采用事件序列的最后一个事件作为自监督信息,无需搜集异常的样本数据,也无需人工标注样本数据,由此实现自动构建样本数据,一方面节省了标注所需的人力和时间,降低了日志检测的成本,另一方面基于该自动构建的样本数据进行自监督学习,提高了日志检测模型训练的效率。
[0023]
在一些可能的实现方式中,日志检测系统还可以输出异常的事件序列。该异常的事件序列包括所述日志检测模型的预测结果与真实结果不匹配的事件序列。如此可以实现对日志文件进行异常定位,用户可以基于异常定位结果进行故障诊断或故障排除。
[0024]
在一些可能的实现方式中,日志文件中还包括敏感信息,如密码、电话号码、身份证号等等。考虑到隐私安全,日志检测系统还可以获取经过脱敏或加密处理的日志文件,作为待检测的日志文件。
[0025]
需要说明的是,日志检测系统在对经过加密处理的日志文件进行检测时,可以通过同态加密得到加密的检测结果,然后由用户对加密的检测结果进行解密,得到日志文件的检测结果。
[0026]
第二方面,本申请提供了一种日志检测方法。该方法可以由日志检测系统执行。该日志检测系统可以是具有日志异常检测功能的软件系统,该软件系统可以部署在终端等网络设备中。该日志检测系统也可以是具有日志异常检测功能的硬件系统。
[0027]
具体的,日志检测系统获取待检测的日志文件,当所述日志文件异常时,呈现异常的事件序列。其中,所述异常的事件序列是根据至少一个有向数据结构利用日志检测模型确定的,所述至少一个有向数据结构中的每个有向数据结构与所述日志文件的一个事件序列对应,所述日志文件的一个事件序列包括来自于所述日志文件的多个事件,所述异常的事件序列包括所述日志检测模的预测结果与真实结果不匹配的事件序列。
[0028]
在一些可能的实现方式中,有向数据结构携带所述多个事件的时间顺序信息。
[0029]
在一些可能的实现方式中,所述日志检测系统还根据所述日志文件获得至少一个有向数据结构,所述至少一个有向数据结构中的每个有向数据结构与一个事件序列对应,所述事件序列包括来自于所述日志文件的多个事件。
[0030]
在一些可能的实现方式中,所述日志检测系统还根据所述至少一个有向数据结构,利用日志检测模型确定所述日志文件是否异常。
[0031]
在一些可能的实现方式中,所述有向数据结构包括有向序列图、有向序列表或有向序列文本。
[0032]
在一些可能的实现方式中,有向数据结构为有向序列图,所述有向序列图包括多个节点,所述多个节点中的至少一个节点包括先验特征。
[0033]
在一些可能的实现方式中,有向数据结构为有向序列图,所述日志检测系统根据日志检测模型获得至少一个有向序列图的下一连接节点集合,所述下一连接节点集合包括所述日志检测模型预测的、下一连接节点的至少一个候选项,然后根据所述至少一个有向序列图的下一连接节点集合确定所述日志文件是否异常。
[0034]
在一些可能的实现方式中,有向数据结构为有向序列图,所述日志检测系统通过日志检测模型获取至少一个有向序列图的全局特征和局部特征,根据所述全局特征和所述局部特征,确定所述日志文件是否异常。
[0035]
在一些可能的实现方式中,所述日志检测模型包括图神经网络和基于注意力机制的序列嵌入网络,所述图神经网络用于提取所述至少一个有向序列图中节点的特征,所述序列嵌入网络用于确定所述节点的权重。
[0036]
在一些可能的实现方式中,所述日志检测模型根据历史日志文件采用自监督方式训练得到。
[0037]
在一些可能的实现方式中,所述日志检测模型为图模型,所述日志检测模型的训练样本包括历史有向序列图和自监督信息,所述历史有向序列图与所述历史日志文件的一个历史事件序列对应,所述自监督信息为所述历史事件序列的最后一个事件,所述历史有向序列图的每个节点分别对应所述最后一个事件之前的多个不重复事件。
[0038]
在一些可能的实现方式中,所述待检测的日志文件包括经过脱敏或加密处理的日志文件。
[0039]
第三方面,本申请提供了一种日志检测系统。所述系统包括:
[0040]
通信模块,用于获取待检测的日志文件;
[0041]
构建模块,用于根据所述日志文件获得至少一个有向数据结构,所述至少一个有向数据结构中的每个有向数据结构与一个事件序列对应,所述事件序列包括来自于所述日志文件的多个事件;
[0042]
检测模块,用于根据所述至少一个有向数据结构,利用日志检测模型确定所述日志文件是否异常。
[0043]
在一些可能的实现方式中,所述有向数据结构携带所述多个事件的时间顺序信息。
[0044]
在一些可能的实现方式中,所述有向数据结构包括有向序列图、有向序列表或有向序列文本。
[0045]
在一些可能的实现方式中,所述有向数据结构为有向序列图,所述有向序列图包括多个节点,所述多个节点中的至少一个节点包括先验特征。
[0046]
在一些可能的实现方式中,所述有向数据结构为有向序列图,所述检测模块具体用于:
[0047]
根据日志检测模型获得至少一个有向序列图的下一连接节点集合,所述下一连接节点集合包括所述日志检测模型预测的、下一连接节点的至少一个候选项;
[0048]
根据所述至少一个有向序列图的下一连接节点集合确定所述日志文件是否异常。
[0049]
在一些可能的实现方式中,所述有向数据结构为有向序列图,所述检测模块具体
用于:
[0050]
通过日志检测模型获取至少一个有向序列图的全局特征和局部特征;
[0051]
根据所述全局特征和所述局部特征,确定所述日志文件是否异常。
[0052]
在一些可能的实现方式中,所述日志检测模型包括图神经网络和基于注意力机制的序列嵌入网络,所述图神经网络用于提取所述至少一个有向序列图中节点的特征,所述序列嵌入网络用于确定所述节点的权重。
[0053]
在一些可能的实现方式中,所述日志检测模型根据历史日志文件采用自监督方式训练得到。
[0054]
在一些可能的实现方式中,所述日志检测模型为图模型,所述日志检测模型的训练样本包括历史有向序列图和自监督信息,所述历史有向序列图与所述历史日志文件的一个历史事件序列对应,所述自监督信息为所述历史事件序列的最后一个事件,所述历史有向序列图的每个节点分别对应所述最后一个事件之前的多个不重复事件。
[0055]
在一些可能的实现方式中,所述通信模块还用于:
[0056]
输出异常的事件序列,所述异常的事件序列包括所述日志检测模型的预测结果与真实结果不匹配的事件序列。
[0057]
在一些可能的实现方式中,所述待检测的日志文件包括经过脱敏或加密处理的日志文件。
[0058]
第四方面,本申请提供了一种日志检测系统。所述系统包括:
[0059]
通信模块,用于获取待检测的日志文件;
[0060]
显示模块,用于当所述日志文件异常时,呈现异常的事件序列,所述异常的事件序列是根据至少一个有向数据结构利用日志检测模型确定的,所述至少一个有向数据结构中的每个有向数据结构与所述日志文件的一个事件序列对应,所述日志文件的一个事件序列包括来自于所述日志文件的多个事件,所述异常的事件序列包括所述日志检测模的预测结果与真实结果不匹配的事件序列。
[0061]
在一些可能的实现方式中,有向数据结构携带所述多个事件的时间顺序信息。
[0062]
在一些可能的实现方式中,所述系统还包括:
[0063]
构建模块,用于根据所述日志文件获得至少一个有向数据结构,所述至少一个有向数据结构中的每个有向数据结构与一个事件序列对应,所述事件序列包括来自于所述日志文件的多个事件。
[0064]
在一些可能的实现方式中,所述系统还包括:
[0065]
检测模块,用于根据所述至少一个有向数据结构,利用日志检测模型确定所述日志文件是否异常。
[0066]
在一些可能的实现方式中,所述有向数据结构包括有向序列图、有向序列表或有向序列文本。
[0067]
在一些可能的实现方式中,有向数据结构为有向序列图,所述有向序列图包括多个节点,所述多个节点中的至少一个节点包括先验特征。
[0068]
在一些可能的实现方式中,有向数据结构为有向序列图,检测模块具体用于:
[0069]
根据日志检测模型获得至少一个有向序列图的下一连接节点集合,所述下一连接节点集合包括所述日志检测模型预测的、下一连接节点的至少一个候选项;
[0070]
根据所述至少一个有向序列图的下一连接节点集合确定所述日志文件是否异常。
[0071]
在一些可能的实现方式中,有向数据结构为有向序列图,检测模块具体用于:
[0072]
通过日志检测模型获取至少一个有向序列图的全局特征和局部特征;
[0073]
根据所述全局特征和所述局部特征,确定所述日志文件是否异常。
[0074]
在一些可能的实现方式中,所述日志检测模型包括图神经网络和基于注意力机制的序列嵌入网络,所述图神经网络用于提取所述至少一个有向序列图中节点的特征,所述序列嵌入网络用于确定所述节点的权重。
[0075]
在一些可能的实现方式中,所述日志检测模型根据历史日志文件采用自监督方式训练得到。
[0076]
在一些可能的实现方式中,所述日志检测模型为图模型,所述日志检测模型的训练样本包括历史有向序列图和自监督信息,所述历史有向序列图与所述历史日志文件的一个历史事件序列对应,所述自监督信息为所述历史事件序列的最后一个事件,所述历史有向序列图的每个节点分别对应所述最后一个事件之前的多个不重复事件。
[0077]
在一些可能的实现方式中,所述待检测的日志文件包括经过脱敏或加密处理的日志文件。
[0078]
第五方面,本申请提供一种设备,所述设备包括处理器和存储器。所述处理器、所述存储器进行相互的通信。所述处理器用于执行所述存储器中存储的指令,以使得设备执行如第一方面或第二方面的任一种实现方式中的方法。
[0079]
第六方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示设备执行上述第一方面或第二方面的任一种实现方式所述的方法。
[0080]
第七方面,本申请提供了一种包含指令的计算机程序产品,当其在设备上运行时,使得设备执行上述第一方面或第二方面的任一种实现方式所述的方法。
[0081]
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
[0082]
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
[0083]
图1为本申请实施例提供的一种日志检测方法的应用场景图;
[0084]
图2为本申请实施例提供的一种日志检测设备的结构示意图;
[0085]
图3为本申请实施例提供的一种日志检测方法的流程图;
[0086]
图4为本申请实施例提供的一种有向序列图及其邻接矩阵的示意图;
[0087]
图5为本申请实施例提供的一种日志检测方法的流程图;
[0088]
图6为本申请实施例提供的一种日志检测模型的训练方法的流程示意图;
[0089]
图7为本申请实施例提供的一种提取节点的特征的流程示意图;
[0090]
图8为本申请实施例提供的一种日志检测系统的结构示意图;
[0091]
图9为本申请实施例提供的一种日志检测系统的结构示意图。
具体实施方式
[0092]
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
[0093]
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
[0094]
在计算机领域,日志文件(logfile)是一个记录了发生在运行中的操作系统或其他软件系统中的事件的文件。基于此,日志文件也可以称之为事件日志(event logs)。事件日志记录有系统(例如是操作系统或软件系统)运行期间发生的事件,它对于了解复杂系统的活动轨迹至关重要,可以帮助使用者了解系统活动以及帮助使用者进行故障诊断。
[0095]
异常检测(anomaly detection)是指挖掘数据集中不符合预期模式数据的一类任务。对日志文件进行异常检测即是挖掘日志文件中不符合预期模式的事件,由此,可以实现对操作系统或软件系统的故障诊断,帮助运维人员或领域专家快速排除故障原因,并进行故障恢复。
[0096]
日志文件通常记录了大量的事件,因此,日志文件的数据量通常比较庞大。从海量日志文件中挖掘异常往往要耗费大量的人力和时间。为了提高检测效率,节约人力成本,业界引入了机器学习技术对日志文件进行异常检测。
[0097]
基于统计机器学习的检测方法通常是提取日志序列的事件计数矩阵作为模型的输入,模型根据事件计数矩阵进行打分,当分值超过指定阈值,则模型将该日志判定为异常。然而该方法忽略了日志事件发生的时间顺序信息,由此影响了检测准确度。
[0098]
有鉴于此,本申请实施例提供了一种日志检测方法。该日志检测方法可以由日志检测系统执行。日志检测系统可以是具有日志异常检测功能的软件系统,该软件系统可以部署在网络设备中。网络设备包括服务器、路由器、交换机、基站或者是终端等设备,其中,终端包括但不限于台式机、笔记本电脑、平板电脑和智能手机。在一些可能的实现方式中,日志检测系统也可以部署在多个设备形成的集群中,例如部署在多个服务器形成的计算集群中。需要说明,日志检测系统也可以是具有日志检测功能的硬件系统。为了便于描述,本申请实施例以日志检测系统为部署在计算机设备或者计算机集群上的软件系统进行示例说明。
[0099]
具体地,日志检测系统获取待检测的日志文件,然后根据日志文件获得至少一个有向数据结构,该有向数据结构例如可以是有向序列图、有向序列表或者有向序列文本等等,至少一个有向数据结构中的每个有向数据结构与一个事件序列对应,其中,事件序列包括来自于日志文件的多个事件,然后日志检测系统将至少一个有向数据结构输入日志检测模型,该日志检测模型能够对有向数据结构进行处理,从而确定日志文件是否异常。
[0100]
在该方法中,日志检测系统通过将日志文件转换为有向数据结构,例如是有向序列图、有向序列表或有向序列文本等有向数据结构,有向数据结构是指具有方向的数据结构,其中,方向与该有向数据结构对应的事件序列中多个事件的时间顺序对应,例如,有向序列图中事件a与事件b之间的连边为由事件a指向事件b,则表征事件b在事件a之后发生,因此,有向数据结构保留有日志文件中事件的时间顺序信息,基于该有向数据结构对日志文件进行检测,具有较高准确度。
[0101]
而且,有向数据结构为有向序列图时,日志检测模型为图模型,该日志检测模型通
过图神经网络和序列化嵌入技术可以自动地从有向序列图这种图结构数据中提取特征,无需领域专家结合该领域的知识和经验人工提取一些特征和规则,避免花费大量的时间成本和人力成本在特征工程上,提高了检测效率,降低了检测成本。而且,通过图神经网络和序列化嵌入技术进行自动地特征提取,并基于提取的特征进行预测,由此实现了端到端的异常检测,具有较高可用性。
[0102]
进一步地,针对不同领域的日志文件,通过在有向序列图中保留相应领域的先验特征,一方面可以提高预测准确度,进而提高异常检测准确度,另一方面可以实现基于有向序列图对相应领域的日志文件进行异常检测,因此,该方法具有通用性和可移植性。
[0103]
进一步地,日志检测模型主要用于预测有向序列图的下一连接节点集合。该下一连接节点集合包括下一连接节点的至少一个候选项,每一个候选项对应下一事件的一种可能。日志检测系统可以基于日志检测模型预测的下一连接节点的至少一个候选项对应的下一事件,以及真实发生的下一事件,确定日志文件是否异常。例如,真实发生的下一事件不在日志检测模型预测的下一连接节点的至少一个候选项对应的下一事件中时,日志检测系统可以确定日志文件异常。基于此,日志检测模型可以基于历史日志文件的历史事件序列通过自监督学习建模,无需进行标注,节省了标注所需的人力和时间。
[0104]
本申请实施例提供的日志检测方法可以应用于多种场景。例如日志检测方法可以应用于用户行为异常分析,或者应用于网络入侵检测,又或者应用于系统故障定位。本申请实施例提供的日志检测方法可以以云服务或封装的软件包提供给用户使用。
[0105]
在一些可能的实现方式中,本申请实施例提供的日志检测方法可集成到公有云作为一项服务对外发布。当该日志检测方法集成到公有云作为一项服务对外发布,还可以对用户上传数据进行保护。例如对于系统日志,可以要求用户上传的日志文件已事先对事件进行加密(例如用事件id代替事件),如果是用户行为日志,则可以要求对用户个人信息进行加密,这样能够在保证信息安全的前提下方便用户使用。在一些实施例中,日志检测方法也可以集成到私有云,作为一项服务对内使用。当日志检测方法集成到私有云时,可以根据实际需要确定是否对用户上传数据进行保护。在另一些实施例中,日志检测方法还可以集成到混合云。其中,混合云是指包括至少一个公有云和至少一个私有云的架构。
[0106]
当日志检测方法以服务的方式提供给用户使用时,该服务可以提供应用程序编程接口(application programming interface,api)和/或用户界面(也称作用户接口)。其中,用户界面可以是图形用户界面(graphical user interface)或者是命令用户界面(command user interface,cui)。如此,操作系统或软件系统等业务系统可以直接调用该服务提供的api进行日志文件的异常检测,或者是服务通过gui或cui接收用户输入的日志文件,对日志文件进行异常检测。
[0107]
在另一些可能的实现方式中,本申请实施例提供的日志检测方法可以封装成软件包出售,用户购买软件包后可在该用户的运行环境下安装使用。当然,上述软件包也可以预安装在网络设备,如安装在路由器、基站等设备中,用户购买预安装软件包的设备,并使用该设备,实现日志文件的异常检测。
[0108]
为了便于理解,下面以用户行为异常分析场景下,通过服务对用户行为日志进行检测的过程进行示例说明。
[0109]
参见图1所示的系统架构示意图,如图1所示,终端102与业务服务器104连接,该业
memory),也例如只读存储器(read-only memory,rom),快闪存储器,硬盘驱动器(hard disk drive,hdd)或固态硬盘驱动器(solid state drive,ssd)。其中,ram、rom称为内存,hdd、ssd称为外存。
[0120]
存储器1064中存储有程序或指令,例如实现本申请实施例提供的日志检测方法所需的程序或指令。处理器1062执行该程序或指令以执行前述日志检测方法。
[0121]
为了使得本申请的技术方案更加清楚、易于理解,下面结合附图对本申请实施例提供的日志检测方法进行详细介绍。
[0122]
参见图3所示的日志检测方法的流程图,该方法包括:
[0123]
s302:日志检测系统获取待检测的日志文件。
[0124]
该日志文件具体记录系统(如操作系统或软件系统)运行过程中发生的事件的文件。具体地,日志文件中包括事件。在数据库应用中,该事件可以是修改、新增、删除等等。进一步地,日志文件中还可以包括事件发生的时间以及事件关联对象的标识(identity,id)。其中,事件关联对象的标识可以包括用户标识和设备标识中的至少一种。
[0125]
用户标识可以是用户注册的账号、用户的身份证号等唯一性标识,设备标识可以是国际移动设备身份码(international mobile equipment identity,imei)、唯一设备标识码(unique device identifier,udid)或者是媒体存取控制位址(media access control address,mac address),本申请实施例对此不作限定。
[0126]
在一些可能的实现方式中,日志文件中还包括敏感信息,如密码、电话号码、身份证号等等。考虑到隐私安全,日志检测系统还可以获取经过脱敏处理的日志文件,作为待检测的日志文件。
[0127]
在另一些可能的实现方式中,日志检测系统还可以获取经过加密处理的日志文件,作为待检测的日志文件。相应地,日志检测系统在对经过加密处理的日志文件进行检测时,可以通过同态加密(homomorphic encryption)得到加密的检测结果,然后由用户对加密的检测结果进行解密,得到日志文件的检测结果。
[0128]
s304:日志检测系统根据日志文件获得至少一个有向序列图。
[0129]
日志文件一般为文本类型。基于此,日志检测系统可以通过文本抽取等方式从日志文件中抽取事件,例如通过预先设置的事件模板从日志文件中抽取相似的记录,将该相似的记录抽象为统一的事件,然后根据抽取的事件进行构图。
[0130]
其中,日志检测系统可以根据抽取的事件生成至少一个事件序列,例如将事件按照预设规则聚合为至少一个事件序列,该事件序列包括来自于日志文件的多个事件。然后日志检测系统根据至少一个事件序列构建至少一个有向序列图。其中,至少一个有向序列图中的每个有向序列图与一个事件序列对应。有向序列图中的方向表征事件发生的时间顺序信息。例如,有向序列图中包括由事件a指向事件b的连边时,表征事件b在事件a之后发生。
[0131]
需要说明的是,有向序列图包括多个节点,有向序列图的多个节点分别与事件序列的最后一个事件之前的不重复事件一一对应。例如,事件序列可以包括n+1个事件,有向序列图的多个节点分别与事件序列的前n个事件中不重复的事件一一对应,当前n个事件不重复时,有向序列图可以包括n个节点,有向序列图的n个节点分别与事件序列的前n个事件一一对应。由于日志检测系统生成事件序列时,并未改变事件的时间顺序,因此,事件序列
中保留了事件的时间顺序信息。有向序列图是根据事件序列构建的有向图,因而也保留了事件的时间顺序信息。
[0132]
在一些可能的实现方式中,预设规则可以是按照预设的窗口大小(window size,记作w)将事件聚合为至少一个事件序列。进一步地,预设规则中还可以包括事件聚合的步长(step,记作s)。如此,日志检测系统可以根据窗口大小w和步长s对事件进行聚合,得到至少一个事件序列。
[0133]
根据窗口大小w和步长s的大小关系,聚合方式可以分为固定窗口聚合和滑动窗口聚合。具体地,w等于s时,聚合方式为固定窗口聚合,w不等于s时,聚合方式为滑动窗口聚合。
[0134]
另一些可能的实现方式中,考虑到某些日志文件中包括不同用户或不同设备对应的事件,日志检测系统还可以根据标识如用户标识、设备标识对不同用户或不同设备的事件进行聚合。一个用户或者一个设备对应的事件可以生成一个事件序列。
[0135]
考虑到序列长度,日志检测系统可以将在筛选用户或设备对应的事件后,通过固定窗口聚合或者滑动窗口聚合,获得至少一个事件序列。
[0136]
需要说明的是,日志检测系统聚合得到多个事件序列时,这多个事件序列的长度可以相等,也可以不相等。例如,日志文件中包括1024个事件,日志检测系统按照窗口大小为10,步长为10进行聚合时,可以得到103个事件序列。其中,前102个事件序列的长度均为10,第103个事件序列的长度为4。为了便于对事件序列进行批处理,提高日志文件的检测效率,日志检测系统还可以对长度较小的事件序列,例如上述第103个事件序列进行补齐,例如通过补零的方式进行补齐。
[0137]
对于每一个事件序列,日志检测系统可以根据该事件序列的最后一个事件之前的事件构造有向序列图。具体地,日志检测系统可以根据事件序列的最后一个事件之前的事件构造节点。其中,相同事件对应一个节点,不同事件对应不同节点,不同节点可以通过事件标识进行区分,然后日志检测系统按照事件的时间顺序连接各节点,从而得到该事件序列对应的有向序列图。该有向序列图中包括多个节点以及至少一个连边,有向序列图通过有向的连边保留了事件的时间时序信息。
[0138]
其中,有向序列图可以作为日志检测模型的输入,事件序列的最后一个事件可以作为该有向序列图的标签。需要说明的是,对于补齐的事件序列,日志检测系统可以根据补齐之前的事件序列的最后一个事件作为有向序列图的标签。
[0139]
例如,对于一个事件序列{4,12,7,6,7},该事件序列中的不同数字代表不同事件,日志检测系统可以将其分为输入序列{4,12,7,6}以及对应的标签“7”,然后根据输入序列{4,12,7,6}构建有向序列图。
[0140]
在一些可能的实现方式中,日志检测系统还可以对节点进行初始化,例如是对节点进行随机初始化,得到初始化特征。其中,随机初始化可以包括高斯随机化、均匀随机化等初始化方式。
[0141]
在一些可能的实现方式中,日志检测系统还可以获取有向序列图中至少一个节点的先验特征。该先验特征可以是日志文件所在领域的特有信息,例如是事件转换信息、事件发生信息。事件转换信息可以包括事件a发生后事件b发生的频次(或者是频率、概率)等等。在一些实施例中,日志检测系统也可以利用该先验特征对有向序列图的节点进行初始化。
当然,日志检测系统也可以通过其他方式对节点进行初始化后,将先验特征与初始化特征拼接,以保留较多信息,增强数据质量,为模型预测提供帮助。
[0142]
由于事件序列中可能存在一些重复出现的事件,为此,日志检测系统还可以基于事件重复出现的次数,为有向序列图中的连边设定权重。具体地,日志检测系统可以将一条连边出现的次数与该连边的初始节点所关联的节点个数的比值,设置为该连边的权重。其中,初始节点是指一条连边关联的节点中在先发生的事件所对应的节点。当然,日志检测系统也可以将一条连边出现的次数与该有向序列图中所有连边的个数的比值,设置为该连边的权重。
[0143]
进一步地,日志检测系统还可以计算有向序列图的邻接矩阵(adjacency matrix)。邻接矩阵是表示有向序列图的节点之间相邻关系的矩阵。具体地,该邻接矩阵可以包括输入邻接矩阵和输出邻接矩阵中的至少一种。
[0144]
为了便于理解,本申请还提供了一具体示例,对邻接矩阵进行示例说明。如图4所示,事件序列{1,2,3,2,4}的有向序列图为包括1、2、3、4四个节点以及1-2、2-3、3-2、2-4四条连边在内的有向图,该有向序列图对应的输入邻接矩阵和输出连接矩阵为4*4矩阵。
[0145]
需要说明的是,日志检测系统在计算有向序列图的邻接矩阵时,还可以结合连边的权重确定邻接矩阵中元素的值,由此可以使得邻接矩阵更符合有向序列图。
[0146]
对于一个事件序列s={v
s,1
,v
s,2
,

,v
s,n
},其中v
s,i
表示一个事件(v
s,i
∈v,v表示所有事件的集合)。日志检测系统可以通过上述处理,得到一张有向序列图有向序列图中每个节点v
s,i
对应一个事件,每条连边(v
s,i-1
,v
s,i
)按照事件发生的时间顺序连接,其邻接矩阵包括输入邻接矩阵和输出邻接矩阵两部分,分别用a
in
和a
out
表示,最终的邻接矩阵a=[a
in
,a
out
]。有向序列图中节点还包括初始化特征,记作v∈v。
[0147]
在一些可能的实现方式中,日志检测系统还记录事件序列的位置信息,如上述事件序列{4,12,7,6,7}的位置信息可以是(0,1,2,3,2),以便后续按照事件发生的时间顺序和次数还原事件序列。
[0148]
还需要说明的是,一些日志文件包括事件库,日志检测系统可以直接基于事件库获得日志文件中的事件,对该事件进行聚合得到至少一个事件序列,无需执行事件抽取等步骤,提高了构图效率。
[0149]
s306:日志检测系统根据至少一个有向序列图,利用日志检测模型确定日志文件是否异常。
[0150]
日志检测模型可以是一种以有向序列图为输入,以有向序列图的下一连接节点集合为输出的模型。该模型可以通过图神经网络(graph neural network)训练得到。其中,图神经网络是一种用于处理图结构数据的、基于深度学习方法的前馈神经网络。
[0151]
具体地,日志检测模型可以通过门控图神经网络(gated graph neural networks,gg-nns)、基于注意力的图神经网络(attention-based graph neural networks,ag-nns)或者卷积图神经网络(convolutional graph neural networks,cg-nns)中的任意一种图神经网络训练得到。为了便于描述,后文以gg-nns进行示例说明。
[0152]
在有向序列图通过图神经网络如gg-nns后,日志检测模型学习到节点的特征h
v
,v∈v,对于有向序列图日志检测模型可以获取整个有向序列图的特征以进行下一连接节点的预测。具体地,日志检测模型可以聚合所有节点的特征,如取最大值,均值等等,从而得
到整个有向序列图的特征。
[0153]
进一步地,有向序列图中不同节点的重要性可以是不同的,为此,日志检测模型还可以引入基于注意力机制(如软性注意力soft attention或者自注意力self-attention)的序列嵌入网络,自动判断节点的重要性,并根据该重要性确定整个有向序列图的特征。整个有向序列图的特征可以包括有向序列图的全局特征和有向序列图的局部特征中的至少一种。其中,有向序列图的局部特征可以是最近邻节点的特征,例如是有向序列图的最后一个节点的特征。
[0154]
在通过特征提取层(如包括图卷积神经网络和基于注意力集中的序列嵌入网络的特征提取层)获得整个有向序列图的特征后,日志检测模型还可以将有向序列图的特征输入预测层,从而得到有向序列图的下一连接节点集合。该下一连接节点集合包括日志检测模型预测的、下一连接节点的候选项。
[0155]
日志检测系统可以根据至少一个有向序列图的下一连接节点集合确定日志文件是否包含异常序列。具体地,日志检测系统可以根据有向序列图的标签,确定真实发生的下一事件(如有向序列图的标签对应的事件)是否在下一连接节点的候选项对应的事件中,若否,则表明日志检测模型的预测结果与真实结果不匹配,日志检测模型可以判定该事件序列为异常的事件序列。日志检测系统可以通过确定日志文件是否包含异常的事件序列,从而确定日志文件是否异常。
[0156]
在一些实施例中,日志检测系统也可以针对一个事件序列预测多次,具体可以是对该事件序列以及事件序列的子序列进行预测。例如对于一个长度为10的事件序列,可以基于前9个事件预测第10个事件,以及基于前8个事件预测第9个事件,基于前7个事件预测第8个事件。基于此,日志检测系统还可以记录日志检测模型对每个事件序列判定为异常的事件序列的次数,当某个事件序列被判定为异常序列的次数超过预设阈值,则确定该事件序列异常。
[0157]
需要说明的是,日志检测系统还可以记录日志文件中异常的事件序列的个数,当该个数达到预设个数时,则确定日志文件异常。在一些可能的实现方式中,日志检测系统还可以输出异常的事件序列,从而实现异常定位。
[0158]
基于上述内容描述,本申请实施例提供了一种日志检测方法。在该方法中,日志检测系统通过将日志文件转换为有向序列图等有向数据结构,由于有向数据结构可以保留日志文件中事件的时间顺序信息,因此,基于该有向序列图等有向数据结构对日志文件进行检测,具有较高准确度。
[0159]
图3所示实施例主要是从日志检测系统部署在服务器、路由器等网络设备的角度对本申请实施例提供的日志检测方法进行介绍。在一些可能的实现方式中,日志检测系统还可以部署在终端等网络设备中,由终端实施日志检测方法,对日志文件进行异常检测。
[0160]
参见图5所示的日志检测方法的流程图,该方法包括:
[0161]
s502:日志检测系统获取待检测的日志文件。
[0162]
日志检测系统部署在终端中,终端上的操作系统在运行过程中可以产生系统日志,终端上的其他软件系统,如浏览器、邮件系统等在运行过程中可以产生用户行为日志,日志检测系统可以从终端获取操作系统运行过程中产生的系统日志,或者是软件系统运行过程中产生的用户行为日志,得到待检测的日志文件。
[0163]
在一些可能的实现方式中,日志检测系统可以按照预设周期扫描终端存储的日志文件,当扫描到操作系统或其他软件系统的日志文件在当前周期更新时,则可以获取更新后的日志文件进行异常检测。
[0164]
在另一些可能的实现方式中,日志检测系统也可以根据用户触发的检测操作,获取相应的日志文件进行异常检测。具体地,日志检测系统可以提供用户界面,如提供gui或cui,然后通过gui或cui接收用户输入的、待检测的日志文件的存储路径,根据该存储路径获取待检测的日志文件。
[0165]
s504:日志检测系统根据日志文件获得至少一个有向序列图。
[0166]
具体地,日志检测系统可以通过文本抽取等方式,从日志文件中抽取事件,然后将事件按照预设规则进行聚合,得到至少一个事件序列。接着,日志检测系统根据至少一个事件序列进行构图,得到至少一个有向序列图。其中,至少一个有向序列图中的每一个有向序列图与一个事件序列对应。
[0167]
日志检测模型构建有向序列图的过程可以参见s304相关内容描述,在此不再赘述。
[0168]
s506:日志检测系统根据至少一个有向序列图,利用日志检测模型确定日志文件是否异常。
[0169]
日志检测模型具体可以是图模型,该图模型可以用于预测有向序列图的下一连接节点集合。其中,下一连接节点集合包括日志检测模型预测的、下一连接节点的至少一个候选项。基于此,日志检测系统可以根据至少一个有向序列图,利用日志检测模型确定至少一个有向序列图的下一连接节点集合,然后根据至少一个有向序列图的下一连接节点集合确定日志文件是否异常。
[0170]
其中,日志检测系统利用日志检测模型预测有向序列图的下一连接节点集合以及日志检测系统根据有向序列图的下一连接节点集合确定日志文件是否异常的具体实现可以参见s506相关内容描述,本申请实施例在此不再赘述。
[0171]
s508:日志检测系统确定日志文件异常时,呈现异常的事件序列。
[0172]
异常的事件序列是指日志检测模型的预测结果与真实结果不匹配的事件序列。日志检测系统根据日志检测模型确定日志文件的至少一个事件序列异常时,则表明日志文件异常,日志检测系统可以输出异常的事件序列,从而实现异常定位。
[0173]
其中,日志检测系统可以根据有向序列图的标签,确定真实发生的下一事件(如有向序列图的标签对应的事件)是否在下一连接节点的候选项对应的事件中,若否,则表明日志检测模型的预测结果与真实结果不匹配,日志检测模型可以判定该事件序列为异常的事件序列。
[0174]
在一些实施例中,日志检测系统也可以针对一个事件序列预测多次,具体可以是对该事件序列以及事件序列的子序列进行预测。例如对于一个长度为10的事件序列,可以基于前9个事件预测第10个事件,以及基于前8个事件预测第9个事件,基于前7个事件预测第8个事件。基于此,日志检测系统还可以记录日志检测模型对每个事件序列判定为异常的事件序列的次数,当某个事件序列被判定为异常序列的次数超过预设阈值,则确定该事件序列异常。
[0175]
日志检测系统可以输出上述被判定为异常的事件序列。具体地,日志检测系统可
以通过异常文件的方式输出异常的事件序列。进一步地,日志检测系统还可以呈现异常的事件序列,例如通过gui向用户呈现异常的事件序列。如此,用户可以根据日志检测系统异常的事件序列进行故障诊断、故障排除。
[0176]
需要说明的是,上述s504、s506也可以由其他设备例如由服务器执行,终端执行上述s502和s508。本申请实施例对此不作限定。
[0177]
在图3或图5所示实施例中,日志检测系统对日志文件进行检测依靠日志检测模型。基于此,本申请实施例还提供了日志检测模型的训练方法。下面结合附图进行详细说明。
[0178]
参见图6所示的日志检测模型的训练方法的流程示意图,如图6所示,日志检测系统可以获取日志文件,该日志文件可以是历史日志文件,然后日志检测系统可以从日志文件中抽取事件,接着根据抽取的事件进行聚合得到至少一个历史事件序列,具体实现过程可以参见模型推理过程中相关内容描述。
[0179]
针对任意一个历史事件序列,日志检测系统可以将历史事件序列中最后一个事件之前的事件构建历史有向序列图,将历史事件序列中最后一个事件作为自监督信息,得到样本数据。进一步地,该样本数据可以按照预设比例(例如是7:2:1)划分至训练集、验证集和测试集。其中,训练集用于模型训练阶段更新参数,验证集用于选择最优模型,测试集用于模拟告警预测,以及输出模型评价指标。
[0180]
在进行模型训练时,日志检测系统可以构建初始模型,例如根据gg-nns和基于注意力的序列嵌入网络构建初始模型,然后进行模型训练。在进行模型训练时,日志检测系统可以将样本数据例如训练集中的样本数据(即训练样本),输入初始模型,采用自监督方式进行模型训练。
[0181]
其中,日志检测系统进行模型训练的过程具体是,通过gg-nns提取节点的特征,接着通过基于注意力的序列嵌入网络确定各节点的注意力,根据该注意力获得各节点的权重,基于各节点的特征和权重可以获得有向序列图的全局特征。日志检测模型可以用于预测有向序列图的下一连接节点,而下一连接节点通常与近邻节点尤其是最近邻(nearest neighbor)节点相关性较高,因此,日志检测系统还可以获取下一连接节点的最近邻节点的特征,如有向序列图中最后一个节点的特征等局部特征。日志检测系统可以根据有向序列图的全局特征和局部特征,获得有向序列图的特征。日志检测系统可以将有向序列图的特征输入预测层,得到下一连接节点的评分基于该评分可以确定下一连接节点集合。其中,下一连接节点集合包括下一连接节点的至少一个候选项,该候选项可以是评分大于预设分值的节点。
[0182]
具体地,gg-nns模型采用了门控循环单元(gated recurrent units,gru)机制,并使用基于时间的反向传播(backpropagation through time,bptt)方法计算更新梯度。为了便于理解,下面结合gg-nns的结构对gg-nns提取特征的过程进行说明。
[0183]
参见图7所示的gg-nns提取节点的特征的流程示意图,如图7所示,gg-nns包括t层,每层包括n个gru。对于有向序列图中的节点v
s,i
,首先聚合与v
s,i
相邻的节点的信息,具体是通过传递公式传递相邻节点的信息。另外,有向序列图的邻接矩阵包括输入连接矩阵和输出连接矩阵,因此,gg-nns可以通过如下公式进行双向地信息传递:
[0184][0185]
其中,t表征在gg-nns中的层数,t可以取值为1至t中的任意整数。表示第t-1层节点v
s,i
的特征。表示有向序列图的输入邻接矩阵中节点v
s,i
对应的向量(矩阵的第i行),表示有向序列图的输出邻接矩阵中节点v
s,i
对应的向量(矩阵的第i行)。是中间态,合并了输入邻接矩阵、输出邻接矩阵和节点第t-1步的特征,用于下一步计算。b
in
和b
out
是邻接矩阵对应偏置项权重(bias weight),可以在模型训练过程中自动学习得到。
[0186]
在通过上述公式完成信息传递后,gg-nns可以通过gru更新节点表示,从而获得节点的特征,如下所示:
[0187][0188][0189][0190][0191]
其中,表示重置门,重置门控制了上一时间步的隐藏状态如何流入当前时间步的候选隐藏状态,可以用来丢弃与预测无关的历史信息,重置门有助于捕捉时间序列里短期的依赖关系。表示候选隐藏状态,由重置门决定,如果重置门中元素值接近0,那么意味着重置对应隐藏状态元素为0,即丢弃上一时间步的隐藏状态。如果元素值接近1,那么表示保留上一时间步的隐藏状态。表示更新门,更新门决定了如何将新的候选隐藏状态与前面的记忆相结合,取值范围为0~1,越小表示对之前的信息保留越多,越大表示对之前的信息遗忘越多。更新门有助于捕捉时间序列里长期的依赖关系。表示第t层节点v
s,i
的特征。w、u是模型训练时自动学习的参数,可以表示为矩阵。σ为激活函数,例如是relu,tanh等等。
[0192]
接着,基于注意力机制的序列嵌入网络计算各个节点的注意力,然后根据各节点的注意力计算有向序列图的全局特征,如下所示:
[0193][0194][0195]
其中,表征注意力,q表征模型训练时自动学习的参数,可以表示为一个矩阵,σ表征激活函数,例如是relu、tanh等函数,表征全局特征。
[0196]
基于注意力机制的序列嵌入网络可以将有向序列图最后一个节点的特征作为局部特征,然后融合有向序列图的全局特征和局部特征,得到有向序列图的特征,如下所示:
[0197][0198]
其中,w表征全局特征的权重,表征局部特征,表征有向序列图的特征。
[0199]
在得到上述有向序列图的特征后,预测层可以将特征映射到节点空间的各个节点,得到各个节点为有向序列图的下一连接节点的评分,如下所示:
[0200][0201]
该评分可以是概率值,日志检测模型可以根据概率值确定有向序列图的下一连接节点集合。其中,下一连接节点集合可以包括概率值大于预设值的节点,或者概率值排名靠前(如top m)的节点。
[0202]
每轮训练结束后,日志检测系统可以在验证集上测试模型。具体地,日志检测系统将验证集的样本数据输入经过训练的模型,得到预测的节点,然后将预测的节点和标签代入损失函数,如交叉熵损失函数,得到损失值,基于该损失值,利用bptt算法更新模型参数,持续保持当前最优的模型参数。
[0203]
当模型满足训练结束条件,例如模型在验证集上预测的损失平稳且超过预设数量(如10)轮训练没有降低时,日志检测系统可以停止训练,保存当前记录的最优模型参数作为最终模型参数。进一步地,日志检测系统可以根据测试集中的样本数据输出模型评价指标。
[0204]
为了验证本申请的有效性,本实施例还进行了如下对照试验,以验证本申请的技术效果。下面对试验过程进行说明。
[0205]
首先,通过多种方法分别进行日志检测,如表1所示:
[0206]
表1进行对照试验的日志检测方法:
[0207]
方法一(本申请方法)图构建+gg-nns+有向序列图局部特征+有向序列图全局特征方法二图构建+gg-nns+有向序列图局部特征方法三图构建+gg-nns+有向序列图全局特征方法四原始序列+长短期记忆网络(long short time memory,lstm)方法五特征工程+主成分分析(principal component analysis,pca)方法六特征工程+孤立森林(isolation forest)
[0208]
由于异常的事件序列的数量通常较少,因此,在异常检测任务中通常采用查准率(precision),查全率(recall)和f1-score(根据查准率和查全率确定)等指标中的至少一种作为判定模型优劣的标准。其中,查准率、查全率、f1-score通过如下公式计算得到:
[0209][0210][0211][0212]
其中,tp表示真正例(具体是正确预测出的异常的事件序列的数量),fp表示假正例(具体是预测为异常,实际为正常的事件序列的数量),fn表示假负例(预测为正常,实际
为异常的事件序列的数量)。其中,precision越大代表了模型的误报率越低,recall越大代表了模型的漏报率越低,f1-score是precision和recall的调和平均,f1-score越大代表模型预测效果越好。
[0213]
上述试验的结构如下所示:
[0214]
表2进行对照试验的结果:
[0215] precisionrecallf1-score方法一(本申请方法)0.9440.9990.971方法二0.8990.9910.943方法三0.9420.9970.968方法四0.9430.9400.942方法五0.3240.1900.239方法六0.8650.7900.825
[0216]
对比方法一、方法二和方法三的结果可以发现,使用图结构数据的效果要比单纯输入日志序列的效果好,同时,加入了attention机制也对模型效果提升有一定帮助。对比方法一、二、三和方法四、五可以发现,使用神经网络提取日志特征要比仅使用传统特征工程提取信息的效果提升很多。综上所述,本申请可以达到较好的异常检测效果。
[0217]
上文结合图1至图7对本申请实施例提供的日志检测方法进行了详细介绍,下面将结合附图对本申请实施例提供的系统、设备、计算机存储介质以及计算机程序产品等进行介绍。
[0218]
参见图8所示的日志检测系统的结构示意图,该日志检测系统可以是软件系统,用于部署在计算机等设备中,以实现图3所示实施例中的日志检测方法,该日志检测系统也可以是硬件系统,用于实现图3所示实施例中的日志检测方法。该系统800包括:
[0219]
通信模块802,用于获取待检测的日志文件;
[0220]
构建模块804,用于根据所述日志文件获得至少一个有向数据结构,所述至少一个有向数据结构中的每个有向数据结构与一个事件序列对应,所述事件序列包括来自于所述日志文件的多个事件;
[0221]
检测模块806,用于根据所述至少一个有向数据结构,利用日志检测模型确定所述日志文件是否异常。
[0222]
在一些可能的实现方式中,所述有向数据结构携带所述多个事件的时间顺序信息。
[0223]
在一些可能的实现方式中,所述有向数据结构包括有向序列图、有向序列表或有向序列文本。
[0224]
在一些可能的实现方式中,所述有向数据结构为有向序列图,所述有向序列图包括多个节点,所述多个节点中的至少一个节点包括先验特征。
[0225]
在一些可能的实现方式中,所述有向数据结构为有向序列图,所述检测模块806具体用于:
[0226]
根据日志检测模型获得至少一个有向序列图的下一连接节点集合,所述下一连接节点集合包括所述日志检测模型预测的、下一连接节点的至少一个候选项;
[0227]
根据所述至少一个有向序列图的下一连接节点集合确定所述日志文件是否异常。
[0228]
在一些可能的实现方式中,所述有向数据结构为有向序列图,所述检测模块806具体用于:
[0229]
通过日志检测模型获取至少一个有向序列图的全局特征和局部特征;
[0230]
根据所述全局特征和所述局部特征,确定所述日志文件是否异常。
[0231]
在一些可能的实现方式中,所述日志检测模型包括图神经网络和基于注意力机制的序列嵌入网络,所述图神经网络用于提取所述至少一个有向序列图中节点的特征,所述序列嵌入网络用于确定所述节点的权重。
[0232]
在一些可能的实现方式中,所述日志检测模型根据历史日志文件采用自监督方式训练得到。
[0233]
在一些可能的实现方式中,所述日志检测模型为图模型,所述日志检测模型的训练样本包括历史有向序列图和自监督信息,所述历史有向序列图与所述历史日志文件的一个历史事件序列对应,所述自监督信息为所述历史事件序列的最后一个事件,所述历史有向序列图的每个节点分别对应所述最后一个事件之前的多个不重复事件。
[0234]
在一些可能的实现方式中,所述通信模块802还用于:
[0235]
输出异常的事件序列,所述异常的事件序列包括所述日志检测模型的预测结果与真实结果不匹配的事件序列。
[0236]
在一些可能的实现方式中,所述待检测的日志文件包括经过脱敏或加密处理的日志文件。
[0237]
根据本申请实施例的日志检测系统800可对应于执行本申请实施例中描述的方法,并且日志检测系统800的各个模块/单元的上述和其它操作和/或功能分别为了实现图3所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
[0238]
接下来,参见图9所示的日志检测系统的结构示意图,该日志检测系统可以是软件系统,用于部署在计算机等设备中,以实现图5所示实施例中的日志检测方法,该日志检测系统也可以是硬件系统,用于实现图5所示实施例中的日志检测方法。该系统900包括:
[0239]
通信模块902,用于获取待检测的日志文件;
[0240]
显示模块904,用于当所述日志文件异常时,呈现异常的事件序列,所述异常的事件序列是根据至少一个有向数据结构利用日志检测模型确定的,所述至少一个有向数据结构中的每个有向数据结构与所述日志文件的一个事件序列对应,所述日志文件的一个事件序列包括来自于所述日志文件的多个事件,所述异常的事件序列包括所述日志检测模型的预测结果与真实结果不匹配的事件序列。
[0241]
在一些可能的实现方式中,有向数据结构携带所述多个事件的时间顺序信息。
[0242]
在一些可能的实现方式中,该系统900还包括:
[0243]
构建模块906,用于根据所述日志文件获得至少一个有向数据结构,所述至少一个有向数据结构中的每个有向数据结构与一个事件序列对应,所述事件序列包括来自于所述日志文件的多个事件。
[0244]
在一些可能的实现方式中,该系统900还包括:
[0245]
检测模块908,用于根据所述至少一个有向数据结构,利用日志检测模型确定所述日志文件是否异常。
[0246]
在一些可能的实现方式中,所述有向数据结构包括有向序列图、有向序列表或有
向序列文本。
[0247]
在一些可能的实现方式中,有向数据结构为有向序列图,所述有向序列图包括多个节点,所述多个节点中的至少一个节点包括先验特征。
[0248]
在一些可能的实现方式中,有向数据结构为有向序列图,检测模块908具体用于:
[0249]
根据日志检测模型获得至少一个有向序列图的下一连接节点集合,所述下一连接节点集合包括所述日志检测模型预测的、下一连接节点的至少一个候选项;
[0250]
根据所述至少一个有向序列图的下一连接节点集合确定所述日志文件是否异常。
[0251]
在一些可能的实现方式中,有向数据结构为有向序列图,检测模块908具体用于:
[0252]
通过日志检测模型获取至少一个有向序列图的全局特征和局部特征;
[0253]
根据所述全局特征和所述局部特征,确定所述日志文件是否异常。
[0254]
在一些可能的实现方式中,所述日志检测模型包括图神经网络和基于注意力机制的序列嵌入网络,所述图神经网络用于提取所述至少一个有向序列图中节点的特征,所述序列嵌入网络用于确定所述节点的权重。
[0255]
在一些可能的实现方式中,所述日志检测模型根据历史日志文件采用自监督方式训练得到。
[0256]
在一些可能的实现方式中,所述日志检测模型为图模型,所述日志检测模型的训练样本包括历史有向序列图和自监督信息,所述历史有向序列图与所述历史日志文件的一个历史事件序列对应,所述自监督信息为所述历史事件序列的最后一个事件,所述历史有向序列图的每个节点分别对应所述最后一个事件之前的多个不重复事件。
[0257]
在一些可能的实现方式中,所述待检测的日志文件包括经过脱敏或加密处理的日志文件。
[0258]
根据本申请实施例的日志检测系统800可对应于执行本申请实施例中描述的方法,并且日志检测系统800的各个模块/单元的上述和其它操作和/或功能分别为了实现图5所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
[0259]
本申请实施例还提供了一种日志检测设备,用于实现图8所示实施例中日志检测系统800的功能,或者用于实现图9所示实施例中日志检测系统900的功能。其中,日志检测设备106的具体实现可以参见图2相关内容描述,在此不再赘述。
[0260]
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括指令,所述指令指示计算机执行应用于上述日志检测系统800的日志检测方法。
[0261]
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括指令,所述指令指示计算机执行上述应用于上述日志检测系统900的日志检测方法。
[0262]
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品被计算机执行时,所述计算机执行前述日志检测的任一方法。该计算机程序产品可以为一个软件安装包,在需要使用前述日志检测方法的任一方法的情况下,可以下载该计算机程序产品并在计算机上执行该计算机程序产品。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1