CN114172829B - 一种服务器健康监测方法、***及计算设备 - Google Patents

一种服务器健康监测方法、***及计算设备 Download PDF

Info

Publication number
CN114172829B
CN114172829B CN202210123500.9A CN202210123500A CN114172829B CN 114172829 B CN114172829 B CN 114172829B CN 202210123500 A CN202210123500 A CN 202210123500A CN 114172829 B CN114172829 B CN 114172829B
Authority
CN
China
Prior art keywords
server
health
monitored
check
servers
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
Application number
CN202210123500.9A
Other languages
English (en)
Other versions
CN114172829A (zh
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.)
Uniontech Software Technology Co Ltd
Original Assignee
Uniontech Software Technology Co Ltd
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 Uniontech Software Technology Co Ltd filed Critical Uniontech Software Technology Co Ltd
Priority to CN202210731202.8A priority Critical patent/CN115190047B/zh
Priority to CN202210123500.9A priority patent/CN114172829B/zh
Publication of CN114172829A publication Critical patent/CN114172829A/zh
Application granted granted Critical
Publication of CN114172829B publication Critical patent/CN114172829B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • 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)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Environmental & Geological Engineering (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种服务器健康监测方法、***及计算设备,方法在健康监测服务器中执行,健康监测服务器与一个或多个检查服务器相连,每个检查服务器分别与一个待监测服务器相连,方法包括步骤:定时向一个或多个检查服务器发送健康检查请求,以便检查服务器基于所述健康检查请求向相应的待监测服务器发送请求并获取待监测服务器返回的请求结果,将请求结果存储到所述检查服务器的内存队列;以及定时获取每个检查服务器的内存队列中的请求结果,并对所述请求结果进行分析,以确定对应的待监测服务器在所述请求结果返回的时间点的健康状态。根据本发明的技术方案,可以精确确定待监测服务器当前的健康状态。

Description

一种服务器健康监测方法、***及计算设备
技术领域
本发明涉及网络通信技术领域,尤其涉及一种服务器健康监测方法、服务器健康监测***及计算设备。
背景技术
目前,随着企业的快速发展,业务种类越来越丰富,随之而来的项目也越来越多,单机部署方式难以满足业务需求。为了满足业务需求,一般是采用微服务架构、集群化部署方式,所使用的服务器的数量成倍增加,这样会导致服务器的健康状态(请求能否响应、服务器运行是否正常)难以监测。
现有技术中,对服务器健康状态的监测方法主要有两种,一种是微服务架构中基于注册中心的心跳检测机制,服务器通过定时向注册中心发送一个心跳报文(例如采用TCP/UDP协议),如果注册中心在配置的时间范围内回复心跳,则表明服务器健康。另一种是定时检查API调用,被监测服务器通过提供一个API接口,服务器健康监测***通过定时向该接口发送HTTP请求,根据接口返回结果来判断服务器是否正常。
但,上述方案无法适应复杂的网络环境,例如,企业有些项目部署在内网不同机房,且各个机房之间的网络相互隔离,有些项目部署在外网,若仅将健康检查服务器部署在一个机房,可能无法对所有项目的服务器进行健康监测。另外,上述方案对健康检查服务器配置的参数固定,对于每个被监测的服务器,定时检查的周期都是固定的,无法实现定制化。而且,上述方案是将通过将返回的结果与健康参数中预期返回结果进行对比来确定服务器健康状态,然而随着数据的变更,返回的结果可能与预期返回的结果相近而不相等,此时会做出误判。此外,由于网络可能存在波动情况,上述方案仅通过一次返回结果判定服务器是否健康不够准确。
为此,需要一种服务器健康监测方法及***,以解决上述技术方案中存在的问题。
发明内容
为此,本发明提供一种服务器健康监测方法、服务器健康监测***及计算设备,以解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供一种服务器健康监测方法,在健康监测服务器中执行,所述健康监测服务器与一个或多个检查服务器相连,每个检查服务器分别与一个待监测服务器相连,所述方法包括步骤:定时向一个或多个检查服务器发送健康检查请求,以便检查服务器基于所述健康检查请求向相应的待监测服务器发送请求并获取待监测服务器返回的请求结果,将请求结果存储到所述检查服务器的内存队列;以及定时获取每个检查服务器的内存队列中的请求结果,并对所述请求结果进行分析,以确定对应的待监测服务器在所述请求结果返回的时间点的健康状态。
可选地,在根据本发明的服务器健康监测方法中,定时向一个或多个检查服务器发送健康检查请求,定时获取每个检查服务器的内存队列中的请求结果的步骤包括:分别为每个待监测服务器启动一个线程来执行待监测服务器的定时任务,以便定时向与待监测服务器相连的检查服务器发送健康检查请求,并定时获取检查服务器的内存队列中的请求结果。
可选地,在根据本发明的服务器健康监测方法中,检查服务器基于健康检查请求向相应的待监测服务器发送请求并获取待监测服务器返回的请求结果的步骤,包括:检查服务器从所述健康检查请求中获取健康检查参数,基于所述健康检查参数构建HTTP请求并发送至相应的待监测服务器;获取所述待监测服务器返回的HTTP请求结果。
可选地,在根据本发明的服务器健康监测方法中,所述健康检查参数包括待监测服务器的请求协议、请求地址、请求参数、允许超时时间、最大重试次数中的一种或多种。
可选地,在根据本发明的服务器健康监测方法中,对所述请求结果进行分析步骤包括:从所述请求结果中获取状态码和响应体,根据所述状态码和响应体来确定所述请求结果对应的待监测服务器在所述请求结果返回的时间点的健康状态。
可选地,在根据本发明的服务器健康监测方法中,所述健康状态包括健康、正在维护、异常中的一种或多种。
可选地,在根据本发明的服务器健康监测方法中,在确定待监测服务器在所述请求结果返回的时间点的健康状态之后,还包括步骤:判断待监测服务器的健康状态是否发生变化,如果发生变化,则向客户端发送相应的服务器健康状态变化通知。
可选地,在根据本发明的服务器健康监测方法中,所述健康监测服务器与状态机模块相连,判断待监测服务器的健康状态是否发生变化的步骤包括:将所述待监测服务器的健康状态对应的信号发送至状态机模块,以便状态机模块根据所述健康状态对应的信号判断待监测服务器的健康状态是否发生变化,并在确定发生变化时向客户端发送相应的服务器健康状态变化通知。
可选地,在根据本发明的服务器健康监测方法中,所述检查服务器为Agent代理服务器。
根据本发明的一个方面,提供一种服务器健康监测***,包括:一个或多个检查服务器,每个检查服务器分别与一个待监测服务器相连;健康监测服务器,与一个或多个检查服务器通信连接,适于执行如上所述的方法来对待监测服务器进行健康监测。
可选地,在根据本发明的服务器健康监测***中,还包括:状态机模块,与所述健康监测服务器相连,适于接收健康监测服务器发送的待监测服务器的健康状态对应的信号,并适于根据所述健康状态对应的信号判断待监测服务器的健康状态是否发生变化,在确定发生变化时向客户端发送相应的服务器健康状态变化通知。
根据本发明的一个方面,提供一种计算设备,包括:至少一个处理器;存储器,存储有程序指令,其中,程序指令被配置为适于由上述至少一个处理器执行,所述程序指令包括用于执行如上所述的服务器健康监测方法的指令。
根据本发明的一个方面,提供一种存储有程序指令的可读存储介质,当该程序指令被计算设备读取并执行时,使得该计算设备执行如上所述的服务器健康监测方法。
根据本发明的技术方案,提供了一种服务器健康监测方法及***,其中,健康监测服务器通过定时向一个或多个检查服务器发送健康检查请求,以通过检查服务器向相应的待监测服务器发送HTTP请求并获取待监测服务器返回的请求结果,而且,定时从检查服务器的内存队列中获取待监测服务器在各个时间点返回的请求结果,根据待监测服务器在各个时间点返回的请求结果,可以分析确定待监测服务器在不同时间点的健康状态。这样,可以精确确定待监测服务器当前的健康状态。并且,可以判断监测服务器的健康状态是否发生变化,在发生变化时通过向用户发送相应的服务器健康状态变化通知,使用户实时了解待监测服务器当前健康状态。
进一步地,本发明通过为每个待监测服务器设置不同的定时任务,针对每个待监测服务器启动一个线程来执行定时任务,以定时检查每个待监测服务器的健康状态,这样能够满足不同待监测服务器的健康状态监测需求。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的服务器健康监测***100的示意图;
图2示出了根据本发明一个实施例的计算设备200的示意图;以及
图3示出了根据本发明一个实施例的服务器健康监测方法300的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的服务器健康监测***100的示意图。
如图1所示,服务器健康监测***100包括客户端110、健康监测服务器120、状态机模块125、一个或多个检查服务器130。其中,每个检查服务器130分别可以与一个待监测服务器150通信连接,健康监测服务器120分别与客户端110、一个或多个检查服务器130通信连接,例如通过有线或无线的方式网络连接。
健康监测服务器120用于管理和控制一个或多个检查服务器130定时检查待监测服务器150的健康状态,以实现对一个或多个待监测服务器150的健康监测。本发明对健康监测服务器120的具体种类不作限制,例如,健康监测服务器120可以实现为桌面电脑、笔记本电脑、处理器芯片、手机、平板电脑等计算设备,但不限于此,也可以是驻留在计算设备上的应用程序。
客户端110即用户所使用的终端设备,其具体可以是桌面电脑、笔记本电脑等个人计算机,也可以是手机、平板电脑、多媒体设备、智能可穿戴设备等,但不限于此。
在本发明的实施例中,健康监测服务器120定时向一个或多个检查服务器130发送健康检查请求,以便检查服务器130基于健康检查请求来向相应的待监测服务器150发送请求,并获取待监测服务器150返回的请求结果。检查服务器130在每次获取到待监测服务器150返回的请求结果后,将请求结果存储在检查服务器130的内存队列。这样,检查服务器130的内存队列中可以包含一个或多个与其相连的待监测服务器150返回的请求结果。
并且,健康监测服务器120定时获取每个检查服务器130的内存队列中的请求结果,通过对请求结果进行分析,来确定请求结果对应的待监测服务器150在请求结果返回的时间点的健康状态。
在一个实施例中,检查服务器130可以实现为Agent代理服务器。用户可以在客户端110注册一个或多个检查服务器130的信息,并注册一个或多个待监测服务器150的信息并发送至健康监测服务器120。这里,检查服务器信息例如包括检查服务器的名称(Agent名称)、地址、访问密钥、描述等。这里,访问密钥例如为Token秘钥。待监测服务器信息例如包括项目名称、服务名称、请求协议、健康检查请求地址、请求参数、请求时间间隔、允许超时时间、最大重试次数、检查服务器名称、告警邮箱中的一种或多种。
健康监测服务器120在接收到用户在客户端110注册的一个或多个检查服务器的信息以及一个或多个待监测服务器的信息后,可以根据待监测服务器信息(检查服务器名称)来将待监测服务器150与相应的一个检查服务器130进行绑定。
在一个实施例中,如图1所示,健康监测服务器120包括与客户端110相连的管理模块121、监测模块122。其中,监测模块122可以与一个或多个检查服务器130建立通信连接,以便定时向一个或多个检查服务器130发送健康检查请求,以及定时获取每个检查服务器130的内存队列中的请求结果。监测模块122通过对请求结果进行分析,来确定请求结果对应的待监测服务器150在请求结果返回的时间点的健康状态。
管理模块121可以获取用户在客户端110注册的一个或多个检查服务器的信息并管理检查服务器信息。监测模块122可以获取用户在客户端110注册的一个或多个待监测服务器的信息,并将经注册后的待监测服务器信息存储在结构化数据存储装置,以便管理待监测服务器信息。并且,监测模块122可以根据待监测服务器信息(检查服务器名称)来将待监测服务器150与相应的一个检查服务器130进行绑定。
在一个实施例中,健康监测服务器120在获取到客户端110注册的一个或多个监测服务器的信息之后,可以为每个待监测服务器150设置相应的定时任务,并分别为每个待监测服务器150配置一个线程来执行对应的定时任务。
这样,健康监测服务器120通过在内存为每个待监测服务器150启动一个线程来执行待监测服务器150的定时任务,以便定时向与待监测服务器150相连的检查服务器130发送对待监测服务器150的健康检查请求,并定时获取检查服务器130的内存队列中存放的待监测服务器150返回的请求结果,根据每个请求结果来分析对应的待监测服务器150的健康状态。
在一个实施例中,健康监测服务器120在通过分析待监测服务器150的请求结果确定待监测服务器150的健康状态(即待监测服务器150在请求结果返回的时间点的健康状态)之后,还判断待监测服务器150的健康状态是否发生变化,即,判断待监测服务器150的健康状态相对于上一次请求结果返回的时间点的健康状态是否发生变化。如果发生变化,则向客户端110发送相应的服务器健康状态变化通知。例如,可以向待监测服务器150对应的告警邮箱发送服务器健康状态变化通知,以便告知用户当前的服务器健康状态。
在一个实施例中,健康监测服务器120的监测模块122与状态机模块125相连,状态机模块125例如可以实现为FSM(Finite State Machine,有限状态机)。健康监测服务器120的监测模块122通过将待监测服务器150的健康状态对应的信号(例如健康信号、正在维护信号、异常信号)发送至状态机模块125,状态机模块125可以根据健康状态对应的信号来判断待监测服务器150的健康状态是否发生变化。状态机模块125在确定待监测服务器150的健康状态发生变化时,可以向客户端发送相应的服务器健康状态变化通知。
在一个实施例中,检查服务器130适于向与其相连的待监测服务器150发送HTTP请求,并获取待监测服务器150返回的HTTP请求结果。健康监测服务器120在从检查服务器130的内存队列获取HTTP请求结果后,通过从HTTP请求结果中获取状态码和响应体,根据状态码和响应体可以确定请求结果对应的待监测服务器150的健康状态。这里,健康状态包括健康、正在维护、异常中的一种或多种。
在一个实施例中,健康监测服务器120被配置为执行本发明的服务器健康监测方法300,本发明的服务器健康监测方法300将在下文详述。
在一个实施例中,本发明的健康监测服务器120、客户端110、检查服务器130、待监测服务器150分别可以实现为一种计算设备,使得本发明的服务器健康监测方法300可以在计算设备中执行。
图2示出了根据本发明一个实施例的计算设备200的示意图。
如图2所示,在基本的配置202中,计算设备200典型地包括***存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和***存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(UP)、微控制器(UC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,***存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。***存储器206可以包括操作***220、一个或者多个应用222以及程序数据224。应用222实际上是多条程序指令,其用于指示处理器204执行相应的操作。在一些实施方式中,应用222可以布置为在操作***上使得处理器204利用程序数据224进行操作。
计算设备200还包括储存设备232,储存设备232包括可移除储存器236和不可移除储存器238。
计算设备200还可以包括储存接口总线234。储存接口总线234实现了从储存设备232(例如,可移除储存器236和不可移除储存器238)经由总线/接口控制器230到基本配置202的通信。操作***220、应用222以及数据224的至少一部分可以存储在可移除储存器236和/或不可移除储存器238上,并且在计算设备200上电或者要执行应用222时,经由储存接口总线234而加载到***存储器206中,并由一个或者多个处理器204来执行。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图像处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中以编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备200中,计算设备中的应用222包括执行服务器健康监测方法300的多条程序指令,这些程序指令可以被处理器204读取并执行,以便计算设备200通过执行本发明的服务器健康监测方法300来实现监测多个服务器的健康状态。
图3示出了根据本发明一个实施例的服务器健康监测方法300的流程图。方法300适于在健康监测服务器120(例如前述计算设备200)中执行。健康监测服务器120分别与客户端110、状态机模块125、一个或多个检查服务器130通信连接。其中,每个检查服务器130分别可以与一个监测服务器150通信连接。
如图3所示,方法300包括步骤S310~S320。
在步骤S310中,定时向一个或多个检查服务器130发送健康检查请求,以便检查服务器130基于健康检查请求来向相应的待监测服务器150发送请求,以获取待监测服务器150返回的请求结果。检查服务器130在每次获取到待监测服务器150返回的请求结果后,将请求结果存储在检查服务器130的内存队列。这样,检查服务器130的内存队列中可以包含一个或多个与其相连的待监测服务器150返回的请求结果。
在一个实施例中,检查服务器130可以实现为Agent代理服务器。每个检查服务器130分别可以与一个待监测服务器150通信连接。
在一个实施例中,在执行方法300之前,用户可以在客户端110注册一个或多个检查服务器130的信息,并注册一个或多个待监测服务器150的信息。健康监测服务器120可以接收到用户在客户端110注册的一个或多个检查服务器(Agent)的信息、以及一个或多个待监测服务器的信息。
具体地,检查服务器信息例如包括检查服务器的名称(Agent名称)、地址、访问密钥、描述等。这里,访问密钥例如为Token秘钥。待监测服务器信息例如包括项目名称、服务名称、请求协议、健康检查请求地址、请求参数、请求时间间隔、允许超时时间、最大重试次数、检查服务器名称(Agent名称)、告警邮箱中的一种或多种。
在一个实施例中,如图1所示,健康监测服务器120包括与客户端110相连的管理模块121、监测模块122,其中,监测模块122与一个或多个检查服务器130通信连接,并定时向一个或多个检查服务器130发送健康检查请求。
管理模块121可以获取用户在客户端110注册的一个或多个检查服务器(Agent)的信息并管理检查服务器信息。监测模块122可以获取用户在客户端110注册的一个或多个待监测服务器的信息,并将经注册后的待监测服务器信息存储在结构化数据存储装置,以便管理待监测服务器信息。并且,健康监测服务器120的监测模块122可以根据待监测服务器信息(检查服务器名称)来将待监测服务器150与相应的一个检查服务器130进行绑定。
在步骤S320中,定时获取每个检查服务器的内存队列中的请求结果,通过对请求结果进行分析,以确定请求结果对应的待监测服务器150在请求结果返回的时间点的健康状态。
根据本发明的一个实施例,健康监测服务器120在获取到客户端110注册的一个或多个监测服务器的信息之后,可以为每个待监测服务器150设置相应的定时任务,并分别为每个待监测服务器150配置一个线程来执行对应的定时任务。
这样,在执行步骤S310和S320时,健康监测服务器120通过在内存为每个待监测服务器150启动一个线程来执行待监测服务器150的定时任务,以便定时向与待监测服务器150相连的检查服务器130发送对待监测服务器150的健康检查请求,并定时获取检查服务器130的内存队列中存放的待监测服务器150返回的请求结果。这里,在一种实现方式中,在定时获取到检查服务器130的内存队列中的请求结果后,可以将定时获取的请求结果存储在结构化数据存储装置,之后,通过遍历结构化数据存储装置中的每个请求结果,根据每个请求结果来分析对应的待监测服务器150在请求结果返回的时间点的健康状态。
应当指出,本发明通过为每个待监测服务器150设置不同的定时任务,针对每个待监测服务器启动一个线程来执行定时任务,以定时检查每个待监测服务器的健康状态,这样能够满足不同待监测服务器的健康状态监测需求。
需要说明的是,健康监测服务器120定时向检查服务器130发送的对待监测服务器的健康检查请求中包括检查服务器130的访问秘钥以及健康检查参数。这里,访问密钥例如为Token秘钥。在一个实施例中,健康检查参数包括待监测服务器的请求协议、请求地址、请求参数、允许超时时间、最大重试次数等。这里,允许超时时间即是当检查服务器130在向相应的待监测服务器150发送请求后允许的响应超时时间,最大重试次数即是当检查服务器130在向相应的待监测服务器150发送请求失败后重新发送请求的最大次数。
在一个实施例中,检查服务器130在接收到健康监测服务器120定时发送的健康检查请求后,在基于健康检查请求向相应的待监测服务器发送请求时,具体是通过从健康检查请求中获取健康检查参数,并基于健康检查参数来构建HTTP请求,随后将HTTP请求发送至相应的待监测服务器150。之后,检查服务器130可以获取到待监测服务器150返回的HTTP请求结果。
在一个实施例中,在通过分析请求结果来确定对应的待监测服务器150的健康状态时,具体可以从HTTP请求结果中获取状态码和响应体,根据状态码和响应体来确定请求结果对应的待监测服务器150在请求结果返回的时间点的健康状态。这里,健康状态包括健康、正在维护、异常中的一种或多种。也就是说,根据从HTTP请求结果中的状态码和响应体,可以确定待监测服务器150在向检查服务器130返回HTTP请求结果对应的时间点处于健康、正在维护状态还是异常状态。
需要说明的是,不同的健康状态对应的状态码和响应体不同。例如“健康”对应的状态码大于等于200并小于400。正在维护状态对应的是自定义状态码503,并且,响应体中包括“维护中”字段。基于此,如果请求结果中的状态码小于200、大于或等于400并且不等于503,则可以确定请求结果对应的待监测服务器处于异常状态。
应当指出,本发明不限于上述健康状态的分类及对应的状态码,服务器健康状态的种类及对应的状态码可以由本领域技术人员根据实际情况进行定义和调整。
根据本发明的一个实施例,健康监测服务器120在通过分析待监测服务器150的请求结果确定待监测服务器150的健康状态(即监测服务器150在请求结果返回的时间点的健康状态)之后,还判断待监测服务器150的健康状态是否发生变化,即,判断待监测服务器150的健康状态相对于上一个请求结果返回的时间点的健康状态是否发生变化。如果发生变化,则向客户端110发送相应的服务器健康状态变化通知。例如,可以向待监测服务器150对应的告警邮箱发送服务器健康状态变化通知,以便告知用户当前的服务器健康状态。
在一个实施例中,健康监测服务器120与状态机模块125相连,状态机模块125可以实现为FSM(Finite State Machine,有限状态机)。健康监测服务器120可以通过以下方法来判断待监测服务器150的健康状态是否发生变化:
将待监测服务器150的健康状态对应的信号(例如健康信号、正在维护信号、异常信号)发送至状态机模块125,以便状态机模块125根据健康状态对应的信号来判断待监测服务器150的健康状态是否发生变化。状态机模块125在确定待监测服务器150的健康状态发生变化时,向客户端发送相应的服务器健康状态变化通知,以便用户实时了解待监测服务器150当前的健康状态。
具体地说,通过在状态机模块125分别为每个待监测服务器150创建一个状态机(FSM实例),当健康监测服务器120将任意一个待监测服务器150的健康状态对应的信号(例如健康信号、正在维护信号、异常信号)发送至状态机模块125后,是通过待监测服务器150对应的状态机来判断待监测服务器150的健康状态是否发生变化。
例如,如果状态机的当前状态为“健康”,说明状态机对应的待监测服务器150当前的健康状态为健康,当该状态机下次接收到异常信号后,状态机会进入异常状态并确定待监测服务器150的健康状态发生变化,随后向客户端110发送“服务器异常”的通知。如果状态机的当前状态为“健康”,当该状态机下次接收到正在维护信号后,状态机会进入正在维护状态并确定待监测服务器150的健康状态发生变化,随后向客户端110发送“服务器正在维护”的通知。另外,如果状态机的当前状态为“健康”,当该状态机下次接收到健康信号后,该健康信号对于当前状态机而言是自旋信号,状态机的状态不变,并确定待监测服务器150的健康状态未发生变化。
根据本发明的服务器健康监测方法300,通过定时向一个或多个检查服务器发送健康检查请求,以通过检查服务器向相应的待监测服务器发送HTTP请求并获取待监测服务器返回的请求结果,而且,定时从检查服务器的内存队列中获取待监测服务器在各个时间点返回的请求结果,根据待监测服务器在各个时间点返回的请求结果,可以分析确定待监测服务器在不同时间点的健康状态。这样,可以精确分析出待监测服务器当前的健康状态。并且,可以判断监测服务器的健康状态是否发生变化,在发生变化时通过向用户发送相应的服务器健康状态变化通知,使用户实时了解待监测服务器当前健康状态。
进一步地,本发明通过为每个待监测服务器设置不同的定时任务,针对每个待监测服务器启动一个线程来执行定时任务,以定时检查每个待监测服务器的健康状态,这样能够满足不同待监测服务器的健康状态监测需求。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,移动终端一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的服务器健康监测方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与本发明的示例一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。
此外,所述实施例中的一些在此被描述成可以由计算机***的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

Claims (8)

1.一种服务器健康监测方法,在健康监测服务器中执行,所述健康监测服务器与多个检查服务器、状态机模块相连,每个检查服务器分别与一个待监测服务器相连,所述方法包括步骤:
分别为每个待监测服务器设置定时任务,并分别为每个待监测服务器启动一个线程来执行对应的定时任务;
基于定时任务定时向多个检查服务器发送健康检查请求,以便检查服务器基于所述健康检查请求向相应的待监测服务器发送请求并获取待监测服务器返回的请求结果,将请求结果存储到所述检查服务器的内存队列,其中,所述健康检查请求中包括健康检查参数,所述健康检查参数包括待监测服务器的允许超时时间、最大重试次数;
基于定时任务定时获取每个检查服务器的内存队列中的请求结果,并对所述请求结果进行分析,其中包括:从所述请求结果中获取状态码和响应体,根据所述状态码和响应体来确定所述请求结果对应的待监测服务器在所述请求结果返回的时间点的健康状态;
将所述待监测服务器的健康状态对应的信号发送至状态机模块,以便状态机模块根据所述健康状态对应的信号判断待监测服务器的健康状态是否发生变化,并在确定发生变化时向客户端发送相应的服务器健康状态变化通知。
2.如权利要求1所述的方法,检查服务器基于健康检查请求向相应的待监测服务器发送请求并获取待监测服务器返回的请求结果的步骤,包括:
检查服务器从所述健康检查请求中获取健康检查参数,基于所述健康检查参数构建HTTP请求并发送至相应的待监测服务器;
获取所述待监测服务器返回的HTTP请求结果。
3.如权利要求2所述的方法,其中,
所述健康检查参数还包括待监测服务器的请求协议、请求地址、请求参数中的一种或多种。
4.如权利要求1-3中任一项所述的方法,所述健康状态包括健康、正在维护、异常中的一种或多种。
5.如权利要求1-3中任一项所述的方法,所述检查服务器为Agent代理服务器。
6.一种服务器健康监测***,包括:
多个检查服务器,每个检查服务器分别与一个待监测服务器相连;
健康监测服务器,与多个检查服务器通信连接,适于执行如权利要求1-5中任一项所述的方法来对待监测服务器进行健康监测;
状态机模块,与所述健康监测服务器相连,适于接收健康监测服务器发送的待监测服务器的健康状态对应的信号,并适于根据所述健康状态对应的信号判断待监测服务器的健康状态是否发生变化,在确定发生变化时向客户端发送相应的服务器健康状态变化通知。
7.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-5中任一项所述服务器健康监测方法的指令。
8.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-5中任一项所述服务器健康监测方法。
CN202210123500.9A 2022-02-10 2022-02-10 一种服务器健康监测方法、***及计算设备 Active CN114172829B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210731202.8A CN115190047B (zh) 2022-02-10 2022-02-10 一种服务器健康监测方法、***及计算设备
CN202210123500.9A CN114172829B (zh) 2022-02-10 2022-02-10 一种服务器健康监测方法、***及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210123500.9A CN114172829B (zh) 2022-02-10 2022-02-10 一种服务器健康监测方法、***及计算设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210731202.8A Division CN115190047B (zh) 2022-02-10 2022-02-10 一种服务器健康监测方法、***及计算设备

Publications (2)

Publication Number Publication Date
CN114172829A CN114172829A (zh) 2022-03-11
CN114172829B true CN114172829B (zh) 2022-08-12

Family

ID=80489591

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210731202.8A Active CN115190047B (zh) 2022-02-10 2022-02-10 一种服务器健康监测方法、***及计算设备
CN202210123500.9A Active CN114172829B (zh) 2022-02-10 2022-02-10 一种服务器健康监测方法、***及计算设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210731202.8A Active CN115190047B (zh) 2022-02-10 2022-02-10 一种服务器健康监测方法、***及计算设备

Country Status (1)

Country Link
CN (2) CN115190047B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114826982B (zh) * 2022-04-08 2023-08-18 浙江大学 一种微服务场景下的自适应心跳包调节方法
CN114938377B (zh) * 2022-04-20 2024-05-17 京东科技信息技术有限公司 后端服务器管理方法、装置、可读介质及电子设备
CN114785861B (zh) * 2022-06-22 2022-12-13 飞狐信息技术(天津)有限公司 一种服务请求转发***、方法、计算机设备和存储介质
CN115665009B (zh) * 2022-12-29 2023-05-09 鹏城实验室 Dns根服务器状态监测方法、装置、电子设备及介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101383735A (zh) * 2008-10-15 2009-03-11 阿里巴巴集团控股有限公司 一种服务器的检查方法、设备和***
CN102375772B (zh) * 2011-09-27 2015-05-06 云智慧(北京)科技有限公司 一种服务器监测的方法和装置
WO2017000296A1 (zh) * 2015-07-02 2017-01-05 深圳市谷玛鹤健康科技有限公司 温度测量装置、中央监测站、温度监测***及其方法
CN107070742B (zh) * 2017-03-14 2020-05-08 北京三快在线科技有限公司 业务服务器健康状态检查方法及***
CN107241240B (zh) * 2017-06-30 2020-04-03 广州君海网络科技有限公司 游戏服务器状态监测方法、装置及***
US11108673B2 (en) * 2017-09-18 2021-08-31 Citrix Systems, Inc. Extensible, decentralized health checking of cloud service components and capabilities
CN108199914A (zh) * 2017-12-27 2018-06-22 杭州迪普科技股份有限公司 服务端状态检测方法和装置
CN108228452B (zh) * 2017-12-28 2021-04-06 微梦创科网络科技(中国)有限公司 一种基于简单工厂模式的测试方法及测试装置
CN110290019B (zh) * 2019-05-27 2021-09-10 网宿科技股份有限公司 监测方法及***
JP2021060221A (ja) * 2019-10-03 2021-04-15 サイマックス株式会社 健康モニタリングシステム、健康モニタリング方法および健康モニタリングプログラム
CN112882895B (zh) * 2021-02-22 2024-06-21 中国工商银行股份有限公司 健康检查方法、装置、计算机***及可读存储介质
CN112882901B (zh) * 2021-03-04 2024-06-18 中国航空工业集团公司西安航空计算技术研究所 一种分布式处理***健康状态智能监控器
CN113032223B (zh) * 2021-04-20 2023-04-11 上海哔哩哔哩科技有限公司 服务器状态检测方法及装置

Also Published As

Publication number Publication date
CN114172829A (zh) 2022-03-11
CN115190047A (zh) 2022-10-14
CN115190047B (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
CN114172829B (zh) 一种服务器健康监测方法、***及计算设备
CN107995030B (zh) 一种网络探测方法、网络故障检测方法及***
CN108055343B (zh) 用于机房的数据同步方法及装置
US10157089B2 (en) Event queue management for embedded systems
CN112867988A (zh) 由移动设备实现合规设置以遵循配置场景
WO2019090997A1 (zh) 一种数据获取方法、装置、计算机设备及存储介质
US9223672B1 (en) Method and system for providing error repair status data to an application user
CN110795343B (zh) 测试***、测试方法和计算设备
CN104852919A (zh) 实现门户Portal认证的方法及装置
US9448827B1 (en) Stub domain for request servicing
US20030055951A1 (en) Products, apparatus and methods for handling computer software/hardware messages
CN115080479B (zh) 传输方法、服务器、设备、裸金属实例及基板管理控制器
CN115396479A (zh) 机器人与云平台命令交互的方法、***及存储介质
US20160309005A1 (en) Method of automatically setting protocol in programmable logic controller system
CN109165147A (zh) 日志打印控制方法、装置、***、后端服务器及前端设备
CN111414383B (zh) 数据请求方法、数据处理***及计算设备
CN107292111A (zh) 一种信息处理方法及服务器
CN114880194B (zh) 服务异常监控方法、装置、电子设备及计算机存储介质
CN109034668B (zh) Etl任务调度方法、装置、计算机设备及存储介质
CN115190046B (zh) 一种服务器集群的检测方法、检测装置及计算设备
CN107925607A (zh) 使用阴影代理对数据服务器进行连续监控
TWI767427B (zh) 監控伺服器及其設備資源監控方法
CN110825592A (zh) 生成报警内容的方法和计算设备
CN114025014A (zh) 一种资产探测方法、装置、电子设备及存储介质
CN113590699A (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