CN117608889A - 基于日志语义的异常检测方法以及相关设备 - Google Patents

基于日志语义的异常检测方法以及相关设备 Download PDF

Info

Publication number
CN117608889A
CN117608889A CN202311424494.1A CN202311424494A CN117608889A CN 117608889 A CN117608889 A CN 117608889A CN 202311424494 A CN202311424494 A CN 202311424494A CN 117608889 A CN117608889 A CN 117608889A
Authority
CN
China
Prior art keywords
log
abnormal
vector
entry
target
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
Application number
CN202311424494.1A
Other languages
English (en)
Inventor
张沛
杨逸珺
张毓
林深远
王辉
陈奕舟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN202311424494.1A priority Critical patent/CN117608889A/zh
Publication of CN117608889A publication Critical patent/CN117608889A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • G06F18/2113Selection of the most significant subset of features by ranking or filtering the set of features, e.g. using a measure of variance or of feature cross-correlation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2155Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the incorporation of unlabelled data, e.g. multiple instance learning [MIL], semi-supervised techniques using expectation-maximisation [EM] or naïve labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2433Single-class perspective, e.g. one-against-all classification; Novelty detection; Outlier detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/27Regression, e.g. linear or logistic regression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0475Generative networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/092Reinforcement learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/094Adversarial learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Quality & Reliability (AREA)
  • Medical Informatics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种基于日志语义的异常检测方法以及相关设备。所述方法包括:获取待检测的日志文件;其中,日志文件包括若干条目标日志条目;对日志文件中的每一条目标日志条目的进行解析,得到每一条目标日志条目对应的目标日志序列;根据预先构建的日志语料库以及目标日志序列确定目标日志序列的异常特征向量;将异常特征向量输入到预先构建的异常数据生成模型中,生成模拟异常向量;将异常特征向量作为标记训练集,将模拟异常向量作为未标记训练集,根据标记训练集以及未标记训练集训练预先构建的主动异常检测模型,得到优化后的主动异常检测模型;根据优化后的主动异常检测模型对待检测的日志文件进行检测,得到日志文件的异常日志条目。

Description

