CN118211170B - 服务器故障诊断方法、产品、计算机设备和存储介质 - Google Patents
服务器故障诊断方法、产品、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN118211170B CN118211170B CN202410634960.7A CN202410634960A CN118211170B CN 118211170 B CN118211170 B CN 118211170B CN 202410634960 A CN202410634960 A CN 202410634960A CN 118211170 B CN118211170 B CN 118211170B
- Authority
- CN
- China
- Prior art keywords
- log
- server
- hardware
- label
- cluster
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/2433—Single-class perspective, e.g. one-against-all classification; Novelty detection; Outlier detection
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种服务器故障诊断方法、产品、计算机设备和存储介质。本申请通过先将获取的服务器故障日志根据服务器地址聚合形成日志组,再对日志组进行向量化处理和聚类处理确定日志组的标签,对日志组以第一预设格式进行存储,并训练服务器故障诊断模型来对新采集的服务器故障日志设置标签,实现了自动对服务器日志高效准确的进行异常信息数据标注,减少了人力消耗成本,提升了日志标注质量及效率,基于准确标注标签的日志组训练服务器故障诊断模型进行标签设置,提升了服务器故障诊断结果效率和准确率。
Description
技术领域
本申请涉及服务器故障检测技术领域,特别是涉及一种服务器故障诊断方法、产品、计算机设备和存储介质。
背景技术
机器学习过程的一个重要方面是数据标注(Data Annotation),数据标注是一个对原始数据进行标记和分类的过程,使其可用于训练机器学习 (ML) 模型。数据标注是一个耗时和劳动密集型的过程,需大量人力完成标注。
服务器日志种类繁多,标注需要各种运维经验知识,依赖人员对日志的分辨力,能够实现日志的定位、并且准确从多个异常中捕获故障信息,实现日志的准确标注。标注过程需要标注人员准确识别故障日志,否则会影响标注准确度,此外,服务器规模的增大,日志增速呈现指数级别上升趋势,异常日志夹杂在大量的基本日志信息中,海量日志的标注将耗费大量的人力。
当前人工标注耗费大量的时间,面对大规模的运维日志,标注人员领域知识缺乏,日志标注质量参差不齐。基于规则的日志标注,具有规则编写困难、规则更新缓慢的问题,难以在短时间内更新日志文本的正则解析语句。将日志进行聚类等方式,可能会丢失重要的异常信息,而重要的异常信息有可能决定标注的类型,信息丢失则会影响标注的精度,并且服务器故障发生时,会出现多种日志异常信息,目前AI算法无法实现有效精准的故障定位。因此当前针对服务器日志难以高效准确的进行异常信息数据标注,从而导致服务器故障诊断结果效率低且存在准确性差的缺陷。
发明内容
基于此,有必要针对上述技术问题,提供一种服务器故障诊断方法、装置、计算机设备和存储介质,实现对服务器日志的异常信息高效准确的进行异常信息数据标注,进而解决服务器故障诊断结果效率低且存在准确性差的技术问题。
一方面,提供一种服务器故障诊断方法,所述方法包括:获取服务器故障日志,根据服务器地址聚合每个地址下的服务器故障日志,形成对应每个服务器地址的日志组;对所述日志组进行向量化处理并进行聚类处理,根据聚类结果获取所述日志组的标签;获取每个日志组对应的服务器地址及标签,对所述日志组以第一预设格式进行存储;采用第一预设格式的日志组训练服务器故障诊断模型;将新采集的服务器故障日志输入训练后的服务器故障诊断模型,得到服务器故障诊断结果。
在其中一个实施例中,所述获取服务器故障日志,根据服务器地址聚合每个地址下的服务器故障日志,形成对应每个服务器地址的日志组志步骤包括:按照服务器地址获取对应的服务器故障日志;读取所述服务器故障日志中的日志条数及日志生成时间;对所述服务器故障日志按日志生成时间排序;根据所述日志条数及所述日志生成时间将所述服务器故障日志裁切为限定于日志条数限额范围、时间跨度阈值范围内的多个日志段;读取每个日志段中记载日志信息,合并日志信息形成日志组。
在其中一个实施例中,所述根据所述日志条数及所述日志生成时间将所述服务器故障日志裁切为限定于日志条数限额范围、时间跨度阈值范围内的多个日志段步骤包括:设置日志条数限额范围的数值以及时间跨度阈值范围的数值;获取所述服务器故障日志中的所有日志条的日志生成时间,计算所述服务器故障日志的记载日志时间跨度,判断所述记载日志时间跨度是否在所述时间跨度阈值范围内,并判断所述服务器故障日志中的日志条数是否在所述日志条数限额范围内;响应于所述记载日志时间跨度在所述时间跨度阈值范围内且所述服务器故障日志中的日志条数在所述日志条数限额范围内时,不对所述服务器故障日志裁切,将所述服务器故障日志作为一个日志段;响应于所述记载日志时间跨度在所述时间跨度阈值范围内且所述服务器故障日志中的日志条数不在所述日志条数限额范围内时,按照所述日志条数限额范围对所述服务器故障日志裁切为多个日志段;响应于所述记载日志时间跨度不在所述时间跨度阈值范围内且所述服务器故障日志中的日志条数在所述日志条数限额范围内时,按照所述时间跨度阈值范围对所述服务器故障日志裁切为多个日志段;响应于所述记载日志时间跨度不在所述时间跨度阈值范围内且所述服务器故障日志中的日志条数不在所述日志条数限额范围内时,按照所述时间跨度阈值范围及所述日志条数限额范围对所述服务器故障日志裁切为多个日志段。
在其中一个实施例中,所述根据所述日志条数及所述日志生成时间将所述服务器故障日志裁切为限定于日志条数限额范围、时间跨度阈值范围内的多个日志段步骤还包括:获取日志条数为所述日志条数限额范围最大值时的服务器故障日志的长度值,将该长度值设置为日志段的标准长度;判断每一日志段的长度是否为所述标准长度;若是则判定所述日志段的长度合格;若否则判定所述日志段的长度不合格,并对所述日志段进行零值补全为所述标准长度。
在其中一个实施例中,所述对所述日志组进行向量化处理并进行聚类处理,根据聚类结果获取所述日志组的标签步骤包括:对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志;对所述向量化日志采用聚类的方式聚类为多个类簇,输出每个类簇对应的硬件类型;获取每个类簇中的硬件类型的种类数目,根据种类数目确定对应类簇的标签;获取每个服务器地址的日志组中所有类簇的标签,获取每一类簇的标签对应的向量列表,对所述向量列表进行聚类,以向量列表数目最多的聚类簇对应的标签作为所述日志组的标签。
在其中一个实施例中,所述对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志步骤包括:提取目标服务器故障日志中的硬件类型和日志信息作为用于语言处理向量化模型训练的语料训练集;构建待训练的语言处理向量化模型,采用所述语料训练集训练所述待训练的语言处理向量化模型,保存去重后的全部硬件类型,根据构建硬件类型键-值对字典,形成训练后的语言处理向量化模型;获取所述服务器日志集中的硬件类型和日志信息,利用训练后的语言处理向量化模型对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志。
在其中一个实施例中,所述提取目标服务器故障日志中的硬件类型和日志信息作为用于语言处理向量化模型训练的语料训练集步骤包括:获取所述硬件类型和所述日志信息的每个词的词序;按照词序获取所述硬件类型和所述日志信息的每个词映射的向量;将获取的向量按照词序汇总,形成语料训练集。
在其中一个实施例中,所述对所述向量化日志采用聚类的方式聚类为多个类簇步骤包括:获取所述向量化日志的硬件类型,按照硬件类型将所述向量化日志分为多个数组;
对所述数组进行向量化处理,形成向量化数组;对同一地址编号下的所有向量化数组采用聚类的方式聚类为多个类簇,输出每个类簇对应的硬件类型和数目。
在其中一个实施例中,所述输出每个类簇对应的硬件类型和数目步骤包括:获取每一类簇对应的硬件类型的向量,计算其与硬件类型键-值对的每个键下的向量的相似度;对每一类簇,初始化硬件类型键-值对的每个键出现次数计数为零,查询类簇中硬件类型键-值对的每个键下的向量,响应于向量被查询到,对应的键的计数加一;根据计算的硬件类型键-值对中键的计数,获取每个类簇出现的硬件类型和对应的计数。
在其中一个实施例中,所述获取每个类簇中的硬件类型的种类数目,根据种类数目确定对应类簇的标签步骤包括:提取每个类簇中的硬件类型,获取所述硬件类型的数目;若所述硬件类型为一个,则将所述故障硬件种类标记为对应类簇的标签;若所述硬件类型为多个,统计每个硬件类型对应的数目;获取数目最多的两类硬件类型,判断两类硬件类型对应数目是否相同;如果两类硬件类型对应数目不相同,则将数目最多的硬件类型作为类簇的标签;如果两类硬件类型对应数目相同,则获取数目最多的所有硬件类型,构建混合关联模型,根据混合关联系数输出故障硬件种类作为对应类簇的标签。
在其中一个实施例中,所述获取数目最多的所有硬件类型,构建混合关联模型,根据混合关联系数输出故障硬件种类作为对应类簇的标签步骤包括:统计数目最多的硬件类型的总数N,对所有硬件类型对应的服务器故障日志编号为part_n;其中part为发生故障硬件名称,1≤n≤N;统计每一硬件类型在所述服务器故障日志中发生故障的次数Npart,统计服务器总数Nnum;计算每一硬件类型在服务器中故障发生的均值;计算每一硬件类型的故障方差;基于均值和方差,计算每一硬件类型的混合关联模型系数;获取所有硬件类型对应的混合关联模型系数,其中编号为Part_n的服务器故障日志的混合关联模型系数为;对获取的混合关联模型系数降序排序,将混合关联模型系数最大值所对应的硬件类型作为类簇的标签。
在其中一个实施例中,所述获取每个服务器地址的日志组中所有类簇的标签,获取每一类簇的标签对应的向量列表,对所述向量列表进行聚类,以向量列表数目最多的聚类簇对应的标签作为所述日志组的标签步骤包括:将每一类簇构造为第二预设格式,按照所述日志组中日志序列构造为一个二维数组;获取每个服务器地址的日志组中所有类簇的标签,将每一标签相关联的向量数组形成向量列表;对所述向量列表进行聚类,形成多个聚类簇;遍历所述二维数组,查询每个向量数组所在的聚类簇,统计每个聚类簇中的向量数组对应的标签数目;计算每个聚类簇中每一标签的权重,以求和方式计算所述日志组中每一标签的权重;根据标签的权值大小排序,取最大权值的标签作为所述日志组的标签。
另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:获取服务器故障日志,根据服务器地址聚合每个地址下的服务器故障日志,形成对应每个服务器地址的日志组;对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志;对所述向量化日志采用聚类的方式聚类为多个类簇,输出每个类簇对应的硬件类型;获取每个类簇中的硬件类型的种类数目,根据种类数目确定对应类簇的标签;获取每个服务器地址的日志组中所有类簇的标签,获取每一类簇的标签对应的向量列表,对所述向量列表进行聚类,以向量列表数目最多的聚类簇对应的标签作为所述日志组的标签;获取每个日志组对应的服务器地址及标签,对所述日志组以第一预设格式进行存储;采用第一预设格式的日志组训练服务器故障诊断模型;将新采集的服务器故障日志输入训练后的服务器故障诊断模型,得到服务器故障诊断结果。
再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取服务器故障日志,根据服务器地址聚合每个地址下的服务器故障日志,形成对应每个服务器地址的日志组;对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志;对所述向量化日志采用聚类的方式聚类为多个类簇,输出每个类簇对应的硬件类型;获取每个类簇中的硬件类型的种类数目,根据种类数目确定对应类簇的标签;获取每个服务器地址的日志组中所有类簇的标签,获取每一类簇的标签对应的向量列表,对所述向量列表进行聚类,以向量列表数目最多的聚类簇对应的标签作为所述日志组的标签;获取每个日志组对应的服务器地址及标签,对所述日志组以第一预设格式进行存储;采用第一预设格式的日志组训练服务器故障诊断模型;将新采集的服务器故障日志输入训练后的服务器故障诊断模型,得到服务器故障诊断结果。
又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:获取服务器故障日志,根据服务器地址聚合每个地址下的服务器故障日志,形成对应每个服务器地址的日志组;对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志;对所述向量化日志采用聚类的方式聚类为多个类簇,输出每个类簇对应的硬件类型;获取每个类簇中的硬件类型的种类数目,根据种类数目确定对应类簇的标签;获取每个服务器地址的日志组中所有类簇的标签,获取每一类簇的标签对应的向量列表,对所述向量列表进行聚类,以向量列表数目最多的聚类簇对应的标签作为所述日志组的标签;获取每个日志组对应的服务器地址及标签,对所述日志组以第一预设格式进行存储;采用第一预设格式的日志组训练服务器故障诊断模型;将新采集的服务器故障日志输入训练后的服务器故障诊断模型,得到服务器故障诊断结果。
上述服务器故障诊断方法、产品、计算机设备和存储介质,通过先将获取的服务器故障日志根据服务器地址聚合形成日志组,再对日志组进行向量化处理和聚类处理确定日志组的标签,对日志组以第一预设格式进行存储,并训练服务器故障诊断模型来对新采集的服务器故障日志设置标签,实现了自动对服务器日志高效准确的进行异常信息数据标注,减少了人力消耗成本,提升了日志标注质量及效率,基于准确标注标签的日志组训练服务器故障诊断模型进行标签设置,提升了服务器故障诊断结果效率和准确率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一个实施例中服务器故障诊断方法的应用环境图;
图2为本申请一个实施例中服务器故障诊断方法的流程示意图;
图3为本申请一个实施例中服务器故障诊断方法的判断逻辑图;
图4为本申请一个实施例中获取服务器故障日志,根据服务器地址聚合每个地址下的服务器故障日志,形成对应每个服务器地址的日志组志步骤的流程示意图;
图5为本申请一个实施例中对所述日志组进行向量化处理并进行聚类处理,根据聚类结果获取所述日志组的标签步骤的流程示意图;
图6为本申请一个实施例中对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志步骤的流程示意图;
图7为本申请一个实施例中获取每个类簇中的硬件类型的种类数目,根据种类数目确定对应类簇的标签步骤的流程示意图;
图8为本申请一个实施例中获取每个服务器地址的日志组中所有类簇的标签,获取每一类簇的标签对应的向量列表,对所述向量列表进行聚类,以向量列表数目最多的聚类簇对应的标签作为所述日志组的标签步骤的流程示意图;
图9为本申请一个实施例中获取服务器故障日志,根据服务器地址聚合每个地址下的服务器故障日志,形成对应每个服务器地址的日志组志步骤的原理图;
图10为本申请一个实施例中故障诊断单元的结构框图;
图11为本申请一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
如背景技术所述,机器学习过程的一个重要方面是数据标注(Data Annotation),数据标注是一个对原始数据进行标记和分类的过程,使其可用于训练机器学习 (ML) 模型。数据标注是一个耗时和劳动密集型的过程,通常需要一个庞大的人工标注团队来准确标记大量的数据,目前标注通常以众包(Crowdsourcing)形式,利用的标注队伍来分配标注任务,减少所需时间,满足大量数据的标注需求。
服务器日志包含SEL日志、审计日志、IDL日志、系统日志、RAID卡日志以及各种运行数据如CPLD寄存器日志、MCA寄存器日志等,也包含各种配置如用户信息、BMC网络以及各种部件产生的日志RAID卡日志,日志种类繁多,标注需要各种运维经验知识,依赖人员对日志的分辨力,能够实现日志的定位、并且准确从多个异常中捕获故障信息,实现日志的准确标注。这个过程首先需要标注人员从海量日志中定位异常日志行,要求较高,并且大量异常信息通常掩盖真实的故障日志,使得故障难以标注,影响标注准确度,此外,服务器规模的增大,日志增速呈现指数级别上升趋势,异常日志夹杂在大量的基本日志信息中,海量日志的标注将耗费大量的人力。
服务器故障诊断系统所需的日志数据标注现有方案:第一种,基于人工处理,运维人员通过经验知识对日志进行理解,根据日志内容对日志进行标注,标注故障类别。人工标注耗费大量的时间,尤其是面对大规模的运维日志,需要投入大量的人力资源,并且运维日志标注需要大量的领域知识,传统的众包模式下,标注人员领域知识缺乏,日志标注质量参差不齐,而由专业的运维人员进行标注,又难以完成海量日志的标注任务。
第二种,基于规则,采用日志文本正则解析语句,对日志进行解析,提取关键词,对解析后的日志采用人工标注的方式进行标注,相比全量日志,规则解析后日志量明显降低,关键词更加明显,能够有效提升日志标注效率。基于规则的日志标注,具有规则编写困难、规则更新缓慢的问题服务器机型迅速迭代、硬件不断更新、新硬件不断加入的情形下,日志的数量和多样性激增,难以在短时间内更新日志文本的正则解析语句。
第三种,基于AI算法,采用聚类算法,比如Drain算法,提取日志事件,基于频繁模式挖掘,将组成结构一致的日志聚类到一起,根据聚的类簇,由人工进行进一步标注。目前常见的AI算法,将日志进行聚类等方式方法,基于频繁模式挖掘,可能会丢失重要的异常信息,而重要的异常信息有可能决定标注的类型,信息丢失则会影响标注的精度,并且服务器故障发生时,会出现多种日志异常信息,目前AI算法无法实现有效精准的故障定位。
为解决上述问题,本发明实施例中创造性的提出了一种服务器故障诊断方法,可以应用于如图1所示的应用环境中。其中,服务器包括服务器硬件层、内核和故障诊断单元。服务器硬件层中设有基板管理控制器(BMC)、服务器硬件和输入输出接口,基板管理控制器来管理服务器硬件,服务器硬件与输入输出接口交互。内核设有服务器日志提取模块和服务器故障日志收集模块,服务器日志提取模块通过输入输出接口获取服务器日志,服务器故障日志收集模块筛选出故障日志。故障诊断单元用于实现服务器故障诊断方法,通过对故障日志进行服务器故障诊断来识别产生故障的服务器硬件,进而通过输入输出接口控制产生故障的服务器硬件的操作。
在一个实施例中,如图2、图3所示,提供了一种服务器故障诊断方法,以该方法应用于图1中的故障诊断单元为例进行说明,包括以下步骤:步骤S1,获取服务器故障日志,根据服务器地址(ID)聚合每个地址下的服务器故障日志,形成对应每个服务器地址的日志组;步骤S2,对所述日志组进行向量化处理并进行聚类处理,根据聚类结果获取所述日志组的标签;步骤S3,获取每个日志组对应的服务器地址及标签,对所述日志组以第一预设格式进行存储;步骤S4,采用第一预设格式的日志组训练服务器故障诊断模型;步骤S5,将新采集的服务器故障日志输入训练后的服务器故障诊断模型,得到服务器故障诊断结果。
其中选择决策树模型、Lightgbm模型、Xgboost模型或神经网络模型作为服务器故障诊断模型。其中所述将新采集的服务器故障日志输入训练后的服务器故障诊断模型,得到服务器故障诊断结果,即为利用训练后的服务器故障诊断模型对新采集的服务器故障日志设置标签,输出标签设置结果,将标签设置结果作为服务器故障诊断结果。
其中所述第一预设格式为{服务器地址:日志组数据:标签}形式。
先通过步骤S1将获取的服务器故障日志根据服务器地址聚合形成日志组,再通过步骤S2对日志组进行向量化处理和聚类处理确定日志组的标签,对日志组以第一预设格式进行存储,并通过步骤S4-S5训练服务器故障诊断模型来对新采集的服务器故障日志设置标签,实现了自动对服务器日志高效准确的进行异常信息数据标注,减少了人力消耗成本,提升了日志标注质量及效率。
所述获取服务器故障日志步骤包括:创建日志收集仓库,所述日志收集仓库中对服务器日志的日志信息采用时间戳|硬件类型|硬件传感器名称|日志详情|状态码的格式进行存储;获取服务器所采集的服务器日志,并根据服务器地址进行分类存储在所述日志收集仓库中;通过识别所述服务器日志中的状态码,从所述服务器日志中筛选出服务器故障日志。
本申请通过创建日志收集仓库能及时收集所产生的服务器日志,避免服务器日志被滚动覆盖,且服务器日志的日志信息采用统一格式保存,可便于识别所记载的信息,而且可利用服务器日志中的状态码快速筛选出服务器故障日志,提升了获取服务器故障日志的速度。
值得注意的是,在创建日志收集仓库过程中,创建系统日志基本信息,建立日志的基本信息数据模型库,主要表结构如表1所示。
表1
日志MSG结构如下:time|sensor_type|sensor_name|msg_info|status,即:时间戳|硬件类型|硬件传感器名称|日志详情|状态码的格式,传感器类型包括:中央处理器、内存、硬盘、PCIe卡、Raid卡、背板、主板、电源、风扇、显卡、HBA卡、温度传感器等服务器部件,硬件传感器名称为“硬件类型_编号”形式,标记硬件日志所关联的硬件的编号(如cpu_0表示第0号cpu),日志详情包括:'Firmware or software change'、'Firmware or softwarechange detected'等具体的日志信息,种类包括正常的日志信息、含异常日志信息、故障日志信息等。
在获取服务器故障日志时,还包括进行日志数据收集。具体的,启动数据收集,采集大量服务器的日志信息,根据服务器的id将日志信息收集,其中id由服务器的id编号和服务器ip组成,并将每个id下收集的日志存入云端数据库系统,存入格式如表2所示。
表2
即一个服务器id对应多条日志,后续智能化标注则是对每个id下的多条日志进行分析,获取如果没有故障,标记为正常,如果有故障,则是根据日志内容获取故障的具体类别。
如图4所示,在本实施例中,所述获取服务器故障日志,根据服务器地址聚合每个地址下的服务器故障日志,形成对应每个服务器地址的日志组志步骤包括:步骤S11,按照服务器地址获取对应的服务器故障日志;步骤S12,读取所述服务器故障日志中的日志条数及日志生成时间;步骤S13,对所述服务器故障日志按日志生成时间排序;步骤S14,根据所述日志条数及所述日志生成时间将所述服务器故障日志裁切为限定于日志条数限额范围、时间跨度阈值范围内的多个日志段;步骤S15,读取每个日志段中记载日志信息,合并日志信息形成日志组。
服务器故障有较强的时效性,同一台服务器,BMC存储容量有限,BMC系统日志只能存储一定数量的日志,如果系统一直没有异常,日志存储时间间隔可能跨度很大,如果故障、异常持续存在,日志存储的时间间隔可能较短,并且最近的异常、故障日志通常是服务器发生故障时,BMC主动收集日志然后存储、保存到日志存储系统中。
如图3所示,在本实施例中,所述根据所述日志条数及所述日志生成时间将所述服务器故障日志裁切为限定于日志条数限额范围、时间跨度阈值范围内的多个日志段步骤包括:设置日志条数限额范围的数值以及时间跨度阈值范围的数值;获取所述服务器故障日志中的所有日志条的日志生成时间,计算所述服务器故障日志的记载日志时间跨度,判断所述记载日志时间跨度是否在所述时间跨度阈值范围内,并判断所述服务器故障日志中的日志条数是否在所述日志条数限额范围内;响应于所述记载日志时间跨度在所述时间跨度阈值范围内且所述服务器故障日志中的日志条数在所述日志条数限额范围内时,不对所述服务器故障日志裁切,将所述服务器故障日志作为一个日志段;响应于所述记载日志时间跨度在所述时间跨度阈值范围内且所述服务器故障日志中的日志条数不在所述日志条数限额范围内时,按照所述日志条数限额范围对所述服务器故障日志裁切为多个日志段;响应于所述记载日志时间跨度不在所述时间跨度阈值范围内且所述服务器故障日志中的日志条数在所述日志条数限额范围内时,按照所述时间跨度阈值范围对所述服务器故障日志裁切为多个日志段;响应于所述记载日志时间跨度不在所述时间跨度阈值范围内且所述服务器故障日志中的日志条数不在所述日志条数限额范围内时,按照所述时间跨度阈值范围及所述日志条数限额范围对所述服务器故障日志裁切为多个日志段。
BMC收集日志间隔长短不一,需要通过窗口提取或补全,窗口大小提取主要考究时间跨度阈值T_limit和日志条数限额N_limit,构造窗口函数满足以下计算逻辑:情形1:服务器id下的时间跨度T<T_limit并且N_log<N_limit,对日志段的字段长度Text_log进行0值补全;情形2:服务器id下的时间跨度>T_limit并且N_log<N_limit,截取T_limit的日志,然后对截断后的日志段的字段长度Text_log进行0值补全;情形3:服务器id下的时间跨度<T_limit并且N_log>N_limit, 截取N_limit的日志;情形4:服务器id下的时间跨度>T_limit并且N_log>N_limit, 截取T_limit的日志,如果此时截断的日志条数N_crop>N_limit,继续截取日志获取最近的N_limit条日志,如果此时截断的日志条数N_crop<N_limit,则对截断后的日志段的字段长度Text_log进行0值补全。将经过窗口处理后的日志信息存入云数据库,供后续步骤计算使用。
通过窗口裁切方式将日志分为多段,进行0值补全避免服务器日志长短不一影响标签结果。进行零值补全方式保证所有的日志段长度相同,便于准确判断出现故障的硬件类型。
在本实施例中,所述根据所述日志条数及所述日志生成时间将所述服务器故障日志裁切为限定于日志条数限额范围、时间跨度阈值范围内的多个日志段步骤还包括:获取日志条数为所述日志条数限额范围最大值时的服务器故障日志的长度值,将该长度值设置为日志段的标准长度;判断每一日志段的长度是否为所述标准长度;若是则判定所述日志段的长度合格;若否则判定所述日志段的长度不合格,并对所述日志段进行零值补全为所述标准长度。
如图5所示,在本实施例中,所述对所述日志组进行向量化处理并进行聚类处理,根据聚类结果获取所述日志组的标签步骤包括:步骤S21,对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志;步骤S22,对所述向量化日志采用聚类的方式聚类为多个类簇,输出每个类簇对应的硬件类型;步骤S23,获取每个类簇中的硬件类型的种类数目,根据种类数目确定对应类簇的标签;步骤S24,获取每个服务器地址的日志组中所有类簇的标签,获取每一类簇的标签对应的向量列表,对所述向量列表进行聚类,以向量列表数目最多的聚类簇对应的标签作为所述日志组的标签;如图6所示,在本实施例中,所述对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志步骤包括:步骤S31,提取目标服务器故障日志中的硬件类型和日志信息作为用于语言处理向量化模型训练的语料训练集;步骤S32,构建待训练的语言处理向量化模型,采用所述语料训练集训练所述待训练的语言处理向量化模型,保存去重后的全部硬件类型,根据构建硬件类型键-值对字典,形成训练后的语言处理向量化模型;步骤S33,获取所述服务器日志集中的硬件类型和日志信息,利用训练后的语言处理向量化模型对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志。
其中硬件类型键-值对字典的方式为{硬件类型:向量}。
构造服务器部件类别的向量化特征,服务器部件类别来自于日志的硬件类型列,传感器位置由硬件传感器名称表征,日志详情则是显示故障状态或故障解除的状态,状态码Assert表示故障发生时,Deassert则是表征故障解除。如“2023-01-29 17:19:20|Memory|CPU1F0_DIMM|Uncorrectable ECC|Assert”中的第二列“Memory”为部件的类别,CPU1F0_DIMM为传感器名称,Uncorrectable ECC表示内存发生故障,Assert表示确认。
获取T天(T一般不能过小)中所有经过上述窗口处理过的服务器日志信息,提取硬件类型列,过滤获取服务器可能发生故障的部件或组件的类别,用于决定故障发生的种类,计作N_class,获取的种类数目作为后续聚类的类簇的个数。提取所有满足状态码为Assert时的日志详情列,将部件或组件的类别、日志详情列,优选采用Word2Vec向量化处理。
提取服务器故障日志用于Word2Vec向量化模型训练,获取服务器日志,提取日志中的硬件类型、日志详情,将其向量化,训练Word2Vec模型。
在本实施例中,所述提取目标服务器故障日志中的硬件类型和日志信息作为用于语言处理向量化模型训练的语料训练集步骤包括:获取所述硬件类型和所述日志信息的每个词的词序;按照词序获取所述硬件类型和所述日志信息的每个词映射的向量;将获取的向量按照词序汇总,形成语料训练集。
在本实施例中,所述对所述向量化日志采用聚类的方式聚类为多个类簇步骤包括:获取所述向量化日志的硬件类型,按照硬件类型将所述向量化日志分为多个数组;对所述数组进行向量化处理,形成向量化数组;对同一地址编号下的所有向量化数组采用聚类的方式聚类为多个类簇,输出每个类簇对应的硬件类型和数目。
在本实施例中,所述输出每个类簇对应的硬件类型和数目步骤包括:获取每一类簇对应的硬件类型的向量,计算其与硬件类型键-值对的每个键下的向量的相似度;对每一类簇,初始化硬件类型键-值对的每个键出现次数计数为零,查询类簇中硬件类型键-值对的每个键下的向量,响应于向量被查询到,对应的键的计数加一;根据计算的硬件类型键-值对中键的计数,获取每个类簇出现的硬件类型和对应的计数。
如图7所示,在本实施例中,所述获取每个类簇中的硬件类型的种类数目,根据种类数目确定对应类簇的标签步骤包括:步骤S41,提取每个类簇中的硬件类型,获取所述硬件类型的数目;步骤S42,若所述硬件类型为一个,则将所述故障硬件种类标记为对应类簇的标签;步骤S43,若所述硬件类型为多个,统计每个硬件类型对应的数目;步骤S44,获取数目最多的两类硬件类型,判断两类硬件类型对应数目是否相同;步骤S45,如果两类硬件类型对应数目不相同,则将数目最多的硬件类型作为类簇的标签;步骤S46,如果两类硬件类型对应数目相同,则获取数目最多的所有硬件类型,构建混合关联模型,根据混合关联系数输出故障硬件种类作为对应类簇的标签。
也就是说,如果只有一种硬件类型,直接将该种硬件类型标记为此类簇的标签;如果类簇种硬件类型的种类数>1,统计类别的总数Ntotal以及每个类别对应的数目{N类别1,N类别2,...,NNtotal}。当类簇中硬件类型种类大于1时,对每个类别对应的数目{N类别1,N类别2,...,NNtotal}排序,获取对应数目最多的两类硬件类型,如果两类硬件类型对应数目不一致,则数目最多的硬件类型为类簇的类别,如果根据硬件类型所对应的数据排序,前几位的数目都一致,则先统计硬件对应的数目最多的硬件类型的总数N一致,然后构建混合关联模型,实现硬件类型与簇的对应。
在本实施例中,所述获取数目最多的所有硬件类型,构建混合关联模型,根据混合关联系数输出故障硬件种类作为对应类簇的标签步骤包括:统计数目最多的硬件类型的总数N,对所有硬件类型对应的服务器故障日志编号为part_n;其中part为发生故障硬件名称,1≤n≤N,也就是所有硬件类型对应的服务器故障日志编号为part_1、part_2、...、part_n、...、part_N;统计每一硬件类型在所述服务器故障日志中发生故障的次数Npart,统计服务器总数Nnum;计算每一硬件类型在服务器中故障发生的均值;计算每一硬件类型的故障方差;基于均值和方差,计算每一硬件类型的混合关联模型系数;获取所有硬件类型对应的混合关联模型系数,其中编号为Part_n的服务器故障日志的混合关联模型系数为;对获取的混合关联模型系数降序排序,将混合关联模型系数最大值所对应的硬件类型作为类簇的标签。
可理解的是,混合关联模型构建方式如下:针对所有日志样本,对N一致项硬件,编号为Part1、Part2、...、,统计这些硬件故障发生的频次以及总故障次数。服务器的某种硬件发生故障,记录为Epart=1,下标中,part为发生故障硬件名称,如内存、CPU、硬盘、背板、主板、Raid卡、显卡等,统计服务器总数为Nnum。分别计算分属不同硬件名称的故障发生的次数及在服务器中故障发生的平均值,计算公式为,。
如图8所示,在本实施例中,所述获取每个服务器地址的日志组中所有类簇的标签,获取每一类簇的标签对应的向量列表,对所述向量列表进行聚类,以向量列表数目最多的聚类簇对应的标签作为所述日志组的标签步骤包括:步骤S51,将每一类簇构造为第二预设格式,按照所述日志组中日志序列构造为一个二维数组;步骤S52,获取每个服务器地址的日志组中所有类簇的标签,将每一标签相关联的向量数组形成向量列表;步骤S53,对所述向量列表进行聚类,形成多个聚类簇;步骤S54,遍历所述二维数组,查询每个向量数组所在的聚类簇,统计每个聚类簇中的向量数组对应的标签数目;步骤S55,计算每个聚类簇中每一标签的权重,以求和方式计算所述日志组中每一标签的权重;步骤S56,根据标签的权值大小排序,取最大权值的标签作为所述日志组的标签。
为方便检索查询,将类簇构造为第二预设格式,第二预设格式为{标签:向量数组}形式。每个聚类簇为一个标签,对应一个MxN_vec大小的数组,N_vec为Word2Vec时向量化的维度,M则代表聚类形成的类簇中,向量的数目。向量化之后每个服务器ID下的日志序列构造为一个二维数组,维度为NxN_vec,N为经过窗口提取、补全之后日志中元素数组中字符个数,遍历二维数组,查询每个数组元素向量在哪个簇中出现,在簇中出现,对应的标签+1,统计遍历结束后标签值的大小,如果标签值排序后严格递减时,标签值最多的作为该ID所有日志的标签。如果有前两种或更多种类的标签值数值一致,则构建的判别算法,如图9所示。
在本实施例中,所述计算每个聚类簇中每一标签的权重,以求和方式计算所述日志组中每一标签的权重步骤包括:获取每个聚类簇的每个硬件类型所构成的键的计数,用labelij表示为聚类簇i中标签j的计数;采用计算每个聚类簇中每一标签的权重,其中pij为聚类簇i中标签j的权重,M为在聚类簇i中与标签j对应的向量列表的数量;
采用计算所述日志组中每一标签的权重,其中Pj为所述日志组中标签j的权重。
而后根据标签的权值大小排序,取最大权值的标签作为所述日志组的标签。
在统计数目最多的硬件类型的总数N后,若N等于2,即数目最多的硬件类型存在两个,则可按以下方式构建混合关联模型,以内存和CPU关联部件为例,方法适用于风扇与其他部件组合,如风扇与CPU、风扇与主板等。
获取同型号服务器下的故障发生时,统计内存、CPU两类部件发生的频次及总的故障次数,分别计算其频次、均值,同一型号服务器下,服务器总数为Nnum,如果有内存故障日志信息,Errmemi为1,否则为0,如果有CPU故障日志信息,Errcpui为1,否则为0,分别计算内存、CPU故障发生的次数及其均值,,,。
分别计算内存、CPU故障的方差:,,分别计算内存、CPU故障的方差:。
上式得出同型号服务器下的功能相关联部件混合关联系数,根据上式,设定r的阈值,阈值大小设定为0.75,当r>阈值0.75时,标注为CPU故障,否则为内存故障标签。
上述服务器故障诊断方法中,通过先将获取的服务器故障日志根据服务器地址聚合形成日志组,再对日志组进行向量化处理和聚类形成多个类簇,然后确定每个类簇的标签,再对多个类簇的标签聚类确定日志组的标签,对日志组以第一预设格式进行存储,并训练服务器故障诊断模型来对新采集的服务器故障日志设置标签,实现了自动对服务器日志高效准确的进行异常信息数据标注,减少了人力消耗成本,提升了日志标注质量及效率。
本申请通过日志采集、日志处理、智能标注与模型训练模块,实现服务器日志收集、日志存储以及日志的预处理、对日志的智能化标注以及实现故障诊断人工智能模型训练,并通过训练好的人工智能模型对服务器新提取的日志信息进行诊断,输出服务器运行过程中产生的日志的诊断结果,以下为本发明带来的有益效果:1)节省标注时间,与以往人工标注日志相比,本发明能够采用聚类方式实现相应类簇的聚集,实现相似日志的汇聚,结合汇聚后的硬件类别,实现日志标注,可以节省大量的标注时间。
2)标签类别根据日志中的硬件类别,可以有效实现旧的硬件类别剔除以及新的硬件类别的自主添加,可以实现故障类别的有效更新,以应对新的服务器机型型号、新的硬件设备等。
应该理解的是,虽然图2-图8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-图8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图1、图10所示,提供了一种故障诊断单元10,包括:数据采集模块1、日志处理模块2、日志自动化标注模块3、故障诊断模块4、故障决策模块5。
所述数据采集模块1用于获取服务器故障日志,根据服务器地址聚合每个地址下的服务器故障日志,形成对应每个服务器地址的日志组。
所述日志处理模块2用于对所述日志组进行向量化处理并进行聚类处理,根据聚类结果获取所述日志组的标签。具体的,所述日志处理模块2用于对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志;对所述向量化日志采用聚类的方式聚类为多个类簇,输出每个类簇对应的硬件类型;获取每个类簇中的硬件类型的种类数目,根据种类数目确定对应类簇的标签;获取每个服务器地址的日志组中所有类簇的标签,获取每一类簇的标签对应的向量列表,对所述向量列表进行聚类,以向量列表数目最多的聚类簇对应的标签作为所述日志组的标签。
所述日志自动化标注模块3用于获取每个日志组对应的服务器地址及标签,对所述日志组以第一预设格式进行存储。
所述故障诊断模块4用于采用第一预设格式的日志组训练服务器故障诊断模型;其中选择决策树模型、Lightgbm模型、Xgboost模型或神经网络模型作为服务器故障诊断模型;所述故障决策模块5用于将新采集的服务器故障日志输入训练后的服务器故障诊断模型,得到服务器故障诊断结果。
在本实施例中,所述获取服务器故障日志,根据服务器地址聚合每个地址下的服务器故障日志,形成对应每个服务器地址的日志组志步骤包括:按照服务器地址获取对应的服务器故障日志;读取所述服务器故障日志中的日志条数及日志生成时间;对所述服务器故障日志按日志生成时间排序;根据所述日志条数及所述日志生成时间将所述服务器故障日志裁切为限定于日志条数限额范围、时间跨度阈值范围内的多个日志段;读取每个日志段中记载日志信息,合并日志信息形成日志组。
在本实施例中,所述根据所述日志条数及所述日志生成时间将所述服务器故障日志裁切为限定于日志条数限额范围、时间跨度阈值范围内的多个日志段步骤包括:设置日志条数限额范围的数值以及时间跨度阈值范围的数值;获取所述服务器故障日志中的所有日志条的日志生成时间,计算所述服务器故障日志的记载日志时间跨度,判断所述记载日志时间跨度是否在所述时间跨度阈值范围内,并判断所述服务器故障日志中的日志条数是否在所述日志条数限额范围内;响应于所述记载日志时间跨度在所述时间跨度阈值范围内且所述服务器故障日志中的日志条数在所述日志条数限额范围内时,不对所述服务器故障日志裁切,将所述服务器故障日志作为一个日志段;响应于所述记载日志时间跨度在所述时间跨度阈值范围内且所述服务器故障日志中的日志条数不在所述日志条数限额范围内时,按照所述日志条数限额范围对所述服务器故障日志裁切为多个日志段;响应于所述记载日志时间跨度不在所述时间跨度阈值范围内且所述服务器故障日志中的日志条数在所述日志条数限额范围内时,按照所述时间跨度阈值范围对所述服务器故障日志裁切为多个日志段;响应于所述记载日志时间跨度不在所述时间跨度阈值范围内且所述服务器故障日志中的日志条数不在所述日志条数限额范围内时,按照所述时间跨度阈值范围及所述日志条数限额范围对所述服务器故障日志裁切为多个日志段。
在本实施例中,所述根据所述日志条数及所述日志生成时间将所述服务器故障日志裁切为限定于日志条数限额范围、时间跨度阈值范围内的多个日志段步骤还包括:获取日志条数为所述日志条数限额范围最大值时的服务器故障日志的长度值,将该长度值设置为日志段的标准长度;判断每一日志段的长度是否为所述标准长度;若是则判定所述日志段的长度合格;若否则判定所述日志段的长度不合格,并对所述日志段进行零值补全为所述标准长度。
在本实施例中,所述对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志步骤包括:提取目标服务器故障日志中的硬件类型和日志信息作为用于语言处理向量化模型训练的语料训练集;构建待训练的语言处理向量化模型,采用所述语料训练集训练所述待训练的语言处理向量化模型,保存去重后的全部硬件类型,根据构建硬件类型键-值对字典,形成训练后的语言处理向量化模型;获取所述服务器日志集中的硬件类型和日志信息,利用训练后的语言处理向量化模型对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志。
在本实施例中,所述提取目标服务器故障日志中的硬件类型和日志信息作为用于语言处理向量化模型训练的语料训练集步骤包括:获取所述硬件类型和所述日志信息的每个词的词序;按照词序获取所述硬件类型和所述日志信息的每个词映射的向量;将获取的向量按照词序汇总,形成语料训练集。
在本实施例中,所述对所述向量化日志采用聚类的方式聚类为多个类簇步骤包括:获取所述向量化日志的硬件类型,按照硬件类型将所述向量化日志分为多个数组;对所述数组进行向量化处理,形成向量化数组;对同一地址编号下的所有向量化数组采用聚类的方式聚类为多个类簇,输出每个类簇对应的硬件类型和数目。
在本实施例中,所述输出每个类簇对应的硬件类型和数目步骤包括:获取每一类簇对应的硬件类型的向量,计算其与硬件类型键-值对的每个键下的向量的相似度;对每一类簇,初始化硬件类型键-值对的每个键出现次数计数为零,查询类簇中硬件类型键-值对的每个键下的向量,响应于向量被查询到,对应的键的计数加一;根据计算的硬件类型键-值对中键的计数,获取每个类簇出现的硬件类型和对应的计数。
在本实施例中,所述获取每个类簇中的硬件类型的种类数目,根据种类数目确定对应类簇的标签步骤包括:提取每个类簇中的硬件类型,获取所述硬件类型的数目;若所述硬件类型为一个,则将所述故障硬件种类标记为对应类簇的标签;若所述硬件类型为多个,统计每个硬件类型对应的数目;获取数目最多的两类硬件类型,判断两类硬件类型对应数目是否相同;如果两类硬件类型对应数目不相同,则将数目最多的硬件类型作为类簇的标签;如果两类硬件类型对应数目相同,则获取数目最多的所有硬件类型,构建混合关联模型,根据混合关联系数输出故障硬件种类作为对应类簇的标签。
在本实施例中,所述获取数目最多的所有硬件类型,构建混合关联模型,根据混合关联系数输出故障硬件种类作为对应类簇的标签步骤包括:统计数目最多的硬件类型的总数N,对所有硬件类型对应的服务器故障日志编号为part_n;其中part为发生故障硬件名称,1≤n≤N;统计每一硬件类型在所述服务器故障日志中发生故障的次数Npart,统计服务器总数Nnum;计算每一硬件类型在服务器中故障发生的均值;计算每一硬件类型的故障方差;基于均值和方差,计算每一硬件类型的混合关联模型系数;获取所有硬件类型对应的混合关联模型系数,其中编号为Part_n的服务器故障日志的混合关联模型系数为;对获取的混合关联模型系数降序排序,将混合关联模型系数最大值所对应的硬件类型作为类簇的标签。
在本实施例中,所述获取每个服务器地址的日志组中所有类簇的标签,获取每一类簇的标签对应的向量列表,对所述向量列表进行聚类,以向量列表数目最多的聚类簇对应的标签作为所述日志组的标签步骤包括:将每一类簇构造为第二预设格式,按照所述日志组中日志序列构造为一个二维数组;获取每个服务器地址的日志组中所有类簇的标签,将每一标签相关联的向量数组形成向量列表;对所述向量列表进行聚类,形成多个聚类簇;遍历所述二维数组,查询每个向量数组所在的聚类簇,统计每个聚类簇中的向量数组对应的标签数目;计算每个聚类簇中每一标签的权重,以求和方式计算所述日志组中每一标签的权重;根据标签的权值大小排序,取最大权值的标签作为所述日志组的标签。
在本实施例中,所述计算每个聚类簇中每一标签的权重,以求和方式计算所述日志组中每一标签的权重步骤包括:获取每个聚类簇的每个硬件类型所构成的键的计数,用labelij表示为聚类簇i中标签j的计数;采用计算每个聚类簇中每一标签的权重,其中pij为聚类簇i中标签j的权重,M为在聚类簇i中与标签j对应的向量列表的数量;采用计算所述日志组中每一标签的权重,其中Pj为所述日志组中标签j的权重。
上述故障诊断单元中,通过先将获取的服务器故障日志根据服务器地址聚合形成日志组,再对日志组进行向量化处理和聚类形成多个类簇,然后确定每个类簇的标签,再对多个类簇的标签聚类确定日志组的标签,对日志组以第一预设格式进行存储,并训练服务器故障诊断模型来对新采集的服务器故障日志设置标签,实现了自动对服务器日志高效准确的进行异常信息数据标注,减少了人力消耗成本,提升了日志标注质量及效率。
关于故障诊断单元的具体限定可以参见上文中对于服务器故障诊断方法的限定,在此不再赘述。上述故障诊断单元中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储服务器故障诊断数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种服务器故障诊断方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:获取服务器故障日志,根据服务器地址聚合每个地址下的服务器故障日志,形成对应每个服务器地址的日志组;对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志;对所述向量化日志采用聚类的方式聚类为多个类簇,输出每个类簇对应的硬件类型;获取每个类簇中的硬件类型的种类数目,根据种类数目确定对应类簇的标签;获取每个服务器地址的日志组中所有类簇的标签,获取每一类簇的标签对应的向量列表,对所述向量列表进行聚类,以向量列表数目最多的聚类簇对应的标签作为所述日志组的标签;获取每个日志组对应的服务器地址及标签,对所述日志组以第一预设格式进行存储;采用第一预设格式的日志组训练服务器故障诊断模型;其中选择决策树模型、Lightgbm模型、Xgboost模型或神经网络模型作为服务器故障诊断模型;将新采集的服务器故障日志输入训练后的服务器故障诊断模型,得到服务器故障诊断结果。
关于计算机程序被处理器执行时实现步骤的具体限定可以参见上文中对于服务器故障诊断的方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取服务器故障日志,根据服务器地址聚合每个地址下的服务器故障日志,形成对应每个服务器地址的日志组;对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志;对所述向量化日志采用聚类的方式聚类为多个类簇,输出每个类簇对应的硬件类型;获取每个类簇中的硬件类型的种类数目,根据种类数目确定对应类簇的标签;获取每个服务器地址的日志组中所有类簇的标签,获取每一类簇的标签对应的向量列表,对所述向量列表进行聚类,以向量列表数目最多的聚类簇对应的标签作为所述日志组的标签;获取每个日志组对应的服务器地址及标签,对所述日志组以第一预设格式进行存储;采用第一预设格式的日志组训练服务器故障诊断模型;其中选择决策树模型、Lightgbm模型、Xgboost模型或神经网络模型作为服务器故障诊断模型;将新采集的服务器故障日志输入训练后的服务器故障诊断模型,得到服务器故障诊断结果。
关于处理器执行计算机程序时实现步骤的具体限定可以参见上文中对于服务器故障诊断的方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取服务器故障日志,根据服务器地址聚合每个地址下的服务器故障日志,形成对应每个服务器地址的日志组;对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志;对所述向量化日志采用聚类的方式聚类为多个类簇,输出每个类簇对应的硬件类型;获取每个类簇中的硬件类型的种类数目,根据种类数目确定对应类簇的标签;获取每个服务器地址的日志组中所有类簇的标签,获取每一类簇的标签对应的向量列表,对所述向量列表进行聚类,以向量列表数目最多的聚类簇对应的标签作为所述日志组的标签;获取每个日志组对应的服务器地址及标签,对所述日志组以第一预设格式进行存储;采用第一预设格式的日志组训练服务器故障诊断模型;其中选择决策树模型、Lightgbm模型、Xgboost模型或神经网络模型作为服务器故障诊断模型;将新采集的服务器故障日志输入训练后的服务器故障诊断模型,得到服务器故障诊断结果。
关于计算机程序被处理器执行时实现步骤的具体限定可以参见上文中对于服务器故障诊断的方法的限定,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种服务器故障诊断方法,其特征在于,包括:
获取服务器故障日志,根据服务器地址聚合每个地址下的服务器故障日志,形成对应每个服务器地址的日志组;
对所述日志组进行向量化处理并进行聚类处理,根据聚类结果获取所述日志组的标签;
获取每个日志组对应的服务器地址及标签,对所述日志组以第一预设格式进行存储;其中所述第一预设格式为{服务器地址:日志组数据:标签}形式;
采用第一预设格式的日志组训练服务器故障诊断模型;
将新采集的服务器故障日志输入训练后的服务器故障诊断模型,得到服务器故障诊断结果;
其中,所述获取服务器故障日志,根据服务器地址聚合每个地址下的服务器故障日志,形成对应每个服务器地址的日志组步骤包括:
按照服务器地址获取对应的服务器故障日志;
读取所述服务器故障日志中的日志条数及日志生成时间;
对所述服务器故障日志按日志生成时间排序;
根据所述日志条数及所述日志生成时间将所述服务器故障日志裁切为限定于日志条数限额范围、时间跨度阈值范围内的多个日志段;
读取每个日志段中记载日志信息,合并日志信息形成日志组;
其中,所述根据所述日志条数及所述日志生成时间将所述服务器故障日志裁切为限定于日志条数限额范围、时间跨度阈值范围内的多个日志段步骤还包括:
获取日志条数为所述日志条数限额范围最大值时的服务器故障日志的长度值,将该长度值设置为日志段的标准长度;
判断每一日志段的长度是否为所述标准长度;
若是则判定所述日志段的长度合格;若否则判定所述日志段的长度不合格,并对所述日志段进行零值补全为所述标准长度;
其中,所述对所述日志组进行向量化处理并进行聚类处理,根据聚类结果获取所述日志组的标签步骤包括:
对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志;
对所述向量化日志采用聚类的方式聚类为多个类簇,输出每个类簇对应的硬件类型;
获取每个类簇中的硬件类型的种类数目,根据种类数目确定对应类簇的标签;
获取每个服务器地址的日志组中所有类簇的标签,获取每一类簇的标签对应的向量列表,对所述向量列表进行聚类,以向量列表数目最多的聚类簇对应的标签作为所述日志组的标签;
其中,所述对所述向量化日志采用聚类的方式聚类为多个类簇步骤包括:
获取所述向量化日志的硬件类型,按照硬件类型将所述向量化日志分为多个数组;
对所述数组进行向量化处理,形成向量化数组;
对同一地址编号下的所有向量化数组采用聚类的方式聚类为多个类簇,输出每个类簇对应的硬件类型和数目;
其中,所述获取每个类簇中的硬件类型的种类数目,根据种类数目确定对应类簇的标签步骤包括:
提取每个类簇中的硬件类型,获取所述硬件类型的数目;
若所述硬件类型为一个,则将所述故障硬件种类标记为对应类簇的标签;
若所述硬件类型为多个,统计每个硬件类型对应的数目;
获取数目最多的两类硬件类型,判断两类硬件类型对应数目是否相同;
如果两类硬件类型对应数目不相同,则将数目最多的硬件类型作为类簇的标签;
如果两类硬件类型对应数目相同,则获取数目最多的所有硬件类型,构建混合关联模型,根据混合关联系数输出故障硬件种类作为对应类簇的标签;
其中,所述获取数目最多的所有硬件类型,构建混合关联模型,根据混合关联系数输出故障硬件种类作为对应类簇的标签步骤包括:
统计数目最多的硬件类型的总数N,对所有硬件类型对应的服务器故障日志编号为part_n;其中part为发生故障硬件名称,1≤n≤N;
统计每一硬件类型在所述服务器故障日志中发生故障的次数Npart,统计服务器总数Nnum;
计算每一硬件类型在服务器中故障发生的均值;
计算每一硬件类型的故障方差;
基于均值和方差,计算每一硬件类型的混合关联模型系数;
获取所有硬件类型对应的混合关联模型系数,其中编号为Part_n的服务器故障日志的混合关联模型系数为;
对获取的混合关联模型系数降序排序,将混合关联模型系数最大值所对应的硬件类型作为类簇的标签。
2.根据权利要求1所述的服务器故障诊断方法,其特征在于,所述根据所述日志条数及所述日志生成时间将所述服务器故障日志裁切为限定于日志条数限额范围、时间跨度阈值范围内的多个日志段步骤包括:
设置日志条数限额范围的数值以及时间跨度阈值范围的数值;
获取所述服务器故障日志中的所有日志条的日志生成时间,计算所述服务器故障日志的记载日志时间跨度,判断所述记载日志时间跨度是否在所述时间跨度阈值范围内,并判断所述服务器故障日志中的日志条数是否在所述日志条数限额范围内;
响应于所述记载日志时间跨度在所述时间跨度阈值范围内且所述服务器故障日志中的日志条数在所述日志条数限额范围内时,不对所述服务器故障日志裁切,将所述服务器故障日志作为一个日志段;
响应于所述记载日志时间跨度在所述时间跨度阈值范围内且所述服务器故障日志中的日志条数不在所述日志条数限额范围内时,按照所述日志条数限额范围对所述服务器故障日志裁切为多个日志段;
响应于所述记载日志时间跨度不在所述时间跨度阈值范围内且所述服务器故障日志中的日志条数在所述日志条数限额范围内时,按照所述时间跨度阈值范围对所述服务器故障日志裁切为多个日志段;
响应于所述记载日志时间跨度不在所述时间跨度阈值范围内且所述服务器故障日志中的日志条数不在所述日志条数限额范围内时,按照所述时间跨度阈值范围及所述日志条数限额范围对所述服务器故障日志裁切为多个日志段。
3.根据权利要求1所述的服务器故障诊断方法,其特征在于,所述对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志步骤包括:
提取目标服务器故障日志中的硬件类型和日志信息作为用于语言处理向量化模型训练的语料训练集;
构建待训练的语言处理向量化模型,采用所述语料训练集训练所述待训练的语言处理向量化模型,保存去重后的全部硬件类型,根据构建硬件类型键-值对字典,形成训练后的语言处理向量化模型;
获取所述日志组中的硬件类型和日志信息,利用训练后的语言处理向量化模型对所述日志组中的硬件类型和日志信息进行向量化处理,形成向量化日志。
4.根据权利要求3所述的服务器故障诊断方法,其特征在于,所述提取目标服务器故障日志中的硬件类型和日志信息作为用于语言处理向量化模型训练的语料训练集步骤包括:
获取所述硬件类型和所述日志信息的每个词的词序;
按照词序获取所述硬件类型和所述日志信息的每个词映射的向量;
将获取的向量按照词序汇总,形成语料训练集。
5.根据权利要求1所述的服务器故障诊断方法,其特征在于,所述输出每个类簇对应的硬件类型和数目步骤包括:
获取每一类簇对应的硬件类型的向量,计算其与硬件类型键-值对的每个键下的向量的相似度;
对每一类簇,初始化硬件类型键-值对的每个键出现次数计数为零,查询类簇中硬件类型键-值对的每个键下的向量,响应于向量被查询到,对应的键的计数加一;
根据计算的硬件类型键-值对中键的计数,获取每个类簇出现的硬件类型和对应的计数。
6.根据权利要求1所述的服务器故障诊断方法,其特征在于,所述获取每个服务器地址的日志组中所有类簇的标签,获取每一类簇的标签对应的向量列表,对所述向量列表进行聚类,以向量列表数目最多的聚类簇对应的标签作为所述日志组的标签步骤包括:
将每一类簇构造为第二预设格式,按照所述日志组中日志序列构造为一个二维数组;
获取每个服务器地址的日志组中所有类簇的标签,将每一标签相关联的向量数组形成向量列表;
对所述向量列表进行聚类,形成多个聚类簇;
遍历所述二维数组,查询每个向量数组所在的聚类簇,统计每个聚类簇中的向量数组对应的标签数目;
计算每个聚类簇中每一标签的权重,以求和方式计算所述日志组中每一标签的权重;
根据标签的权重大小排序,取最大权重的标签作为所述日志组的标签。
7.根据权利要求6所述的服务器故障诊断方法,其特征在于,所述计算每个聚类簇中每一标签的权重,以求和方式计算所述日志组中每一标签的权重步骤包括:
获取每个聚类簇的每个硬件类型所构成的键的计数,用labelij表示为聚类簇i中标签j的计数;
采用计算每个聚类簇中每一标签的权重,其中pij为聚类簇i中标签j的权重,M为在聚类簇i中与标签j对应的向量列表的数量;
采用计算所述日志组中每一标签的权重,其中Pj为所述日志组中标签j的权重。
8.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-7中任一所述的方法的步骤。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410634960.7A CN118211170B (zh) | 2024-05-22 | 2024-05-22 | 服务器故障诊断方法、产品、计算机设备和存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410634960.7A CN118211170B (zh) | 2024-05-22 | 2024-05-22 | 服务器故障诊断方法、产品、计算机设备和存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN118211170A CN118211170A (zh) | 2024-06-18 |
| CN118211170B true CN118211170B (zh) | 2024-09-20 |
Family
ID=91449276
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202410634960.7A Active CN118211170B (zh) | 2024-05-22 | 2024-05-22 | 服务器故障诊断方法、产品、计算机设备和存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN118211170B (zh) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118672861B (zh) * | 2024-08-20 | 2025-01-24 | 山东云海国创云计算装备产业创新中心有限公司 | 运行状态的预测方法和装置、存储介质、电子设备及计算机程序产品 |
| CN119363707B (zh) * | 2024-10-18 | 2026-01-30 | 中国互联网络信息中心 | 一种递归服务器地址的划分方法及装置 |
| CN119537084B (zh) * | 2025-01-22 | 2025-07-22 | 苏州元脑智能科技有限公司 | 一种故障日志处理方法、设备、程序产品及介质 |
| CN120029813A (zh) * | 2025-04-21 | 2025-05-23 | 山东云海国创云计算装备产业创新中心有限公司 | 故障诊断装置及其处理方法、管理控制器、电子设备 |
| CN120705070B (zh) * | 2025-08-25 | 2025-11-11 | 苏州元脑智能科技有限公司 | 模型测试方法、装置、设备及存储介质 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112698977A (zh) * | 2020-12-29 | 2021-04-23 | 下一代互联网重大应用技术(北京)工程研究中心有限公司 | 服务器故障定位方法方法、装置、设备及介质 |
| CN114691403A (zh) * | 2022-03-18 | 2022-07-01 | 阿里巴巴(中国)有限公司 | 一种服务器故障诊断方法、装置、电子设备及存储介质 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3910571A1 (en) * | 2020-05-13 | 2021-11-17 | MasterCard International Incorporated | Methods and systems for server failure prediction using server logs |
| CN114706856B (zh) * | 2022-04-11 | 2025-10-28 | 京东科技信息技术有限公司 | 故障处理方法及装置、电子设备和计算机可读存储介质 |
| CN115580524A (zh) * | 2022-09-06 | 2023-01-06 | 中国建设银行股份有限公司 | 一种服务器故障的定位方法及装置 |
| CN117743040A (zh) * | 2022-09-14 | 2024-03-22 | 腾讯科技(深圳)有限公司 | 内存故障预测方法、装置、计算机设备和存储介质 |
| CN116541728B (zh) * | 2023-04-28 | 2025-11-07 | 济南浪潮数据技术有限公司 | 一种基于密度聚类的故障诊断方法及装置 |
-
2024
- 2024-05-22 CN CN202410634960.7A patent/CN118211170B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112698977A (zh) * | 2020-12-29 | 2021-04-23 | 下一代互联网重大应用技术(北京)工程研究中心有限公司 | 服务器故障定位方法方法、装置、设备及介质 |
| CN114691403A (zh) * | 2022-03-18 | 2022-07-01 | 阿里巴巴(中国)有限公司 | 一种服务器故障诊断方法、装置、电子设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN118211170A (zh) | 2024-06-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN118211170B (zh) | 服务器故障诊断方法、产品、计算机设备和存储介质 | |
| Bodik et al. | Fingerprinting the datacenter: automated classification of performance crises | |
| Oliner et al. | Alert detection in system logs | |
| CN107301118B (zh) | 一种基于日志的故障指标自动标注方法与系统 | |
| Lim et al. | Identifying recurrent and unknown performance issues | |
| WO2021143268A1 (zh) | 基于模糊推理理论的电力信息系统健康评估方法及系统 | |
| KR101948634B1 (ko) | 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법 | |
| CN111400122B (zh) | 一种硬盘健康度评估方法及装置 | |
| CN113657461A (zh) | 基于文本分类的日志异常检测方法、系统、设备及介质 | |
| EP3163519A1 (en) | Methods for detecting one or more aircraft anomalies and devices thereof | |
| CN109934268B (zh) | 异常交易检测方法及系统 | |
| CN117170915A (zh) | 数据中心设备故障预测方法、装置和计算机设备 | |
| US11792081B2 (en) | Managing telecommunication network event data | |
| CN117539920B (zh) | 基于房产交易多维度数据的数据查询方法及系统 | |
| CN117873839A (zh) | 复杂算力系统的故障检测方法、装置、设备和存储介质 | |
| CN112951311A (zh) | 一种基于变权重随机森林的硬盘故障预测方法及系统 | |
| CN117811903A (zh) | 一种sas链路故障诊断方法、装置、设备及存储介质 | |
| CN115034278A (zh) | 性能指标异常检测方法、装置、电子设备和存储介质 | |
| CN115017019B (zh) | 一种基于日志的系统异常检测方法、装置及存储介质 | |
| Jain et al. | Extracting the textual and temporal structure of supercomputing logs | |
| Sorkunlu et al. | dynamicmf: A matrix factorization approach to monitor resource usage in high performance computing systems | |
| CN114003479A (zh) | 一种故障日志推送方法、计算机及存储介质 | |
| Nikiforov | Clustering-based anomaly detection for microservices | |
| CN118860771A (zh) | 基于微服务的实例数和调用链巡检方法、装置、计算机设备、可读存储介质和程序产品 | |
| CN117909970A (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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |