CN112948215A - 基于分布式数据库日志数据的实时异常检测方法及系统 - Google Patents
基于分布式数据库日志数据的实时异常检测方法及系统 Download PDFInfo
- Publication number
- CN112948215A CN112948215A CN202110238361.XA CN202110238361A CN112948215A CN 112948215 A CN112948215 A CN 112948215A CN 202110238361 A CN202110238361 A CN 202110238361A CN 112948215 A CN112948215 A CN 112948215A
- Authority
- CN
- China
- Prior art keywords
- log
- time
- template
- real
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 63
- 230000002159 abnormal effect Effects 0.000 claims abstract description 71
- 238000012549 training Methods 0.000 claims abstract description 21
- 238000011897 real-time detection Methods 0.000 claims abstract description 10
- 230000003044 adaptive effect Effects 0.000 claims abstract description 4
- 238000000034 method Methods 0.000 claims description 19
- 238000007781 pre-processing Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 12
- 230000014509 gene expression Effects 0.000 claims description 9
- 230000005856 abnormality Effects 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 abstract description 5
- 238000012544 monitoring process Methods 0.000 abstract description 3
- 238000003745 diagnosis Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000246 remedial effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明特别涉及一种基于分布式数据库日志数据的实时异常检测方法及系统。该基于分布式数据库日志数据的实时异常检测方法及系统,对多节点日志信息进行解析、分流和存储,并预处理为模型适配的数据输入;将所有节点的异常经验训练到一个模型,然后对实时日志进行解析,并与在训练数据上构建的模板树进行模板匹配得到对应的模板ID,进行模型训练与实时检测;通过HTTP POST输出异常检测记录。该基于分布式数据库日志数据的实时异常检测方法及系统,能够实时监控数据库各个节点的日志状态,更清晰的观测节点的异常情况,并针对各节点的宕机异常给出自动报警,从而保证了数据库的正常运行,减少了人工监控的工作量,降低了数据库运维成本。
Description
技术领域
本发明涉及云服务技术领域,特别涉及一种基于分布式数据库日志数据的实时异常检测方法及系统。
背景技术
现代数据库的规模和架构日益复杂和庞大,同时数据库和分布式系统的广泛结合和使用,使得维护成本攀升,如今仅靠人工的软件,监控运行状态和发现运行故障,已经无法维持系统稳定运行。而数据库系统日志作为记录了各种运行状态和节点事件的重要数据,能够帮助运维人员理解系统状态,并且分析、查找故障根本原因。
传统上,运维人员通常基于人工手段检查日志来发现异常分析故障,比如关键字搜索和规则匹配等等,并且人工手段的日志检查通常是对数据库运行的阶段性诊断,或是发生了异常之后进行的诊断,具有一定的滞后性,导致无法及时做出补救措施。而庞大的分布式数据库系统的正常运行依赖于各个节点的稳定工作,一旦系统日志运行出现差错,如果不能及时发现问题并定位问题所在,造成的损失将会是用户无法接受的。其次日志数据本身结构复杂,含有大量的自然语言结构,人工定义异常日志关键字的行为是非常耗时并且容易产生疏漏。因此,基于以上情况,人工检测日志的方法耗力、耗时、不能达到预警效果。
基于此,本发明提出了一种基于分布式数据库日志数据的实时异常检测方法及系统。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于分布式数据库日志数据的实时异常检测方法及系统。
本发明是通过如下技术方案实现的:
一种基于分布式数据库日志数据的实时异常检测方法,其特征在于:包括以下步骤:
第一步,日志采集
对多节点日志信息进行解析、分流和存储,并对异常告警模型需求格式进行转换,预处理为模型适配的数据输入;
第二步,日志预处理
对采集的多节点原始数据进行处理,通过正则表达式找到日志日志中非结构式信息部分的节点标识符,并遮盖标识符中代表的具体节点信息,将所有节点的异常经验训练到一个模型;然后通过Drain算法对实时日志进行解析,并与在训练数据上构建的模板树进行模板匹配得到对应的模板ID;
第三步,日志宕机异常检测
Drain算法将日志记录转换为匹配的模板ID之后,通过滑动窗口大小和步长大小将单个日志记录转换为日志序列,进行模型训练与实时检测;
第四步,异常报警
根据预设的数间窗口window_size、异常频次阈值cut_off和分流节点数目node_num进行对应的异常检测记录的输出,通过HTTP POST发送并呈现在可视化工具Grafana界面上。
所述第一步中,对解析后的多节点日志信息进行分流,具体步骤如下:
S1.用户根据目前集群的节点大小配置,自定义分流节点数目node_num;
S2.用户根据所需实际情况的检测异常、显示异常精度自定义设置时间窗口window_size;
S3.用户根据不同实际情况的异常频率范围自定义异常频次阈值cut_off。
所述第二步中,对实时日志进行解析与匹配的实现过程,包括以下步骤:
S1.定义固定参数的正则表达式,通过定义日志中数字、IP或网址类关键字的正则表达式来提高日志解析中参数提取的准确性;
S2.利用Drain算法比对日志消息长度与模板树中各个模板的消息长度,消息长度即为字段总个数,具有相同字段的日志将被分到模板树中的同一分支中;
S3.利用Drain算法比对日志首字段与模板树中各个模板的首字段,首字段为日志消息中的开头关键字,具有相同首字段的日志将被分到模板树中的同一分支中;
S4.利用Drain算法比对日志消息内容与各个模板中消息内容的相似度,计算出的相似度与预设的相似度阈值进行大小比较,当相似度大于等于相似度阈值时,被比较模板被判定为日志的模板,并返回该模板的ID号,否则Drain算法返回空值;
S5.在使用训练数据对模板树进行构建时,如果当前日志在上述过程中找不到匹配的模板,Drain算法以当前日志新添模板分支。反之则不会更新模板树。但在实时检测过程中,无论实时日志是否能在模板树中找到模板,都不会更新模板树。
所述步骤S4中,消息内容相似度ContentSimilarity定义如下:
其中,seq1(i)和seq2(i)分别代表日志消息内容和对比的模板中消息内容的第i个字符,n为总字段个数;
判定seq1(i)与seq2(i)是否相等的equality公式定义如下:
其中,s1和s2为正在对比的日志消息内容和对比的模板中消息内容在单个字符。
所述第三步中,模型训练与实时检测的具体步骤如下:
S1.选择未出现异常的日志序列对LSTM(Long-Short Term Memory,长短期记忆模型)模型进行训练,步骤如下:
S11.输入转换好的日志序列
对各个日志序列依次输入窗口w下h个日志事件所匹配的模板ID,假设窗口下任意时刻的mtime为日志事件,ki,time为对应模板ID,i取值范围不超过模板ID总个数n,则有w={mt-h,mt-h-1,...,mt-2,mt-1},对应模板ID组为{ki,t-h,ki,t-h-1,...,ki,t-2,ki,t-1};
S12..LSTM模型通过输入的模板ID分布构建特征矩阵,以交叉熵cross-entropy为函数估计损失,以下一个日志事件模板ID为标签,优化针对下一个出现的日志事件条件概率分布模型:
Pr[mt=ki,t|w]
其中,为mt下一个日志出现的ID,ki,t为其对应的模板ID;
S2.将训练好的模型接入实时日志流,接收新的日志数据进行宕机异常检测,步骤如下:
S21.将模型w′={m′t-h,m′t-h-1,...,m′t-2,m′t-1}所对应的模板ID组{k′i,t-h,k′i,t-h-1,...,k′i,t-2,k′i,t-1}作为检测日志事件m′t是否为异常的输入,其中m′time为流入的实时日志事件,k′i,time为对应模板ID;模型将输出如下概率分布:
Pr[m′t=k′i,t|w]={k′1:p1,k′2:p2,...,k′n:pn};
S22.将k′t与模型输出的概率分布中概率最大的前x个比较,其中x为预设值,如果k′t不存在于概率最大的前x个中,则m′t被判断为节点宕机异常日志;
S23.根据与训练步骤中相同的滑动窗口大小和步长大小,统计每个滑动窗口大小下发生异常的频次,若统计出的异常频次大小大于预设的频次阈值,则达到报警条件。
所述第四步中,判断当前消息对应时间点与上一轮异常报警总结输出时间点的差值,是否超过时间窗口window_size的下一个时间窗口:
如果差值小于时间窗口window_size,则当前时间与上一条消息处于同一个时间窗口内,不输出报警信息,继续模型的异常检测,并记录该条消息对应的异常情况;
如果差值大于时间窗口window_size,则当前时间为下一个时间窗口,将上一个时间窗口中各个节点的异常检测记录结果作为报警信息进行输出,通过HTTP POST发送到对应的HTTP端口,展现在Grafana界面,记录该消息并进行下一轮的异常检测。
一种用于实现上述方法的基于分布式数据库日志数据的实时异常检测系统,包括日志采集模块,日志预处理模块,日志宕机异常检测模块和异常报警模块;
所述日志采集模块,负责通过解析JSON数据对分布式多节点日志信息进行分流预处理,并转换为模型适配的输入数据;
所述日志预处理模块,负责处理日志中非结构式信息部分,遮盖节点相关标识符,并通过Drain算法对日志进行解析,将匹配成功的日志记录转换为对应的日志模板编号,并根据时间窗口大小将日志记录整合成日志序列;
所述日志宕机异常检测模块,负责LSTM模型对整合的日志序列进行实时宕机异常检测,计算异常频次;
所述异常报警模块,负责根据各个节点的日志异常信息,判断异常频次是否超出报警频次,如果超出则根据用户自定义的时间窗口定时告警并处理。
本发明基于分布式数据库日志数据的实时异常检测系统,数据来源为分布式数据库多节点的日志数据,所使用的消息发送组件为Kafka,数据格式为标准JSON格式;所述日志采集模块基于Python,负责利用开源组件Faust逐条处理JSON消息,解析出消息对应的节点、日志以及时间戳信息,根据解析出的节点对逐条JSON消息进行分流,并针对异常告警模型需求格式进行转换。
本发明的有益效果是:该基于分布式数据库日志数据的实时异常检测方法及系统,能够实时监控数据库各个节点的日志状态,更清晰的观测节点的异常情况,并针对各节点的宕机异常给出自动报警,从而保证了数据库的正常运行,减少了人工监控的工作量,降低了数据库运维成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1为深度为3的模板树示意图。
附图2为本发明基于分布式数据库日志数据的实时异常检测方法示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
该基于分布式数据库日志数据的实时异常检测方法,包括以下步骤:
第一步,日志采集
对多节点日志信息进行解析、分流和存储,并对异常告警模型需求格式进行转换,预处理为模型适配的数据输入;
所述第一步中,对解析后的多节点日志信息进行分流,具体步骤如下:
S1.用户根据目前集群的节点大小配置,自定义分流节点数目node_num;
例如,采用5节点集群,node_num在初始化时被设置为5,分流过程中会自动创建5个存储不同节点解析信息的队列,对应包含了模型所需要的输入信息。
S2.用户根据所需实际情况的检测异常、显示异常精度自定义设置时间窗口window_size;
例如,采用1分钟作为时间窗口,采集模块会根据当前时间与初始化时间的差值进行判断:是否进行模型输入,是否输出异常信息。
S3.用户根据不同实际情况的异常频率范围自定义异常频次阈值cut_off;
例如,在数据库中启动fault-tolerant模式下运行TPCC压力测试时,cut_off设置为10,异常检测的准确率较高,因此在规定的时间窗口window_size中(如1分钟),大于10的异常频次才会进行输出至报警模块。
第二步,日志预处理
对采集的多节点原始数据进行处理,通过正则表达式找到日志日志中非结构式信息部分的节点标识符,并遮盖标识符中代表的具体节点信息,将所有节点的异常经验训练到一个模型;然后通过Drain算法对实时日志进行解析,并与在训练数据上构建的模板树进行模板匹配得到对应的模板ID;
所述第二步中,对实时日志进行解析与匹配的实现过程,包括以下步骤:
S1.定义固定参数的正则表达式,通过定义日志中数字、IP或网址类关键字的正则表达式来提高日志解析中参数提取的准确性;
S2.利用Drain算法比对日志消息长度与模板树中各个模板的消息长度,消息长度即为字段总个数,比如“refresh audit server setting”字段总个数为4,具有相同字段的日志将被分到模板树中的同一分支中;
S3.利用Drain算法比对日志首字段与模板树中各个模板的首字段,首字段为日志消息中的开头关键字,比如“refresh audit server setting”的首字段为“refresh”,具有相同首字段的日志将被分到模板树中的同一分支中;
S4.利用Drain算法比对日志消息内容与各个模板中消息内容的相似度,计算出的相似度与预设的相似度阈值进行大小比较,当相似度大于等于相似度阈值时,被比较模板被判定为日志的模板,并返回该模板的ID号,否则Drain算法返回空值;
所述步骤S4中,消息内容相似度ContentSimilarity定义如下:
其中,seq1(i)和seq2(i)分别代表日志消息内容和对比的模板中消息内容的第i个字符,n为总字段个数;
判定seq1(i)与seq2(i)是否相等的equality公式定义如下:
其中,s1和s2为正在对比的日志消息内容和对比的模板中消息内容在单个字符。
S5.在使用训练数据对模板树进行构建时,如果当前日志在上述过程中找不到匹配的模板,Drain算法以当前日志新添模板分支。反之则不会更新模板树。但在实时检测过程中,无论实时日志是否能在模板树中找到模板,都不会更新模板树。
第三步,日志宕机异常检测
Drain算法将日志记录转换为匹配的模板ID之后,通过滑动窗口大小和步长大小将单个日志记录转换为日志序列,进行模型训练与实时检测;
所述第三步中,模型训练与实时检测的具体步骤如下:
S1.选择未出现异常的日志序列对LSTM(Long-Short Term Memory,长短期记忆模型)模型进行训练,步骤如下:
S11.输入转换好的日志序列
对各个日志序列依次输入窗口w下h个日志事件所匹配的模板ID,假设窗口下任意时刻的mtime为日志事件,ki,time为对应模板ID,i取值范围不超过模板ID总个数n,则有w={mt-h,mt-h-1,...,mt-2,mt-1},对应模板ID组为{ki,t-h,ki,t-h-1,...,ki,t-2,ki,t-1};
S12..LSTM模型通过输入的模板ID分布构建特征矩阵,以交叉熵cross-entropy为函数估计损失,以下一个日志事件模板ID为标签,优化针对下一个出现的日志事件条件概率分布模型:
Pr[mt=ki,t|w]
其中,为mt下一个日志出现的ID,ki,t为其对应的模板ID;
S2.将训练好的模型接入实时日志流,接收新的日志数据进行宕机异常检测,步骤如下:
S21.将模型w′={m′t-h,m′t-h-1,...,m′t-2,m′t-1}所对应的模板ID组{k′i,t-h,k′i,t-h-1,...,k′i,t-2,k′i,t-1}作为检测日志事件m′t是否为异常的输入,其中m′time为流入的实时日志事件,k′i,time为对应模板ID;模型将输出如下概率分布:
Pr[m′t=k′i,t|w]={k′1:p1,k′2:p2,...,k′n:pn};
S22.将k′t与模型输出的概率分布中概率最大的前x个比较,其中x为预设值,如果k′t不存在于概率最大的前x个中,则m′t被判断为节点宕机异常日志;
S23.根据与训练步骤中相同的滑动窗口大小和步长大小,统计每个滑动窗口大小下发生异常的频次,若统计出的异常频次大小大于预设的频次阈值,则达到报警条件。
第四步,异常报警
根据预设的数间窗口window_size、异常频次阈值cut_off和分流节点数目node_num进行对应的异常检测记录的输出,通过HTTP POST发送并呈现在可视化工具Grafana界面上。
所述第四步中,判断当前消息对应时间点与上一轮异常报警总结输出时间点的差值,是否超过时间窗口window_size的下一个时间窗口:
如果差值小于时间窗口window_size,则当前时间与上一条消息处于同一个时间窗口内,不输出报警信息,继续模型的异常检测,并记录该条消息对应的异常情况;
如果差值大于时间窗口window_size,则当前时间为下一个时间窗口,将上一个时间窗口中各个节点的异常检测记录结果作为报警信息进行输出,通过HTTP POST发送到对应的HTTP端口,展现在Grafana界面,记录该消息并进行下一轮的异常检测。
用于实现上述方法的基于分布式数据库日志数据的实时异常检测系统,包括日志采集模块,日志预处理模块,日志宕机异常检测模块和异常报警模块;
所述日志采集模块,负责通过解析JSON数据对分布式多节点日志信息进行分流预处理,并转换为模型适配的输入数据;
所述日志预处理模块,负责处理日志中非结构式信息部分,遮盖节点相关标识符,并通过Drain算法对日志进行解析,将匹配成功的日志记录转换为对应的日志模板编号,并根据时间窗口大小将日志记录整合成日志序列;
所述日志宕机异常检测模块,负责LSTM模型对整合的日志序列进行实时宕机异常检测,计算异常频次;
所述异常报警模块,负责根据各个节点的日志异常信息,判断异常频次是否超出报警频次,如果超出则根据用户自定义的时间窗口定时告警并处理。
本发明基于分布式数据库日志数据的实时异常检测系统,数据来源为分布式数据库多节点的日志数据,所使用的消息发送组件为Kafka,数据格式为标准JSON格式;所述日志采集模块基于Python,负责利用开源组件Faust逐条处理JSON消息,解析出消息对应的节点、日志以及时间戳信息,根据解析出的节点对逐条JSON消息进行分流,并针对异常告警模型需求格式进行转换。
与现有技术相比,该基于分布式数据库日志数据的实时异常检测方法及系统,具有以下特点:
第一、能够实时监控数据库各个节点的日志状态,并针对各节点的宕机异常给出自动报警,减少了人工监控任务。
第二、日志采集模块可以根据实际情况下多节点的数目进行自定义分流数量,进行对应不同节点信息的告警记录,能更清晰的观测某个节点的异常情况。
第三、日志预处理模块针对日志中包含的节点标识符做了遮盖处理,使得训练出的模型可以方便通用检测各个节点的日志数据。
第四、日志宕机异常检测模块能够实时检测日志节点宕机异常,并统计各个节点异常频次。
第五、异常报警模块提供了异常频次阈值作为报警敏感度的调节参数,。针对不同数据库运行场景,可以通过调节异常频次阈值来调节报警敏感度,提高了对不同场景的适应性。
以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (8)
1.一种基于分布式数据库日志数据的实时异常检测方法及系统,其特征在于:包括以下步骤:
第一步,日志采集
对多节点日志信息进行解析、分流和存储,并对异常告警模型需求格式进行转换,预处理为模型适配的数据输入;
第二步,日志预处理
对采集的多节点原始数据进行处理,通过正则表达式找到日志日志中非结构式信息部分的节点标识符,并遮盖标识符中代表的具体节点信息,将所有节点的异常经验训练到一个模型;然后通过Drain算法对实时日志进行解析,并与在训练数据上构建的模板树进行模板匹配得到对应的模板ID;
第三步,日志宕机异常检测
Drain算法将日志记录转换为匹配的模板ID之后,通过滑动窗口大小和步长大小将单个日志记录转换为日志序列,进行模型训练与实时检测;
第四步,异常报警
根据预设的数间窗口window_size、异常频次阈值cut_off和分流节点数目node_num进行对应的异常检测记录的输出,通过HTTP POST发送并呈现在可视化工具Grafana界面上。
2.根据权利要求1所述的基于分布式数据库日志数据的实时异常检测方法,其特征在于:
所述第一步中,对解析后的多节点日志信息进行分流,具体步骤如下:
S1.用户根据目前集群的节点大小配置,自定义分流节点数目node_num;
S2.用户根据所需实际情况的检测异常、显示异常精度自定义设置时间窗口window_size;
S3.用户根据不同实际情况的异常频率范围自定义异常频次阈值cut_off。
3.根据权利要求2所述的基于分布式数据库日志数据的实时异常检测方法,其特征在于:
所述第二步中,对实时日志进行解析与匹配的实现过程,包括以下步骤:
S1.定义固定参数的正则表达式,通过定义日志中数字、IP或网址类关键字的正则表达式来提高日志解析中参数提取的准确性;
S2.利用Drain算法比对日志消息长度与模板树中各个模板的消息长度,消息长度即为字段总个数,具有相同字段的日志将被分到模板树中的同一分支中;
S3.利用Drain算法比对日志首字段与模板树中各个模板的首字段,首字段为日志消息中的开头关键字,具有相同首字段的日志将被分到模板树中的同一分支中;
S4.利用Drain算法比对日志消息内容与各个模板中消息内容的相似度,计算出的相似度与预设的相似度阈值进行大小比较,当相似度大于等于相似度阈值时,被比较模板被判定为日志的模板,并返回该模板的ID号,否则Drain算法返回空值;
S5.在使用训练数据对模板树进行构建时,如果当前日志在上述过程中找不到匹配的模板,Drain算法以当前日志新添模板分支。反之则不会更新模板树。但在实时检测过程中,无论实时日志是否能在模板树中找到模板,都不会更新模板树。
5.根据权利要求4所述的基于分布式数据库日志数据的实时异常检测方法,其特征在于:
所述第三步中,模型训练与实时检测的具体步骤如下:
S1.选择未出现异常的日志序列对LSTM模型进行训练,步骤如下:
S11.输入转换好的日志序列
对各个日志序列依次输入窗口w下h个日志事件所匹配的模板ID,假设窗口下任意时刻的mtime为日志事件,ki,time为对应模板ID,i取值范围不超过模板ID总个数n,则有w={mt-h,mt-h-1,...,mt-2,mt-1},对应模板ID组为{ki,t-h,ki,t-h-1,...,ki,t-2,ki,t-1};
S12..LSTM模型通过输入的模板ID分布构建特征矩阵,以交叉熵cross-entropy为函数估计损失,以下一个日志事件模板ID为标签,优化针对下一个出现的日志事件条件概率分布模型:
Pr[mt=ki,t|w]
其中,为mt下一个日志出现的ID,ki,t为其对应的模板ID;
S2.将训练好的模型接入实时日志流,接收新的日志数据进行宕机异常检测,步骤如下:
S21.将模型w′={m′t-h,m′t-h-1,...,m′t-2,m′t-1}所对应的模板ID组{k′i,t-h,k′i,t-h-1,...,k′i,t-2,k′i,t-1}作为检测日志事件m′t是否为异常的输入,其中m′time为流入的实时日志事件,k′i,time为对应模板ID;模型将输出如下概率分布:
Pr[m′t=k′i,t|w]={k′1:p1,k′2:p2,...,k′n:pn};
S22.将k′t与模型输出的概率分布中概率最大的前x个比较,其中x为预设值,如果k′t不存在于概率最大的前x个中,则m′t被判断为节点宕机异常日志;
S23.根据与训练步骤中相同的滑动窗口大小和步长大小,统计每个滑动窗口大小下发生异常的频次,若统计出的异常频次大小大于预设的频次阈值,则达到报警条件。
6.根据权利要求1所述的基于分布式数据库日志数据的实时异常检测方法,其特征在于:
所述第四步中,判断当前消息对应时间点与上一轮异常报警总结输出时间点的差值,是否超过时间窗口window_size的下一个时间窗口:
如果差值小于时间窗口window_size,则当前时间与上一条消息处于同一个时间窗口内,不输出报警信息,继续模型的异常检测,并记录该条消息对应的异常情况;
如果差值大于时间窗口window_size,则当前时间为下一个时间窗口,将上一个时间窗口中各个节点的异常检测记录结果作为报警信息进行输出,通过HTTP POST发送到对应的HTTP端口,展现在Grafana界面,记录该消息并进行下一轮的异常检测。
7.一种基于分布式数据库日志数据的实时异常检测系统,其特征在于:包括日志采集模块,日志预处理模块,日志宕机异常检测模块和异常报警模块;
所述日志采集模块,负责通过解析JSON数据对分布式多节点日志信息进行分流预处理,并转换为模型适配的输入数据;
所述日志预处理模块,负责处理日志中非结构式信息部分,遮盖节点相关标识符,并通过Drain算法对日志进行解析,将匹配成功的日志记录转换为对应的日志模板编号,并根据时间窗口大小将日志记录整合成日志序列;
所述日志宕机异常检测模块,负责LSTM模型对整合的日志序列进行实时宕机异常检测,计算异常频次;
所述异常报警模块,负责根据各个节点的日志异常信息,判断异常频次是否超出报警频次,如果超出则根据用户自定义的时间窗口定时告警并处理。
8.根据权利要求7所述的基于分布式数据库日志数据的实时异常检测系统,其特征在于:数据来源为分布式数据库多节点的日志数据,所使用的消息发送组件为Kafka,数据格式为标准JSON格式;所述日志采集模块基于Python,负责利用开源组件Faust逐条处理JSON消息,解析出消息对应的节点、日志以及时间戳信息,根据解析出的节点对逐条JSON消息进行分流,并针对异常告警模型需求格式进行转换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110238361.XA CN112948215A (zh) | 2021-03-04 | 2021-03-04 | 基于分布式数据库日志数据的实时异常检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110238361.XA CN112948215A (zh) | 2021-03-04 | 2021-03-04 | 基于分布式数据库日志数据的实时异常检测方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112948215A true CN112948215A (zh) | 2021-06-11 |
Family
ID=76247518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110238361.XA Pending CN112948215A (zh) | 2021-03-04 | 2021-03-04 | 基于分布式数据库日志数据的实时异常检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948215A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448806A (zh) * | 2021-06-30 | 2021-09-28 | 平安证券股份有限公司 | 数据库集群异常检测方法、装置、终端设备及存储介质 |
CN115604003A (zh) * | 2022-10-14 | 2023-01-13 | 浙江工业大学(Cn) | 一种基于程序日志数据的系统异常检测方法 |
CN118467403A (zh) * | 2024-07-12 | 2024-08-09 | 宁波银行股份有限公司 | 一种数据库检测方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908065A (zh) * | 2010-07-27 | 2010-12-08 | 浙江大学 | 一种支持动态更新的在线属性异常点检测方法 |
US20140168843A1 (en) * | 2012-12-19 | 2014-06-19 | Stmicroelectronics S.R.L. | Arc fault detection equipment and method using low frequency harmonic current analysis |
US20170236023A1 (en) * | 2015-11-17 | 2017-08-17 | Nec Laboratories America, Inc. | Fast Pattern Discovery for Log Analytics |
CN111930592A (zh) * | 2020-07-20 | 2020-11-13 | 国网浙江省电力有限公司嘉兴供电公司 | 一种实时检测日志序列异常的方法和系统 |
-
2021
- 2021-03-04 CN CN202110238361.XA patent/CN112948215A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908065A (zh) * | 2010-07-27 | 2010-12-08 | 浙江大学 | 一种支持动态更新的在线属性异常点检测方法 |
US20140168843A1 (en) * | 2012-12-19 | 2014-06-19 | Stmicroelectronics S.R.L. | Arc fault detection equipment and method using low frequency harmonic current analysis |
US20170236023A1 (en) * | 2015-11-17 | 2017-08-17 | Nec Laboratories America, Inc. | Fast Pattern Discovery for Log Analytics |
CN111930592A (zh) * | 2020-07-20 | 2020-11-13 | 国网浙江省电力有限公司嘉兴供电公司 | 一种实时检测日志序列异常的方法和系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448806A (zh) * | 2021-06-30 | 2021-09-28 | 平安证券股份有限公司 | 数据库集群异常检测方法、装置、终端设备及存储介质 |
CN113448806B (zh) * | 2021-06-30 | 2022-12-09 | 平安证券股份有限公司 | 数据库集群异常检测方法、装置、终端设备及存储介质 |
CN115604003A (zh) * | 2022-10-14 | 2023-01-13 | 浙江工业大学(Cn) | 一种基于程序日志数据的系统异常检测方法 |
CN115604003B (zh) * | 2022-10-14 | 2024-04-05 | 浙江工业大学 | 一种基于程序日志数据的系统异常检测方法 |
CN118467403A (zh) * | 2024-07-12 | 2024-08-09 | 宁波银行股份有限公司 | 一种数据库检测方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112948215A (zh) | 基于分布式数据库日志数据的实时异常检测方法及系统 | |
CN108537544B (zh) | 一种交易系统实时监控方法及其监控系统 | |
CN110928718A (zh) | 一种基于关联分析的异常处理方法、系统、终端及介质 | |
US9917744B2 (en) | Method and system for monitoring quality of data transmission in IDC network | |
CN103761173A (zh) | 一种基于日志的计算机系统故障诊断方法及装置 | |
CN114785666B (zh) | 一种网络故障排查方法与系统 | |
CN112491611A (zh) | 故障定位系统、方法、装置、电子设备和计算机可读介质 | |
CN111930592A (zh) | 一种实时检测日志序列异常的方法和系统 | |
CN110460591B (zh) | 基于改进分层时间记忆网络的cdn流量异常检测装置及方法 | |
CN113518011A (zh) | 异常检测方法和装置、电子设备及计算机可读存储介质 | |
CN112015153A (zh) | 一种无菌灌装生产线异常检测系统和方法 | |
CN116955092A (zh) | 基于数据分析的多媒体系统监控方法及系统 | |
CN114721912B (zh) | 一种数据分析方法、装置、设备及介质 | |
CN110933115A (zh) | 基于动态session的分析对象行为异常检测方法及装置 | |
CN113360722A (zh) | 一种基于多维数据图谱的故障根因定位方法及系统 | |
CN113986643A (zh) | 分析日志文件的方法、电子设备和计算机程序产品 | |
CN113282920B (zh) | 日志异常检测方法、装置、计算机设备和存储介质 | |
CN118300860A (zh) | 一种基于机器学习和高级语义映射的电力网络异常检测系统 | |
CN115150248A (zh) | 网络流量异常检测方法、装置、电子设备和存储介质 | |
CN116599743A (zh) | 4a异常绕行检测方法、装置、电子设备及存储介质 | |
WO2023039973A1 (zh) | 异常误报的处理方法及装置、存储介质、终端 | |
CN113393169B (zh) | 基于大数据技术的金融行业交易系统性能指标分析方法 | |
CN115460061A (zh) | 基于智能运维场景的健康度评价方法及装置 | |
CN114676021A (zh) | 作业日志监控方法、装置、计算机设备和存储介质 | |
US11243937B2 (en) | Log analysis apparatus, log analysis method, and log analysis program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210611 |
|
RJ01 | Rejection of invention patent application after publication |