一种基于服务器日志的故障诊断方法与系统与流程

文档序号:22428340发布日期:2020-10-02 10:05阅读:157来源:国知局
一种基于服务器日志的故障诊断方法与系统与流程

本发明涉及服务器故障诊断技术领域,特别是一种基于服务器日志的故障诊断方法与系统。



背景技术:

随着技术的发展,在服务器批量管理工具中,对故障的诊断与检测方案越来越成熟,监测场景也越来越广泛,很多公司和科研机构都有维护自身基于服务器管理工具的故障诊断知识库或规则库,例如fusionservertools,chef,puppet等。一方面,生成诊断规则可以运用机器学习、模糊推理等方案,在这些方案各具特色,例如神经网络就不需要特定业务人员进行知识输入,规则库的成长与调节速度取决于输入的训练量,规则的准确性没有保证。且在常规故障诊断中,诊断规则必须依据实际管理状况的改变迅速做出更新和调整,所以需要结合业务的专家意见进行故障诊断,因此对于服务器故障的诊断往往存在诊断正确率低的问题。

另一方面,服务器的日志是不同网络设备或硬件的时序信息集合,提供维持、追踪硬件表现、参数调整、系统修复、紧急事件、应用信息等大量信息,在服务器管理中,日志拥有便于收集、来源广泛以及便于分析与识别的优点,如何结合服务器日志对服务器故障进行诊断是服务器故障诊断领域的重要研究方向。



技术实现要素:

本发明的目的是提供一种基于服务器日志的故障诊断方法与系统,旨在解决现有技术中故障诊断正确率低的问题,实现提升故障诊断的效率和定位的准确性。

为达到上述技术目的,本发明提供了一种基于服务器日志的故障诊断方法,所述方法包括以下操作:

汇总故障错误信息数据,对错误信息数据编码,以rawfault形式存入数据库,对rawfault数据进行处理,形成规则数据,存入规则库;

收集日志数据,提取错误日志数据,按照故障分类对错误日志数据进行分类,创建诊断引擎对象,执行规则匹配,将故障信息关键字相同的规则分组,按照权重大小进行排序,对故障进行定位,输出诊断定位结果,包括故障源头以及故障分类;

针对诊断定位结果,根据用户反馈修正规则权重,更新规则库。

优选地,所述rawfault数据包括故障原始信息串fault_str、故障源头fault_origin、故障分类origin_category、判断计数total_counts以及正确判断次数correct_counts。

优选地,所述规则数据以向量形式进行表示:

rulefault=(k[]i,ui,ci,wi)

其中,k[]i表示故障信息关键字;ui表示故障源头;ci表示故障分类;wi表示此次判断的正确率,即该规则生效的权重。

优选地,所述权重的计算方式为正确判断次数与判断计数的比值:

correct_counts/total_counts。

优选地,当系统没有诊断定位结果时,由业务人员新建规则并将该规则的权重初始化。

本发明还提供了一种基于服务器日志的故障诊断系统,所述系统包括:

规则生成模块,用于汇总故障错误信息数据,对错误信息数据编码,以rawfault形式存入数据库,对rawfault数据进行处理,形成规则数据,存入规则库;

故障定位模块,用于收集日志数据,提取错误日志数据,按照故障分类对错误日志数据进行分类,创建诊断引擎对象,执行规则匹配,将故障信息关键字相同的规则分组,按照权重大小进行排序,对故障进行定位,输出诊断定位结果,包括故障源头以及故障分类;

规则更新模块,用于针对诊断定位结果,根据用户反馈修正规则权重,更新规则库。

优选地,所述rawfault数据包括故障原始信息串fault_str、故障源头fault_origin、故障分类origin_category、判断计数total_counts以及正确判断次数correct_counts。

优选地,所述规则数据以向量形式进行表示:

rulefault=(k[]i,ui,ci,wi)

其中,k[]i表示故障信息关键字;ui表示故障源头;ci表示故障分类;wi表示此次判断的正确率,即该规则生效的权重。

优选地,所述权重的计算方式为正确判断次数与判断计数的比值:

correct_counts/total_counts。

优选地,当系统没有诊断定位结果时,由业务人员新建规则并将该规则的权重初始化。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

