System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种无感知的K8s应用日志采集方法和装置制造方法及图纸_技高网

一种无感知的K8s应用日志采集方法和装置制造方法及图纸

技术编号:40938973 阅读:2 留言:0更新日期:2024-04-18 14:57
本发明专利技术公开了一种无感知的K8s应用日志采集方法和装置,涉及云原生技术领域,包括以下步骤:日志监听器实时感知带有业务注解Pod,并将Pod信息投递至日志系统;日志系统根据日志监听器投递的Pod信息,动态组装符合日志采集业务需求的采集配置,并将该采集配置下发至K8s集群的ConfigMap;日志采集器引用日志系统下发至K8s集群的ConfigMap中的采集配置;日志采集器实时感知到采集配置文件的变更,并热更新采集配置至采集配置所在的进程;日志采集器根据实时热加载的采集配置,采集容器应用日志;实时获取容器特征信息,并动态下发采集配置,适配容器场景下容器日志的动态变更问题。

【技术实现步骤摘要】

本专利技术涉及云原生,具体涉及一种无感知的k8s应用日志采集方法和装置。


技术介绍

1、随着云计算技术的发展,云计算的用户越来越多,为了支持更快的应用开发和迭代效率,在公有云、私有云、混合云等环境中构建和运行应用程序的场景愈发普遍。企业通过containers、service meshes等方式在k8s系统中构建和运行可弹性扩展、易于管理、可观察、松耦合的应用系统。云原生设计理念中面向的诊断性设计提出了建立集群级别的日志、metric和链路追踪系统,因此建立集群级别的日志系统成为云原生应用架构的必不可少的一部分。

2、k8s容器场景下,机器的宕机、上线、下线、pod销毁、扩容、缩容等都是常态,集群内容器动态变更的特征给日志系统采集端带来了极大的挑战,如何实时采集日志数据至数据仓库成为日志系统建设关键难题。通常k8s集群会与ci/cd系统集成,而日志系统是较独立系统,集成到ci/cd系统中代价极大。同时,当日志增长到一定规模时,稳定高效的采集日志成为日志系统的又一瓶颈。

3、日志种类繁多,物理机、虚拟机以及容器都存在日志采集的需求,容器场景下的标准输出,容器内文件,容器事件,kubernets事件等信息都需要采集。同时,日志系统建设需要支持daemonset,sidecar等各种采集方式以应对不同的采集需求和不同数据源的采集。


技术实现思路

1、为了克服上述的技术问题,本专利技术的目的在于提供一种无感知的k8s应用日志采集方法和装置,用于解决容器场景下实时采集动态变更的容器日志问题,尤其是公有云技术架构下日志的采集。

2、本专利技术的目的可以通过以下技术方案实现:

3、具体是提供一个一种无感知的k8s应用日志采集方法和装置,包括以下步骤:

4、s1:日志监听器实时感知带有业务注解pod,并将pod信息投递至日志系统;

5、s2:日志系统根据日志监听器投递的pod信息,动态组装符合日志采集业务需求的采集配置,并将该采集配置下发至k8s集群的configmap;

6、s3:日志采集器引用日志系统下发至k8s集群的configmap中的采集配置;

7、s4:日志采集器实时感知到采集配置文件的变更,并热更新采集配置至采集配置所在的进程;

8、s5:日志采集器根据实时热加载的采集配置,采集容器应用日志。

9、作为本专利技术进一步的方案:所述步骤s1中的带有业务注解pod由ci/cd系统发布,ci/cd系统通过注解在pod中注入带有业务含义的注解。

10、作为本专利技术进一步的方案:所述步骤s1中的日志监听器通过helm chart形式安装在k8s集群内,当ci/cd系统通过k8s集群声明式api发布pod时,k8s集群内日志监听器进入调谐模块。

11、作为本专利技术进一步的方案:所述日志监听器通过k8s client-go客户端获取当前pod的资源信息,封装日志系统所需的pod信息。

12、作为本专利技术进一步的方案:所述日志监听器获取pod信息完成,基于grpc协议发送至统一配置构造器,统一配置构造器为日志系统的配置构建中心,实时接收日志监听器的请求;

13、统一配置构造器基于freemarker模板引擎。

14、作为本专利技术进一步的方案:所述统一配置构造器的工作流程包括以下步骤:

15、y1:统一配置构造器实时接收日志监听器上报的pod信息;

16、y2:基于日志监听器上报的pod信息,统一配置构造器使用freemarker模板引擎动态渲染符合日志采集器规范的采集配置文件;

17、y3:基于k8s集群声明式api,统一配置构造器分发ci/cd所发布应用的采集配置信息至k8s集群的configmap,日志采集器感知采集配置文件变更后,新增监听采集路径,并完成pod应用日志的实时采集。

