本发明涉及到云原生微服务领域,具体涉及一种微服务网络基础设施实时监控的方法与系统。
背景技术:
1、互联网架构从单主机、分层架构,再到后来的集群架构,经历了数次改变。架构始终随着不断变化的业务应用需求等因素而变化,在这个变化的过程中出现了微服务架。微服务架构突破传统以虚拟机为基础的集群架构模式,按照一定的策略将传统单体应用拆分为多个微服务,以容器为载体,容器之间通过轻量级通信机制交互,有效地解决了应用与日俱增的系统性能需求,提高了研发效率。
2、微服务在复杂的网络基础设施上运行,如容器、虚拟网卡、虚拟机和物理机。为了确保微服务的服务质量,不仅要监控服务质量,还要监控服务使用的网络基础设施的质量。因此,应该追踪与服务相关的网络基础设施的指标。
3、传统的网络监控在粒度、性能、安全性等方面已经无法满足云原生场景的要求,且只能对内核暴露的数据进行监控。再加上系统的虚拟化,很难监控容器粒度的性能数据,而且很容易通过修改系统和应用程序提取数据来威胁系统安全。因此传统的网络监控已经不能适应当前某些特殊服务网络监控场景,我们需要一种更智能,粒度更小的网络基础设施监控方案。
技术实现思路
1、针对现有技术的不足,本发明提出一种微服务网络基础设施实时监控的方法与系统,该方法基于以容器化、自动化开发运维(devops)、内核追踪等特性为代表的云原生技术,将服务所涉及的网络基础设施拓扑实现自动化识别,指标采集器的自动化部署和删除,使得运维只需要关注网络指标的异常无需丰富的运维经验,大大地减少了运维管理的人力投入,提高了效率。
2、为实现上述发明目的,本发明提供了如下技术方案:
3、一种微服务网络基础设施实时监控方法,该方法步骤如下:
4、(1)拓扑分析模块从k8s、docker和操作系统获取网络设置信息,以创建跨层的全栈拓扑;
5、(2)事件监测模块从k8s、docker和操作系统获取事件信息更新拓扑;
6、(3)基于所获取的拓扑或拓扑的变化,指标采集器管理模块会自动在被监控服务的虚拟机中创建、更新指标采集器代理;每个代理根据指令部署和删除指标收集器程序;指标收集器获取的指标与被监控的服务信息相关联,并存储到指标收集器模块中的数据库;
7、具体地,所述指标采集器管理模块中的指标收集器用于追踪内核数据,且通过创建包括服务、容器和虚拟机的全堆栈拓扑以建立服务信息和包的度量之间的联动系统;所述内核数据具体包括:系统调用、内核函数载入与退出、内核跟踪点和网络事件;所述拓扑分析模块中的拓扑元素包括服务、容器、服务代理程序、容器虚拟网卡、跨节点网络解决方案的网络插件和物理网卡;所述监测模块的结果会实时发送给拓扑分析模块和指标采集器管理模块,实现拓扑实时更新。
8、具体地,所述的指标采集器控制器,其特征在于,所述指标采集器基于内核追踪技术,通过对系统调用、网络事件等内核信息的收集,通过套接字缓冲区skb套接字缓冲区结构体可以获得网卡名、网络命名空间和四元组信息,所述四元组信息为:源ip地址、目标ip地址、源端口号和目标端口号;所述内核追踪本质上是在虚拟机的内核空间执行的,不存在来自包的容器和服务的信息,因此通过创建包括服务、容器和虚拟机的全堆栈拓以建立服务信息和包的度量之间的联动系统;拓扑节点元素包括服务、容器、服务代理程序、容器虚拟网卡、跨节点网络解决方案的网络插件、物理网卡。
9、一种微服务网络基础设施实时监控系统,该系统包括拓扑分析模块、事件监测模块和指标采集器管理模块:
10、所述拓扑分析模块,用于创建包括微服务、容器和虚拟机的全堆栈拓扑;
11、所述事件监测模块,用于监测包括微服务、容器和虚拟机中与拓扑元素相关事件;
12、所述指标采集器管理模块,用于管理指标采集器;
13、所述指标采集器管理模块会基于所获取的拓扑或拓扑变化在被监控服务的虚拟机中创建、更新指标采集器代理,每个代理根据指令部署和删除指标收集器程序;指标收集器获取的指标与被监控的服务信息相关联,并存储到数据库中;
14、所述拓扑分析模块创建包括微服务、容器和虚拟机的全堆栈拓扑,事件监测模块会根据事件向拓扑分析模块发送修改拓扑的信息,进而拓扑分析模块进行拓扑修改,指标采集器管理模块是根据当前的拓扑情况部署指标采集器,因此在拓扑变化时指标采集器也修改部署位置。
15、具体地,所述网络基础设施包括服务代理程序、容器虚拟网卡、跨节点网络解决方案的网络插件和物理网卡。
16、具体地,所述微服务均以服务注册中心的方式注册,以容器方式部署。
17、具体地,所述监控的指标包括但不限于时延、重传率、丢包率。
18、具体地,所述事件监测模块中的事件监测包括服务修改监测、容器修改监测、服务代理程序、容器虚拟网卡、跨节点网络解决方案的网络插件和物理网卡变化。
19、具体地,所述指标采集器管理模块包含指标采集器管理器、指标采集器代理、指标采集器。
20、具体地,所述指标采集器控制器负责指标采集器的部署与删除;所述指标采集器代理部署在每一台虚拟机上,接收指标采集器管理器的指令,实施指标采集器的部署与删除。
21、本发明的有益效果如下:
22、(1)本发明的微服务网络基础设施实时监控系统与方法,使得云边的计算资源可以统一管理和调度,使得服务、容器和虚拟机的全堆栈拓扑可以自动化的识别和监测,使得服务信息和包的度量之间实现联动,为服务相关的网络基础设施监控提供了基本环境;
23、(2)本发明的基于云原生边缘智能模型自动化发布更新的系统与方法,通过使用云原生技术,将服务相关的网络基础设施的拓扑识别、指标采集器部署、指标整合等完整的生命流程自动化,减少了相关运维管理部署人力的投入,使得运维人员只需要关注与服务相关的指标即可,有效地提高了效率,并且通过对服务使用的基础设施的质量的监控,提高了微服务的服务质量监控粒度。
1.一种微服务网络基础设施实时监控方法,其特征在于,该方法步骤如下:
2.根据权利要求1所述的一种微服务网络基础设施实时监控方法,其特征在于,所述指标采集器管理模块中的指标收集器用于追踪内核数据,且通过创建包括服务、容器和虚拟机的全堆栈拓扑以建立服务信息和包的度量之间的联动系统;所述内核数据具体包括:系统调用、内核函数载入与退出、内核跟踪点和网络事件;所述拓扑分析模块中的拓扑元素包括服务、容器、服务代理程序、容器虚拟网卡、跨节点网络解决方案的网络插件和物理网卡;所述监测模块的结果会实时发送给拓扑分析模块和指标采集器管理模块,实现拓扑实时更新。
3.根据权利要求1所述的一种微服务网络基础设施实时监控方法,其特征在于,所述的指标采集器控制器,其特征在于,所述指标采集器基于内核追踪技术,通过对系统调用、网络事件等内核信息的收集,通过套接字缓冲区skb套接字缓冲区结构体可以获得网卡名、网络命名空间和四元组信息,所述四元组信息为:源ip地址、目标ip地址、源端口号和目标端口号;所述内核追踪本质上是在虚拟机的内核空间执行的,不存在来自包的容器和服务的信息,因此通过创建包括服务、容器和虚拟机的全堆栈拓以建立服务信息和包的度量之间的联动系统;拓扑节点元素包括服务、容器、服务代理程序、容器虚拟网卡、跨节点网络解决方案的网络插件、物理网卡。
4.一种微服务网络基础设施实时监控系统,其特征在于,该系统包括拓扑分析模块、事件监测模块和指标采集器管理模块:
5.根据权利要求4所述的一种微服务网络基础设施实时监控系统,其特征在于,所述网络基础设施包括服务代理程序、容器虚拟网卡、跨节点网络解决方案的网络插件和物理网卡。
6.根据权利要求4所述的一种微服务网络基础设施实时监控系统,其特征在于,所述微服务均以服务注册中心的方式注册,以容器方式部署。
7.根据权利要求4所述的一种微服务网络基础设施实时监控系统,其特征在于,所述监控的指标包括但不限于时延、重传率、丢包率。
8.根据权利要求4所述的一种微服务网络基础设施实时监控系统,其特征在于,所述事件监测模块中的事件监测包括服务修改监测、容器修改监测、服务代理程序、容器虚拟网卡、跨节点网络解决方案的网络插件和物理网卡变化。
9.根据权利要求4所述的一种微服务网络基础设施实时监控系统,其特征在于,所述指标采集器管理模块包含指标采集器管理器、指标采集器代理、指标采集器。
10.根据权利要求4所述的一种微服务网络基础设施实时监控系统,其特征在于,所述指标采集器控制器负责指标采集器的部署与删除;所述指标采集器代理部署在每一台虚拟机上,接收指标采集器管理器的指令,实施指标采集器的部署与删除。