基于日志语义的异常检测方法以及相关设备
技术领域
本申请涉及互联网技术领域,尤其涉及一种基于日志语义的异常检测方法以及相关设备。
背景技术
随着互联网技术的发展,系统日志向来在系统溯源、功能恢复中扮演着重要角色,并被广泛运用于系统开发和维护过程中。现有技术中,系统工程师们往往需要打印系统中一些错误信息到日志中来方便日后异常点判断。但随着计算机系统日益复杂化、大规模化,从大体量的日志文件中人工检索异常信息会耗费研究人员大量的精力,得不偿失。特别在一些分布式系统或者高性能计算设备中,服务的可用性和可靠性较为重要,因此,从系统日志中自动化追溯错误信息对运维人员和开发人员来说有重要意义。
发明内容
有鉴于此,本申请的目的在于提出一种基于日志语义的异常检测方法以及相关设备,以解决或部分解决上述问题。
基于上述目的,本申请提供了一种基于日志语义的异常检测方法,包括:
获取待检测的日志文件;其中,所述日志文件包括若干条目标日志条目;
对所述日志文件中的每一条目标日志条目的进行解析,得到每一条所述目标日志条目对应的目标日志序列;
根据预先构建的日志语料库以及所述目标日志序列确定所述目标日志序列的异常特征向量;将所述异常特征向量输入到预先构建的异常数据生成模型中,生成模拟异常向量;
将所述异常特征向量作为标记训练集,将所述模拟异常向量作为未标记训练集,根据所述标记训练集以及所述未标记训练集训练预先构建的主动异常检测模型,得到优化后的主动异常检测模型;
根据所述优化后的主动异常检测模型对所述待检测的日志文件进行检测,得到所述日志文件的异常日志条目。
在一种可能的实现方式中,所述对所述日志文件中的每一条目标日志条目的进行解析,得到每一条所述目标日志条目对应的目标日志序列,包括:
针对每一条目标日志条目,将所述目标日志条目的日志参数替换为占位符;
识别所述目标日志条目的日志模板以及所述占位符,根据所述日志模板以及所述占位符确定日志模式;
对所述日志模式进行日志聚合,构建针对所述日志模式的解析规则;
根据所述日志解析规则以及所述目标日志条目得到所述目标日志序列。
在一种可能的实现方式中,所述对所述日志模式进行日志聚合,构建针对所述日志模式的解析规则,包括:
根据聚类算法将相同类型的所述目标日志条目进行聚合,得到若干个日志条目簇;
对于每一个所述日志条目簇中的每条目标日志条目,识别所述占位符在所述目标日志条目的位置以及所述目标日志条目的数据类型;
根据所述位置以及所述数据类型构建针对所述日志模式的解析规则。
在一种可能的实现方式中,所述根据所述日志解析规则以及所述目标日志条目得到所述目标日志序列,包括:
根据所述日志解析规则对所有所述目标日志条目对应的日志模板进行聚合,得到所述目标日志序列。
在一种可能的实现方式中,所述方法还包括:通过以下方式构建所述日志语料库:
获取历史日志文件;其中,所述历史日志文件包括若干条历史日志条目;
提取所述历史日志条目中的异常关键词,将所述异常关键词转化为异常嵌入向量;
将所述历史日志条目中的异常嵌入向量进行加权,得到所述日志语料库。
在一种可能的实现方式中,所述根据预先构建的日志语料库以及所述目标日志序列确定所述目标日志序列的异常特征向量,包括:
根据所述日志语料库中的异常嵌入向量对所述目标日志序列进行处理,得到针对所述目标日志序列的中间嵌入向量;
将所述中间嵌入向量输入到预先构建的神经网络模型,提取所述中间嵌入复向量的异常特征;
根据所述异常特征得到所述异常特征向量。
在一种可能的实现方式中,所述异常数据生成模型包括:模拟向量生成器以及模拟向量判别器;
所述将所述异常特征向量输入到预先构建的异常数据生成模型中,生成模拟异常向量,包括:
将所述异常特征向量输入到预先构建的异常数据生成模型中,将所述异常特征向量映射导所述异常数据生成模型的日志序列编码空间中,得到与所述异常特征向量相应的潜在异常向量;
根据所述异常特征向量与所述潜在异常向量之间的余弦相似度引导所述模拟向量生成器生成初始模拟异常向量;
通过所述模拟向量判别器对所述初始模拟异常向量在特征空间以及原始数据空间进行鉴别,从所述初始模拟异常向量中选择得到所述模拟异常向量;其中,所述模拟异常向量与所述异常特征向量的相似度大于所述初始模拟异常向量与所述异常特征向量的相似度。
在一种可能的实现方式中,所述将所述异常特征向量作为标记训练集,将所述模拟异常向量作为未标记训练集,根据所述标记训练集以及所述未标记训练集训练预先构建的主动异常检测模型,得到优化后的主动异常检测模型,包括:
将所述标记训练集以及所述未标记训练集进行随机混合,得到合并训练集;
根据所述合并训练集训练预先构建的主动异常检测模型,得到优化后的主动异常检测模型;其中,所述主动异常检测模型是结合决策树特征选择器构建的,所述主动异常检测模型的核心模块为seq2seq模型。
基于同样的目的,本申请还提出了一种基于日志语义的异常检测装置,包括:
获取模块,被配置为获取待检测的日志文件;其中,所述日志文件包括若干条目标日志条目;
解析模块,被配置为对所述日志文件中的每一条目标日志条目的进行解析,得到每一条所述目标日志条目对应的目标日志序列;
模拟模块,被配置为根据预先构建的日志语料库以及所述目标日志序列确定所述目标日志序列的异常特征向量;将所述异常特征向量输入到预先构建的异常数据生成模型中,生成模拟异常向量;
标记模块,被配置为将所述异常特征向量作为标记训练集,将所述模拟异常向量作为未标记训练集,根据所述标记训练集以及所述未标记训练集训练预先构建的主动异常检测模型,得到优化后的主动异常检测模型;
识别模块,被配置为根据所述优化后的主动异常检测模型对所述待检测的日志文件进行检测,得到所述日志文件的异常日志条目。
基于上述目的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任意一项所述的方法。
基于上述目的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述任意一项所述的方法。
基于上述目的,本申请提供了一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行上述任意一项所述的信道可迁移的语义通信方法。
从上面所述可以看出,本申请提供的基于日志语义的异常检测方法以及相关设备,首先获取待检测的日志文件;其中,日志文件包括若干条目标日志条目,进一步地,对日志文件中的每一条目标日志条目的进行解析,得到每一条目标日志条目对应的目标日志序列,根据预先构建的日志语料库以及目标日志序列确定目标日志序列的异常特征向量,然后,将异常特征向量输入到预先构建的异常数据生成模型中,生成模拟异常向量,将异常特征向量作为标记训练集,将模拟异常向量作为未标记训练集,根据标记训练集以及未标记训练集训练预先构建的主动异常检测模型,得到优化后的主动异常检测模型,最后,根据优化后的主动异常检测模型对待检测的日志文件进行检测,得到日志文件的异常日志条目。本申请在数据增强方面引入了来丰富训练数据集,同时也没有抛弃日志检测中的序列相关性,利用预先构建的异常数据生成模型对不足的训练样本进行补充,同时利用日志文本中蕴含的语义信息对异常数据的生成加以辅助,提高模型本身的生成能力,在模型的进化方面,主要利用了强化学习的天然进化能力,将异常检测和强化学习进行结合,构建了结合决策树特征选择器的主动异常检测模型,其中核心检测模块使用了seq2seq模型,并进一步通过决策树特征选择奖励和核心检测模型奖励来实现模型自动更新的在线学习机制。提高了异常日志识别的效率和准确性。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的基于日志语义的异常检测方法的流程示意图。
图2为本申请实施例提供的主动日志异常检测示意图。
图3为本申请实施例提供的基于日志语义的异常检测装置示意图。
图4为本申请实施例提供的电子设备硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如背景技术部分所述,传统日志检测通常包括基于规则的检测方法,它依据大量的特定领域知识不仅无法做到自动化识别日志异常,还妨碍了不同日志之间检测方法的迁移;另外一些日志检测手段,如PCA降维或SVM等聚类方法通常不能很好地捕捉日志条目(entry)间的复杂相关性。现在很多的研究都在尝试从日志文件中自动检索异常信息,很多无监督学习、监督学习和自监督学习被广泛运用在日志异常数据的挖掘中。将autoencoder自编码特征提取器和孤立森林方法结合起来,利用无监督方法进行日志异常检测,更多的深度学习模型被引入,例如deeplog考虑到了日志事件间的相关性,将日志异常检测当作序列问题,创新性地将RNN模型引入日志异常检测,还有将attention注意力机制引入日志序列异常,从可解释性的角度证明了日志异常检测作为序列问题的合理性。
但申请人在实现本申请的过程中发现,目前的工作依然存在以下问题:
首先,现在日志异常标签的获得还得通过具有领域知识的工程师来对日志进行标注,标签往往难以获取,是异常检测训练过程中研究人员只能拿到小部分的数据,数据量太小的情况对机器学习的训练来说本来就是一个挑战,无法得到大量丰富的样本无疑会对模型的学习效果造成一定影响;其次,对于大型日志信息来说,异常样本只占总样本的很小一部分,数据不平衡会导致模型很容易出现过拟合问题,导致模型判断正常样本的识别能力很高,但却识别不了小部分的异常样本,这种情况正好和我们的异常检测目标是两个完全相悖的方向。
除此之外,因为大型系统的打印日志信息是不断更新和演变的,日志打印事件并非一成不变而是不断更新迭代的,一些未出现的异常信息通常很难被非进步的模型所学习到,即上述深度学习模型所存在的适应性问题,即日志信息在不断更新进化的,即日志文件中随时都可能出现从未出现的新的值得注意的事件,这导致了如果只用之前到来的日志信息来训练模型,模型不能随着新日志的到来而更新学习的话,新的日志事件不会引起模型注意从而被丢失,导致之后模型识别异常信息的效率降低,从而模型失去鲁棒性。
因此,本申请提出了一种基于日志语义的异常检测方法以及相关设备,首先获取待检测的日志文件;其中,日志文件包括若干条目标日志条目,进一步地,对日志文件中的每一条目标日志条目的进行解析,得到每一条目标日志条目对应的目标日志序列,根据预先构建的日志语料库以及目标日志序列确定目标日志序列的异常特征向量,然后,将异常特征向量输入到预先构建的异常数据生成模型中,生成模拟异常向量,将异常特征向量作为标记训练集,将模拟异常向量作为未标记训练集,根据标记训练集以及未标记训练集训练预先构建的主动异常检测模型,得到优化后的主动异常检测模型,最后,根据优化后的主动异常检测模型对待检测的日志文件进行检测,得到日志文件的异常日志条目。本申请在数据增强方面引入了来丰富训练数据集,同时也没有抛弃日志检测中的序列相关性,利用预先构建的异常数据生成模型对不足的训练样本进行补充,同时利用日志文本中蕴含的语义信息对异常数据的生成加以辅助,提高模型本身的生成能力,在模型的进化方面,主要利用了强化学习的天然进化能力,将异常检测和强化学习进行结合,并进一步通过模型奖励来实现模型自动更新的在线学习机制。提高了异常日志识别的效率和准确性。
以下,通过具体的实施例进一步详细说明本申请的技术方案。
参考图1,为本申请实施例提供的基于日志语义的异常检测方法的流程示意图。
步骤S101,获取待检测的日志文件;其中,所述日志文件包括若干条目标日志条目。
生活中的日志是记录你生活的点点滴滴,让它把你内心的世界表露出来,更好的诠释自己的内心世界,而电脑里的日志可以是有价值的信息宝库,也可以是毫无价值的数据泥潭。
网络设备、系统及服务程序等,在运作时都会产生一个叫log的事件记录;每一行日志都记载着日期、时间、使用者及动作等相关操作的描述。Windows网络操作系统都设计有各种各样的日志文件,如应用程序日志,安全日志、系统日志、Scheduler服务日志、FTP日志、WWW日志、DNS服务器日志等等,这些根据你的系统开启的服务的不同而有所不同。我们在系统上进行一些操作时,这些日志文件通常会记录下我们操作的一些相关内容,这些内容对系统安全工作人员相当有用。比如说有人对系统进行了IPC探测,系统就会在安全日志里迅速地记下探测者探测时所用的IP、时间、用户名等,用FTP探测后,就会在FTP日志中记下IP、时间、探测所用的用户名等。
在本申请实施例中,首先获取待检测的日志文件,待检测的日志文件中包含多条目标日志条目。日志文件是用于记录系统操作事件的记录文件或文件集合,可分为事件日志和消息日志。具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。日志条目(log entry)是某个系统事件基于文本的一项记录。当用户输入身份验证信息时,一个远程客户端向Web请求数据时,应用程序崩溃时,或者新的硬件设备连接时,一条描述性的记录就会附加到一个或多个日志文件中。
参考图2,为本申请实施例提供的主动日志异常检测示意图。
步骤S102,对所述日志文件中的每一条目标日志条目的进行解析,得到每一条所述目标日志条目对应的目标日志序列。
日志解析是将半结构化日志转化为结构化日志的一种手段,是识别日志意义的过程。日志处理方法通常包括日志解析、特征提取等步骤。日志是事件、参数和其他信息的集合。日志文件通常由多个条目组成,这些条目按时间顺序到达,每个日志消息可以被看作是日志事件(常量部分)和日志参数(可变部分)。对于这样一种半结构化的日志文件,通常的处理方法是根据日志中的日志事件模板解析日志条目信息,并将半结构化日志文件解析为结构化信息,即日志事件加参数。然后按照会话(如块)的相同标识符,按照时间顺序排列日志条目,以获取序列化的日志数据进行分析,然后处理序列化的日志数据。而日志的特征提取有两种流行的方法。一种方法是进行事件频率统计,即计算每个会话标识符下日志序列中事件的频率。第二种方法是使用递归神经网络构建自编码器,提取日志序列信息以保留日志事件之间的发生关系。
作为一个可选的实施例,针对每一条目标日志条目,可以将目标日志条目的日志参数替换为占位符,进一步地,识别目标日志条目的日志模板以及占位符,根据日志模板以及占位符确定日志模式,对日志模式进行日志聚合,构建针对日志模式的解析规则,最后,根据日志解析规则以及目标日志条目得到所述目标日志序列。
具体地,可以利用日志解析器Drain进行迭代化自动提取语义模板信息,并对日志条目进行解析化处理,具体实现步骤如下:
首先,可以通过对特定日志的结构化正则匹配式对原始日志进行预处理,正则表达式可以用于对字符串进行操作,正则的功能包括匹配、替换、提取等,通过正则化可以包括去除无关信息(如时间戳、ID)和标准化日志格式,以便后续处理。
作为一个可选的实施例,可以根据聚类算法将相同类型的目标日志条目进行聚合,得到若干个日志条目簇,对于每一个日志条目簇中的每条目标日志条目,识别占位符在目标日志条目的位置以及目标日志条目的数据类型,最后,根据位置以及数据类型构建针对日志模式的解析规则。
具体地,针对每个日志条目,通过识别日志模板和占位符来提取日志模式。日志模板是通过将日志中的具体值替换为占位符(如*)得到的,然后聚类算法(DBSCAN)将相似的日志模式组合成簇。
对于每个簇,Drain使用一种称为"Log Clustering"的日志聚类算法来解析日志模式,Drain是一个在线实时日志解析方法,其采用的是固定长度的树模型。该算法通过识别模式中占位符的位置和数据类型来构建日志解析规则。
首先,通过对相同簇中的日志模式进行比较,确定每个占位符的位置。这些位置表示模式中不同日志条目的对应关系。接下来,根据占位符在不同日志条目中出现的数据类型,为每个占位符分配一个特定的解析规则。例如,一个占位符可能表示IP地址,另一个可能表示时间戳。这样,Drain构建了一个解析树(Parsing Tree),用于将未解析的日志条目映射到已识别的解析规则,并从中提取有意义的字段值。将半结构化的日志信息变为结构化的模板加参数的标识形式。
作为一个可选的实施例,可以根据日志解析规则对所有目标日志条目对应的日志模板进行聚合,得到目标日志序列。
具体地,可以通过标识符或者时间戳对结构化的日志条目信息进行聚合,得到序列化日志数据,即目标日志序列。首先,在日志解析树中为每一条日志匹配一个精确化的日志模板,该模板包含日志条目的操作信息或记录信息。进一步地,按照标识符或时间戳信息对识别到模板的日志信息进行聚合,将单条目日志数据组合为日志序列数据,每一日志序列数据都由单个的日志事件和对应日志参数构成。
步骤S103,根据预先构建的日志语料库以及所述目标日志序列确定所述目标日志序列的异常特征向量;将所述异常特征向量输入到预先构建的异常数据生成模型中,生成模拟异常向量。
作为一个可选的实施例,可以通过以下方式构建所述日志语料库:
首先获取历史日志文件;其中,历史日志文件包括若干条历史日志条目,提取历史日志条目中的异常关键词,将异常关键词转化为异常嵌入向量,进一步地,将历史日志条目中的异常嵌入向量进行加权,得到日志语料库。
在具体实施中,日志模板清洗及分词的过程包括对日志模板类中的非结构化参数进行遮蔽,将日志条目精心整理为结构化模板,同时从中提取关键词以建立一个丰富的词汇表。在这一阶段,我们对原始日志信息进行处理,消除不必要的复杂性,使之更适合后续的分析和处理。
通过采用小型word2vec模型,对词汇库中的每个词进行了嵌入表示。更具体地说,着重识别并标注其中的负性词汇,负性词汇可以理解为异常词汇,这些词汇可能与异常情况相关。通过将词汇转化为向量表示,能够在后续的分析中更有效地处理和比较不同的词汇,从而更好地捕捉潜在的异常语义信息。
在模板句向量嵌入阶段,对日志模板词汇库中的词向量进行了TF-IDF加权。这样做的目的是将模板句的关键性词汇进行强调,凸显其在整体语境中的重要性。这些加权后的词向量共同构成了模板句的嵌入向量表示,这个向量能够更全面地反映模板句的语义特征,为后续的异常检测提供更有力的依据。
TF-IDF(term frequency–inverse document frequency,词频-逆向文档频率)是一种用于信息检索(information retrieval)与文本挖掘(text mining)的常用加权技术。如果某个词条在一篇文章中出现的频率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
TF(Term Frequency):词频,表示词条(关键字)在文本中出现的频率,常用归一化形式表示。DF(Document Frequency):文档频率,含有词条(关键字)的文档的数量。IDF(Inverse Document Frequency):逆文档频率,跟文档频率形成“反比关系”。
作为一个可选的实施例,可以根据日志语料库中的异常嵌入向量对目标日志序列进行处理,得到针对目标日志序列的中间嵌入向量,进一步地,将中间嵌入向量输入到预先构建的神经网络模型,提取中间嵌入复向量的异常特征,最后,根据异常特征得到异常特征向量。
在具体实施中,可以利用自回归(auto-encoder)结构对序列数据进行自回归监督学习。
在对日志语料库进行收集并做word2vec embedding后,会得到针对每条模板的嵌入向量,输入序列数据后,在嵌入层将预先得到的嵌入向量引入,作为之后序列特征学习层的输入。输入目标日志序列中模板的嵌入向量序列后,搭建了引入self-attention机制的LSTM序列编码网络(series-encoder),该层使用了LSTM神经网络序列传播功能来为序列数据保留上下文信息,同时引入attention机制,增强模型对长序列的建模能力同时防止LSTM传播所导致的梯度爆炸和梯度消失问题,得到一条序列数据的潜在向量,即中间嵌入向量。
得到序列潜在向量表示后,搭建了引入self-attention机制的LSTM序列重构网络(series-decoder),该层负责用潜在向量还原出输入序列,对每一个时间步上的日志模板进行softmax分类输出,从而通过两级自回归学习使编码层输出的潜在向量可以有效地表示该序列的特征,以达到序列数据特征提取目的。
进一步地,通过使用单层神经网络对潜在向量在下一个时间步的数据进行预测,旨在实现一种预测性监督学习方法,以增强对潜在异常模式的识别和理解能力。这个方法的目的是进一步提升异常检测系统的性能,并加强对未知异常情况的适应性。这个单层神经网络将潜在向量作为输入,并预测在未来时间步中可能的潜在向量。这种预测性监督学习方法的优势在于它能够学习到数据序列中的内在结构和演化规律。通过使神经网络逐步预测未来的潜在向量,模型可以在训练过程中逐渐学会捕捉异常模式在时间上的变化,从而更好地应对复杂的异常情况。
作为一个可选的实施例,异常数据生成模型(GAN)是基于生成网络得到的,包括:模拟向量生成器以及模拟向量判别器;
在具体实施中,可以将异常特征向量输入到预先构建的异常数据生成模型中,将异常特征向量映射导异常数据生成模型的日志序列编码空间中,得到与异常特征向量相应的潜在异常向量,根据异常特征向量与潜在异常向量之间的余弦相似度引导模拟向量生成器生成初始模拟异常向量,通过模拟向量判别器对初始模拟异常向量在特征空间以及原始数据空间进行鉴别,从初始模拟异常向量中选择得到模拟异常向量;其中,模拟异常向量与异常特征向量的相似度大于初始模拟异常向量与异常特征向量的相似度。
具体地,生成器接收一个随机噪声向量作为输入,并将其映射到日志序列编码空间中。噪声向量服从一个给定的分布(通常是多维均匀分布或者是多维高斯分布)。生成器将噪声向量合称为样本数据。判别器的作用是对样本数据的真伪进行判断。
生成器由一个引入了self-attention机制的LSTM网络构成,本申请没有直接让生成器接收前一个时间步的输入生成当前时间步的日志事件,而是通过将其映射为潜在向量进行生成,本申请通过计算两个向量间的余弦相似度来指导日志事件序列的生成,两个序列的潜在向量越相似,则它们在特征空间上的距离会越接近。同时,通过计算这两个向量的js散度来辅助序列生成向量,生成器的目标是学习生成逼真的日志序列特征,使其能够欺骗判别器,让其无法区分生成的序列和真实的序列。
在异常检测领域,使用两个判别器的方法可以增强模型的鉴别能力和性能。其中一个判别器在特征空间进行鉴别,另一个判别器在原样本空间进行鉴别,这种策略可以进一步提升异常检测的准确性和鲁棒性。
在本申请中,针对第一个判别器,在特征空间做鉴别:
这个判别器的任务是接收从生成器或真实数据中提取的特征表示(例如,潜在异常向量或特征向量),然后对这些特征进行分类,判定它们是来自生成器还是真实数据。这个判别器通常是一个二分类的神经网络,它学习如何区分不同特征表示之间的差异,从而提高对生成数据和真实数据的区分度。通过在特征空间进行鉴别,这个判别器有助于生成器更好地学习特征表示,使其生成的数据更接近真实数据的分布。
在本申请中,第二个判别器,在原样本空间做鉴别:
这个判别器的作用是直接在原始样本空间中对输入数据进行分类,判定它们是真实的样本还是生成的样本。与第一个判别器不同,这个判别器关注的是输入数据的原始特征,而不是特征表示。通过在原样本空间进行鉴别,这个判别器可以更准确地评估生成数据的逼真程度,并提供关键的反馈来优化生成器的输出。
通过结合这两个判别器,异常数据生成模型能够综合考虑特征表示和原始样本的信息,从而更全面地评估生成器的性能。这种双判别器策略有助于提高生成器的训练效果,使其生成的数据更贴近真实分布,同时也增强了异常检测的能力,使其在多变的异常情况下表现更出色。
步骤S104,将所述异常特征向量作为标记训练集,将所述模拟异常向量作为未标记训练集,根据所述标记训练集以及所述未标记训练集训练预先构建的主动异常检测模型,得到优化后的主动异常检测模型。
作为一个可选的实施例,可以将标记训练集以及未标记训练集进行随机混合,得到合并训练集,根据合并训练集训练预先构建的主动异常检测模型,得到优化后的主动异常检测模型;其中,所述主动异常检测模型是结合决策树特征选择器构建的,所述主动异常检测模型的核心模块为seq2seq模型。
对于已经鉴别出的异常数据,进行标记的操作,随后将产生的数据视为未被标记的数据,以此达到数据增强的目的。以拓展数据集,丰富模型训练所需的样本数量和多样性,从而提升模型的鲁棒性和泛化能力。通过将生成的数据与已有数据混合,模型可以更好地适应各种场景和情况,进而增强其在未知数据上的表现。这种数据增强策略有助于降低过拟合风险,提高模型在真实世界中的应用效果。
步骤S105,根据所述优化后的主动异常检测模型对所述待检测的日志文件进行检测,得到所述日志文件的异常日志条目。
在具体实施中,运用深度强化学习来进行日志异常检测,旨在通过最大化异常奖励来发现更广泛的异常实例。在这一策略中,将日志数据集中的每条数据序列视为一个独立的实例,并构建了一个深度神经网络作为决策代理,它负责产生具体动作以优化策略。
作为一个可选的实施例,首先将这个深度强化模型建立在完整的目标日志序列数据集之上。每一条目标日志序列在数据集中都被定义为一个待观测实例状态,以构建状态空间的抽象表示。
进一步地,建立决策智能体,它根据当前状态和奖励函数来选择执行的动作。这个智能体由一个seq2seq深度神经网络实现,该神经网络在每个时间步骤决策下一步的状态St+1,而决策的动作则是二元行为,即正常动作a0和异常动作a1。智能体的任务是决定当前观测状态是正常还是异常。
同时,构建特征选择器,特征选择器由随机森林模型构成,通过衡量实例状态在特征空间中的映射分布距离,主动选择下一次采样的训练数据。
作为一个可选的实施例,本申请还定义了奖励函数,用于累积智能体在每个时间步骤的决策效果。奖励函数综合考虑了智能体的损失(loss)、特征选择器的损失以及精确度(accuracy)。通过对这些指标的综合考虑,智能体能够在决策中平衡准确性和损失。
作为一个可选的实施例,本申请采用经验回放机制,将智能体在环境中获得的经验存储在一个经验池中,然后利用特征选择器采样一批经验用于模型的训练。这有助于平稳地训练模型,减少样本之间的相关性,提高训练效率,并促使模型更好地学习异常检测策略。
从上面所述可以看出,本申请提供的基于日志语义的异常检测方法以及相关设备,首先获取待检测的日志文件;其中,日志文件包括若干条目标日志条目,进一步地,对日志文件中的每一条目标日志条目的进行解析,得到每一条目标日志条目对应的目标日志序列,根据预先构建的日志语料库以及目标日志序列确定目标日志序列的异常特征向量,然后,将异常特征向量输入到预先构建的异常数据生成模型中,生成模拟异常向量,将异常特征向量作为标记训练集,将模拟异常向量作为未标记训练集,根据标记训练集以及未标记训练集训练预先构建的主动异常检测模型,得到优化后的主动异常检测模型,最后,根据优化后的主动异常检测模型对待检测的日志文件进行检测,得到日志文件的异常日志条目。本申请在数据增强方面引入了来丰富训练数据集,同时也没有抛弃日志检测中的序列相关性,利用预先构建的异常数据生成模型对不足的训练样本进行补充,同时利用日志文本中蕴含的语义信息对异常数据的生成加以辅助,提高模型本身的生成能力,在模型的进化方面,主要利用了强化学习的天然进化能力,将异常检测和强化学习进行结合,并进一步通过模型奖励来实现模型自动更新的在线学习机制。提高了异常日志识别的效率和准确性。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例提供的方法相对应的,本申请还提供了一种基于日志语义的异常检测装置。
参考图3,为本申请实施例提供的基于日志语义的异常检测装置示意图。
所述装置包括:
获取模块301,被配置为获取待检测的日志文件;其中,所述日志文件包括若干条目标日志条目;
解析模块302,被配置为对所述日志文件中的每一条目标日志条目的进行解析,得到每一条所述目标日志条目对应的目标日志序列;
模拟模块303,被配置为根据预先构建的日志语料库以及所述目标日志序列确定所述目标日志序列的异常特征向量;将所述异常特征向量输入到预先构建的异常数据生成模型中,生成模拟异常向量;
标记模块304,被配置为将所述异常特征向量作为标记训练集,将所述模拟异常向量作为未标记训练集,根据所述标记训练集以及所述未标记训练集训练预先构建的主动异常检测模型,得到优化后的主动异常检测模型;
识别模块305,被配置为根据所述优化后的主动异常检测模型对所述待检测的日志文件进行检测,得到所述日志文件的异常日志条目。
可选的,所述解析模块302,还被配置为:
针对每一条目标日志条目,将所述目标日志条目的日志参数替换为占位符;
识别所述目标日志条目的日志模板以及所述占位符,根据所述日志模板以及所述占位符确定日志模式;
对所述日志模式进行日志聚合,构建针对所述日志模式的解析规则;
根据所述日志解析规则以及所述目标日志条目得到所述目标日志序列。
可选的,所述解析模块302,还被配置为:
根据聚类算法将相同类型的所述目标日志条目进行聚合,得到若干个日志条目簇;
对于每一个所述日志条目簇中的每条目标日志条目,识别所述占位符在所述目标日志条目的位置以及所述目标日志条目的数据类型;
根据所述位置以及所述数据类型构建针对所述日志模式的解析规则。
可选的,所述解析模块302,还被配置为:
根据所述日志解析规则对所有所述目标日志条目对应的日志模板进行聚合,得到所述目标日志序列。
可选的,所述模拟模块303,还被配置为:通过以下方式构建所述日志语料库:
获取历史日志文件;其中,所述历史日志文件包括若干条历史日志条目;
提取所述历史日志条目中的异常关键词,将所述异常关键词转化为异常嵌入向量;
将所述历史日志条目中的异常嵌入向量进行加权,得到所述日志语料库。
可选的,所述模拟模块303,还被配置为:
根据所述日志语料库中的异常嵌入向量对所述目标日志序列进行处理,得到针对所述目标日志序列的中间嵌入向量;
将所述中间嵌入向量输入到预先构建的神经网络模型,提取所述中间嵌入复向量的异常特征;
根据所述异常特征得到所述异常特征向量。
可选的,所述异常数据生成模型包括:模拟向量生成器以及模拟向量判别器;
所述模拟模块303,还被配置为:
将所述异常特征向量输入到预先构建的异常数据生成模型中,将所述异常特征向量映射导所述异常数据生成模型的日志序列编码空间中,得到与所述异常特征向量相应的潜在异常向量;
根据所述异常特征向量与所述潜在异常向量之间的余弦相似度引导所述模拟向量生成器生成初始模拟异常向量;
通过所述模拟向量判别器对所述初始模拟异常向量在特征空间以及原始数据空间进行鉴别,从所述初始模拟异常向量中选择得到所述模拟异常向量;其中,所述模拟异常向量与所述异常特征向量的相似度大于所述初始模拟异常向量与所述异常特征向量的相似度。
可选的,所述标记模块304,还被配置为:
将所述标记训练集以及所述未标记训练集进行随机混合,得到合并训练集;
根据所述合并训练集训练预先构建的主动异常检测模型,得到优化后的主动异常检测模型;其中,所述主动异常检测模型是结合决策树特征选择器构建的,所述主动异常检测模型的核心模块为seq2seq模型。
为了描述的方便,描述以上系统时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的系统用于实现前述任一实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的方法。
图4示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器410、存储器420、输入/输出接口430、通信接口440和总线450。其中处理器410、存储器420、输入/输出接口430和通信接口440通过总线450实现彼此之间在设备内部的通信连接。
处理器410可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器420可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
输入/输出接口430用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口440用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线450包括一通路,在设备的各个组件(例如处理器410、存储器420、输入/输出接口430和通信接口440)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器410、存储器420、输入/输出接口430、通信接口440以及总线450,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法。
上述非暂态计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上示例性方法部分中任一实施例所述的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例所述的方法相对应的,本申请还提供了一种计算机程序产品,其包括计算机程序指令。在一些实施例中,所述计算机程序指令可以由计算机的一个或多个处理器执行以使得所述计算机和/或所述处理器执行所述的方法。对应于所述的方法各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使所述计算机和/或所述处理器执行如上任一实施例所述的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
可以理解的是,在使用本申请中各个实施例的技术方案之前,均会通过恰当的方式对所涉及的个人信息的类型、使用范围、使用场景等告知用户,并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确的提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主的选择是否向执行本申请技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定的实现方式,响应于接受到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本申请的实现方式构成限定,其他满足相关法律法规的方式也可应用于本申请的实现方式中。
本领域技术技术人员应当理解,本申请的实施方式可以实现为一种系统、方法或计算机程序产品。因此,本申请可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本申请还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的产品。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (12)

