一种日志异常检测方法、装置及设备转让专利

申请号 : CN202210051666.4

文献号 : CN114064441B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡小荣郑铁樵张博

申请人 : 云智慧(北京)科技有限公司

摘要 :

本发明的实施例提供一种日志异常检测方法、装置及设备,所述方法包括:获得待检测点的同比日期序列;获得待检测点在滑动窗口内的同比时间点矩阵;根据所述同比时间点矩阵以及所述同比时间点矩阵对应的取值矩阵,利用层次权重,得到历史同比取值序列;根据所述历史同比取值序列,对待检测点进行异常检测,获得日志异常检测结果;本发明的实施例提高了日志异常检测的准确率,具备学习功能和领域适用性,可随时间降低异常模式带来的干扰。

权利要求 :

1.一种日志异常检测方法,其特征在于,包括:获得待检测点的同比日期序列;

获得待检测点在滑动窗口内的同比时间点矩阵;

根据所述同比时间点矩阵以及所述同比时间点矩阵对应的取值矩阵,利用层次权重,得到历史同比取值序列,包括:根据所述同比时间点矩阵以及时间窗口权重,得到同比取值序列;根据所述同比取值序列以及历史日期权重,得到历史同比取值序列;

根据所述历史同比取值序列,对待检测点进行异常检测,获得日志异常检测结果。

2.根据权利要求1所述的日志异常检测方法,其特征在于,获得待检测点的同比日期序列,包括:

通过同比日期选择器,选择目标模式下的待检测点的同比日期序列,得到待检测点的同比日期序列;

所述目标模式包括以下至少一种:全场景模式,节假日模式,交易日模式;

T

所述同比日期序列为SD_his=[di,…dj,…,dk],其中,di,dj,dk为同比日期,SD_his为同比日期序列,i,j,k表示日期数,i,j,k都为正整数,i

3.根据权利要求1所述的日志异常检测方法,其特征在于,获得待检测点的同比时间点矩阵,包括:

根据预设滑动窗口的窗长,获得待检测点的同比时间点矩阵,所述同比时间点矩阵为:;

其中, 为预设滑动窗口的左半窗长, =half_win_left;r为预设滑动窗口的右半窗长,r=half_win_right;dity表示第i天第y个待检测时间点,djty表示第j天第y个待检测时间点,dkty表示第k天第y个待检测时间点。

4.根据权利要求3所述的日志异常检测方法,其特征在于,根据所述同比时间点矩阵以及时间窗口权重,得到同比取值序列,包括:通过公式:

得到同比取值序列;

其中,SV_win为同比取值序列;wy为第y个待检测时间点的权重; 为第j天的待检测时间点的取值;

MVdod为同比时间点矩阵对应的取值序列矩阵:;  表示第i天第j个点的取值,为预设滑动窗口的左半窗长,r为预设滑动窗口的右半窗长;

Wwin为时间窗口权重: 。

5.根据权利要求4所述的日志异常检测方法,其特征在于,根据所述同比取值序列以及历史日期权重,得到历史同比取值序列,包括:通过公式:

得到

历史同比取值序列;

其中,Vhis为历史同比取值序列;SV_win为同比取值序列, ;

Whis为历史日期权重, 。

6.根据权利要求1所述的日志异常检测方法,其特征在于,根据所述历史同比取值序列,对待检测点进行异常检测,获得日志异常检测结果,包括:根据所述历史同比取值序列,通过公式 和 ,确定检测取值范围( );其中, 为第一参数,σ为第二参数,n为置信度,Xi为历史同比取值序列中的元素,i为历史同比取值序列中的元素的下标,i为正整数,N为历史同比取值序列中的元素的数量;

判断所述待检测点是否在所述检测取值范围( )内,得到日志异常检测结果。

7.一种日志异常检测装置,其特征在于,所述装置包括:获取模块,用于获得待检测点的同比日期序列;获得待检测点在滑动窗口内的同比时间点矩阵;