与现有技术相比,本发明通过为规则加入权重,即相同的故障信息可以匹配多种故障定位信息,通过权重表述不同源头造成故障的可能性,不仅让系统不会遗漏诊断结果,而且为后续更新规则提供了权重,并通过权重修正,实现规则的更新。本发明可在现有的批量管理服务器客户端中,增加故障定位功能,实现客户端自行维护服务器故障定位规则库,管理服务器的同时,不断更新规则库,比传统利用专家系统来定位故障的方案增加了规则库的学习能力,提升了故障诊断的效率和定位的准确性。

附图说明

图1为本发明实施例中所提供的一种基于服务器日志的故障诊断方法流程图;

图2为本发明实施例中所提供的一种基于服务器日志的故障诊断系统框图。

具体实施方式

为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

下面结合附图对本发明实施例所提供的一种基于服务器日志的故障诊断方法与系统进行详细说明。

如图1所示,本发明公开了一种基于服务器日志的故障诊断方法,所述方法包括以下操作:

汇总故障错误信息数据,对错误信息数据编码,以rawfault形式存入数据库,对rawfault数据进行处理,形成规则数据,存入规则库;

收集日志数据,提取错误日志数据,按照故障分类对错误日志数据进行分类,创建诊断引擎对象,执行规则匹配,将故障信息关键字相同的规则分组,按照权重大小进行排序,对故障进行定位,输出诊断定位结果,包括故障源头以及故障分类;

根据诊断定位结果,根据用户反馈修正规则权重,更新规则库。

汇总故障错误信息数据,提取故障关键字,整理故障源以及故障类别,为错误信息编码,以rawfault形式存入数据库。系统读取rawfault,进行数据处理,相同类别以及相同条件的rawfault分为一组,计算权重,形成规则数据,输入到规则集中。

故障源数据rawfault包括故障原始信息串fault_str、故障源头fault_origin、故障分类origin_category、判断计数total_counts以及正确判断次数correct_counts。

规则库用于存储故障诊断规则数据,此数据由故障源数据处理得到,在本发明实施例中规则以向量形式进行表示:

rulefault=(k[]i,ui,ci,wi)

其中,k[]i表示故障信息关键字,是根据预设定的逻辑规则结构分解故障原始信息串,让其成为一组关键字数组,在规则中可以理解为诊断条件;ui表示故障源头,即系统最终向用户输出的诊断结果;ci表示故障分类;wi表示此次判断的正确率,即该规则生效的权重。

所述权重的计算方式为正确判断次数与判断计数的比值:

correct_counts/total_counts。

收集被管服务器的系统日志、业务日志、告警信息、监控数据以及业务应用数据,进行过滤、筛选、匹配以及分类等预处理操作,删除重复冗余数据,提取告警、业务等多种数据源的关键字信息,经过处理后,数据按照单位时间、业务模块分类,为后续分析对比提供支持。通过故障源中的关键字,提取错误日志数据,然后按规则的类别进行分类。

诊断引擎接收预处理后的数据,同时加载规则集到工作区。

创建诊断引擎对象,将rawfault数据按照故障分类进行分类,并执行规则匹配,将故障分类相同的规则匹配rawfault数据中的故障原始信息串,若匹配到超过一条规则,则同时激活,并放至预备规则集中,若没有规则匹配,则将其放至未匹配规则集中。

读取用户接受的最大故障定位数n,将预备规则集中故障信息关键字相同的规则分成一组,每组按照权重从大到小排序,将前n条规则的故障源故障分类输入到结果集中。

将结果集输出,在界面中显示故障诊断定位结果。

系统接收用户诊断故障请求,诊断并定位故障,返回故障结果,用户根据诊断结果处理故障及异常。

若系统诊断结果有m(1≤m≤n)条且正确,用户选择正确的故障诊断规则,根据用户反馈更新该组规则的权重,例如诊断源头只有一个并且诊断正确,则规则库会增加正确判断次数并更新该规则的权重;若系统诊断结果有m(1≤m≤n)条,但均是错误的,则用户在处理故障后,由业务人员新建规则并反馈错误规则信息,根据用户反馈更新该组规则的权重;若系统没有诊断结果,说明当前故障是规则库没有覆盖的,那么用户在处理故障后,由业务人员新建规则并将该规则的权重初始化,同时将诊断有误的权重进行更新。