1.一种基于日志语义的异常检测方法,其特征在于,包括:
获取待检测的日志文件;其中,所述日志文件包括若干条目标日志条目;
对所述日志文件中的每一条目标日志条目的进行解析,得到每一条所述目标日志条目对应的目标日志序列;
根据预先构建的日志语料库以及所述目标日志序列确定所述目标日志序列的异常特征向量;将所述异常特征向量输入到预先构建的异常数据生成模型中,生成模拟异常向量;
将所述异常特征向量作为标记训练集,将所述模拟异常向量作为未标记训练集,根据所述标记训练集以及所述未标记训练集训练预先构建的主动异常检测模型,得到优化后的主动异常检测模型;
根据所述优化后的主动异常检测模型对所述待检测的日志文件进行检测,得到所述日志文件的异常日志条目。
2.根据权利要求1所述的方法,其特征在于,所述对所述日志文件中的每一条目标日志条目的进行解析,得到每一条所述目标日志条目对应的目标日志序列,包括:
针对每一条目标日志条目,将所述目标日志条目的日志参数替换为占位符;
识别所述目标日志条目的日志模板以及所述占位符,根据所述日志模板以及所述占位符确定日志模式;
对所述日志模式进行日志聚合,构建针对所述日志模式的解析规则;
根据所述日志解析规则以及所述目标日志条目得到所述目标日志序列。
3.根据权利要求2所述的方法,其特征在于,所述对所述日志模式进行日志聚合,构建针对所述日志模式的解析规则,包括:
根据聚类算法将相同类型的所述目标日志条目进行聚合,得到若干个日志条目簇;
对于每一个所述日志条目簇中的每条目标日志条目,识别所述占位符在所述目标日志条目的位置以及所述目标日志条目的数据类型;
根据所述位置以及所述数据类型构建针对所述日志模式的解析规则。
4.根据权利要求2所述的方法,其特征在于,所述根据所述日志解析规则以及所述目标日志条目得到所述目标日志序列,包括:
根据所述日志解析规则对所有所述目标日志条目对应的日志模板进行聚合,得到所述目标日志序列。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过以下方式构建所述日志语料库:
获取历史日志文件;其中,所述历史日志文件包括若干条历史日志条目;
提取所述历史日志条目中的异常关键词,将所述异常关键词转化为异常嵌入向量;
将所述历史日志条目中的异常嵌入向量进行加权,得到所述日志语料库。
6.根据权利要求5所述的方法,其特征在于,所述根据预先构建的日志语料库以及所述目标日志序列确定所述目标日志序列的异常特征向量,包括:
根据所述日志语料库中的异常嵌入向量对所述目标日志序列进行处理,得到针对所述目标日志序列的中间嵌入向量;
将所述中间嵌入向量输入到预先构建的神经网络模型,提取所述中间嵌入复向量的异常特征;
根据所述异常特征得到所述异常特征向量。
7.根据权利要求1所述的方法,其特征在于,所述异常数据生成模型包括:模拟向量生成器以及模拟向量判别器;
所述将所述异常特征向量输入到预先构建的异常数据生成模型中,生成模拟异常向量,包括:
将所述异常特征向量输入到预先构建的异常数据生成模型中,将所述异常特征向量映射导所述异常数据生成模型的日志序列编码空间中,得到与所述异常特征向量相应的潜在异常向量;
根据所述异常特征向量与所述潜在异常向量之间的余弦相似度引导所述模拟向量生成器生成初始模拟异常向量;
通过所述模拟向量判别器对所述初始模拟异常向量在特征空间以及原始数据空间进行鉴别,从所述初始模拟异常向量中选择得到所述模拟异常向量;其中,所述模拟异常向量与所述异常特征向量的相似度大于所述初始模拟异常向量与所述异常特征向量的相似度。
8.根据权利要求1所述的方法,其特征在于,所述将所述异常特征向量作为标记训练集,将所述模拟异常向量作为未标记训练集,根据所述标记训练集以及所述未标记训练集训练预先构建的主动异常检测模型,得到优化后的主动异常检测模型,包括:
将所述标记训练集以及所述未标记训练集进行随机混合,得到合并训练集;
根据所述合并训练集训练预先构建的主动异常检测模型,得到优化后的主动异常检测模型;其中,所述主动异常检测模型是结合决策树特征选择器构建的,所述主动异常检测模型的核心模块为seq2seq模型。
9.一种基于日志语义的异常检测装置,其特征在于,包括:
获取模块,被配置为获取待检测的日志文件;其中,所述日志文件包括若干条目标日志条目;
解析模块,被配置为对所述日志文件中的每一条目标日志条目的进行解析,得到每一条所述目标日志条目对应的目标日志序列;
模拟模块,被配置为根据预先构建的日志语料库以及所述目标日志序列确定所述目标日志序列的异常特征向量;将所述异常特征向量输入到预先构建的异常数据生成模型中,生成模拟异常向量;
标记模块,被配置为将所述异常特征向量作为标记训练集,将所述模拟异常向量作为未标记训练集,根据所述标记训练集以及所述未标记训练集训练预先构建的主动异常检测模型,得到优化后的主动异常检测模型;其中,所述主动异常检测模型是结合决策树特征选择器构建的,所述主动异常检测模型的核心模块为seq2seq模型;
识别模块,被配置为根据所述优化后的主动异常检测模型对所述待检测的日志文件进行检测,得到所述日志文件的异常日志条目。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任意一项所述的方法。
11.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1至8任一所述方法。
12.一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行如权利要求1至8中任一项所述的方法。
CN202311424494.1A 2023-10-30 2023-10-30 基于日志语义的异常检测方法以及相关设备 Pending CN117608889A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311424494.1A CN117608889A (zh) 2023-10-30 2023-10-30 基于日志语义的异常检测方法以及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311424494.1A CN117608889A (zh) 2023-10-30 2023-10-30 基于日志语义的异常检测方法以及相关设备