18、一种无感知的k8s应用日志采集装置,该k8s应用日志采集装置基于上述的k8s应用日志采集方法实现,包括k8s集群,k8s集群内部设有configmap、日志采集器、日志监听器和统一配置构造器,统一配置构造器配置构建日志系统;

19、所述日志监听器实时感知pod信息,并且将pod信息投递至日志系统,日志系统根据日志监听器投递的pod信息,动态组装符合日志采集业务需求的采集配置,并将该采集配置下发至k8s集群的configmap,日志采集器以daemonset形式部署在k8s集群内,引用日志系统下发至k8s集群的configmap中的采集配置,日志采集器根据实时热加载的采集配置,采集容器应用日志。

20、作为本专利技术进一步的方案:所述日志监听器在ci/cd系统使用k8s集群发布容器应用时,能实时感知pod的生命周期变更。

21、作为本专利技术进一步的方案:所述统一配置构造器接收日志监听器投递的pod信息,并根据pod信息渲染出符合日志采集器标准的采集配置文件。

22、作为本专利技术进一步的方案:所述日志采集器基于linux内核的inotify机制,动态热更新上游日志系统下发的采集配置信息。

23、本专利技术的有益效果:

24、1、本专利技术中,基于k8s operator机制,实时获取容器特征信息,并动态下发采集配置,适配容器场景下容器日志的动态变更问题;

25、2、基于k8s configmap实现日志采集器配置统一管理,采集端通过卷挂载的形式统一引用采集配置所属的configmap,实现了采集配置的实时下发和热加载;

26、3、以operator方式管理和维护采集配置,可以最小成本的集成至ci/cd系统,只需ci/cd系统发布容器应用时,带上日志系统相关配置即可实现容器应用日志的无感知采集。

本文档来自技高网...

【技术保护点】

1.一种无感知的K8s应用日志采集方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种无感知的K8s应用日志采集方法,其特征在于,所述步骤S1中的带有业务注解Pod由CI/CD系统发布,CI/CD系统通过注解在Pod中注入带有业务含义的注解。

3.根据权利要求2所述的一种无感知的K8s应用日志采集方法,其特征在于,所述步骤S1中的日志监听器通过helm chart形式安装在K8s集群内,当CI/CD系统通过K8s集群声明式API发布Pod时,K8s集群内日志监听器进入调谐模块。

4.根据权利要求3所述的一种无感知的K8s应用日志采集方法,其特征在于,所述日志监听器通过K8s client-go客户端获取当前Pod的资源信息,封装日志系统所需的Pod信息。

5.根据权利要求4所述的一种无感知的K8s应用日志采集方法,其特征在于,所述日志监听器获取Pod信息完成,基于gRPC协议发送至统一配置构造器,统一配置构造器为日志系统的配置构建中心,实时接收日志监听器的请求;

6.根据权利要求5所述的一种无感知的K8s应用日志采集方法,其特征在于,所述统一配置构造器的工作流程包括以下步骤:

7.一种无感知的K8s应用日志采集装置,该K8s应用日志采集装置基于权利要求2-5任一所述的K8s应用日志采集方法实现,其特征在于,包括K8s集群,K8s集群内部设有ConfigMap、日志采集器、日志监听器和统一配置构造器,统一配置构造器配置构建日志系统;

8.根据权利要求7所述的一种无感知的K8s应用日志采集装置,其特征在于,所述日志监听器在CI/CD系统使用K8s集群发布容器应用时,能实时感知Pod的生命周期变更。

9.根据权利要求7所述的一种无感知的K8s应用日志采集装置,其特征在于,所述统一配置构造器接收日志监听器投递的Pod信息,并根据Pod信息渲染出符合日志采集器标准的采集配置文件。

10.根据权利要求7所述的一种无感知的K8s应用日志采集装置,其特征在于,所述日志采集器基于linux内核的inotify机制,动态热更新上游日志系统下发的采集配置信息。

...

【技术特征摘要】

1.一种无感知的k8s应用日志采集方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种无感知的k8s应用日志采集方法,其特征在于,所述步骤s1中的带有业务注解pod由ci/cd系统发布,ci/cd系统通过注解在pod中注入带有业务含义的注解。

3.根据权利要求2所述的一种无感知的k8s应用日志采集方法,其特征在于,所述步骤s1中的日志监听器通过helm chart形式安装在k8s集群内,当ci/cd系统通过k8s集群声明式api发布pod时,k8s集群内日志监听器进入调谐模块。

4.根据权利要求3所述的一种无感知的k8s应用日志采集方法,其特征在于,所述日志监听器通过k8s client-go客户端获取当前pod的资源信息,封装日志系统所需的pod信息。

5.根据权利要求4所述的一种无感知的k8s应用日志采集方法,其特征在于,所述日志监听器获取pod信息完成,基于grpc协议发送至统一配置构造器,统一配置构造器为日志系统的配置构建中心,实时接收日志监听器的请求;

【专利技术属性】
技术研发人员:程坤
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1