CN111309546A - 一种集群容器内文本日志的采集方法、系统及存储介质 - Google Patents

一种集群容器内文本日志的采集方法、系统及存储介质 Download PDF

Info

Publication number
CN111309546A
CN111309546A CN202010063008.8A CN202010063008A CN111309546A CN 111309546 A CN111309546 A CN 111309546A CN 202010063008 A CN202010063008 A CN 202010063008A CN 111309546 A CN111309546 A CN 111309546A
Authority
CN
China
Prior art keywords
container
log
file
path
monitoring
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN202010063008.8A
Other languages
English (en)
Inventor
崔润兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010063008.8A priority Critical patent/CN111309546A/zh
Publication of CN111309546A publication Critical patent/CN111309546A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种集群容器内文本日志的采集方法、系统及存储介质,所述的方法包括以下步骤S1:在服务器中部署监听采集程序的步骤;S2:容器中的日志文件路径挂载到emptydir卷步骤,将容器中的日志文件路径以emptydir卷的形式进行挂载;S3:获取运行状态中的容器ID值的步骤,动态监听程序读取处于运行状态下的需要日志采集的容器ID值;S4:获取文件路径的步骤,通过容器ID值读取“容器内文本日志”的文件路径:获取当前容器的详细信息,在“mounts”对象下找到容器中日志目录对应的宿主机目录;S5:日志的采集步骤,将日志文件路径通过监听程序动态的配置到文件采集程序的配置文件中,进行日志的采集。

Description

