1.本发明涉及服务器运维技术领域,尤其涉及一种服务器故障的定位方法及装置。
背景技术:2.由于线上业务的快速发展,数据中心服务器的数量不断增多,同时随着数据中心服务器的使用年限逐步升高,硬件故障率也随之升高。为了保障数据中心服务器业务的连贯性,当数据中心服务器发生硬件故障时及时发现并快速定位到故障点显得十分重要。
3.目前硬件故障的运维方式主要是:当服务器的某个部件发生故障时,将故障日志记录在bmc中,并通过snmp协议发送trap报文给监控服务器,根据硬件监控的规则产生告警信息并发送给运维人员,运维人员登录到服务器管理界面收集故障日志并对日志进行解析和定位故障位置。但这种方式过分依赖运维人员的操作,需要耗费大量的人力物力,导致定位故障的效率低下。
技术实现要素:4.有鉴于此,本发明实施例提供一种服务器故障的定位方法及装置,以解决目前定位故障需要耗费大量的人力物力的问题。
5.为实现上述目的,本发明实施例提供如下技术方案:
6.本发明实施例第一方面公开一种服务器故障的定位方法,所述方法包括:
7.当接收到故障告警信息时,根据所述故障告警信息中携带的服务器id,确定所述服务器id对应的类别;
8.根据所述类别确定日志采集协议,并依据所述日志采集协议从所述服务器id对应的服务器中获取日志,所述日志至少包括硬件日志;
9.提取所述硬件日志的向量表示;
10.将所述向量表示输入日志解析库模型进行计算,得到故障信息,所述日志解析库模型基于多个历史故障信息训练得到;
11.根据所述故障信息生成故障定位信息,并输出所述故障定位信息。
12.优选的,所述当接收到故障告警信息时,根据所述故障告警信息中携带的服务器id,确定所述服务器id对应的类别,包括:
13.当接收到故障告警信息时,获取所述故障告警信息中携带的服务器id;
14.获取所述服务器id对应的服务器的拓扑架构信息;
15.根据所述拓扑架构信息确定所述服务器id对应的类别。
16.优选的,基于多个历史故障信息训练得到日志解析库模型,包括:
17.获取多个历史故障信息;
18.将所述多个历史故障信息梳理为样本数据集;
19.将所述样本数据集输入循环神经网络模型进行训练直至所述循环神经网络模型收敛,得到日志解析库模型。
20.优选的,所述方法还包括:
21.计算所述硬件日志的向量表示,与所述日志解析库模型中特征向量之间的相似度;
22.判断所述相似度是否在预设阈值范围内;
23.若所述相似度在预设阈值范围内,采用预设临近算法将所述硬件日志归类至所述日志解析库模型中以优化更新所述日志解析库模型。
24.优选的,所述日志还包括部件状态信息,所述故障信息还包括目标部件;
25.将所述向量表示输入日志解析库模型进行计算,得到故障信息之后,还包括:
26.判断所述目标部件在所述部件状态信息中的状态是否为故障状态;
27.若所述目标部件在所述部件状态信息中的状态为故障状态,确定所述目标部件出现故障。
28.本发明实施例第二方面公开一种服务器故障的定位装置,所述装置包括:
29.第一确定单元,用于当接收到故障告警信息时,根据所述故障告警信息中携带的服务器id,确定所述服务器id对应的类别;
30.第一获取单元,用于根据所述类别确定日志采集协议,并依据所述日志采集协议从所述服务器id对应的服务器中获取日志,所述日志至少包括硬件日志;
31.提取单元,用于提取所述硬件日志的向量表示;
32.第一计算单元,用于将所述向量表示输入日志解析库模型进行计算,得到故障信息,所述日志解析库模型基于多个历史故障信息训练得到;
33.生成单元,用于根据所述故障信息生成故障定位信息,并输出所述故障定位信息。
34.优选的,所述第一确定单元,包括:
35.第一获取模块,用于当接收到故障告警信息时,获取所述故障告警信息中携带的服务器id;
36.第二获取模块,用于获取所述服务器id对应的服务器的拓扑架构信息;
37.确定模块,用于根据所述拓扑架构信息确定所述服务器id对应的类别。
38.优选的,所述装置还包括:
39.第二获取单元,用于获取多个历史故障信息;
40.梳理单元,用于将所述多个历史故障信息梳理为样本数据集;
41.输入单元,用于将所述样本数据集输入循环神经网络模型进行训练直至所述循环神经网络模型收敛,得到日志解析库模型。
42.优选的,所述装置还包括:
43.第二计算单元,用于计算所述硬件日志的向量表示,与所述日志解析库模型中特征向量之间的相似度;
44.第一判断单元,用于判断所述相似度是否在预设阈值范围内;
45.优化单元,用于若所述相似度在预设阈值范围内,采用预设临近算法将所述硬件日志归类至所述日志解析库模型中以优化更新所述日志解析库模型。
46.优选的,所述日志还包括部件状态信息,所述故障信息还包括目标部件;
47.所述装置还包括:
48.第二判断单元,用于判断所述目标部件在所述部件状态信息中的状态是否为故障
状态;
49.第二确定单元,用于若所述目标部件在所述部件状态信息中的状态为故障状态,确定所述目标部件出现故障。
50.基于上述本发明实施例提供的一种服务器故障的定位方法及装置,该方法包括:当接收到故障告警信息时,根据故障告警信息中携带的服务器id,确定服务器id对应的类别;确定类别所对应的日志采集协议,依据日志采集协议从服务器id对应的服务器中获取硬件日志;提取硬件日志对应的向量表示;将向量表示输入日志解析库模型进行计算,得到故障信息;根据故障信息生成故障定位信息,并输出故障定位信息。利用日志解析库模型计算服务器的故障信息,提高了故障定位的准确性;依据服务器的对应的日志采集协议自动采集服务器的日志,提高了硬件运维效率,节约了大量人力物力成本。
附图说明
51.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
52.图1为本发明实施例提供的一种服务器故障的定位方法的流程图;
53.图2为本发明实施例提供的一种服务器故障的定位装置的结构框图;
54.图3为本发明实施例提供的一种服务器故障的定位装置的另一结构框图;
55.图4为本发明实施例提供的一种服务器故障的定位装置的又一结构框图。
具体实施方式
56.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
57.在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
58.由背景技术可知,目前当服务器发生故障时会产生相应的告警信息,提醒运维人员服务器故障,需要由运维人员收集服务器的故障日志并对日志进行解析和定位故障位置,但是这种对硬件故障的运维方式过分依赖运维人员的操作,需要耗费大量的人力物力,导致定位故障的效率低下。
59.因此,本发明实施例提供一种服务器故障的定位方法及装置,当接收到携带服务器id的故障告警信息时,确定服务器id对应的类别;依据类别所对应的日志采集协议从服务器id对应的服务器中获取硬件日志;提取硬件日志对应的向量表示;将向量表示输入日志解析库模型进行相似度计算,得到故障信息;根据故障信息生成故障定位信息,并输出故
障定位信息。依据服务器的对应的日志采集协议自动采集服务器的日志,提高了硬件运维效率,利用日志解析库模型计算服务器的故障信息,提高了故障定位的准确性。
60.参加图1,示出了本发明实施例提供的一种服务器故障的定位方法的流程图,该定位方法包括:
61.需要说明的是,该服务器故障定位方法适用于大部分种类的x86服务器,具备良好的兼容性。
62.步骤s101:当接收到故障告警信息时,根据故障告警信息中携带的服务器id,确定服务器id对应的类别。
63.需要说明的是,当服务器出现故障后会产生硬件日志(如sel系统事件日志),将硬件日志存储在基板管理控制器(baseboard manager controller,bmc)中。服务器通过snmp协议发送trap报文给监控服务器,以使监控服务器产生故障告警信息。其中,trap报文是snmp协议中的一种pdu报文,用于描述服务器事件的发生;故障告警信息包括序列号、故障的服务器的id、告警缩略信息等。
64.在具体实现步骤s101的过程中,当接收到监控服务器发送的故障告警信息时,根据故障告警信息中携带的服务器id,确定服务器id对应的出现故障的服务器的类别。
65.可以理解的是,服务器id是出现故障的服务器的id。确定服务器id对应的出现故障的服务器的类别具体是:根据服务器id获取对应的服务器的拓扑架构信息;根据拓扑架构信息确定服务器id对应的类别,即故障的服务器的类别。
66.需要说明的是,根据服务器厂商(如华为、h3c、浪潮、ibm、hp、曙光等厂商)将服务器划分为多种类别,每种类别对应一种日志采集协议(如ipmi、redfish、ssh等采集协议)。
67.步骤s102:根据类别确定日志采集协议,并依据日志采集协议从服务器id对应的服务器中获取日志。
68.在具体实现步骤s102的过程中,根据服务器id对应的服务器的类别确定服务器对应的日志采集协议,并依据日志采集协议从服务器id对应的服务器中获取服务器的日志,其中日志至少包括硬件日志(如sel系统事件日志)。
69.在一些具体实施例中,依据日志采集协议采集得到的日志还包括部件状态信息,是基板管理控制器记录的服务器中各个部件的状态信息,其中,如表1所示,状态信息值为ok或down。
70.表1
71.特征特征意义serial_num服务器序列号bmc_ip服务器对应bmc的ipalarm_level日志级别datetime日志产生时间log_detail日志详情
72.步骤s103:提取硬件日志的向量表示。
73.在具体实现步骤s103的过程中,利用预设词向量模型(如word2vec模型)对硬件日志进行文本向量化处理,得到硬件日志的向量表示。
74.步骤s104:将向量表示输入日志解析库模型进行计算,得到故障信息。
75.在具体实现步骤s104的过程中,将硬件日志的向量表示输入日志解析库模型中进行计算,得到硬件日志对应的故障信息,其中,故障信息包括目标部件和故障原因。
76.可以理解的是,日志解析库模型分析硬件日志得到故障信息,则目标部件即日志解析库模型分析出的出现故障的部件。
77.需要说明的是,日志解析库模型预先基于多个历史故障信息训练得到,具体实现过程如下:
78.获取多个历史故障信息,这些历史故障信息为多个厂商的服务器的日志-故障数据集,如表2所示,将这些历史故障信息中的文本内容进行向量化表示,梳理为样本数据集,其中,样本指标分为样本特征和样本标签。
79.表2
80.样本指标指标意义manufacturer样本特征,服务器厂商log_detail样本特征,日志详情alarm_level样本特征,日志级别failure_cause样本标签,故障原因failure_components样本标签,故障部件components_location样本标签,故障部件位置
81.将样本数据集输入循环神经网络(recurrent neural network,rnn)模型进行训练直至循环神经网络模型收敛,得到日志解析库模型。
82.可以理解的是,日志解析库模型中包括日志详情、日志等级、故障原因和故障位置的映射关系等知识和经验。
83.在一些具体实施例中,计算硬件日志得到故障信息之后,日志解析库模型判断故障信息中的目标部件在部件状态信息中的状态是否为故障状态;若目标部件在部件状态信息中的状态为故障状态(如状态信息值为down),确定目标部件出现故障;若目标部件在部件状态信息中的状态为正常状态(如状态信息值为ok),指示目标部件有可能存在隐性故障。
84.需要说明的是,在日志解析库模型中,可以根据实际应用情况调节硬件日志和部件状态信息的权重,从而得到更为准确的故障信息。
85.步骤s105:根据故障信息生成故障定位信息,并输出故障定位信息。
86.在具体实现步骤s105的过程中,根据故障信息生成故障定位信息,其中,故障定位信息至少包括故障原因和故障部件的位置,输出故障定位信息。
87.在一些实施例中,通过增量学习优化更新日志解析库模型,具体优化过程是:计算硬件日志的向量表示,与日志解析库模型中特征向量之间的相似度;判断相似度是否在预设阈值范围内;若相似度在预设阈值范围内,采用预设临近算法(如knn算法)将硬件日志归类至日志解析库模型中以优化日志解析库模型;若相似度在预设阈值范围外,则将判断结果反馈至业务人员,以便由业务人员反馈硬件日志对应的样本标签,从而优化日志解析库模型。
88.可以理解的是,计算硬件日志的向量表示,与日志解析库模型中特征向量之间的相似度为余弦距离。
89.在本发明实施例中,利用多个历史故障信息训练循环神经网络模型得到日志解析库模型,并结合实际应用对日志解析库模型进行优化,提高了故障定位的准确率;当接收到故障告警信息后,采集服务器的日志,分析日志,计算故障信息,提高了服务器硬件运维的效率,节约了人力物力成本,为服务器应用提供更为稳定的运行环境支持。
90.与上述本发明实施例提供的一种服务器故障的定位方法相对应,参见图2,示出了本发明实施例提供的一种服务器故障的定位装置的结构框图,该定位装置包括:第一确定单元201、第一获取单元202、提取单元203、第一计算单元204和生成单元205。
91.第一确定单元201,用于当接收到故障告警信息时,根据故障告警信息中携带的服务器id,确定服务器id对应的类别。
92.第一获取单元202,用于根据类别确定日志采集协议,并依据日志采集协议从服务器id对应的服务器中获取日志,日志至少包括硬件日志。
93.提取单元203,用于提取硬件日志的向量表示。
94.第一计算单元204,用于将向量表示输入日志解析库模型进行计算,得到故障信息,日志解析库模型基于多个历史故障信息训练得到。
95.生成单元205,用于根据故障信息生成故障定位信息,并输出故障定位信息。
96.在本发明实施例中,接收到故障告警信息时,由服务器的类别确定日志采集协议,依据日志采集协议获取服务器的日志,结合日志解析库模型,计算服务器的故障信息,根据故障信息生成故障定位信息,并输出故障定位信息,实现了自动化故障定位,提高了服务器运维的效率,节约了人力物力成本。
97.优选的,结合图2示出的内容,参见图3,示出了本发明实施例提供的一种服务器故障的定位装置的另一结构框图,第一确定单元201包括:第一获取模块2011、第二获取模块2012和确定模块2013,各模块的执行原理为:
98.第一获取模块2011,用于当接收到故障告警信息时,获取故障告警信息中携带的服务器id。
99.第二获取模块2012,用于获取服务器id对应的服务器的拓扑架构信息。
100.确定模块2013,用于根据拓扑架构信息确定服务器id对应的类别。
101.优选的,结合图2示出的内容,参见图4,示出了本发明实施例提供的一种服务器故障的定位装置的又一结构框图,该定位装置还包括:第二获取单元206、梳理单元207和输入单元208。
102.第二获取单元206,用于获取多个历史故障信息。
103.梳理单元207,用于将多个历史故障信息梳理为样本数据集。
104.输入单元208,用于将样本数据集输入循环神经网络模型进行训练直至循环神经网络模型收敛,得到日志解析库模型。
105.优选的,结合图2示出的内容,该定位装置还包括:第二计算单元、第一判断单元和优化单元。
106.第二计算单元,用于计算硬件日志的向量表示,与日志解析库模型中特征向量之间的相似度。
107.第一判断单元,用于判断相似度是否在预设阈值范围内。
108.优化单元,用于若相似度在预设阈值范围内,采用预设临近算法将硬件日志归类
至日志解析库模型中以优化更新日志解析库模型。
109.优选的,结合图2示出的内容,该定位装置还包括:第二判断单元和第二确定单元。
110.第二判断单元,用于判断目标部件在部件状态信息中的状态是否为故障状态。
111.第二确定单元,用于若目标部件在部件状态信息中的状态为故障状态,确定目标部件出现故障。
112.综上所述,本发明实施例提供一种服务器故障的定位方法及装置,结合历史故障信息训练循环神经网络模型,得到日志解析库模型;利用日志解析库模型计算服务器的日志对应的向量化表示,得到故障信息,提高了服务器故障定位的准确率,同时为服务器上的应用提供更加稳定的运行环境支持。
113.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
114.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
115.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。