处理模块,用于根据所述同比时间点矩阵以及所述同比时间点矩阵对应的取值矩阵,利用层次权重,得到历史同比取值序列,包括:根据所述同比时间点矩阵以及时间窗口权重,得到同比取值序列,根据所述同比取值序列以及历史日期权重,得到历史同比取值序列;根据所述历史同比取值序列,对待检测点进行异常检测,获得日志异常检测结果。

8.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1‑6中任一项所述的方法对应的操作。

9.一种计算机可读存储介质,其特征在于,存储有指令,所述指令在计算机上运行时,使得计算机执行如权利要求1至6任一项所述的方法。

说明书 :

一种日志异常检测方法、装置及设备

技术领域

[0001] 本发明涉及数据检测技术领域,特别是指一种日志异常检测方法、装置及设备。

背景技术

[0002] 日志是一种半结构化的文本数据,网络设备、系统及服务程序等在运行时都会产生日志,用来记录日期、时间、使用者及动作、系统状态等相关信息的描述。这使得系统开发
人员与运维人员能够通过日志来监控系统运行状态,并在系统故障时迅速定位故障。
[0003] 现今,随着系统与服务规模越来越庞大,结构越来越复杂,不同系统与服务中通常包含多个不同的中间组件,而不同组件的日志格式不同,因此同一个系统或服务中通常会
产生大规模不同格式的日志数据。因此,日志的异常检测是构建安全可信系统的关键一步,
现有的利用系统日志数据进行异常检测的现有方法对于日志数据要求过高。
[0004] 因此在实际生产实践中,应用较为广泛的是日志模式异常检测,即首先进行日志模式解析,然后将日志模式映射为时序指标数据,并采用通用的时序数据异常检测算法进
行异常检测,这属于智能运维中的转换场景。然而这类日志模式异常检测存在一些缺陷:首
先,通用的时序数据异常检测算法并未考虑日志数据本身的特点,所以检测结果中经常出
现误报等情况;其次,目前的日志模式异常检测通常采用日周同环比的方式检测日志是否
符合正常日志模式的规律,而实际应用中证券、运营商等领域的日志并不符合该规律,因此
没有领域适用性;此外,当前的日志模式异常检测算法没有学习能力,异常数据导致的结果
不会随时间消散,容易将正常模式检测为异常。

发明内容

