一种基于微服务集群环境JAVA虚拟机的数据监控方法与流程

文档序号:35193454发布日期:2023-08-21 11:22阅读:34来源:国知局
一种基于微服务集群环境JAVA虚拟机的数据监控方法与流程

本发明涉及计算机,尤其涉及一种基于微服务集群环境java虚拟机的数据监控方法。


背景技术:

1、在容器编排引擎kubernetes环境中,应用程序运行在跨集群内的多个节点,同时服务也将分布在多个集群或者多个云厂商中,这就使得追踪、监控这些应用程序及其所依赖的基础设施的健康状况,具有非常大的挑战性。在这样的环境下,prometheus应运而生,支持kubernetes,成为容器场景的最佳监控工具。

2、在生产环境中,系统的稳定性是维持业务稳定的重要基石,而java虚拟机的运行状态则直接关乎系统稳定。为排查问题提供科学可靠的线索并结合java虚拟机的监控数据可以对应用程序功能及性能进行一定程度的优化。

3、当前微服务java虚拟机的监控方法有很多类型,包括jmxexporter、springbootadmin、jvisualvm、jstatd、kubernetesservice等,但这些方法都不太适用于云原生领域的java虚拟机监控,或者使用起来比较麻烦,主要原因是:

4、(1)监控的对象通常是少量的,数据过多时配置复杂或者操作麻烦;

5、(2)监控对象通常是静态的,通常是可以通过固定地址访问;

6、(3)jmx在容器环境下需要挂载特定目录的jar,然后在运行参数中设置jar路径,容器环境下部署困难,故障迁移也是比较大的困难;

7、(4)无法动态批量发现监控的目标,需要在prometheus中静态增加目标地址;

8、(5)kubernetes中的微服务是运行在pod中的,pod具有飘忽不定的特性,因此无法固定应用暴露的监控地址。

9、kubernetesservice是相对较好的一种方式,可以实现固定方式拉取jvm数据。但还是缺乏动态发现能力,需要每次增加服务就需要在prometheus中静态增加目标地址,新增一个服务后无法动态的被prometheus发现,也就无法监控新增的应用目标java虚拟机,kubernetes环境下的微服务集群监控面临不小的困难和挑战。


技术实现思路

1、为了克服上述技术缺陷,本发明的目的在于提供一种基于云原生的特点来实现微服务集群的简单高效监控,从而降低使用成本并提升运行效率的基于微服务集群环境java虚拟机的数据监控方法。

2、本发明公开了一种基于微服务集群环境java虚拟机的数据监控方法,包括如下步骤:配置预定开发框架下的应用端点的信息,并通过http请求来访问应用端点;所述应用端点包括若干个接口,通过所述接口获取若干个监控指标的数据;为监控指标的度量类库添加至少一个开发语言所需的编译环境,添加所述监控指标的度量类库的监控模块的注册表;将监控指标公开为http端点,从而启用监控指标的度量类库中的度量端点,所述监控模块通过所述应用端点来访问监控应用的监控指标的数据;基于容器构建容器编排引擎的应用的镜像,并将构建的所述镜像推送至镜像仓库中;配置应用特征文件,根据不同特性的应用来选择不同类型的容器编排引擎的控制器,根据所述控制器的类型来配置所述控制器的应用信息、服务信息和服务监控模块的监控信息,其中,所述服务信息、所述应用信息、所述服务监控模块的监控信息中的至少部分内容相对应,使得所述服务监控模块通过所述服务信息从所述应用中获取所述监控指标的数据,将所述应用部署到容器编排引擎中;所述监控模块获取监控应用的所述监控指标的数据,并在监控展示模块中展示。

3、优选的,所述配置预定开发框架下的应用端点的信息包括:通过配置文件来配置所述预定开发框架下的应用端点的信息,其中,所述应用端点的信息包括应用端点的访问路径和应用端点的开启关闭状态。

4、优选的,所述通过http请求来访问应用端点包括:发送第一请求请求或第二请求请求到,来访问应用端点。

5、优选的,所述启用监控指标的度量类库中的度量端点,所述监控模块通过所述度量端点来访问监控应用的监控指标的数据包括:所述度量端点通过指定路径公开监控应用的监控指标的数据,并将所述监控应用的监控指标的数据进行格式转换,以适应所述监控模块。

6、优选的,所述应用信息包括以下任一项或多项:应用名称、应用端口名称、应用端口协议、应用端口号、应用所属命名空间、健康检查、应用存活、镜像拉取策略、运行资源限制;所述服务信息包括以下任一项或多项:服务名称、应用端口名称、应用端口协议、应用端口号、应用所属命名空间、应用暴露的通信协议、服务暴露方式;所述监控信息包括以下任一项或多项:监控名称、应用端口名称、应用端口协议、应用端口号、应用所属命名空间、监控应用端点。

7、优选的,所述监控应用端点的信息包括以下任一项或多项:监控应用端点的应用指标地址、监控应用端点的间隔时间、监控应用端点的动态标签。

8、优选的,所述应用信息、所述服务信息、所述监控信息还包括应用标签,所述服务监控模块通过所述服务信息从所述应用中获取所述监控指标的数据包括:所述服务监控模块获取所选应用标签所对应的若干个应用的监控指标的数据。

9、优选的,所述不同特性的应用包括以下任一项:不需要保留数据的无状态应用;产生数据并需要保留数据的有状态应用;需要长期运行的守护进程应用。

10、优选的,所述配置预定开发框架下的应用端点的访问路径以及应用端点的开启关闭状态还包括:对所述应用端点进行鉴权操作。

11、优选的,所述监控模块获取监控应用的所述监控指标的数据,并在监控展示模块中展示包括:为监控展示模块配置所述监控模块地址信息,使得所述监控模块与所述监控展示模块连接;在所述监控展示模块中配置java虚拟机模板,从而通过所述监控模块查看监控应用的所述监控指标的数据;在所述监控展示模块中设置时间范围和刷新时间,从而展示所述时间范围内的监控应用的所述监控指标的数据,并以所述刷新时间为间隔自动刷新数据。

12、采用了上述技术方案后,与现有技术相比,具有以下有益效果:

13、1.本发明通过servicemonitor来实现用应用动态发现机制,让prometheus可以动态地发现监控目标应用特征信息变化情况,从而实现更简单高效地云原生环境的应用集群的java虚拟机数据监控,降低使用成本并提升运行效率;由于servicemonitor可以直接向service中拉取应用信息,故本发明无需依赖于注册中心的支持,支持没有注册中心的单体应用服务;

14、2.本发明可以自动发现kubernetes集群中的service,并将其添加到监控列表中,从而避免了手动添加每个服务,减轻了管理员的工作负担;

15、3.本发明可以批量化地、动态地配置需要监控的服务以及如何监控,从而可以灵活地控制监控的范围和粒度;

16、4.本发明可以通过标签选择器选择需要监控的容器服务,从而可以对特定的服务进行精确监控,从而更好地定位和解决问题;

17、5.本发明可以在同一个prometheus中同时监控多个kubernetes集群中的容器服务,从而使得在分布式系统中进行监控变得更加方便。

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