Publications (1)

Publication Number Publication Date
CN117608889A true CN117608889A (zh) 2024-02-27

Family

ID=89945098

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311424494.1A Pending CN117608889A (zh) 2023-10-30 2023-10-30 基于日志语义的异常检测方法以及相关设备

Country Status (1)

Country Link
CN (1) CN117608889A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117827620A (zh) * 2024-03-05 2024-04-05 云账户技术(天津)有限公司 异常诊断方法、模型的训练方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117827620A (zh) * 2024-03-05 2024-04-05 云账户技术(天津)有限公司 异常诊断方法、模型的训练方法、装置、设备及存储介质
CN117827620B (zh) * 2024-03-05 2024-05-10 云账户技术(天津)有限公司 异常诊断方法、模型的训练方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN108717408B (zh) 一种敏感词实时监控方法、电子设备、存储介质及系统
WO2018184518A1 (zh) 微博数据处理方法、装置、计算机设备及存储介质
Cai et al. An abstract syntax tree encoding method for cross-project defect prediction
CN113011889B (zh) 账号异常识别方法、系统、装置、设备及介质
CN113742733B (zh) 阅读理解漏洞事件触发词抽取和漏洞类型识别方法及装置
CN112329816A (zh) 数据分类方法、装置、电子设备和可读存储介质
CN117608889A (zh) 基于日志语义的异常检测方法以及相关设备
Shcherban et al. Automatic identification of code smell discussions on stack overflow: A preliminary investigation
CN116305119A (zh) 基于预测指导原型的apt恶意软件分类方法和装置
CN115687732A (zh) 基于ai和流式计算的用户分析方法及系统
CN116361788A (zh) 一种基于机器学习的二进制软件漏洞预测方法
CN116318830A (zh) 一种基于生成对抗网络的日志入侵检测系统
CN117874662A (zh) 基于图模式的微服务日志异常检测方法
Nevendra et al. A survey of software defect prediction based on deep learning
CN117828029A (zh) 一种基于情感-风格去偏的多领域虚假新闻检测方法
CN116663536B (zh) 一种临床诊断标准词的匹配方法及装置
Pohl et al. Active online learning for social media analysis to support crisis management
CN116432099A (zh) 日志分类方法、装置、电子设备及存储介质
CN117216617A (zh) 文本分类模型训练方法、装置、计算机设备和存储介质
CN113326371B (zh) 一种融合预训练语言模型与抗噪声干扰远程监督信息的事件抽取方法
Thanos et al. Combined deep learning and traditional NLP approaches for fire burst detection based on twitter posts
CN113420127A (zh) 威胁情报处理方法、装置、计算设备及存储介质
Fahad et al. Building a fortress against fake news: Harnessing the power of subfields in artificial intelligence
Sivanaiah et al. Avalanche at dravidianlangtech: Abusive comment detection in code mixed data using machine learning techniques with under sampling
CN114911922A (zh) 一种情感分析方法、装置和存储介质

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