微服务架构监控系统的制作方法

文档序号:15567139发布日期:2018-09-29 03:36阅读:180来源:国知局

本发明涉及服务器技术领域,特别涉及一种微服务架构监控系统。



背景技术:

目前市场上也存在着一部分为微服务架构专门开发的监控系统,但是由于微服务架构刚刚势起,现有的监控系统并不成熟,并不能很好的实现对公司内微服务系统的统一监控管理。

微服务的特点决定了功能模块的部署是分布式的,以往在单应用环境下,所有的业务都在同一个服务器上,如果服务器出现错误和异常,我们只要盯住一个点,就可以快速定位和处理问题,但是在微服务的架构下,大部分功能模块都是单独部署运行的,彼此通过总线交互,都是无状态的服务,这种架构下,前后台的业务流会经过很多个微服务的处理和传递。

现有的微服务监控系统,主要存在以下方面不足。

一、不能对微服务系统进行统一的、规范化的管理。

二、没有可视化的拓扑图。

三、没有可视化的从入到出的服务调用关系图。

四、没有快速查找服务的上下游节点调用关系和调用效率。



技术实现要素:

本发明的目的旨在至少解决所述技术缺陷之一。

为此,本发明的目的在于提出一种微服务架构监控系统,能够提供可视化的拓扑图,快速查找服务的上下游节点调用关系和调用效率。

为了实现上述目的,本发明提供一种微服务架构监控系统,包括1个或多个功能服务器,每个功能服务器都与1个或多个节点服务器、1个或多个功能服务器入口进行数据通信;

首先在功能服务器中部署zabbix监控系统,另外通过每个功能服务器中埋入1个或多个节点服务器,利用日志收集器收集zabbix监控系统的信息,并放入elastic-search系统中进行监控;

当任一个功能服务器入口或多个功能服务器入口接收到来自外部的http请求,并生成入口信息,http请求首先到达该功能服务器入口对应的功能服务器,通过其对应的功能服务器的负载均衡功能将http请求分发到此次服务对应的一个或多个节点上,并依次进行http请求;

在http请求到达节点时,由该节点的节点服务器判断是否为此次调用的第一个节点,

如果是第一个节点,则由该节点的节点服务器分配一个全局唯一标识,然后再分配该节点内部的唯一标识,最后再分配顺序标识;

如果不是第一个节点,则由该节点的节点服务器直接分配该节点的内部的唯一标识,之后再分配一个顺序标识;

http请求结束后,在各个节点产生所有行为、数据、日志都会带有相应标识,并由日志收集器收集;

日志收集器将信息进行分级分批处理在不同维度展示,生成拓扑图;

日志收集器对各个节点的存活监控,通过python开发的程序向各节点发送心跳请求,监控节点存活状态.

进一步的,使用zabbix监控系统进行所有服务器的硬件资源进行监控,配合拓扑图使用,能够随时查看各节点服务器的资源使用情况,以便快速的发现和解决问题,合理的管理和分配硬件服务器资源。

进一步的,通过功能服务器和elastic-search系统中收集的信息使用h5中的canvas标签进行拓扑图构建,以便对软件系统中所有应用节点、服务和服务间的调用关系进行可视化监控。

进一步的,进行可视化监控的主要监控指标至少包括各节点的存活监控、服务的存活监控、服务的调用链关系、服务的版本信息、服务内部信息、定时任务的执行情况、服务的执行效率中的一种或多种。

进一步的,还包括流式处理模块,通过数据挖据,利用优秀的数据分析能力和数据模型,进行数据预测,以及统计报表功能。

进一步的,http请求产生的行为、数据、日志会通过redis、kafka、elk、alirds按照分配的标识进行多纬度分类管理,通过对应的标识获取对应的行为、数据和日志信息。

进一步的,所述功能服务器入口还接收来自其他功能服务器出口的数据,其他功能服务器出口的数据来自于其他功能服务器,其他功能服务器中也部署zabbix监控系统,另外通过在其他功能服务器中埋入1个或多个其他节点服务器。

进一步的,当其他节点服务器接收到外部的http请求后,由该节点的其他节点服务器判断是否为此次调用的第一个节点,

如果是第一个节点,则由该节点的其他节点服务器分配一个全局唯一标识,然后再分配该节点内部的唯一标识,最后再分配顺序标识;

如果不是第一个节点,则由该节点的其他节点服务器直接分配该节点的内部的唯一标识,之后再分配一个顺序标识;

然后被标记的http请求进入到对应的其他功能服务器,由其他功能服务器出口分发出去,由功能服务器入口接收。

进一步的,被标记的http请求被其他功能服务器出口分发出去后,在各个节点产生所有行为、数据、日志都会带有相应标识,并由其他功能服务器的日志收集器收集。

进一步的,其他功能服务器的日志收集器进行分级分批处理在不同维度展示,生成其他功能服务器的拓扑图。

本发明的微服务架构监控系统具有以下有益效果:

1、本发明能够对所有的微服务器进行统一管理和统一监控,通过动态拓扑图的方式,使监控系统有很强的可视化效果,当系统出现问题时,可以直接看到故障所在位置。

2、本发明通过在http请求进入到不同节点服务器时进行标记,标记全局唯一标识、节点内部的唯一标识、顺序标识等,然后通过这些标识来记录http请求从入到出的整个调用过程的路径,然后由将信息进行分级分批处理在不同维度展示,生成拓扑图,监控了微服务器集群系统中的服务间的多级调用关系,可以直接看到从入到出的整个调用过程。