一种集群容器内文本日志的采集方法、系统及存储介质
技术领域
本发明属于计算机技术领域,具体涉及一种集群容器内文本日志的采集方法、系统及存储介质。
背景技术
容器技术是一种比虚拟机技术更加节省计算资源也更加灵活的虚拟化技术。随着容器技术的发展,出现了不同种类的容器编排引擎,用于对容器进行管理,Kubernetes技术作为一种容器编排引擎,脱颖而出成为了容器编排领域的事实标准。
在将容器技术应用到实际生产环境中时,由于技术门槛的缘故,仅仅使用Kubernetes进行应用系统部署显得比较困难,为此需要开发对Kubernetes集群进行管理的软件系统。
日志作为应用的一个关键环节,尤其是在使用容器编排工具进行容器调度的动态环境下,程序的排错和健康状态的分析很多都依赖日志信息的收集。在容器平台这种动态的环境下,如何在应用的容器化过程中,方便快捷的自动发现和采集日志是将传统应用容器化部署的一个重要方面。
在管理Kubernates集群的软件系统中,对所部署容器的标准日志的采集,是管理系统了解系统运行状态与排除错误的一种手段。
容器日志有2大分类:第一类是“标准输出”,此类日志可以使用kubectl logs命令查看,代码中通过STDOUT、STDERR输出的信息,包括被重定向到标准输出的文本文件。
第二类是“文本日志”,此类日志是存在于容器内部并且没有被重定向到标准输出的日志。
针对第二类日志,目前无法通过Kubernates或docker提供的命令或者API获取。
以上两种日志的生命周期都与容器的生命周期相同,如果把日志保存在容器内部,则日志会随着容器的销毁而被删除。由于容器的生命周期相对虚拟机大大缩短,创建销毁属于常态,因此需要一种方式持久化的保存日志。
现有技术中对于上述第二类日志的采集,通常采用以下两种方式:
第一种方式,将需要采集的日志文件,通过hostpath或持久卷的形式挂载到宿主机或存储中,然后将挂载出来的路径配置到采集工具中进行采集。
第二种方式,使用sidecar的方式,在同一个pod中,一个容器是应用容器,另外一个容器是日志采集容器。这种方式,需要在应用容器中,将需要采集的日志文件,以EmptyDir的挂载方式,挂载出来。这种挂载方式,可以实现pod内挂载空间的共享。从而实现日志采集容器可以采集应用容器日志。
但是,以上两种方案存在不同程度的低应用特性:
第一种方案,会占用大量的存储空间,同时,当需要采集的应用较多时,出现挂载路径混乱的情况,难以管理。
第二种方案,每一个pod中,都会有一个sidecar容器运行,在大规模应用的情况下,这种方式会消耗大量资源。
有鉴于此,本申请提供一种集群容器内文本日志的采集方法、系统及存储介质;以解决现有技术中存在的缺陷,是非常有必要的。
发明内容
针对现有技术中存在的在获取文本日志所采用的方案占用大量的存储空间并且出现挂载路径混乱,以及消耗大量资源的问题,本发明提供一种集群容器内文本日志的采集方法、系统及存储介质,以解决上述技术问题。
为实现上述目的,本发明给出以下技术方案:
第一方面,本发明提供一种集群容器内文本日志的采集方法,包括以下步骤:
S1:在服务器中部署监听采集程序的步骤,
每个物理节点上以守护进程的方式部署监听采集程序,这个监听采集程序包括2个进程:容器监听进程+文件采集进程;
S2:容器中的日志文件路径挂载到emptydir卷步骤,
将容器中的日志文件路径以emptydir卷的形式进行挂载;
S3:获取运行状态中的容器ID值的步骤,
动态监听程序读取处于运行状态下的容器ID值;
S4:获取文件路径的步骤,
通过容器ID值读取“容器内文本日志”的文件路径,获取当前容器的详细信息,在“mounts”对象下找到容器内日志路径对应的宿主机路径;
S5:日志的采集步骤,
将日志文件路径通过监听程序动态的配置到文件采集程序的配置文件中,进行日志的采集。
作为优选,所述的步骤S1中,采用fluntd工具或者filebeat工具作为文件采集程序;上述两种文件采集工具均为配置化的采集方式,将需要采集的文件路径,配置到采集工具的配置文件中,即可进行数据的采集。
作为优选,所述步骤S4中,调用Docker应用容器引擎的API指令:/containers/<container-id>/json,获取当前容器的详细信息;该API指令能够准确的获取当前容器的详细信息,尤其是“mounts”对象信息。
第二方面,本发明提供一种集群容器内文本日志的采集系统,包括:
部署监听采集程序模块,该模块中,每个物理节点上以守护进程的方式布置监听采集程序,监听采集程序包括2个进程:容器监听进程+文件采集进程,将目标采集日志的文件路径配置到文件采集程序的配置文件中,读取目标采集日志文件内的数据;
容器中的日志文件挂载模块,该模块中,将容器中的日志以emptydir卷的形式进行挂载,挂载后在Docker应用容器的详细信息中,找到容器内日志文件路径所有对应的宿主机路径;
获取容器ID值模块,该模块中,动态监听程序读取处于运行状态下的容器ID值;
获取文件路径模块,该模块中,通过容器ID值读取“容器内文本日志”的文件路径,获取当前容器的详细信息,在“mounts”对象下找到容器中日志文件路径对应的宿主机文件路径;
日志采集模块,该模块中,将日志文件路径通过监听程序动态的配置到文件采集程序的配置文件中,进行日志的采集。
作为优选,所述的部署监听采集程序模块中,采用fluntd工具或者filebeat工具作为文件采集程序;上述两种文件采集工具均为配置化的采集方式,将需要采集的文件路径,配置到采集工具的配置文件中,即可进行数据的采集。
作为优选,所述获取文件路径模块中,调用Docker应用容器引擎的API指令:/containers/<container-id>/json,获取当前容器的详细信息;该API指令能够准确的获取当前容器的详细信息,尤其是“mounts”对象信息。
第三方面,提供了一种计算机存储介质,所述计算机存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
本发明的有益效果在于,使得Kubernetes集群管理软件能够以最轻量级,最高效,无侵入的方式进行容器内文本日志的采集。解决了传统容器内文本日志采集时的高冗余,高耗能,管理困难的问题。避免了现有技术中,在采集日志过程时,需要占用大量存储空间消耗大量资源以及挂载混乱的问题出现。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种集群容器内文本日志的采集方法的流程图。
图2是本发明提供的一种集群容器内文本日志的采集系统的原理框图。
其中,1-部署监听采集程序模块,2-容器内日志路径挂载到emptydir卷模块,3-获取容器ID值模块,4-获取文件路径模块,5-日志采集模块。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
实施例1:
如图1所示,本实施例提供的一种集群容器内文本日志的采集方法,包括以下步骤:
S1:在服务器中部署监听采集程序的步骤,
每个物理节点上以守护进程的方式布置监听采集程序,监听采集程序包括2个进程:容器监听进程+文件采集进程;采用fluntd工具或者filebeat工具作为文件采集程序;上述两种文件采集工具均为配置化的采集方式,将需要采集的文件路径,配置到采集工具的配置文件中,即可进行数据的采集。
S2:容器中的日志文件路径挂载到emptydir卷步骤,
将容器中的日志文件路径以emptydir卷的形式进行挂载;
S3:获取运行状态中的容器ID值的步骤,
动态监听程序读取处于运行状态下的需要日志采集的容器ID值;
S4:获取文件路径的步骤,
通过容器ID值读取“容器内文本日志”的文件路径,获取当前容器的详细信息,在“mounts”对象下找到容器中日志目录对应的宿主机目录;调用Docker应用容器引擎的API指令:/containers/<container-id>/json,获取当前容器的详细信息;该API指令能够准确的获取当前容器的详细信息,尤其是“mounts”对象信息。
S5:日志的采集步骤,
将日志文件路径通过监听程序动态的配置到文件采集程序的配置文件中,进行日志的采集。
实施例2:
如图2所示,本实施例提供的一种集群容器内文本日志的采集系统,包括:
部署监听采集程序模块1,该模块中,每个物理节点上以守护进程的方式布置监听采集程序,监听采集程序包括2个进程:容器监听进程+文件采集进程,将目标采集日志的文件路径配置到文件采集程序的配置文件中,读取目标采集日志内的数据;采用fluntd工具或者filebeat工具作为文件采集程序;上述两种文件采集工具均为配置化的采集方式,将需要采集的文件路径,配置到采集工具的配置文件中,即可进行数据的采集。
容器内日志路径挂载到emptydir卷模块2,该模块中,将容器中的日志以emptydir卷的形式重新进行挂载,重新挂载后在Docker应用容器引擎的详细信息中,找到容器内日志路径所有对应的宿主机路径;
获取容器ID值模块3,该模块中,调用动态监听程序读取处于运行状态下的容器ID值;
获取文件路径模块4,该模块中,通过容器ID值获取“容器内文本日志”的文件路径,获取当前容器的详细信息,在“mounts”对象下找到容器内日志路径对应的宿主机路径;调用Docker应用容器引擎的API指令:/containers/<container-id>/json,获取当前容器的详细信息;该API指令能够准确的获取当前容器的详细信息,尤其是“mounts”对象信息。
日志采集模块5,该模块中,将宿主机上的日志文件路径通过监听程序动态的配置到文件采集程序的配置文件中,进行日志的采集。
实施例3:
本实施例提供了一种计算机存储介质,所述计算机存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例1所述的方法。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (7)