[0005] 本发明提供了一种日志异常检测方法、装置及设备。解决了传统的日志模式异常检测算法不具备领域适用性的问题,降低了日志异常检测的误报率,提高了检测准确率,具
备学习功能和领域适用性,可随时间降低异常模式带来的干扰。
[0006] 为解决上述技术问题,本发明的实施例提供以下方案:
[0007] 一种日志异常检测方法,包括:
[0008] 获得待检测点的同比日期序列;
[0009] 获得待检测点在滑动窗口内的同比时间点矩阵;
[0010] 根据所述同比时间点矩阵以及所述同比时间点矩阵对应的取值矩阵,利用层次权重,得到历史同比取值序列;
[0011] 根据所述历史同比取值序列,对待检测点进行异常检测,获得日志异常检测结果。
[0012] 可选的,获得待检测点的同比日期序列,包括:
[0013] 通过同比日期选择器,选择目标模式下的待检测点的同比日期序列,得到待检测点的同比日期序列;
[0014] 所述目标模式包括以下至少一种:全场景模式,节假日模式,交易日模式;
[0015] 所述同比日期序列为 ,其中, , , 为同比日期,SD_his为同比日期序列,i,j,k表示日期数,i,j,k都为正整数,i
[0016] 可选的,获得待检测点的同比时间点矩阵,包括:
[0017] 根据预设滑动窗口的窗长,获得待检测点的同比时间点矩阵,所述同比时间点矩阵为:
[0018] ;
[0019] 其中,l为预设滑动窗口的左半窗长,l=half_win_left;r为预设滑动窗口的右半窗长,r=half_win_right; 表示第i天第y个待检测时间点, 表示第j天第y个待检测
时间点, 表示第k天第y个待检测时间点。
[0020] 可选的,根据所述同比时间点矩阵以及所述同比时间点矩阵对应的取值矩阵,利用层次权重,得到历史同比取值序列,包括:
[0021] 根据所述同比时间点矩阵以及时间窗口权重,得到同比取值序列;
[0022] 根据所述同比取值序列以及历史日期权重,得到历史同比取值序列。
[0023] 可选的,根据所述同比时间点矩阵以及时间窗口权重,得到同比取值序列,包括:
[0024] 通过公式:
[0025] ;
[0026] 得到同比取值序列;
[0027] 其中,SV_win为同比取值序列;wy为第y个待检测时间点的权重; 为第i天的待检测时间点的取值;
[0028] MVdod为同比时间点矩阵对应的取值序列矩阵:
[0029] ; 表示第i天第j个点的取值,l为预设滑动窗口的左半窗长,r为预设滑动窗口的右半窗长;
[0030] Wwin为时间窗口权重: 。
[0031] 可选的,根据所述同比取值序列以及历史日期权重,得到历史同比取值序列,包括:
[0032] 通过公式:
[0033] 得到历史同比取值序列;
[0034] 其中 ,Vh is为 历史同比 取值 序列 ;SV_w in为同比 取 值序列 ,;Whis为历史日期权重, 。
[0035] 可选的,根据所述历史同比取值序列,对待检测点进行异常检测,获得日志异常检测结果,包括:
[0036] 根据所述历史同比取值序列,通过公式 和 ,确定检测取值范围(𝜇 ‑nσ,𝜇 +nσ);其中,𝜇 为第一参数,σ为第二参数,n为置信度,Xi为历史同比取
值序列中的元素,i为历史同比取值序列中的元素的下标,i为正整数,N为历史同比取值序
列中的元素的数量;
[0037] 判断所述待检测点是否在所述检测取值范围(𝜇 ‑3σ,𝜇 +3σ)内,得到日志异常检测结果。
[0038] 本发明还提供一种日志异常检测装置,所述装置包括:
[0039] 获取模块,用于获得待检测点的同比日期序列;获得待检测点在滑动窗口内的同比时间点矩阵;
[0040] 处理模块,用于根据所述同比时间点矩阵以及所述同比时间点矩阵对应的取值矩阵,利用层次权重,得到历史同比取值序列;根据所述历史同比取值序列,对待检测点进行
异常检测,获得日志异常检测结果。
[0041] 本发明提供一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
[0042] 所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上述的方法对应的操作。
[0043] 本发明还提供一种计算机可读存储介质,存储有指令,所述指令在计算机上运行时,使得计算机执行如上述的方法。
[0044] 本发明的上述方案至少包括以下有益效果:
[0045] 本发明的上述方案,通过获得待检测点的同比日期序列;获得待检测点在滑动窗口内的同比时间点矩阵;根据所述同比时间点矩阵以及所述同比时间点矩阵对应的取值矩
阵,利用层次权重,得到历史同比取值序列;根据所述历史同比取值序列,对待检测点进行
异常检测,获得日志异常检测结果;解决了传统的日志模式异常检测算法不具备领域适用
性的问题,降低了日志异常检测的误报率,提高了检测准确率,具备学习功能和领域适用
性,可随时间降低异常模式带来的干扰。

附图说明

[0046] 图1为本发明实施例的日志异常检测方法的流程示意图;
[0047] 图2为本发明提供的具体的实施例1中日志异常检测方法的流程示意图;
[0048] 图3为本发明提供的具体的实施例2中时间序列的示意图;
[0049] 图4为本发明提供的具体的实施例2中异常检测结果的示意图;
[0050] 图5为本发明实施例的日志异常检测装置的模块示意图。

具体实施方式