3、本发明通过可视化拓补图可以快速查看一个服务节点相关的所有上下游节点调用关系及调用效率。

4、本发明可以通过这些标识可以将http请求的路径进行可视化,进而形成秒级监控的流式数据处理功能。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明的工作流程图;

图2为本发明的http请求访问流程示意图;

图3为本发明的可视化拓扑图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

本发明提供一种微服务架构监控系统,参考附图1-3所示,包括1个或多个功能服务器,每个功能服务器都与1个或多个节点服务器、1个或多个功能服务器入口进行数据通信。

步骤s1,接受外部http请求;

在功能服务器中部署zabbix监控系统,另外通过每个功能服务器中埋入1个或多个节点服务器,利用日志收集器收集zabbix监控系统的信息,并放入elastic-search系统中进行监控,由任一个功能服务器入口或多个功能服务器入口接收到来自外部的http请求。

http请求产生的行为、数据、日志会通过redis、kafka、elk、alirds按照分配的标识进行多纬度分类管理,通过对应的标识获取对应的行为、数据和日志信息。

步骤s2,生成此次调用的全局唯一标识,并添加入口信息;

当任一个功能服务器入口或多个功能服务器入口接收到来自外部的http请求后生成入口信息,http请求首先到达该功能服务器入口对应的功能服务器,通过其对应的功能服务器的负载均衡功能将http请求分发到此次服务对应的一个或多个节点上,并依次进行http请求。

步骤s3,调用过程中生成项目标识和顺序标识;

在http请求到达节点时,由该节点的节点服务器判断是否为此次调用的第一个节点。

如果是第一个节点,则由该节点的节点服务器分配一个全局唯一标识,然后再分配该节点内部的唯一标识,最后再分配顺序标识。

如果不是第一个节点,则由该节点的节点服务器直接分配该节点的内部的唯一标识,之后再分配一个顺序标识。

步骤s4,通过日志收集器收集此次调用产生的信息。

http请求结束后,在各个节点产生所有行为、数据、日志都会带有相应标识,并由日志收集器收集。

步骤s5,生成拓扑图,展示调用过程及信息,并将信息进行分级分批处理在不同维度展示。

日志收集器将信息进行分级分批处理在不同维度展示,生成拓扑图。

日志收集器对各个节点的存活监控,通过python开发的程序向各节点发送心跳请求,监控节点存活状态,当系统出现问题时,可以直接看到故障所在位置。

当日志收集器能够接收到各节点反馈回来的心跳请求信息时,则判断该节点存活状态正常。

当日志收集器连续一段时间内接收不到各节点反馈回来的心跳请求信息时,则判断该节点存活状态异常,并由日志收集器在拓扑图上进行表示,例如用红色线条标注该节点路径。

此外,使用zabbix监控系统进行所有服务器的硬件资源进行监控,配合拓扑图使用,能够随时查看各节点服务器的资源使用情况,以便快速的发现和解决问题,合理的管理和分配硬件服务器资源。

通过功能服务器和elastic-search系统中收集的信息使用h5中的canvas标签进行拓扑图构建,以便对软件系统中所有应用节点、服务和服务间的调用关系进行可视化监控。

进行可视化监控的主要监控指标至少包括各节点的存活监控、服务的存活监控、服务的调用链关系、服务的版本信息、服务内部信息、定时任务的执行情况、服务的执行效率中的一种或多种。

本发明还包括流式处理模块,通过数据挖据,利用优秀的数据分析能力和数据模型,进行数据预测,以及统计报表功能。

此外,功能服务器可以选用nginx服务器,nginx服务器是一个高性能的http和反向代理服务器,也是一个imap/pop3/smtp服务器,并在一个bsd-like协议下发行。其特点是占有内存少,并发能力强。

如图3所示,功能服务器入口13还接收来自其他功能服务器出口23的数据,其他功能服务器出口23的数据来自于其他功能服务器22,其他功能服务器22中也部署zabbix监控系统,另外通过在其他功能服务器22中埋入1个或多个其他节点服务器21。

当其他节点服务器21接收到外部的http请求后,由该节点的其他节点服务器21判断是否为此次调用的第一个节点。

如果是第一个节点,则由该节点的其他节点服务器21分配一个全局唯一标识,然后再分配该节点内部的唯一标识,最后再分配顺序标识;

如果不是第一个节点,则由该节点的其他节点服务器21直接分配该节点的内部的唯一标识,之后再分配一个顺序标识;

然后被标记的http请求进入到对应的其他功能服务器22,由其他功能服务器出口23分发出去,由功能服务器入口13接收。

被标记的http请求被其他功能服务器出口23分发出去后,在各个节点产生所有行为、数据、日志都会带有相应标识,并由其他功能服务器22的日志收集器收集。

其他功能服务器22的日志收集器进行分级分批处理在不同维度展示,生成其他功能服务器22的拓扑图。

本发明通过在http请求进入到不同节点服务器时进行标记,标记全局唯一标识、节点内部的唯一标识、顺序标识等,然后通过这些标识来记录http请求从入到出的整个调用过程的路径,然后由将信息进行分级分批处理在不同维度展示,生成拓扑图,监控了微服务器集群系统中的服务间的多级调用关系,可以直接看到从入到出的整个调用过程,还可以快速查看一个服务节点相关的所有上下游节点调用关系及调用效率。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求极其等同限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1