本发明实施例通过为规则加入权重,即相同的故障信息可以匹配多种故障定位信息,通过权重表述不同源头造成故障的可能性,不仅让系统不会遗漏诊断结果,而且为后续更新规则提供了权重,并通过权重修正,实现规则的更新。本发明可在现有的批量管理服务器客户端中,增加故障定位功能,实现客户端自行维护服务器故障定位规则库,管理服务器的同时,不断更新规则库,比传统利用专家系统来定位故障的方案增加了规则库的学习能力,提升了故障诊断的效率和定位的准确性。

如图2所示,本发明实施例还公开了一种基于服务器日志的故障诊断系统,所述系统包括:

规则生成模块,用于汇总故障错误信息数据,对错误信息数据编码,以rawfault形式存入数据库,对rawfault数据进行处理,形成规则数据,存入规则库;

故障定位模块,用于收集日志数据,提取错误日志数据,按照故障分类对错误日志数据进行分类,创建诊断引擎对象,执行规则匹配,将故障信息关键字相同的规则分组,按照权重大小进行排序,对故障进行定位,输出诊断定位结果,包括故障源头以及故障分类;

规则更新模块,用于针对诊断定位结果,根据用户反馈修正规则权重,更新规则库。

汇总故障错误信息数据,提取故障关键字,整理故障源以及故障类别,为错误信息编码,以rawfault形式存入数据库。系统读取rawfault,进行数据处理,相同类别以及相同条件的rawfault分为一组,计算权重,形成规则数据,输入到规则集中。

故障源数据rawfault包括故障原始信息串fault_str、故障源头fault_origin、故障分类origin_category、判断计数total_counts以及正确判断次数correct_counts。

规则库用于存储故障诊断规则数据,此数据由故障源数据处理得到,在本发明实施例中规则以向量形式进行表示:

rulefault=(k[]i,ui,ci,wi)

其中,k[]i表示故障信息关键字,是根据预设定的逻辑规则结构分解故障原始信息串,让其成为一组关键字数组,在规则中可以理解为诊断条件;ui表示故障源头,即系统最终向用户输出的诊断结果;ci表示故障分类;wi表示此次判断的正确率,即该规则生效的权重。

所述权重的计算方式为正确判断次数与判断计数的比值:

correct_counts/total_counts。

收集被管服务器的系统日志、业务日志、告警信息、监控数据以及业务应用数据,进行过滤、筛选、匹配以及分类等预处理操作,删除重复冗余数据,提取告警、业务等多种数据源的关键字信息,经过处理后,数据按照单位时间、业务模块分类,为后续分析对比提供支持。通过故障源中的关键字,提取错误日志数据,然后按规则的类别进行分类。

诊断引擎接收预处理后的数据,同时加载规则集到工作区。

创建诊断引擎对象,将rawfault数据按照故障分类进行分类,并执行规则匹配,将故障分类相同的规则匹配rawfault数据中的故障原始信息串,若匹配到超过一条规则,则同时激活,并放至预备规则集中,若没有规则匹配,则将其放至未匹配规则集中。

读取用户接受的最大故障定位数n,将预备规则集中故障信息关键字相同的规则分成一组,每组按照权重从大到小排序,将前n条规则的故障源故障分类输入到结果集中。

将结果集输出,在界面中显示故障诊断定位结果。

系统接收用户诊断故障请求,诊断并定位故障,返回故障结果,用户根据诊断结果处理故障及异常。

若系统诊断结果有m(1≤m≤n)条且正确,用户选择正确的故障诊断规则,根据用户反馈更新该组规则的权重,例如诊断源头只有一个并且诊断正确,则规则库会增加正确判断次数并更新该规则的权重;若系统诊断结果有m(1≤m≤n)条,但均是错误的,则用户在处理故障后,由业务人员新建规则并反馈错误规则信息,根据用户反馈更新该组规则的权重;若系统没有诊断结果,说明当前故障是规则库没有覆盖的,那么用户在处理故障后,由业务人员新建规则并将该规则的权重初始化,同时将诊断有误的权重进行更新。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1