CN111865914B - 用于检查云主机健康状态的系统、方法、设备及存储介质 - Google Patents
用于检查云主机健康状态的系统、方法、设备及存储介质 Download PDFInfo
- Publication number
- CN111865914B CN111865914B CN202010540426.1A CN202010540426A CN111865914B CN 111865914 B CN111865914 B CN 111865914B CN 202010540426 A CN202010540426 A CN 202010540426A CN 111865914 B CN111865914 B CN 111865914B
- Authority
- CN
- China
- Prior art keywords
- cloud host
- gpc
- framework
- module
- health
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Abstract
本发明涉及一种用于检查云主机健康状态的系统、方法、设备及存储介质,其中系统包括设置于多个云主机中的gRPC框架服务端模块和设置于自动化运维平台上的gRPC框架客户端模块,gRPC框架服务端模块,用于针对云主机进行数据收集并且同时被gRPC框架客户端模块所调用;gRPC框架客户端模块,用于调用gRPC框架服务端模块,接收其返回的收集数据并进行数据处理以得出云主机健康状态检查结果,与系统的配套方法使用gRPC框架,对整个架构进行优化:客户端(控制节点上的服务)调用服务端(云主机内)的进程进行数据收集(异步调用),并返回到客户端,由客户端进行数据处理。与现有技术相比,本发明具有接口规范清晰,无需考虑复杂转码,无需新增数据库缓存数据等优点。
Description
技术领域
本发明涉及私有云运维以及云主机技术领域,尤其是涉及一种用于检查云主机健康状态的系统、方法、设备及存储介质。
背景技术
在云平台作为基础设施提供服务时,需要检查平台中各云主机健康状态。当前市面上的检查方案多针对于公有云,大致可分以下两种:
1)、中间件模式:在云主机中提前安装一个agent作为客户端,客户端定期执行并把数据推送到远端redis数据库,服务端定期获取数据库中的数据查询云主机的健康状态;
2)、客户端推送模式:在云主机中提前安装一个agent作为客户端,服务端对外暴露RESTful API,agent定期把数据推送到服务端自带的数据库,服务端通过查询本地数据库获取云主机健康状态;
以上方案存在以下问题:
1、可靠性差,两种模式均依赖于数据库服务的正常运行,能检查到云主机健康状态的前提是数据库服务也必须正常;
2、可扩展性差,如:要新增针对一个云主机的其他服务进行健康检查,客户端侧要修改业务代码,服务器端也要修改代码来接收数据,整个框架代码也要进行修改;
3、性能差,推送数据时均使用HTTP1进行交互,服务端响应慢,延迟高,占用网络带宽高。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种用于检查云主机健康状态的系统、方法、设备及存储介质。
本发明的目的可以通过以下技术方案来实现:
一种用于检查云主机健康状态的系统,该系统包括设置于多个云主机中的gRPC框架服务端模块和设置于自动化运维平台上的gRPC框架客户端模块,其中:
所述gRPC框架服务端模块,用于启动后协助所述云主机监听来自所述自动化运维平台通过所述gRPC框架客户端模块发出的请求,当收到请求后被所述gRPC框架客户端模块调用以对所述云主机进行健康检查并返回检查结果给所述gRPC框架客户端模块;
所述gRPC框架客户端模块,用于协助所述自动化运维平台接收所述gRPC框架服务端模块返回的所述云主机的健康检查结果。
进一步地,所述的gRPC框架客户端模块采用异步调用的方式调用所述gRPC框架服务端模块。
进一步地,该系统的开发语言包括Python、C、C++和JAVA。
本发明还提供一种基于所述的用于检查云主机健康状态的系统的云主机健康状态检查方法,包括以下步骤:
步骤1:初始化所述用于检查云主机健康状态的系统的整体框架;
步骤2:基于所述gRPC框架服务端模块启动云主机健康检查服务;
步骤3:基于所述gRPC框架客户端模块获取云主机健康状态;
步骤4:将获取的云主机健康状态展示于所述自动化运营平台前端。
进一步地,所述的步骤1具体包括:在所述自动化运维平台上编辑.proto文件,配置完成服务的文件和载荷的结构,生成所述gRPC框架服务端模块和所述gRPC框架客户端模块各自的执行文件并拷贝至所述云主机和所述自动化运维平台的相应文件位置。
进一步地,所述的步骤2具体包括:所述云主机将所述gRPC框架服务端模块对应的服务添加为系统服务,当所述gRPC框架服务端模块对应的服务启动成功后,所述云主机将持续监听对应端口是否有所述自动化运维平台通过所述gRPC框架客户端模块发出的请求,并于监听对应端口有请求时所述gRPC框架服务端模块开始进行对于所述云主机的健康状态检查。
进一步地,所述的步骤3具体包括:所述gRPC框架服务端模块针对所述云主机健康状态检查完毕后将检查结果返回至所述gRPC框架客户端模块,所述的检查结果包括云主机名、服务名、健康状态和时间戳。
进一步地,所述的步骤4具体包括:所述gRPC框架客户端模块向所述自动化运维平台发出请求,所述自动化运维平台收到请求后将返回的检查结果存放于本地的数据库,并通过自身前端的云主机列表页面将所述云主机的健康状态检查结果展示。
本发明还提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的基于所述的用于检查云主机健康状态的系统的云主机健康状态检查方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现所述的基于所述的用于检查云主机健康状态的系统的云主机健康状态检查方法的步骤。
与现有技术相比,本发明具有以下优点:
(1)本发明系统包括设置于多个云主机中的gRPC框架服务端模块和设置于自动化运维平台上的gRPC框架客户端模块,其中:gRPC框架服务端模块,用于启动后协助云主机监听来自自动化运维平台通过gRPC框架客户端模块发出的请求,当收到请求后被gRPC框架客户端模块调用以对云主机进行健康检查并返回检查结果给gRPC框架客户端模块;gRPC框架客户端模块,用于协助自动化运维平台接收gRPC框架服务端模块返回的云主机的健康检查结果,整体框架清晰,方便增加需要健康检查的服务。
(2)gRPC框架服务端模块与gRPC框架客户端模块采用异步调用,框架中定义了服务端返回的数据格式,其中就包含一个字段来判断对应的请求是第几个,可以做到一一对应。
(3)无需新增数据库中间件来缓存数据。
(4)客户端根据自己的需求来调用服务端的函数,当无调用时服务端不会占用任何资源。
(5)基于HTTP2设计,网络开销低,性能好。
附图说明
图1为本发明的系统架构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
具体实施例
云服务提供商在运维领域里,通过定期检查客户业务主机的健康状态来提升客户的业务稳定性是非常重要的一个增值服务。本发明综合了业界多种健康状态探测方法,在提高检查准确率,提高可扩展性,提高性能三个方面,做了以下的考量:
1、提高可靠性
提高可靠性可以从两个方面进行优化:不依赖第三方服务,同时实现数据的准确获取,在gRPC框架中,客户端(控制节点上的服务)调用服务端(云主机内)的进程进行数据收集(异步调用),并返回到客户端,由客户端进行数据处理;
2、提高可扩展性
当要检查云主机另一业务的在线情况时,以前的框架通常需要反复造轮子,需要同时修改框架代码和业务代码,在gRPC框架中,新增云主机内某个服务的健康检查,只需要在服务端增加一个新的方法,并把该方法集成到框架中,由客户端进行远程调用该方法,gRPC框架本身代码无需任何改动;
3、提高性能
gRPC框架基于HTTP2来设计,一个远程调用的过程只需要建立一个TCP连接,大大减少了控制层面建立连接带来的网络时延和带宽占用,同时基于流传输也减少了。并且基于protobuf来序列化对象,规范了对象的序列化规则后,便于服务端和客户端进行数据反序列化,加快解析速度。
同时,该方案还具有泛用性,框架对业务开发语言没有任何要求,可以用python/C/C++/JAVA等。
本发明方案作为一个平衡了检查准确性、可扩展性、性能的解决方案,该方案的核心是gRPC框架,使用该框架,可以将云主机中的健康检查方法作为一个函数,供远端客户端调用,并非定期执行的一个程序。当需要对云主机进行健康检查时,客户端通过框架调用该函数,并根据返回的结果来判断云主机健康状态。没有健康检查的请求时,服务端没有任何资源占用。
如图1所示为本发明的系统架构图,包括设置于多个云主机中的gRPC框架服务端模块和设置于自动化运维平台上的gRPC框架客户端模块,其中:
gRPC框架服务端模块,用于启动后协助云主机监听来自自动化运维平台通过gRPC框架客户端模块发出的请求,当收到请求后被gRPC框架客户端模块调用以对云主机进行健康检查并返回检查结果给gRPC框架客户端模块;
gRPC框架客户端模块,用于协助自动化运维平台接收gRPC框架服务端模块返回的云主机的健康检查结果。
具体云主机健康状态的检查过程的实现可以分为以下几个步骤:
1、初始化框架
确认好需要健康检查的服务后,运维人员在自动化运维平台上编辑.proto文件,在文件中配置好服务的文件和载荷的结构,通过protobuf分别生成客户端执行文件和服务端执行文件,并把脚本文件拷贝到客户端(自动化运维平台)和服务端(云主机)相应位置。
2、启动云主机健康检查服务
云主机作为服务端,需要把服务添加为系统服务(windows添加到系统服务里,linux添加到systemctl里),并设置其开机自动启动。服务启动成功后,云主机会一直监听TCP的50001端口是否有客户端的请求输入,除了监听这个端口外不会进行任何其他操作。
3、获取云主机健康状态
自动化运维平台调用客户端调用服务端的健康检查服务,服务端收到请求后会开始检查本地的网络服务是否正常,并把检查的结果返回到客户端,客户端这边可以看到服务端返回的结果,结果中包含云主机名、服务名、健康状态、时间戳;
4、把云主机健康状态展示在自动化运维平台前端。
自动化运维平台上的客户端收到请求后,把客户端返回的结果存放到本地的mongoDB数据库,并通过平台前端的云主机列表页面把云主机的健康状态展示出来,这样一来可以达到查看云主机健康状态的目的。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种用于检查云主机健康状态的系统,其特征在于,该系统包括设置于多个云主机中的gRPC框架服务端模块和设置于自动化运维平台上的gRPC框架客户端模块,其中:
所述gRPC框架服务端模块,用于启动后协助所述云主机监听来自所述自动化运维平台通过所述gRPC框架客户端模块发出的非定期执行的请求,当收到请求后被所述gRPC框架客户端模块调用以对所述云主机进行健康检查并返回检查结果给所述gRPC框架客户端模块;
所述gRPC框架客户端模块,用于协助所述自动化运维平台接收所述gRPC框架服务端模块返回的所述云主机的健康检查结果,该健康检查结果存放于自动化运维平台的本地的数据库,并通过前端的云主机列表页面将所述云主机的健康状态检查结果展示;
所述的gRPC框架客户端模块采用异步调用的方式调用所述gRPC框架服务端模块,gRPC框架服务端模块返回的数据格式中包含一个字段来判断对应的请求是第几个。
2.根据权利要求1所述的一种用于检查云主机健康状态的系统,其特征在于,该系统的开发语言包括Python、C、C++和JAVA。
3.一种基于如权利要求1所述的用于检查云主机健康状态的系统的云主机健康状态检查方法,其特征在于,包括以下步骤:
步骤1:初始化所述用于检查云主机健康状态的系统的整体框架;
步骤2:基于所述gRPC框架服务端模块启动云主机健康检查服务;
步骤3:基于所述gRPC框架客户端模块获取云主机健康状态;
步骤4:将获取的云主机健康状态展示于所述自动化运营平台前端。
4.根据权利要求3所述的一种基于所述的用于检查云主机健康状态的系统的云主机健康状态检查方法,其特征在于,所述的步骤1具体包括:在所述自动化运维平台上编辑.proto文件,配置完成服务的文件和载荷的结构,生成所述gRPC框架服务端模块和所述gRPC框架客户端模块各自的执行文件并拷贝至所述云主机和所述自动化运维平台的相应文件位置。
5.根据权利要求3所述的一种基于所述的用于检查云主机健康状态的系统的云主机健康状态检查方法,其特征在于,所述的步骤2具体包括:所述云主机将所述gRPC框架服务端模块对应的服务添加为系统服务,当所述gRPC框架服务端模块对应的服务启动成功后,所述云主机将持续监听对应端口是否有所述自动化运维平台通过所述gRPC框架客户端模块发出的请求,并于监听对应端口有请求时所述gRPC框架服务端模块开始进行对于所述云主机的健康状态检查。
6.根据权利要求3所述的一种基于所述的用于检查云主机健康状态的系统的云主机健康状态检查方法,其特征在于,所述的步骤3具体包括:所述gRPC框架服务端模块针对所述云主机健康状态检查完毕后将检查结果返回至所述gRPC框架客户端模块,所述的检查结果包括云主机名、服务名、健康状态和时间戳。
7.根据权利要求3所述的一种基于所述的用于检查云主机健康状态的系统的云主机健康状态检查方法,其特征在于,所述的步骤4具体包括:所述gRPC框架客户端模块向所述自动化运维平台发出请求,所述自动化运维平台收到请求后将返回的检查结果存放于本地的数据库,并通过自身前端的云主机列表页面将所述云主机的健康状态检查结果展示。
8.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求3至7任一项所述的基于所述的用于检查云主机健康状态的系统的云主机健康状态检查方法的步骤。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求3至7任一项所述的基于所述的用于检查云主机健康状态的系统的云主机健康状态检查方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010540426.1A CN111865914B (zh) | 2020-06-15 | 2020-06-15 | 用于检查云主机健康状态的系统、方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010540426.1A CN111865914B (zh) | 2020-06-15 | 2020-06-15 | 用于检查云主机健康状态的系统、方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111865914A CN111865914A (zh) | 2020-10-30 |
CN111865914B true CN111865914B (zh) | 2023-03-21 |
Family
ID=72987402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010540426.1A Active CN111865914B (zh) | 2020-06-15 | 2020-06-15 | 用于检查云主机健康状态的系统、方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111865914B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988356A (zh) * | 2021-03-30 | 2021-06-18 | 北京大米科技有限公司 | 异步调用方法、装置、存储介质及电子设备 |
CN114285642B (zh) * | 2021-12-24 | 2023-07-18 | 苏州浪潮智能科技有限公司 | 一种云平台中主机敏感服务及端口的控制管理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109462504A (zh) * | 2018-11-09 | 2019-03-12 | 杭州玳数科技有限公司 | 一种通用Agent管控的系统 |
CN109788012A (zh) * | 2017-11-14 | 2019-05-21 | 阿里巴巴集团控股有限公司 | 一种健康检查方法和装置、健康检查控制方法和控制器 |
CN110543368A (zh) * | 2019-09-06 | 2019-12-06 | 西藏宁算科技集团有限公司 | 一种分布式服务健康检查的方法及其系统 |
CN110569163A (zh) * | 2019-07-24 | 2019-12-13 | 无锡华云数据技术服务有限公司 | 监测伸缩组内云主机健康状态的方法、装置、设备及介质 |
-
2020
- 2020-06-15 CN CN202010540426.1A patent/CN111865914B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109788012A (zh) * | 2017-11-14 | 2019-05-21 | 阿里巴巴集团控股有限公司 | 一种健康检查方法和装置、健康检查控制方法和控制器 |
CN109462504A (zh) * | 2018-11-09 | 2019-03-12 | 杭州玳数科技有限公司 | 一种通用Agent管控的系统 |
CN110569163A (zh) * | 2019-07-24 | 2019-12-13 | 无锡华云数据技术服务有限公司 | 监测伸缩组内云主机健康状态的方法、装置、设备及介质 |
CN110543368A (zh) * | 2019-09-06 | 2019-12-06 | 西藏宁算科技集团有限公司 | 一种分布式服务健康检查的方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111865914A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108521353B (zh) | 定位性能瓶颈的处理方法、设备及可读存储介质 | |
CN110262807B (zh) | 集群创建进度日志采集系统、方法和装置 | |
CN111865914B (zh) | 用于检查云主机健康状态的系统、方法、设备及存储介质 | |
US20210383295A1 (en) | Method and apparatus for stress testing, electronic device and computer readable medium | |
CN111416821A (zh) | 物联网设备信息采集方法、系统和装置 | |
CN110457176B (zh) | 用于分布式系统的监控方法、装置、存储介质及电子设备 | |
CN111786939B (zh) | 物联网管理平台测试的方法、装置和系统 | |
CN107644075B (zh) | 收集页面信息的方法和装置 | |
CN114625597A (zh) | 监控运维系统、方法、装置、电子设备及存储介质 | |
CN109299124B (zh) | 用于更新模型的方法和装置 | |
CN112115149A (zh) | 一种提供数据的方法和装置 | |
CN112948195B (zh) | 接口测试的方法、装置、电子设备和存储介质 | |
CN110806967A (zh) | 一种单元测试方法和装置 | |
CN114070889A (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
CN113434382A (zh) | 数据库性能监控方法、装置、电子设备及计算机可读介质 | |
CN111752916A (zh) | 数据采集方法及装置、计算机可读存储介质、电子设备 | |
CN112416698A (zh) | 监控系统的扩展方法及装置、存储介质及电子设备 | |
CN114723072B (zh) | Exporter组合方法、系统、设备及存储介质 | |
CN112203113B (zh) | 视频流结构化方法、装置、电子设备和计算机可读介质 | |
CN116662114A (zh) | 应用指标采集方法、装置、电子设备及存储介质 | |
KR102463059B1 (ko) | 새로 추가된 차량 에너지 스테이션의 결정 방법과 장치 | |
CN113676547B (zh) | 数据处理方法、装置、存储介质和电子设备 | |
CN114968693A (zh) | 一种性能测试方法和装置 | |
CN114860247A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN115269055A (zh) | Nginx请求数据采集方法、装置、设备及存储介质 |
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 |