一种基于consul的多节点管理系统的制作方法

文档序号:23850346发布日期:2021-02-05 14:06阅读:70来源:国知局
一种基于consul的多节点管理系统的制作方法

[0001]
本发明涉及电力设备控制技术领域,特别涉及一种基于consul的多节点管理系统。


背景技术:

[0002]
随着监控等服务管理系统的发展,服务系统依赖的应用服务越来越多,需要的服务器节点数量也越来越大,应用服务部署在不同的节点上,且应用服务之间存在关联关系,系统拓扑关系中的某一个环节出现故障都会影响整个系统的正常运行,因此如何高效管理庞大复杂的服务系统,关系着整个服务系统运行的稳定性和安全性。
[0003]
目前服务系统的管理是通过操作人员按服务启动和维护流程,依次对每个节点进行操作,每个节点独立管理各自的应用程序,这种管理模式下,操作人员不但工作量大而且容易出错,无法对整体系统进行统一直观的监视和控制,对服务系统的故障不能及时发现和高效排查,影响了服务系统运行的可靠性。


技术实现要素:

[0004]
本发明实施例的目的是提供一种基于consul的多节点管理系统,通过节点配置模块将服务系统的配置信息以key/value键值模式储存于consul集群,节点监视模块和每个节点的节点管理服务程序从consul读取配置信息,然后根据配置信息,节点管理服务程序对各自节点进行管理,节点监视模块对所有节点进行监视和控制,使整个服务系统管理更加简单、高效,提高了系统运行的安全性和可靠性。
[0005]
为解决上述技术问题,本发明实施例提供了一种基于consul的多节点管理系统,用于管理服务系统的多节点,所述节点包括:若干个应用程序和管理所述应用程序的节点管理服务程序,包括:consul集群模块、节点配置模块、节点监视模块和历史数据库;
[0006]
所述节点配置模块将所述节点和所述应用程序的配置信息以key/value键值模式储存到所述consul集群模块;
[0007]
所述节点管理服务程序和所述节点监视模块从所述consul集群模块读取所述配置信息,所述节点管服务程序作为服务端与所述节点监视模块进行通信,所述节点管理服务程序对所述节点及其所述应用程序进行监视,并将监视信息发送给所述节点监视模块进行显示,所述节点管理服务程序接收所述节点监视模块的控制指令对所述应用程序进行启停控制,所述节点管理服务程序将所述节点的告警信息储存在所述历史数据库;
[0008]
所述节点监视模块从所述consul集群模块读取配置信息,所述节点监视模块还可由所述历史数据库读取所述告警信息并显示。
[0009]
进一步地,所述节点的配置信息包括:节点cpu告警门槛值、节点内存告警门槛值、节点磁占用率告警门槛值、节点管理服务程序通信端口和mysql历史库连接参数信息;和/或
[0010]
所述应用程序的配置信息包括:应用程序cpu告警门槛值和应用程序内存告警门
槛值;和/或
[0011]
所述应用程序信息包括:应用程序名称、应用程序运行模式、所述应用程序所在的节点名、启动优先级、最大允许启动时间、最大启动次数和/或是否守护。
[0012]
进一步地,所述应用程序运行模式包括:主用模式、备用模式和集群模式。
[0013]
进一步地,所述节点监视模块通过所述consul集群模块读取所述节点管理服务程序与所述应用程序和所述节点配置信息连接的ip和端口,通过所述ip和所述端口与所述节点管理服务程序进行数据交换,并以窗口界面形式对所述应用程序及所述节点内存、cpu和网络状态进行监控。
[0014]
进一步地,所述consul集群模块包括与若干个所述节点相对应的consul server;
[0015]
所述节点配置模块、所述节点和所述节点监视模块分别通过所述consul client与所述consul集群模块进行数据交互。
[0016]
进一步地,所述节点服务管理程序可获取所述节点及相应所述应用程序的状态信息;
[0017]
所述节点服务管理程序还可获取所述节点的告警信息并传输至至所述历史数据库存储。
[0018]
进一步地,所述告警信息包括:所述应用程序的异常停止和恢复、cpu越限、内存越限、磁盘占用率越限和/或网络异常。
[0019]
进一步地,所述节点监视模块可显示所述节点及其对应所述应用程序的状态信息,并依据控制指令远程控制所述节点及其应用程序的启停、切换所述应用程序的主备状态及读取显示所述历史数据库中的所述告警信息。
[0020]
进一步地,所述节点管理服务程序与所述节点监视模块包括:节点信息监视通信接口、应用程序信息监视通信接口和应用程序控制通信接口;
[0021]
所述节点监视模块通过所述节点信息监视通信接口向所述节点管理服务程序获取所述节点信息;
[0022]
所述节点监视模块通过所述应用程序信息监视通信接口向节点管理服务程序获取节点的应用程序信息;
[0023]
所述节点监视模块通过所述应用程序控制通信接口控制所述应用程序的启动和停止,并可实现对所述节点的重启和关机控制。
[0024]
进一步地,在所述历史数据库因网络异常无法存储数据时,所述节点管理服务程序将所述告警信息写入xml文件,并在所述网络正常时将所述xml文件中的所述告警信息同步至所述历史数据库。
[0025]
本发明实施例的上述技术方案具有如下有益的技术效果:
[0026]
通过节点配置模块将服务系统的配置信息以key/value键值模式储存于consul集群,节点监视模块和每个节点的节点管理服务程序从consul读取配置信息,然后根据配置信息,节点管理服务程序对各自节点进行管理,节点监视模块对所有节点进行监视和控制,使整个服务系统管理更加简单、高效,提高了系统运行的安全性和可靠性。
附图说明
[0027]
图1是本发明实施例提供的基于consul的多节点管理系统原理示意图。
[0028]
附图标记:
[0029]
101、consul集群模块,102、节点配置模块,103、节点,104、节点监视模块,105、历史数据库。
具体实施方式
[0030]
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
[0031]
基于consul的服务发现、健康检查、键值存储、安全服务通信、多数据中心等特点,将服务系统的每个节点应用程序等的配置信息以key/value键值模式储存于consul,节点管理服务程序将服务ip和端口等信息注册到consul,并通过consul通知节点监视模块对注册信息进行调用,通过节点监视模块与每个节点上的节点管理服务通信,对服务系统的所有节点进行统一协调管理和监控。
[0032]
图1是本发明实施例提供的基于consul的多节点管理系统原理示意图。
[0033]
请参照图1,本发明实施例提供了一种基于consul的多节点管理系统,用于管理服务系统的多节点103,节点103包括:若干个应用程序和管理应用程序的节点管理服务程序,包括:consul集群模块101、节点配置模块102、节点监视模块104和历史数据库105。
[0034]
节点配置模块102将节点103和应用程序的配置信息以key/value键值模式储存到consul集群模块101;节点管理服务程序和节点监视模块104从consul集群模块101读取配置信息,节点管服务程序作为服务端与节点监视模块104进行通信,节点管理服务程序对节点及其应用程序进行监视,并将监视信息发送给节点监视模块104进行显示,节点管理服务程序接收节点监视模块104的控制指令对应用程序进行启停控制,节点管理服务程序将节点的告警信息储存在历史数据库105;节点监视模块104从consul集群模块101读取配置信息,节点监视模块104还可由历史数据库105读取告警信息并显示。
[0035]
具体的,配置信息包括:节点103的配置信息和应用程序的配置信息。
[0036]
节点103的配置信息包括:节点cpu告警门槛值、节点内存告警门槛值、节点磁占用率告警门槛值、节点管理服务程序通信端口和mysql历史库连接参数信息;和/或,应用程序的配置信息包括:应用程序cpu告警门槛值和应用程序内存告警门槛值。
[0037]
此外,应用程序信息包括:应用程序名称、应用程序运行模式、应用程序所在的节点名、启动优先级、最大允许启动时间、最大启动次数和/或是否守护。
[0038]
进一步地,应用程序运行模式包括:主用模式、备用模式和集群模式。
[0039]
具体的,节点监视模块104通过consul集群模块101读取节点管理服务程序与应用程序和节点配置信息连接的ip和端口,通过ip和端口与节点管理服务程序进行数据交换,并以窗口界面形式对应用程序及节点内存、cpu和网络状态进行监控。
[0040]
具体的,consul集群模块101包括与若干个节点103相对应的consul server;节点配置模块102、节点和节点监视模块104分别通过consul client与consul集群模块101进行数据交互。
[0041]
具体的,节点服务管理程序可获取节点103及相应应用程序的状态信息;节点服务
管理程序还可获取节点103的告警信息并传输至至历史数据库105存储。
[0042]
具体的,告警信息包括:应用程序的异常停止和恢复、cpu越限、内存越限、磁盘占用率越限和/或网络异常。
[0043]
具体的,节点监视模块104可显示节点103及其对应应用程序的状态信息,并依据控制指令远程控制节点103及其应用程序的启停、切换应用程序的主备状态及读取显示历史数据库105中的告警信息。
[0044]
具体的,节点管理服务程序与节点监视模块104包括:节点信息监视通信接口、应用程序信息监视通信接口和应用程序控制通信接口。
[0045]
节点监视模块104通过节点信息监视通信接口向节点管理服务程序获取节点信息。
[0046]
节点监视模块104通过应用程序信息监视通信接口向节点管理服务程序获取节点的应用程序信息。节点监视模块104以图表形式对节点103和应用程序监视信息进行实时显示。
[0047]
节点监视模块104通过应用程序控制通信接口控制应用程序的启动和停止,并可实现对节点103的重启和关机控制。应用程序控制通信接口函数,函数参数为应用程序或节点名称、控制命令类型(启动、停止、重启),通过该接口节点监视模块104远程控制节点103的应用程序启动和停止,实现对节点103的重启和关机控制。节点管理服务程序接收到控制指令后执行命令,对应用程序的启停次数不得超过配置的最大启动(停止)次数,若达到上限次数启动(停止)应用程序仍未执行成功给节点监视模块104返回启动(停止)失败,否则返回成功。
[0048]
此外,在历史数据库105因网络异常无法存储数据时,节点管理服务程序将告警信息写入xml文件,并在网络正常时将xml文件中的告警信息同步至历史数据库105。
[0049]
节点管理服务程序设置为节点103开机自启动,启动后从consul集群模块101读取配置信息,直到获取正确的配置信息,然后开始监视和管理节点103与应用程序,节点管理服务程序主要功能如下:
[0050]
1.配置信息的读取与监视,首先获取本节点103ip和名称,将ip和端口注册到consul集群模块101,然后从consul集群模块101里读取属于本节点103的应用程序配置信息,以及相关的配置参数;通过consul client对consul配置信息进行监视,当配置信息发生变更时,节点管理服务程序重新读取变更的配置信息。
[0051]
2.对应用程序的监视与控制,实时监视每个应用程序的运行状态(运行、停止、启动中、停止中、启动失败)、cpu、内存、运行时间等信息,响应来自节点监视模块104的遥控指令对应用程序进行启停控制,对有守护需求的应用程序进行守护,当被守护的应用程序处于停止状态时,按优先级顺序,节点管理服务程序先启动优先级高的应用程序,若重启次数达到设定的最大启动次数后仍未启动成功,则将该应用程序运行状态置为启动失败。
[0052]
3.节点103运行状态的监视,实时监视节点103的cpu、总内存、内存使用率、总磁盘大小、磁盘使用率以及网速网络状态等信息。
[0053]
4.告警信息历史储存,当节点103和应用程序cpu、内存或磁盘占用率大于配置的门槛值时产生告警,当应用程序异常停止和恢复时产生告警,并将告警存入mysql历史库;在网络异常储存历史库失败时,节点管理服务程序将告警信息写入xml文件,待历史库连接
恢复正常后再将xml文件里的告警信息同步到历史库,并删除已同步了的告警信息。
[0054]
进一步地,节点监视模块104对consul配置信息进行读取和监视,以图表形式显示节点103和应用程序的实时信息以及历史告警信息。节点监视模块104还可修改consul集群模块101里的应用程序配置信息,如修改守护状态,切换主备状态;远程对应用程序进行单个或整体启停,对节点103进行重启和停止控制;整体启动时,所有应用程序按优先级从高到低的顺序逐一启动,反之,整体停止时,按优先级从低到高的顺序逐一停止。整体启动流程如下:
[0055]
1.操作人员在节点监视模块104窗口界面点击“整体启动”按钮,节点监视模块104按优先级顺序,对优先级为1的应用程序发启动指令,如果优先级为1的应用程序在多个节点103上运行,则同时向这些节点103下发应用程序的启动指令;
[0056]
2.节点管理服务程序收到来自节点监视模块104控制指令时,优先执行指令任务,停止其他应用程序守护任务,当指令执行完毕继续执行守护任务。
[0057]
3.应用程序启动过程中在窗口界面显示“启动中”,成功启动后则显示“启动成功”,启动次数达到设定启动次数上限仍未启动成功则显示“启动失败”,当所有优先级为1的应用程序启动完成(成功或失败)后,启动所有优先级为2的应用程序,依次类推,按优先级启动所有应用程序。
[0058]
本发明实施例旨在保护一种基于consul的多节点管理系统,用于管理服务系统的多节点,节点包括:若干个应用程序和管理应用程序的节点管理服务程序,包括:consul集群模块、节点配置模块、节点监视模块和历史数据库;节点配置模块将节点和应用程序的配置信息以key/value键值模式储存到consul集群模块;节点管理服务程序和节点监视模块从consul集群模块读取配置信息,节点管服务程序作为服务端与节点监视模块进行通信,节点管理服务程序对节点及其应用程序进行监视,并将监视信息发送给节点监视模块进行显示,节点管理服务程序接收节点监视模块的控制指令对应用程序进行启停控制,节点管理服务程序将节点的告警信息储存在历史数据库;节点监视模块从consul集群模块读取配置信息,节点监视模块还可由历史数据库读取告警信息并显示。上述技术方案具备如下效果:
[0059]
通过节点配置模块将服务系统的配置信息以key/value键值模式储存于consul集群,节点监视模块和每个节点的节点管理服务程序从consul读取配置信息,然后根据配置信息,节点管理服务程序对各自节点进行管理,节点监视模块对所有节点进行监视和控制,使整个服务系统管理更加简单、高效,提高了系统运行的安全性和可靠性。
[0060]
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1