1.一种集群容器内文本日志的采集方法,其特征在于,包括以下步骤:
S1:在服务器中部署监听采集程序的步骤,
每个物理节点上以守护进程的方式部署监听采集程序,这个监听采集程序包括2个进程:容器监听进程+文件采集进程;
S2:容器中的日志文件路径挂载到emptydir卷步骤,
将容器中的日志文件路径以emptydir卷的形式进行挂载;
S3:获取运行状态中的容器ID值的步骤,
动态监听程序读取处于运行状态下的需要日志采集的容器ID值;
S4:获取文件路径的步骤,
通过容器ID值读取“容器内文本日志”的文件路径:获取当前容器的详细信息,在“mounts”对象下找到容器中日志目录对应的宿主机目录;
S5:日志的采集步骤,
将日志文件路径通过监听程序动态的配置到文件采集程序的配置文件中,进行日志的采集。
2.根据权利要求1所述的一种集群容器内文本日志的采集方法,其特征在于,所述的步骤S1中,采用fluntd工具或者filebeat工具作为文件采集程序。
3.根据权利要求1或2所述的一种集群容器内文本日志的采集方法,其特征在于,所述步骤S4中,调用Docker应用容器引擎的API指令:/containers/<container-id>/json,获取当前容器的详细信息;该API指令能够准确的获取当前容器的详细信息,尤其是“mounts”对象信息。
4.一种集群容器内文本日志的采集系统,其特征在于,包括:
部署监听采集程序模块,该模块中,每个物理节点上以守护进程的方式布置监听采集程序,监听采集程序包括2个进程:容器监听进程+文件采集进程,将目标采集日志的文件路径配置到文件采集程序的配置文件中,读取目标采集日志内的数据;
容器内日志路径挂载到emptydir卷模块,该模块中,将容器中的日志以emptydir卷的形式进行挂载,挂载后在Docker应用容器的详细信息中,找到容器内日志路径所对应的宿主机路径;
获取容器ID值模块,该模块中,动态监听程序读取处于运行状态下的容器ID值;
获取文件路径模块,该模块中,通过容器ID值获取“容器内文本日志”的文件路径,获取当前容器的详细信息,在“mounts”对象下找到容器内日志路径对应的宿主机路径;
日志采集模块,该模块中,将宿主机上的日志文件路径通过监听程序动态的配置到文件采集程序的配置文件中,进行日志的采集。
5.根据权利要求4所述的一种集群容器内文本日志的采集系统,其特征在于,所述的部署监听采集程序模块中,采用fluntd工具或者filebeat工具作为文件采集程序。
6.根据权利要求4或5所述的一种集群容器内文本日志的采集系统,其特征在于,所述获取文件路径模块中,调用Docker应用容器引擎的API指令:/containers/<container-id>/json,获取当前容器的详细信息;该API指令能够准确的获取当前容器的详细信息,尤其是“mounts”对象信息。
7.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述权利要求1-3中任一权利要求所述的方法。
CN202010063008.8A 2020-01-19 2020-01-19 一种集群容器内文本日志的采集方法、系统及存储介质 Withdrawn CN111309546A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010063008.8A CN111309546A (zh) 2020-01-19 2020-01-19 一种集群容器内文本日志的采集方法、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010063008.8A CN111309546A (zh) 2020-01-19 2020-01-19 一种集群容器内文本日志的采集方法、系统及存储介质