[0051] 下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例
所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围
完整的传达给本领域的技术人员。
[0052] 如图1所示,本发明提供一种日志异常检测方法,包括:
[0053] 步骤11,获得待检测点的同比日期序列;
[0054] 步骤12,获得待检测点在滑动窗口内的同比时间点矩阵;
[0055] 步骤13,根据所述同比时间点矩阵以及所述同比时间点矩阵对应的取值矩阵,利用层次权重,得到历史同比取值序列;
[0056] 步骤14,根据所述历史同比取值序列,对待检测点进行异常检测,获得日志异常检测结果。
[0057] 该实施例中,待检测点是通过获取待检测点的同比日期序列和同比时间点矩阵,进而根据同比时间点矩阵以及同比时间点矩阵对应的取值矩阵,利用层次权重,得到历史
同比取值序列,根据历史同比取值序列,对待检测点进行异常检测,获得日志异常检测结
果;解决了传统的日志模式异常检测算法不具备领域适用性的问题,降低了日志异常检测
的误报率,提高了检测准确率,具备学习功能和领域适用性,可随时间降低异常模式带来的
干扰。
[0058] 需要说明的是,本发明的一可选的实施例中,步骤11之前,还可以包括:
[0059] 步骤a,获取原始日志数据;
[0060] 步骤b,对所述原始日志数据进行预处理,得到结构化日志数据;
[0061] 步骤c,对所述结构化日志数据中的字段信息进行日志模式识别,得到每条结构化日志数据的模式;这里,优选的采用Drain算法进行日志模式识别,Drain算法是基于固定深
度树的在线日志模式识别算法,针对日志的特点,利用日志的长度和前缀单词为特征,并借
用了树形数据结构对日志进行聚类;
[0062] 步骤d,根据所述结构化日志数据的模式,对结构化原始日志数据进行压缩处理,得到时间序列数据;这里,同一个模式对应多条不同时间点的结构化日志数据,将结构化日
志数据的模式按照预设时间粒度进行聚合,进而将每一个模式映射得到时间序列数据;其
中,该时间序列数据的格式优选为:
[0063] [(timestamp1,value1),(timestamp2,value2),...];
[0064] 这里的value是指该模式在对应的时间段内出现的频次。
[0065] 其中,步骤b包括:
[0066] 步骤b1,提取所述原始日志数据中的字段信息;所述字段信息包括原始日志时间、日志等级、日志描述字段、日志来源、进程ID中的至少一个;
[0067] 步骤b2,根据所述字段信息,得到结构化原始日志数据。
[0068] 本发明一可选的实施例中,步骤11包括:
[0069] 步骤111,通过同比日期选择器,选择目标模式下的待检测点的同比日期序列,得到待检测点的同比日期序列;
[0070] 所述目标模式包括以下至少一种:全场景模式,节假日模式,交易日模式;
[0071] 所述同比日期序列为 ,其中, , , 为同比日期,SD_his为同比日期序列,i,j,k表示日期数,i,j,k都为正整数,i
[0072] 本实施例中,同比日期选择器可预设至少三种同比日期的目标模式,输入目标模式的参数,得到目标模式下的待检测点的同比日期序列;
[0073] 即 ;
[0074] 其中, 用于判断第i天 是否为待检测点日期 的同比日期,在不同的目标模式下, 的计算方式不同;
[0075] 具体的:
[0076] (1)当目标模式为全场景模式时,待检测点的同比历史日期为训练数据中的全部日期,不考虑节假日;
[0077] ;
[0078] 需要说明的是,全场景模式适用于与节假日无关的领域。
[0079] (2)当目标模式为节假日模式时,计算待检测点的同比历史日期通过将“工作日与工作日比较、节假日与节假日比较”的方式;
[0080] ;
[0081] 其中,is_workday(dx)用于计算第x天dx对应的日期是否为工作日;这里的工作日优选为除节假日以外的日期,节假日优选的为国家法定节假日,即工作日优选为除了国家
法定节假日以外的日期;需要说明的是,节假日模式适用于大部分与节假日相关的通用领
域。
[0082] (3)当目标模式为交易日模式时,待检测点的同比历史日期通过将“交易日与交易日比较,非交易日与非交易日比较”的方式:
[0083] ;
[0084] 其中,is_tradingday(dx)用于计算第x天dx对应的日期是否为交易日;这里的交易日与工作日不同,交易日仅包含工作日中每周的周一至周五的日期;需要说明的是,交易日
模式适用于一些特殊领域。
[0085] 通过上述的目标模式得到用于判断第i天 是否为待检测点日期 的同比日期的 (或is_workday(dx),或is_tradingday(dx)),进而得到待检测点的同比日期
序列 ,其中, , , 为待检测点的同比日期,SD_his为同
比日期序列。
[0086] 上述的过程考虑到了领域适用性的问题,根据领域选择不同的目标模式,进而计算得到待检测点的同比日期序列。
[0087] 本发明一可选的实施例中,步骤12包括:
[0088] 步骤121,根据预设滑动窗口的窗长,获得待检测点的同比时间点矩阵,所述同比时间点矩阵为:
[0089] ;
[0090] 其中,l为预设滑动窗口的左半窗长,l=half_win_left;r为预设滑动窗口的右半窗长,r=half_win_right; 表示第i天第y个待检测时间点, 表示第j天第y个待检测
时间点, 表示第k天第y个待检测时间点。
[0091] 本实施例中,窗长包括预设滑动窗口的左半窗长l和右半窗长r,优选的可通过滑动窗口选择器预设滑动窗口的窗长,该左半窗长l和右半窗长r可自行根据需求进行灵活配
置,如,可根据需求将左半窗长l和右半窗长r配置为相等(即l=r);或可根据需求将任意一
个半窗长设置为0,使得与另一个半窗长内时间点进行比较;通过预设滑动窗口的窗长,得
到待检测点的同比时间点矩阵,降低了相邻点对日志异常检测的结果的影响。
[0092] 本发明一可选的实施例中,步骤13包括:
[0093] 步骤131,根据所述同比时间点矩阵以及时间窗口权重,得到同比取值序列;
[0094] 步骤132,根据所述同比取值序列以及历史日期权重,得到历史同比取值序列。
[0095] 本实施例中,根据步骤12得到的同比时间点矩阵,可得到对应的取值矩阵;并预设时间窗口权重,该预设时间窗口权重用于通过权重函数将时间窗口内的取值列表进行映
射;通过同比时间点矩阵对应的取值矩阵,得到经过时间窗口权重的加权计算后的同比取
值序列;
[0096] 根据同比取值序列计算历史同比取值序列时需考虑历史日期权重,需要说明的是,历史日期权重种与待检测点距离越近的日期,其对应的权重越大;当一个时间点发生异
常后,该时间点异常的影响会随着时间的发展不断消退;因此根据同比取值序列以及历史
日期权重,得到经过历史日期权重的加权计算后的历史同比取值序列。
[0097] 具体的,步骤131包括:
[0098] 步骤1311,通过公式:
[0099] ;
[0100] 得到同比取值序列;
[0101] 其中,SV_win为同比取值序列;wy为第y个待检测时间点的权重;为第i天的待检测时间点的取值;
[0102] MVdod为同比时间点矩阵对应的取值矩阵对应的取值序列矩阵:
[0103] ; 表示第i天第j个点的取值,l为预设滑动窗口的左半窗长,r为预设滑动窗口的右半窗长;
[0104] Wwin为时间窗口权重: 。
[0105] 本实施例中,MVdod为同比时间点矩阵对应的取值矩阵对应的取值序列矩阵,当同比时间点矩阵为 时,对应的取值矩阵对应的取值序列
矩阵为 ;其中,同比时间点矩阵MTdod中dk表示第k天,
ty+r表示第y+r个点,dkty+r表示第k天第y+r个点;同比时间点矩阵MVdod中Vdkty+r表示第k天第
y+r个点的取值,该取值Vdkty+r与同比时间点矩阵MTdod一一对应;
[0106] 预设时间窗口权重Wwin为 ,经过时间窗口权重Wwin对取值序列矩阵进行加权计算:
[0107] ;
[0108] 得到同比取值序列SV_win,该同比取值序列SV_win中的元素为每个时间窗口对应的取值;
[0109] 另外,需要说明的是,时间窗口权重中不同位置的权重是不一样的,距离中心点越近,权重越大,反之,距离中心点越远,权重越小;时间窗口权重Wwi优选通过高斯分布或对称
均匀分布等方式进行设置。
[0110] 具体的,步骤132包括:
[0111] 步骤1321,通过公式:
[0112] 得到历史同比取值序列;
[0113] 其中,Vhis为历史同比取值序列;SV_win为同比取值序列, ;Whis为历史日期权重, 。
[0114] 本实施例中,预设历史日期权重为 ;通过公式 得到历
史同比取值序列Vhis;需要说明的是,历史日期权重优选通过s型生长曲线(sigmoid函数)或
均匀分布等方式进行设置;
[0115] 通过上述方式得到历史同比取值序列,考虑到了日志的连续性以及异常点的影响,且使得日志异常检测具备学习能力,提高了日志异常检测的准确性。
[0116] 本发明一可选的实施例中,步骤14包括:
[0117] 步骤141,根据所述历史同比取值序列,通过公式 和 ,确定检测取值范围(𝜇 ‑nσ,𝜇 +nσ);其中,𝜇 为第一参数,σ为第二参数,n为置信度,Xi为历
史同比取值序列中的元素,i为历史同比取值序列中的元素的下标,i为正整数,N为历史同
比取值序列中的元素的数量;
[0118] 步骤142,判断所述待检测点是否在所述检测取值范围(𝜇 ‑nσ,𝜇 +nσ)内,得到日志异常检测结果。
[0119] 本实施例中,对待检测点进行异常检测通过n‑sigma算法得到历史同比取值序列对应的历史数据的检测取值范围(𝜇 ‑nσ,𝜇 +nσ),判断待检测点是否在检测取值范围(𝜇 ‑n
σ,𝜇 +nσ)内得到日志异常检测结果;
[0120] n‑sigma算法的置信度准则为样本取值大概率集中在检测取值范围(𝜇 ‑nσ,𝜇 +nσ)内,若超出该检测取值范围的概率较小,超出该检测取值范围可被认为是小概率事件;检
测取值范围(𝜇 ‑nσ,𝜇 +nσ)中包括置信度n、第一参数𝜇 和第二参数σ;置信度n可根据需求
预设,优选的n=3;
[0121] 其中,第一参数𝜇 可通过公式:
[0122] 计算得到;其中,𝜇 为第一参数,Xi为历史同比取值序列中的元素(即历史数据),i为历史同比取值序列中的元素的下标,i为正整数,N为历史同比取值序列中的
元素的数量;
[0123] 第二参数σ可通过公式:
[0124] 计算得到;其中,σ为第二参数,𝜇 为第一参数,Xi为历史同比取值序列中的元素(即历史数据),i为历史同比取值序列中的元素的下标,i为正整数,N为历
史同比取值序列中的元素的数量;
[0125] 当待检测点对应的数据X>  𝜇 +nσ时,则日志异常检测结果为突增异常;
[0126] 当待检测点对应的数据X<  𝜇 ‑nσ时,则日志异常检测结果为突降异常。
[0127] 需要说明的是,待检测点进行异常检测还可以通过动态基线或自动阈值等通用的时间序列异常检测方法进行异常检测。
[0128] 如图2所示,一个具体的实施例1中,向日志数据结构化的算法中输入原始日志数据,对该原始日志数据进行结构化处理,得到结构化日志数据;对结构化日志数据进行日志
模式识别(解析),得到每条结构化日志数据的模式;根据所述结构化日志数据的模式,对结
构化原始日志数据进行压缩处理,得到时间序列数据;将时间序列数据通过同比日期选择
器,输入模式参数,选择目标模式下的待检测点的同比日期序列,进行基于目标模式的同比
日期计算,得到同比日期序列,其中,目标模式包括全场景模式、节假日模式以及交易日模
式中的任意一种;
[0129] 进而根据时间窗口选择器,预设滑动窗口的窗长,根据预设滑动窗口的窗长种左右半窗长的参数,得到同比时间点矩阵,进行基于层次权重的历史同比值计算,得到同比取
值序列矩阵,根据时间窗权重,计算得到同比取值序列,结合预设的历史日期权重,进行历
史同比取值计算,得到历史同比取值序列;
[0130] 根据历史同比取值序列,判断待检测点是否为检测异常结果;若为检测异常结果,则产生告警并输出异常的检测值,若不为检测异常结果,则直接输出检测值。
[0131] 如图3和图4所示,一个具体的实施例2中,以第一运营商的时间跨度为9天的脱敏业务日志为例进行日志异常检测,原始日志数据共34.8万条;对原始日志数据进行日志数
据的结构化处理,将半结构化的原始日志数据转化为结构化数据,提取原始日志数据中
datetime, timestamp, level,content,thread_id,raw_log字段,例如:
[0132] 原始日志数据为:
[0133] 02:52:03.715  [[ACTIVE] ExecuteThread:  '62'  for queue:  'weblogic.kernel.Default (self‑tuning)']INFOc.s.c.l.a.s.CallService [126] ‑ 
TransUtils.getSendUrl(transMsg.getCmdCode()) = http://127.0.0.1:3913/v1/
Prov/soa province=551;
[0134] 对原始日志数据进行结构化处理后,得到的结构化数据如下表1所示:
[0135]
[0136] 表1
[0137] 进一步的,对结构化数据中的content字段进行模式解析处理,例如:
[0138] content字段为:
[0139] Content: TransUtils.getSendUrl(transMsg.getCmdCode())=http://127.0.0.1:3913/v1/Prov/soa province=551;
[0140] 得到的模式解析结果为:
[0141] TransUtils.getSendUrl(transMsg.getCmdCode())=;得到了399个模式;
[0142] 如图3所示,根据模式解析结果进行时间序列映射,得到时间序列,具体的,将日志的模式以5分钟时间粒度进行聚合得到模式的时间序列,模式为“TransUtils.getSendUrl
(transMsg.getCmdCode())=”的时间序列如图3所示;
[0143] 如图4所示,根据时间序列,设置训练天数m=7, 以5分钟粒度聚合,interval_ms=5*60*1000, 每天包含点数n = 24*60*60*1000/interval_ms=288, 以20xx‑08‑02 16:40‑
16:45的聚合区间的点为例说明具体异常检测过程,其中,20xx是指2000至2099中的任意一
个数字,训练天数为7天,则x=8,y=200,待检测点为(T_(d_8 t_200 ),V_(d_8 t_200 )=
84);
[0144] 通过同比日期选择器,根据第一运营商的原始日志数据的特点,选择模式为全场景模式,模式参数设置为0,计算同比日期序列为:
[0145] ;
[0146] 通过同比日期序列对应的日期下标表示该序列为:
[0147] ;
[0148] 通过滑动窗口选择器,设置滑动窗口的窗长中的左半窗长和右半窗长相等,即:
[0149] half_win_left=half_win_right=2;
[0150] 则待检测点的同比时间点矩阵为:
[0151] ;
[0152] 其对应的取值序列矩阵为:
[0153] ;
[0154] 将20xx‑08‑01之前的6天的数据设置为0;
[0155] 以均匀对称分布进行初始化,设置时间窗权重为 ;
[0156] 经过时间窗口权重加权计算后的同比取值序列为;
[0157] 以sigmoid函数进行初始化,得到历史日期权重为;
[0158] 历史日期权重对应的历史同比取值为;
[0159] 根据历史同比取值,通过n‑simga算法进行异常检测,设置置信度n=3,计算历史数据的上下界为[‑32.91, 43.28],当待检测点超过上下界,则可判定该待检测点为异常点;
[0160] 模式为“TransUtils.getSendUrl(transMsg.getCmdCode())=”的整体异常检测结果如图4所示。
[0161] 本发明的方案通过获得待检测点的同比日期序列;获得待检测点在滑动窗口内的同比时间点矩阵;根据所述同比时间点矩阵以及所述同比时间点矩阵对应的取值矩阵,利
用层次权重,得到历史同比取值序列;根据所述历史同比取值序列,对待检测点进行异常检
测,获得日志异常检测结果;解决了传统的日志模式异常检测算法不具备领域适用性的问
题,降低了日志异常检测的误报率,提高了检测准确率,具备学习功能和领域适用性,可随
时间降低异常模式带来的干扰。
[0162] 如图5所示,本发明还提供一种日志异常检测装置50,所述装置50包括:
[0163] 获取模块51,用于获得待检测点的同比日期序列;获得待检测点在滑动窗口内的同比时间点矩阵;
[0164] 处理模块52,用于根据所述同比时间点矩阵以及所述同比时间点矩阵对应的取值矩阵,利用层次权重,得到历史同比取值序列;根据所述历史同比取值序列,对待检测点进
行异常检测,获得日志异常检测结果。
[0165] 可选的,获得待检测点的同比日期序列,包括:
[0166] 通过同比日期选择器,选择目标模式下的待检测点的同比日期序列,得到待检测点的同比日期序列;
[0167] 所述目标模式包括以下至少一种:全场景模式,节假日模式,交易日模式;
[0168] 所述同比日期序列为 ,其中, , , 为同比日期,SD_his为同比日期序列,i,j,k表示日期数,i,j,k都为正整数,i
[0169] 可选的,获得待检测点的同比时间点矩阵,包括:
[0170] 根据预设滑动窗口的窗长,获得待检测点的同比时间点矩阵,所述同比时间点矩阵为:
[0171] ;
[0172] 其中,l为预设滑动窗口的左半窗长,l=half_win_left;r为预设滑动窗口的右半窗长,r=half_win_right; 表示第i天第y个待检测时间点, 表示第j天第y个待检测
时间点, 表示第k天第y个待检测时间点。
[0173] 可选的,根据所述同比时间点矩阵以及所述同比时间点矩阵对应的取值矩阵,利用层次权重,得到历史同比取值序列,包括:
[0174] 根据所述同比时间点矩阵以及时间窗口权重,得到同比取值序列;
[0175] 根据所述同比取值序列以及历史日期权重,得到历史同比取值序列。
[0176] 可选的,根据所述同比时间点矩阵以及时间窗口权重,得到同比取值序列,包括:
[0177] 通过公式:
[0178] ;
[0179] 得到同比取值序列;
[0180] 其中,SV_win为同比取值序列;wy为第y个待检测时间点的权重; 为第i天的待检测时间点的取值;
[0181] MVdod为同比时间点矩阵对应的取值序列矩阵:
[0182] ; 表示第i天第j个点的取值,l为预设滑动窗口的左半窗长,r为预设滑动窗口的右半窗长;
[0183] Wwin为时间窗口权重: 。
[0184] 可选的,根据所述同比取值序列以及历史日期权重,得到历史同比取值序列,包括:
[0185] 通过公式:
[0186] 得到历史同比取值序列;
[0187] 其中,Vhis为历史同比取值序列;SV_win为同比取值序列, ;Whis为历史日期权重, 。
[0188] 可选的,根据所述历史同比取值序列,对待检测点进行异常检测,获得日志异常检测结果,包括:
[0189] 根据所述历史同比取值序列,通过公式 和 ,确定检测取值范围(𝜇 ‑nσ,𝜇 +nσ);其中,𝜇 为第一参数,σ为第二参数,n为置信度,Xi为历史同比取
值序列中的元素,i为历史同比取值序列中的元素的下标,i为正整数,N为历史同比取值序
列中的元素的数量;
[0190] 判断所述待检测点是否在所述检测取值范围(𝜇 ‑3σ,𝜇 +3σ)内,得到日志异常检测结果。
[0191] 需要说明的是,该装置是与上述方法对应的装置,上述方法实施例中的所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。
[0192] 本发明的实施例还提供一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存
储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上所述的方法对应
的操作。
[0193] 本发明的实施例还提供一种计算机可读存储介质,存储有指令,所述指令在计算机上运行时,使得计算机执行如上所述的方法。
[0194] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟
以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员
可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出
本发明的范围。
[0195] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0196] 在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为
一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或
者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互
之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连
接,可以是电性,机械或其它的形式。
[0197] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个
网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。
[0198] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0199] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说
对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计
算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个
人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码
的介质。
[0200] 此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系
列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺
序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本
发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储
介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域
普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
[0201] 因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含
实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成
本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是
任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的
装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组
合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序
按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地
执行。
[0202] 以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也
应视为本发明的保护范围。