一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

服务器故障上报方法、装置、电子设备及存储介质与流程

2022-12-20 21:30:15 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种服务器故障上报方法、装置、电子设备及存储介质。


背景技术:

2.keepalived软件一般用于检测服务器的状态。在服务器高可用管理中,如果有一台服务器工作出现故障,将被keepalived检测到,实现服务器的主备自动倒换,并将有故障的服务器从系统中剔除。当服务器工作正常后,keepalived自动将服务器加入到服务器群中,上述这些工作全部自动完成,需要用户介入参与的仅仅是修复有故障的服务器。
3.然而,现有技术中,当服务器发生故障时,keepalived仅会通知故障的发生,触发主备服务器的倒换,而不会记录及上报服务器故障原因,使得用户无法高效地对有故障的服务器进行修复,影响了该服务器重新加入到服务器群的时间,导致系统的运行效率不高。


技术实现要素:

4.本发明提供一种服务器故障上报方法、装置、电子设备及存储介质,用以解决现有技术中keepalived不会记录及上报服务器故障原因,使得用户不能有针对性地对有故障的服务器进行及时修复,导致系统的运行效率不高的缺陷。
5.本发明提供一种服务器故障上报方法,包括:
6.在检测到主用服务器发生故障的情况下,获取所述主用服务器的故障原因对应的错误码;
7.将所述故障原因对应的错误码存储到数据库中间件;
8.启动备用服务器,并将所述备用服务器的状态切换为新的主用服务器,以使所述新的主用服务器从所述数据库中间件中读取所述错误码,将所述故障原因上报到前端界面。
9.根据本发明提供的一种服务器故障上报方法,在所述在检测到主用服务器发生故障的情况下,获取所述主用服务器的故障原因对应的错误码之前,还包括:
10.调用预设检查模块对所述主用服务器进行健康状态检查,确定所述主用服务器的检查结果;
11.在确定所述检查结果为异常的情况下,确定所述主用服务器发生故障。
12.根据本发明提供的一种服务器故障上报方法,在所述在检测到主用服务器发生故障的情况下,获取所述主用服务器的故障原因对应的错误码之前,还包括:
13.在检测到内核报告所述主用服务器发生故障的情况下,确定所述主用服务器发生故障。
14.根据本发明提供的一种服务器故障上报方法,在所述在检测到内核报告所述主用服务器发生故障的情况下,确定所述主用服务器发生故障之后,包括:
15.执行预设故障回调程序;
16.在执行所述预设故障回调程序的过程中,将所述主用服务器的故障原因对应的错误码存储到所述数据库中间件。
17.根据本发明提供的一种服务器故障上报方法,所述在检测到主用服务器发生故障的情况下,获取所述主用服务器的故障原因对应的错误码,包括:
18.在检测到主用服务器发生故障的情况下,确定所述主用服务器的故障原因;
19.从预设数据库中,获取所述故障原因对应的错误码。
20.根据本发明提供的一种服务器故障上报方法,所述预设数据库存储有服务器中各个模块的故障原因与对应的错误码范围的关联信息;所述错误码范围包括各个所述故障原因对应的错误码。
21.本发明还提供一种服务器故障上报装置,包括:
22.获取模块,用于在检测到主用服务器发生故障的情况下,获取所述主用服务器的故障原因对应的错误码;
23.存储模块,用于将所述故障原因对应的错误码存储到数据库中间件;
24.上报模块,用于启动备用服务器,并将所述备用服务器的状态切换为新的主用服务器,以使所述新的主用服务器从所述数据库中间件中读取所述错误码,将所述故障原因上报到前端界面。
25.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述服务器故障上报方法。
26.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述服务器故障上报方法。
27.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述服务器故障上报方法。
28.本发明提供的服务器故障上报方法、装置、电子设备及存储介质,通过预先按照服务器故障类型,配置一套错误码,可以使keepalived在检测到主用服务器发生故障的情况下,获取主用服务器的故障原因对应的错误码;并通过将故障原因对应的错误码存储到数据库中间件,启动备用服务器,并将备用服务器的状态切换为新的主用服务器,使得新的主用服务器可以从数据库中间件中及时读取错误码,解析出错误码所指的故障原因,从而将故障原因上报到前端界面,可以及时提醒用户发生故障的服务器的具体故障原因,帮助用户有针对性地对有故障的服务器进行修复,提高修复效率,使得修复好的服务器能够及时加入到服务器群中,极大地提升了系统的运行效率。
附图说明
29.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
30.图1是本发明提供的服务器故障上报方法的流程示意图之一;
31.图2是本发明提供的服务器故障上报方法的流程示意图之二;
32.图3是本发明提供的服务器故障上报装置的结构示意图;
33.图4是本发明提供的电子设备的实体结构示意图。
具体实施方式
34.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
35.在发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
36.下面结合图1-图4描述本发明的服务器故障上报方法、装置、电子设备及存储介质。
37.核心网作为整个移动通信网络的中央枢纽,对系统有高可靠性要求。一种常用的可靠性性方案为“1 1”主备方案,即一个网元作为主网元处理相关业务消息,另一个网元作为备份。当主网元故障后,备网元将升为主网元,并承接业务消息处理。在“1 1”主备方案中,需关键解决的问题是,如何在主网元故障时,业务可快速切换到备网元,且外部网元感知不到“1 1”主备网元发生故障并经过主备倒换的过程。
38.keepalived是linux下以虚拟路由冗余协议为实现基础的轻量级别的高可用解决方案。虚拟路由冗余协议可以将n(n≥2)台物理路由器设备虚拟成一个虚拟路由,这个虚拟路由器通过虚拟ip(ip数≥1)对外提供服务,而在虚拟路由器内部物理路由器协同工作,同一时间只有1台物理路由器对外提供服务,这台物理路由设备被称为“主用路由器(master角色)”。一般情况下master是由选举算法产生,它拥有对外服务的虚拟ip,提供各种网络功能。而其它的物理路由器不拥有对外的虚拟ip,也不提供对外网络功能,仅仅接收master的虚拟路由冗余协议状态通告信息,这些路由器被统称为“备用路由器(backup角色)”。当主路由器故障时,处于backup角色的路由器将重新进行选举,产生一个新的主路由器进入master角色,继续提供对外服务,整个切换对用户来说是完全透明的。由此,keepalived可以在主用服务器发生故障的情况下,实现服务器的主备自动倒换。
39.图1是本发明提供的服务器故障上报方法的流程示意图之一,如图1所示,包括:步骤110、步骤120和步骤130。
40.步骤110,在检测到主用服务器发生故障的情况下,获取主用服务器的故障原因对应的错误码;
41.具体地,本发明实施例所描述的错误码指的是预先根据服务器中各个模块可能存在的故障类型进行划分,针对各个故障原因进行统一定义后的编码。也就是说,服务器中的每个模块发生的故障原因,都会对应有一个错误码,根据错误码,可以确定发生故障的模块及故障原因。
42.基于上述实施例的内容,作为一种可选的实施例,在检测到主用服务器发生故障
的情况下,获取主用服务器的故障原因对应的错误码,包括:
43.在检测到主用服务器发生故障的情况下,确定主用服务器的故障原因;
44.从预设数据库中,获取故障原因对应的错误码。
45.具体地,本发明实施例所描述的预设数据库指的是用于存储服务器故障原因对应的错误码数据的数据库。
46.在本实施例中,在keepalived检测到主用服务器发生故障的情况下,根据检测到的主用服务器的故障原因,从预设数据库中,获取该故障原因对应的错误码。
47.本发明实施例的方法,通过预先设置用于存储服务器故障原因对应的错误码数据的数据库,可以方便keepalived检测到主用服务器发生故障时,及时获取故障原因对应的错误码数据,保证后续程序执行的效率。
48.基于上述实施例的内容,作为一种可选的实施例,预设数据库存储有服务器中各个模块的故障原因与对应的错误码范围的关联信息;错误码范围包括各个故障原因对应的错误码。
49.在本发明的实施例中,通过将服务器中各个模块的故障原因进行分类,统一定义一套错误码,按照需要检查的模块,划分错误码范围。可以按照划分的错误码范围,将模块内可能出现的各个故障原因和每个错误码进行一对一定义,并将定义好的数据存储到预设数据库中,
50.也就是说,预设数据库中会存储服务器中各个模块的故障原因与对应的错误码范围的关联信息,在错误码范围中,包含有各个故障原因对应的错误码。
51.本发明实施例的方法,通过预先对服务器的模块进行故障类型分类,统一定义故障原因对应的错误码,实现对服务器故障原因的细分类,有利于故障信息上报的准确率。
52.步骤120,将故障原因对应的错误码存储到数据库中间件;
53.具体地,本发明实施例所描述的数据库中间件指的是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。
54.在本发明的实施例中,在获取主用服务器的故障原因对应的错误码之后,keepalived可以将故障原因对应的错误码存储到数据库中间件,以实现数据共享的目的。
55.步骤130,启动备用服务器,并将备用服务器的状态切换为新的主用服务器,以使新的主用服务器从数据库中间件中读取错误码,将故障原因上报到前端界面。
56.具体地,本发明实施例所描述的新的主用服务器指的是通过keepalived进行主备服务器倒换,从备用服务器中重新确定服务器群中的主用服务器。
57.本发明实施例所描述的前端界面可以指的是系统前端的管理界面,可以与用户进行人机交互。
58.在本发明的实施例中,可以通过选举算法,从备用服务器中选出用于主备倒换的备用服务器,启动该备用服务器,将备用服务器的状态切换为新的主用服务器。
59.可以理解的是,在进行主备倒换过程中,原先的主用服务器会将所有功能数据同步给新的主用服务器中,由新的主用服务器承接业务消息的处理。
60.进一步地,新的主用服务器可以从数据库中间件中读取到故障服务器的故障原因对应的错误码,并将该错误码解析为具体地故障原因,从而感知到上一次故障倒换的具体
原因,同时新的主用服务器还可以将故障原因上报到前端的管理界面,提醒用户故障服务发生故障的具体原因。
61.本发明实施例提供的服务器故障上报方法,通过预先按照服务器故障类型,配置一套错误码,可以使keepalived在检测到主用服务器发生故障的情况下,获取主用服务器的故障原因对应的错误码;并通过将故障原因对应的错误码存储到数据库中间件,启动备用服务器,并将备用服务器的状态切换为新的主用服务器,使得新的主用服务器可以从数据库中间件中及时读取错误码,解析出错误码所指的故障原因,从而将故障原因上报到前端界面,可以及时提醒用户发生故障的服务器的具体故障原因,帮助用户有针对性地对有故障的服务器进行修复,提高修复效率,使得修复好的服务器能够及时加入到服务器群中,极大地提升了系统的运行效率。
62.基于上述实施例的内容,作为一种可选的实施例,在检测到主用服务器发生故障的情况下,获取主用服务器的故障原因对应的错误码之前,还包括:
63.调用预设检查模块对主用服务器进行健康状态检查,确定主用服务器的检查结果;
64.在确定检查结果为异常的情况下,确定主用服务器发生故障。
65.具体地,本发明实施例所描述的预设检查模块指的是用户预先自定义的检查模块,其用于检查服务器的健康状态。
66.在本发明的实施例中,可以在keepalived调用用户自定义预设检查模块的场景下,进行服务器故障信息的上报。
67.在本发明的实施例中,keepalived可以周期调用预设检查模块,以对对主用服务器进行健康状态检查,确定主用服务器的检查结果。
68.当预设检查模块检测服务器的健康状态为不通过,即确定检查结果为异常时,即可确定主用服务器发生故障。
69.图2是本发明提供的服务器故障上报方法的流程示意图之二,如图2所示,在keepalived监测到主用服务器故障后,获取主用服务器的故障原因对应的错误码,将该故障原因对应的错误码存储到数据库中间件,并返回非0的检查结果。
70.主用服务器状态切换为故障状态。
71.进一步地,备用服务器倒换为主用角色,即倒换为新的主用服务器。
72.进一步地,新的主用服务器可以从数据库中间件中读取错误码,将错误码解析为具体地故障原因,并将故障原因上报到前端界面。
73.本发明实施例的方法,通过用户预先自定义的服务器健康状态的预设检查模块,使keepalived可以通过周期调用该预设检查模块,监测主用服务器的健康状态,便于keepalived在检测到主用服务器发生故障时,记录故障原因对应的错误码,以共享给新的主用服务器,实现服务器故障原因的自动上报。
74.基于上述实施例的内容,作为一种可选的实施例,在检测到主用服务器发生故障的情况下,获取主用服务器的故障原因对应的错误码之前,还包括:
75.在检测到内核报告主用服务器发生故障的情况下,确定主用服务器发生故障。
76.在本发明的实施例中,还可以在linux内核报告相关服务器设备故障的场景下,进行服务器故障信息的上报。
77.基于上述实施例的内容,作为一种可选的实施例,在检测到内核报告主用服务器发生故障的情况下,确定主用服务器发生故障之后,包括:
78.执行预设故障回调程序;
79.在执行预设故障回调程序的过程中,将主用服务器的故障原因对应的错误码存储到数据库中间件。
80.具体地,本发明实施例所描述的预设故障回调程序指的是预先在keepalived中新增的服务器故障回调点程序。
81.在本发明的实施例中,预先在keepalived中新增的服务器故障回调点程序,实现预设故障回调程序。
82.在本发明的实施例中,当linux内核上报主用服务器故障时,keepalived执行预设故障回调程序,将故障原因对应的错误码传到回调中,在回调中将该错误码存储到数据库中间件中。
83.如图2所示,在keepalived通过检测到内核报告主用服务器发生故障时,监测到主用服务器故障后,keepalived执行预设故障回调程序,并在执行预设故障回调程序的过程中,将主用服务器的故障原因对应的错误码存储到数据库中间件。
84.主用服务器状态切换为故障状态。
85.进而备用服务器倒换为主用角色,即倒换为新的主用服务器。
86.新的主用服务器可以从数据库中间件中读取错误码,将错误码解析为具体地故障原因,并将故障原因上报到前端界面。
87.本发明实施例的方法,通过预先在keepalived中新增的服务器故障回调点程序,使得linux内核上报主用服务器发生故障时,keepalived可以通过执行该预设故障回调程序,在回调中记录故障原因对应的错误码,以共享给新的主用服务器,实现服务器故障原因的自动上报。
88.下面对本发明提供的服务器故障上报装置进行描述,下文描述的服务器故障上报装置与上文描述的服务器故障上报方法可相互对应参照。
89.图3是本发明提供的服务器故障上报装置的结构示意图,如图3所示,包括:
90.获取模块310,用于在检测到主用服务器发生故障的情况下,获取主用服务器的故障原因对应的错误码;
91.存储模块320,用于将故障原因对应的错误码存储到数据库中间件;
92.上报模块330,用于启动备用服务器,并将备用服务器的状态切换为新的主用服务器,以使新的主用服务器从数据库中间件中读取错误码,将故障原因上报到前端界面。
93.本实施例所述的服务器故障上报装置可以用于执行上述服务器故障上报方法实施例,其原理和技术效果类似,此处不再赘述。
94.本发明实施例提供的服务器故障上报装置,通过预先按照服务器故障类型,配置一套错误码,可以使keepalived在检测到主用服务器发生故障的情况下,获取主用服务器的故障原因对应的错误码;并通过将故障原因对应的错误码存储到数据库中间件,启动备用服务器,并将备用服务器的状态切换为新的主用服务器,使得新的主用服务器可以从数据库中间件中及时读取错误码,解析出错误码所指的故障原因,从而将故障原因上报到前端界面,可以及时提醒用户发生故障的服务器的具体故障原因,帮助用户有针对性地对有
故障的服务器进行修复,提高修复效率,使得修复好的服务器能够及时加入到服务器群中,极大地提升了系统的运行效率。
95.基于上述实施例的内容,作为一种可选的实施例,该装置还包括:
96.调用模块,用于调用预设检查模块对所述主用服务器进行健康状态检查,确定所述主用服务器的检查结果;
97.第一处理模块,用于在确定所述检查结果为异常的情况下,确定所述主用服务器发生故障。
98.基于上述实施例的内容,作为一种可选的实施例,该装置还包括:
99.第二处理模块,用于在检测到内核报告所述主用服务器发生故障的情况下,确定所述主用服务器发生故障。
100.基于上述实施例的内容,作为一种可选的实施例,该装置还包括:
101.执行模块,用于执行预设故障回调程序;
102.第三处理模块,用于在执行所述预设故障回调程序的过程中,将所述主用服务器的故障原因对应的错误码存储到所述数据库中间件。
103.基于上述实施例的内容,作为一种可选的实施例,获取模块310包括:
104.处理子模块,用于在检测到主用服务器发生故障的情况下,确定所述主用服务器的故障原因;
105.获取子模块,用于从预设数据库中,获取所述故障原因对应的错误码。
106.图4是本发明提供的电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(communications interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行上述各方法所提供的服务器故障上报方法,该方法包括:在检测到主用服务器发生故障的情况下,获取所述主用服务器的故障原因对应的错误码;将所述故障原因对应的错误码存储到数据库中间件;启动备用服务器,并将所述备用服务器的状态切换为新的主用服务器,以使所述新的主用服务器从所述数据库中间件中读取所述错误码,将所述故障原因上报到前端界面。
107.此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
108.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的服务器故障上报方法,该方法包括:在检测到主用服务器发生故障的情况下,获取所述主用服务器的故障原因对应的错误码;将所述故障原因对应的错误码存储到数据库中间件;启动备用服务器,并将所述备用服务器的状态切换
为新的主用服务器,以使所述新的主用服务器从所述数据库中间件中读取所述错误码,将所述故障原因上报到前端界面。
109.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的服务器故障上报方法,该方法包括:在检测到主用服务器发生故障的情况下,获取所述主用服务器的故障原因对应的错误码;将所述故障原因对应的错误码存储到数据库中间件;启动备用服务器,并将所述备用服务器的状态切换为新的主用服务器,以使所述新的主用服务器从所述数据库中间件中读取所述错误码,将所述故障原因上报到前端界面。
110.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
111.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
112.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献