Publications (1)

Publication Number Publication Date
CN111309546A true CN111309546A (zh) 2020-06-19

Family

ID=71154670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010063008.8A Withdrawn CN111309546A (zh) 2020-01-19 2020-01-19 一种集群容器内文本日志的采集方法、系统及存储介质

Country Status (1)

Country Link
CN (1) CN111309546A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111898122A (zh) * 2020-07-27 2020-11-06 平安证券股份有限公司 容器内应用的日志采集方法、装置、介质及电子设备
CN112486938A (zh) * 2020-12-28 2021-03-12 上海七牛信息技术有限公司 一种应用于kubernetes集群的日志收集方法以及系统
CN112799588A (zh) * 2020-12-31 2021-05-14 杭州朗澈科技有限公司 使用外部存储加载容器集群应用数据时的数据存储方法
CN112905537A (zh) * 2021-02-20 2021-06-04 北京百度网讯科技有限公司 文件处理方法、装置、电子设备和存储介质
CN113934564A (zh) * 2021-09-26 2022-01-14 聚好看科技股份有限公司 一种集群日志的存储方法及装置
CN114077577A (zh) * 2021-11-18 2022-02-22 支付宝(杭州)信息技术有限公司 基于跨容器的文件数据采集方法及文件数据采集装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111898122A (zh) * 2020-07-27 2020-11-06 平安证券股份有限公司 容器内应用的日志采集方法、装置、介质及电子设备
CN111898122B (zh) * 2020-07-27 2023-11-17 平安证券股份有限公司 容器内应用的日志采集方法、装置、介质及电子设备
CN112486938A (zh) * 2020-12-28 2021-03-12 上海七牛信息技术有限公司 一种应用于kubernetes集群的日志收集方法以及系统
CN112799588A (zh) * 2020-12-31 2021-05-14 杭州朗澈科技有限公司 使用外部存储加载容器集群应用数据时的数据存储方法
CN112905537A (zh) * 2021-02-20 2021-06-04 北京百度网讯科技有限公司 文件处理方法、装置、电子设备和存储介质
CN112905537B (zh) * 2021-02-20 2022-09-02 北京百度网讯科技有限公司 文件处理方法、装置、电子设备和存储介质
CN113934564A (zh) * 2021-09-26 2022-01-14 聚好看科技股份有限公司 一种集群日志的存储方法及装置
CN114077577A (zh) * 2021-11-18 2022-02-22 支付宝(杭州)信息技术有限公司 基于跨容器的文件数据采集方法及文件数据采集装置

Similar Documents

Publication Publication Date Title
CN111309546A (zh) 一种集群容器内文本日志的采集方法、系统及存储介质
CN111258722B (zh) 一种集群的日志采集方法、系统、设备以及介质
CN105589776B (zh) 一种故障定位方法及服务器
CN103744824B (zh) 一种出厂测试方法和测试系统
US20220317754A1 (en) Nanosecond-Scale Power Resource Allocation Method and System for Microservices
WO2014206289A1 (en) Method and apparatus for outputting log information
CN110266544B (zh) 一种云平台微服务化服务失败的原因定位的装置及方法
Veiga et al. BDEv 3.0: energy efficiency and microarchitectural characterization of Big Data processing frameworks
CN111597089B (zh) 一种Linux系统调用事件采集和缓存装置及方法
CN103117878A (zh) 一种基于Nagios的分布式监控系统的设计方法
CN102929761B (zh) 一种应对崩溃性错误的系统及方法
CN110750445A (zh) 一种yarn组件高可用性功能的测试方法、系统及设备
CN114398179A (zh) 一种跟踪标识的获取方法、装置、服务器及存储介质
CN106886477B (zh) 一种云系统中监控阈值设定方法及装置
Lu et al. Iaso: an autonomous fault-tolerant management system for supercomputers
CN110865919B (zh) 基于java进程的监控方法、装置和计算机设备
Noureddine Towards a better understanding of the energy consumption of software systems
US8977892B2 (en) Disk control apparatus, method of detecting failure of disk apparatus, and recording medium for disk diagnosis program
US20220334906A1 (en) Multimodal user experience degradation detection
CN113031969B (zh) 设备部署巡检方法、装置、计算机设备及存储介质
CN115525392A (zh) 容器监控方法、装置、电子设备及存储介质
CN116955129A (zh) 代码功能和测试用例映射的自动生成
CN103559134A (zh) 基准测试组件的配置方法和装置
CN114090433A (zh) 埋点数据上报控制方法、装置、存储介质及电子设备
Ghosh et al. Knightshift: shifting the i/o burden in datacenters to management processor for energy efficiency

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20200619

WW01 Invention patent application withdrawn after publication