本发明涉及监控告警,具体地说是一种多集群监控方法及系统。
背景技术:
1、随着数字化、智能化、平台化技术的不断发展,微服务架构是目前各大互联网公司普遍采用的软件架构方式。在微服务架构平台产品中系统被拆分为多个小的、相互独立的服务,这些服务可以独立开发部署。在业务快速变化时,微服务单一职责、自治的特点提升了系统的可维护性;简化了系统部署的复杂度,可以针对微服务单独升级发布;业务增长时,也可以方便的进行独立扩展。
2、虽然微服务架构带来了很多好处,但也产生了新的问题。相比于单体应用,排查问题一般通过查看日志定位错误信息和异常堆栈;但在微服务架构中服务繁多,出现问题时,问题定位也变地非常困难。另外微服务之间往往互相依赖,一个服务故障很可能导致雪崩效应,导致整个系统不可用。因此如何监控微服务平台的运行状况,当异常出现时快速报警,这给开发人员带来了很大挑战。
技术实现思路
1、本发明的技术任务是针对以上不足之处,提供一种多集群监控方法及系统,能够帮助用户及时发现故障,全面掌握应用、资源及业务的实时运行状况,对资源、业务应用进行集中、统一监控,及时预警,提升了管理能力。
2、本发明解决其技术问题所采用的技术方案是:
3、一种多集群监控方法,采用prometheus作为监控工具,形成以监控中心为监控服务管理控制台的多集群监控;该方法的实现包括:
4、所述多集群监控,包括容器集群监控,虚机集群、大数据集群监控;对所述多集群监控后,收集到的监控指标进行统一展示归类,监控中心设置指标分类标签,支持用户进行分类展示、分类告警;
5、监控数据的采集,包括容器集群数据采集和虚机集群、大数据集群数据采集,所述容器集群数据采集,prometheus自动获取来自微服务的监控数据;所述虚机集群、大数据集群数据采集,通过将服务信息注册consul,prometheus通过consul实现服务的动态发现;
6、统一告警:监控中心通过告警规则的动态编辑,满足用户对告警的实时管控,并将告警内容列表实时呈现给用户;
7、服务拨测:监控中心通过任务配置的方式,实现对任务接口的健康检查和监控;并配置服务拨测告警规则,将每个拨测任务的拨测结果,通过告警方式展示出来。
8、pemetheus可以很方便的与众多开源项目集成,帮助我们了解系统和服务的运行状态,另一方面分析其收集的大数据,可以帮助我们进行系统优化和作出决策。基于prometheus搭建了适合容器集群、虚机集群监控的微服务监控系统监控中心,并以各种维度和视角的监控大盘展示,满足应用研发或运维人员对应用的监控,进而保证应用运行稳定性。本方法解决了平台产品对自身多集群内的服务应用、主机信息、网络等的监控管理,保证各集群中的服务应用健康问题及时被发现,及时了解主机的cpu、内存、磁盘、网络等基础设备的使用情况,为运维及管理人员提供便捷的平台概览展示及详情展示,对基础设施进行全面监控,对监控到的异常信息及时告警通知,保障平台产品的正常持续运行。
9、进一步的,所述采用prometheus作为监控工具,使用prometheus的联邦集群模式部署,使用consul和k8s用于prometheus的动态服务发现,利用telegraf、exporter收集监控数据,使用grafana展示监控数据,使用alertmanager进行告警通知,通过监控中心与这些工具进行交互,最终形成以监控中心为监控服务管理控制台的多集群监控方案。
10、进一步的,每个节点使用cadvisor进行容器监控,可以轻松获取到当前主机上容器的运行统计信息;通过与prometheus集成,将cadvisor添加到监控数据采集任务中。
11、进一步的,所述虚机集群、大数据集群监控,每个节点使用telegraf进行监控数据采集,telegraf基于插件驱动,本身支持众多输入输出插件,还可根据需求自行编写。通过consul将telegraf添加到监控数据采集任务中。
12、进一步的,在监控中心系统中通过分组映射,支持用户从业务及管理角度,对主机、服务应用等资源进行分类展示,分类告警;
13、对于服务详情,如应用的负载情况、内存占用、线程数采用grafana展示,grafana主要用于大规模指标数据的可视化展示,是应用分析中最流行的时序数据展示工具。
14、进一步的,所述容器集群数据采集,通过直接配置多个kubernetes apiserver的endpoints来监控整个k8s集群,容器集群的微服务通过暴露监控接口,基于k8s与prometheus间可以配置动态的服务发现;因而prometheus可以自动获取来自微服务的监控数据;
15、所述虚机集群、大数据集群数据采集,通过将服务信息注册consul,prometheus通过consul实现服务的动态发现,consul注册和prometheus配置规则对于普通用户并不是很友好,为了方便注册及监控展示,监控中心通过开发简易注册的api和可视化的注册界面,并通过多种数据规范化校验,用于对注册数据统一规范化处理。
16、进一步的,所述统一告警,prometheus允许基于promql定义报警的触发条件,prometheus周期性的对promql进行计算,当满足条件时就会向alertmanager发送报警信息;
17、当触发告警时,alertmanager通过webhook方式将告警信息转发给监控中心;监控中心通过通知策略配置,实现将不同告警内容通过短信、邮件等不同的通知方式,通知给对应的信息接收人。
18、本发明还要求保护一种多集群监控系统,包括:
19、多集群监控模块,包括容器集群监控和虚机集群、大数据集群监控;对所述多集群监控后,收集到的监控指标进行统一展示归类,监控中心设置指标分类标签,支持用户进行分类展示、分类告警;
20、监控数据采集模块,包括容器集群数据采集和虚机集群、大数据集群数据采集,所述容器集群数据采集,prometheus自动获取来自微服务的监控数据;所述虚机集群、大数据集群数据采集,通过将服务信息注册consul,prometheus通过consul实现服务的动态发现;
21、统一告警模块:监控中心通过告警规则的动态编辑,满足用户对告警的实时管控,并将告警内容列表实时呈现给用户;
22、服务拨测模块:监控中心通过任务配置的方式,实现对任务接口的健康检查和监控;并配置服务拨测告警规则,将每个拨测任务的拨测结果,通过告警方式展示出来。
23、本发明还要求保护一种多集群监控装置,包括:至少一个存储器和至少一个处理器;
24、所述至少一个存储器,用于存储机器可读程序;
25、所述至少一个处理器,用于调用所述机器可读程序,实现上述的方法。
26、本发明还要求保护计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行上述的方法。
27、本发明的一种多集群监控方法及系统与现有技术相比,具有以下有益效果:
28、实时可靠,提供对服务组件的实时监控,实时告警并通知用户;
29、监控可视化,支持数据自动刷新,满足用户多场景下的监控数据可视化需求;
30、通知方式多样化,支持基于规则匹配的多样化通知策略管理;
31、便于定位和解决问题,提高维护人员的工作效率;提升了平台管理能力,便于统一管理。
32、本发明明显提高了维护人员的工作效率;保障服务平台安全可靠运行;满足用户多场景下数据可视化需求;告警信息实时触发并通知用户;增强业务处理平台运行的稳定性,保障了服务产品的持续可靠运行,提升了平台管理能力,便于统一管理。