CN114756301B - 日志处理方法、装置和系统 - Google Patents

日志处理方法、装置和系统 Download PDF

Info

Publication number
CN114756301B
CN114756301B CN202210435811.9A CN202210435811A CN114756301B CN 114756301 B CN114756301 B CN 114756301B CN 202210435811 A CN202210435811 A CN 202210435811A CN 114756301 B CN114756301 B CN 114756301B
Authority
CN
China
Prior art keywords
log
target
container
component
configuration
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.)
Active
Application number
CN202210435811.9A
Other languages
English (en)
Other versions
CN114756301A (zh
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202210435811.9A priority Critical patent/CN114756301B/zh
Publication of CN114756301A publication Critical patent/CN114756301A/zh
Application granted granted Critical
Publication of CN114756301B publication Critical patent/CN114756301B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • 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
    • 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
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开提供了一种日志处理方法、装置和系统,涉及计算机技术领域,尤其涉及人工智能、云计算、大数据领域。具体实现方案为:接收日志采集任务,其中,日志采集任务用于采集初始日志,初始日志至少包括:容器集群包含的目标容器的日志;对日志采集任务进行解析,生成多个日志采集组件对应的配置文件;将多个日志采集组件中的目标日志采集组件部署到目标对象,其中,目标对象为目标容器所属的目标节点或目标容器组;基于目标日志采集组件对应的目标配置文件,通过目标日志采集组件对初始日志进行收集。

Description

日志处理方法、装置和系统
技术领域
本公开涉及计算机技术领域,尤其涉及人工智能、云计算、大数据领域,具体提供了一种日志处理方法、装置和系统。
背景技术
在云原生时代,生产级容器编排技术成为云原生应用最佳的平台,因此,基于云原生基础架构进行分布式深度学习模型训练以及预测成为了业界落地AI(ArtificialIntelligence,人工智能)技术的主要趋势,也就是AI云原生架构。
但是,由于AI云原生架构下日志量级较大且种类繁杂,现有的日志处理方法无法直接应用于AI云原生架构,而且存在运维成本较高的问题。
发明内容
本公开提供了一种用于日志处理方法、装置和系统。
根据本公开的第一方面,提供了一种日志处理方法,包括:接收日志采集任务,其中,日志采集任务用于采集初始日志,初始日志至少包括:容器集群包含的目标容器的日志;对日志采集任务进行解析,生成多个日志采集组件对应的配置文件;将多个日志采集组件中的目标日志采集组件部署到目标对象,其中,目标对象为目标容器所属的目标节点或目标容器组;基于目标日志采集组件对应的目标配置文件,通过目标日志采集组件对初始日志进行收集。
根据本公开的第二方面,提供了一种日志处理装置,包括:任务接收模块,用于接收日志采集任务,其中,日志采集任务用于采集初始日志,初始日志至少包括:容器集群包含的目标容器的日志;文件生成模块,用于对日志采集任务进行解析,生成多个日志采集组件对应的配置文件;组件部署模块,用于将多个日志采集组件中的目标日志采集组件部署到目标对象,其中,目标对象为目标容器所属的目标节点或目标容器组;日志收集模块,用于基于目标日志采集组件对应的目标配置文件,通过目标日志采集组件对初始日志进行收集。
根据本公开的第三方面,提供了一种日志处理系统,包括:日志管理设备,用于接收日志采集任务,并对日志采集任务进行解析,生成多个日志采集组件对应的配置文件,其中,日志采集任务用于采集初始日志,初始日志至少包括:容器集群包含的目标容器的日志;目标日志采集组,部署在目标对象,用于基于目标日志采集组件对应的目标配置文件,对初始日志进行收集,其中,目标对象为目标容器所属的目标节点或目标容器组。
根据本公开的第四方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的方法。
根据本公开的第五方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行根据上述的方法。
根据本公开的第六方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现根据上述的方法。
采用本公开上述实施例提供的方案,通过从多个日志采集组件中确定目标日志采集组件,并通过对日志采集任务进行解析生成目标配置文件,从而达到支持丰富的第三方软件,降低运维成本,快速且大规模收集各类日志的效果,进而解决了相关技术中的日志处理方法无法直接应用于AI云原生架构,而且运维成本较高的问题。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的一种日志处理方法的流程图;
图2是根据本公开实施例的一种可选的日志采集流程的示意图;
图3是根据本公开实施例的一种可选的日志聚合流程的示意图;
图4是根据本公开实施例的一种可选的日志查询报警流程的示意图;
图5是根据本公开实施例的一种日志处理装置的示意图;
图6是根据本公开实施例的一种日志处理系统的示意图;
图7是用来实现本公开实施例的日志处理方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
容器编排系统的原生能力并不能完美运行AI的工作负载。多集群多租户管理、GPU工作负载调度、分布式训练、推理等,都需要引入大量第三方组件,加上原有的业务逻辑,最终的集群环境是复杂动态的,在这种环境下,可观测性对于快速定位和诊断问题是架构的重点。在这其中,日志作为三大可观测性要素(日志,监控,追踪)之一尤为重要,例如AI的训练需要很长时间才能完成,从几小时到几天不等,通过日志可以了解到当前训练的进度,再比如线上推理服务,可以通过日志查看推理的响应情况,进行异常请求监控报警。
云原生架构下的日志平台方案较物理机,虚拟机场景的日志架构设计存在以下差异:
1.环境动态性强,在kubernetes(容器集群管理系统)系统中,机器宕机,上下线,Pod(容器组)销毁,扩缩容是常态,在极端情况下日志的存在是瞬时的(例如Pod启动失败销毁后Pod日志就不可见了),日志数据的采集服务必须实时采集到服务端,且日志采集程序能后适应这种动态性极强的场景。
2.日志形式更加丰富,宿主机的日志,容器的标准输入输出,容器内文件,容器事件,kubernetes系统事件等信息都需要采集。且请求链路涉及Ingress(入口),Service(服务),Pod等多个组件,涉及多种基础设施,日志种类新增较多。
AI云原生架构下的日志平台方案相较于传统Web(互联网总称)服务在云原生架构下的设计也存在一些区别:
1.多集群多租户应用与维护挑战,在传统Web服务中基本不存在多集群多租户的需求,业务整体性强,一般单一集群单一机器架构即可满足一个大型业务的需求,在AI场景下,异构计算较多,程序往往分布在不同架构的机器上,也需要通过租户来隔离资源,这也是日志平台需要考虑的。
2.存在私有化需求,存在对日志方案继承复用或者灵活组合,在私有化场景下不同的甲方对日志方案有不同的需求,统一的技术选型无法应对多变的需求。
3.日志量级不定,日志种类繁杂,传统Web服务软件框架,编程语言较为单一,日志较为规整。AI场景下引入第三方开源软件较多,无法很好规约日志的输出位置,输出格式。
另外,相关技术主要基于开源组件Elastic Search(搜索服务器)技术的全流程解决方案,但是方案规模复杂和臃肿,对资源要求相对较高,日志数据存储在Elastic Search中,为了支持日志内容检索,需要对日志内容进行分词并建立全文索引,可能导致索引数据占用空间大于日志数据,在面对大量日志数据场景下,对存储资源要求较高。大量日志数据场景下,检索日志数据消耗资源较大。其次,Elastic Search技术相对封闭,不够灵活,无法和其他开源组件做配合。缺乏监控报警,多集群等功能,在AI云原生架构下,无法直接使用,围绕其做二次开发成本也比较高。
为了解决上述问题,本公开提供了一种面向AI云原生架构的日志平台方案,本方案对日志平台的重要组件进行合理抽象分层,允许用户组件化搭配各类日志组件,通过高度的自动化机制降低运维成本。
根据本公开的实施例,本公开还提供了一种日志处理方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本公开实施例的一种日志处理方法的流程图,如图1所示,该方法包括:
步骤S102,接收日志采集任务,其中,日志采集任务用于采集初始日志,初始日志至少包括:容器集群包含的目标容器的日志。
上述步骤中的容器集群可以是AI云原生架构下的kubernetes集群,不同租户之间相互隔离资源。在AI云原生架构下,初始日志不仅仅可以是目标容器标准输出日志、目标容器内文件日志,还可以是目标容器所在节点的系统日志,以及容器编排系统事件等,但不仅限于此。对于不同租户,需要收集的初始日志不同。日志采集任务可以包含日志类型、日志位置、日志过滤、日志正则匹配、日志内容替换、日志租户配置等内容,但不仅限于此。
为了方便针对不同租户进行不同类型的日志的收集,在一种可选的实施例中,可以为用户提供一个Web UI(User Interface,用户界面)界面,用户通过该界面可以生成日志采集任务,并将该日志采集任务下发至容器集群;在另一种可选的实施例中,用户可以通过命令行工具生成日志采集任务,并将该日志采集任务下发至容器集群。
步骤S104,对日志采集任务进行解析,生成多个日志采集组件对应的配置文件。
在本公开实施例中,由于AI云原生架构支持多种开源日志采集组件,例如Filebeat(日志文件),Fluentd(数据收集框架),Promtail(日志监控系统)等,但是,不同开源日志采集组件具备被不同的配置文件格式和配置内容。在此基础上,为了方便简化用户操作,避免用户需要记忆不同开源日志采集组件对应的配置规则,可以向用户提供一种领域特定语言(Domain-Specific Language,简称为DSL)作为配置母版,从而用户只需要记忆配置母版的规则即可。在一种可选的实施例中,在接收到日志采集任务之后,可以通过特定的数据结构组合和算法将日志采集任务解析成不同开源日志采集组件对应的配置文件。
步骤S106,将多个日志采集组件中的目标日志采集组件部署到目标对象,其中,目标对象为目标容器所属的目标节点或目标容器组。
在本公开实施例中,不同租户所创建的日志采集任务不同,相应需要使用得日志采集组件也不同,因此,需要针对当前用户,从多个日志采集组件中确定该用户需要使用得日志采集组件,得到目标日志采集组件。
通常日志以标准输出、文件两种形式存在,在容器场景下,日志集中在容器标准输出与容器内部文件,对于容器标准输出,可以将目标日志采集组件部署在目标节点,对于容器内部文件,不同的容器因其具备的业务的差异,无法做到标准化的路径分布,可以将目标日志采集组件部署在目标容器组中,并通过共享文件机制实现容器内部文件读取的目的。
步骤S108,基于目标日志采集组件对应的目标配置文件,通过目标日志采集组件对初始日志进行收集。
在一种可选的实施例中,为了确保目标日志采集组件可以实现日志收集的目的,可以基于目标日志采集组件对应的目标配置文件对目标日志采集组件进行配置,配置完成后的目标日志采集组件可以完成用户所需的日志采集任务。
通过本公开上述实施例,在接收到日志采集任务之后,对日志采集任务进行解析,生成多个日志采集组件对应的配置文件,另外,将多个日志采集组件中的目标日志采集组件部署到目标对象,进一步基于目标日志采集组件对应的目标配置文件,通过目标日志采集组件对初始日志进行收集,实现了面向AI云原生架构的日志处理的目的。容易注意到的是,由于目标日志采集组件是从多个日志采集组件中确定的,目标配置文件是对日志采集任务进行解析生成的,从而达到支持丰富的第三方开源软件,降低运维成本,快速且大规模收集各类日志的效果,进而解决了相关技术中的日志处理方法无法直接应用于AI云原生架构,而且运维成本较高的问题。
可选地,对日志采集任务进行解析,生成多个日志采集组件对应的配置文件包括:基于预设数据结构对日志采集任务进行解析,得到多个配置字段;基于每个日志采集组件对应的数据结构对多个配置字段进行组合,生成每个日志采集组件对应的配置文件。
上述的预设数据结构可以是预先设定的配置母版对应的数据结构,也即领域特定语言对应的数据结构。配置字段可以是日志采集任务包含的日志类型、日志位置、日志过滤、日志正则匹配、日志内容替换、日志组合配置等字段。
在一种可选的实施例中,对于不同用户创建的日志采集任务,可以通过同一个预设数据结构对日志采集任务进行解析,得到日志采集任务包含的多个配置字段的字段值,进一步按照不同日志采集组件对应的数据结构对所有配置字段的字段值进行组合,从而生成不同日志采集组件的配置文件。
需要说明的是,用户可以创建自定义的配置从而满足多种多样的配置需求。
通过上述步骤,通过预设数据结构对日志采集任务进行解析,并通过不同日志采集组件对应的数据结构生成不同日志采集组件对应的配置文件,使得用户在创建日志采集任务的时候只需要记忆预设数据结构即可动态适配多种日志采集组件。
可选地,在目标对象为目标容器所属的目标容器组的情况下,将多个日志采集组件中的目标日志采集组件部署到目标对象包括:基于目标容器的目标标识信息,确定目标容器组和目标日志采集组件;基于目标日志采集组件创建旁路容器,其中,旁路容器用于基于文件共享机制对初始日志进行收集;将旁路容器插入至目标容器组。
上述步骤中的目标标识信息可以是目标容器的容器标签,例如,可以是预先分配给目标容器的唯一的ID(Identity document,身份标识号码),但不仅限于此。
在一种可选的实施例中,对于容器内部文件,可以读取目标容器的容器标签,基于容器标签可以确定创建日志采集任务的租户,然后基于该租户对应的具有特定标签的容器组(Pod)确定目标容器组,并基于该租户希望使用得日志采集组件的类型确定目标日志采集组件。进一步地,基于创建旁路容器(SideCar),在该容器中部署目标日志采集组件,并将旁路容器插入到目标容器所属的容器组,形成新的容器组。完成后,新的容器组包含日志采集的能力,可以将日志输出到日志中转队列或日志聚合组件。
通过上述步骤,通过创建旁路容器,并插入到目标容器所属的目标容器组,实现对于容器内容文件进行收集的目的。
可选地,基于目标容器的目标标识信息,确定目标容器组和目标日志采集组件包括:获取日志采集任务对应的配置对象和日志采集任务对应的配置内容,其中,配置对象用于表征不同标识信息对应的容器组,配置内容用于表征不同标识信息对应的日志采集组件;获取配置对象中目标标识信息对应的容器组,得到目标容器组;获取配置内容中目标标识信息对应的日志采集组件,得到目标日志采集组件。
上述步骤中的配置对象和配置内容可以是存储在容器调度平台内的自定义对象(Custom Resource Definition,CRD),配置对象是不同租户对应的具有特定标签的容器组,配置内容是对于上述的容器组,日志路径和选用的日志采集组件的类型。
在一种可选的实施例中,用户可以根据日志采集需要,预先定义配置对象和配置内容,并通过不同标识信息进行区分,从而可以基于目标容器的目标标识信息确定用户希望使用得目标日志采集组件,并确定目标日志采集组件需要部署的目标容器组。
通过上述步骤,通过配置对象和配置内容确定目标容器组和目标日志采集组件,使得用户可以根据需要对配置对象和配置内容进行修改,达到提高日志处理方法的适配度,降低运维成本的效果。
下面对本公开一种优选的面向AI云原生架构的日志平台方案进行详细说明。针对AI云原生架构,整个日志平台包括日志平台管理服务和容器调度平台kubernetes,并且,可以将整个日志平台划分为三个层次内的若干模块,具体解释如下:
第一层为数据采集层,具体包括开源采集日志软件配置生成器、开源日志采集软件自动注入器以及日志采集组件实体等三个模块。开源采集日志软件配置生成器定义了一种DSL作为配置母版,并且可以通过一定的数据结构组合和算法将配置母版解析成不同开源软件的配置文件。开源日志采集软件自动注入器分为自动注入器系统和自动注入器定义,自动注入器定义是存储在容器调度平台内的自定义对象,主要内容包含配置对象和配置内容,配置对象是租户下具有特定标签的容器组,配置内容是对于这些特定的容器组,他们的日志路径,选用日志采集器的类型。在做好配置后,在业务系统向容器调度系统发出请求后,请求会先被转发到自动注入系统,系统首先查找到自动注入器定义,根据容器创建请求解析容器标签,将旁路容器插入到业务容器所属的容器组,形成新的容器组。
第二层为数据集合层,具体包括日志聚合器定义、日志聚合器流水线定义和日志聚合器实体等第三个模块。日志聚合器定义是存储在容器调度平台内的自定义对象,主要包含日志聚合器使用软件,日志聚合器软件地址,服务端口等,此处的日志聚合器可以定义为外部软件,例如公有云上的Elastic Search集群,也可以定义为内部软件,定义为内部软件会在容器调度集群内部创建出来对应实体。日志聚合器流水线是存储在容器调度平台内的自定义对象或者是存储在容器调度平台外部的数据库(当数据面临跨集群处理时),组合一个至多个日志聚合器成为一个流水线,即允许多个聚合器之间组成上下的数据流转和联系。
第三层为数据查询层,具体包括数据查询组件定义、数据监控报警定义和数据查询组件实体。数据查询组件定义是存储在容器调度平台内的自定义对象,包含使用的数据查询实体使用的软件,数据查询软件地址等,此处数据查询可以是外部软件,例如公有云上的Grafana(可视化套件),也可以定义为内部软件,定义为内部软件会在容器调度集群内部创建出来对应实体。数据监控报警定义作为一种跨集群的定义,存储在容器调度平台外的系统数据库内,定义了一种领域特定语言(DSL)作为配置母版,配置母版包含报警类型,报警触发条件,监控规则,监控检查频率,告警策略等。
另外,整个日志平台还可以包括:协调器,包含多个存储在容易调度平台的自定义对象,这些自定义对象在提交存储请求到容器调度平台处于待创建状态,协调器负责调用容器调度平台相关接口进行创建,运维等操作,同时也会实时收集当前集群的日志收集情况,而且,协调器在每一个集群仅存在一个。
日志平台管理服务独立于容器调度平台的多个集群外,通过同步安装在各个集群的协调器汇总同步各个集群的日志可观测信息,同时将不同租户配置的配置信息以容器调度平台内的自定义对象的形式下发到各个集群,将一些必要信息存储在数据库内。
进一步地,可以对日志平台管理服务进行可视化,可以通过Web UI更加快捷的看到所有容器调度平台的日志可观测性状态,也可以动态下发一些日志收集任务。
针对于上述的日志平台,提供了如图2所示的日志采集流程,其中,实线表示控制逻辑,虚线表示日志传输方向。如图2所示,开关日志采集软件配置生成器部署在日志平台管理服务中,开源日志采集软件自动注入器、协调器和日志采集组件实体部署在容器调度平台kubernetes。用户可以通过多集群多租户组件访问日志平台管理服务,并上传日志采集任务,开源日志采集软件配置生成器在接收到日志采集任务之后,可以将日志采集任务作为配置母版,并将配置母版解析成不同开源软件的配置文件,基于配置文件对开源日志采集软件进行配置,配置完成后的开源日志采集软件可以通过开源日志采集软件自动注入器部署到调度平台节点中。开源日志采集软件自动注入器可以自动生成自定义对象标准输出和自定义对象容器内文件,自定义对象标准输出和自定义对象容器内文件可以提交存储请求到协调器,从而协调器可以在调度平台节点上创建日志采集组件实体,收集标准输出的日志,并在业务容器组内创建日志采集组件实体,通过共享文件机制收集日志文件,所有日志采集组件实体可以将收集到的日志传输给日志聚合器,此处的日志聚合器可以部署在集群内或集群外。
可选地,该方法还包括:接收至少一个日志聚合组件的第一配置信息;基于第一配置信息,对至少一个日志聚合组件进行部署;通过部署的至少一个日志聚合组件对收集到的日志进行聚合处理。
上述的日志聚合组件可以是开源中间软件,如Fluentd,Kafka,也可以是专业日志聚合器,例如,Elastic Search,Loki(日志系统)等,但不仅限于此。第一配置信息可以是日志聚合器使用软件,日志聚合器软件地址,服务端口等,此处的日志聚合器可以采用外部软件或内部软件,但不仅限于此。
在一种可选的实施例中,用户可以创建并下发日志聚合组件的第一配置信息,从而可以基于第一配置信息对日志聚合组件进行配置,对于采用外部软件的日志聚合组件,可以将配置好的日志聚合组件部署在公有云上的Elastic Search集群;对于采用内部软件的日志聚合组件,可以将配置好的日志聚合组件部署在容器集群内。所有配置好的日志聚合组件可以从日志采集组件获取收集到的日志,并对日志进行聚合处理。
通过上述步骤,通过第一配置信息对不同的日志聚合组件进行部署,达到支持丰富的第三方软件,降低运维成本,快速且大规模处理各类日志的效果。
可选地,第一配置信息包括:至少一个日志聚合组件的部署类型,基于第一配置信息,对至少一个日志聚合组件进行部署包括:在部署类型为外部部署的情况下,将至少一个日志聚合组件部署在容器集群外部的目标集群;在部署类型为内部部署的情况下,将至少一个日志聚合组件部署在容器集群内部。
上述的目标集群可以是容器集群外部公有云上的集群,例如可以是ElasticSearch集群,但不仅限于此。
在一种可选的实施例中,对于采用外部软件的日志聚合组件,用户可以配置该日志聚合组件的部署类型为外部部署,从而可以将日志聚合组件部署到目标集群;对于采用内部软件的日志聚合组件,用户可以配置该日志聚合组件的部署类型为内部部署,从而可以在容器集群内部创建出来对应实体,实现将日志聚合组件部署在容器集群内部。
通过上述步骤,通过将不同部署类型的日志聚合组件部署在容器集群的外部或内部,达到动态部署多种日志聚合组件的效果。
可选地,第一配置信息包括:多个日志聚合组件的部署关系,基于第一配置信息,对至少一个日志聚合组件进行部署包括:基于部署关系,将多个日志聚合组件组合成日志聚合组件流水线;对日志聚合组件流水线进行部署。
上述的部署关系可以是多个日志聚合组件之间组成上下的数据流转和联系。
在一种可选的实施例中,用户可以针对多个日志聚合组件,设置部署关系,从而在容器集群内部,将多个日志聚合组件组合成一个日志聚合组件流水线,通过该流水线,日志数据可以传输至存储类服务,传输过程可以支持压缩、自定义Partition(分区)、以及行列等各种存储格式,也可以传输至各种大数据系统,例如Spark(数据分析),Flink(流处理框架)进行消费。
通过上述步骤,通过将多个日志聚合组件组合成组件流水线,使得多个日志聚合组件可以对日志进行各种不同类型的操作,满足不同的处理需求。
针对上述实施例中的日志平台,提供了如图3所示的日志聚合流程,其中,实线表示控制逻辑,虚线表示日志传输方向。如图3所示,日志聚合定义、日志聚合器流水线定义和日志聚合器部署在容器集群或公有云集群中。用户可以通过多集群多租户组件访问日志平台管理服务,并通过日志聚合器定义来定义日志聚合器的基本软件,通过日志聚合流水线定义来定义日志聚合器的流水线。自定义对象日志聚合器和自定义对象日志聚合器流水线可以发送到容器集群的协调器和公有云,协调器进行日志聚合器实体的部署,所有聚合器实体部署好以后就可以承接日志采集器发送来的日志,并在处理完毕之后传输给数据查询组件进行处理,数据查询组件可以部署在容器集群内或容器集群外。
对于实例A,上游日志采集器收集到的日志进入最终日志聚合器Elastic Search或者Loki,供下游日志数据查询实体读取;对于实例B,上游日志采集器收集到的日志先进入到一个中间的日志过滤平台Fluentd,按照日志的属性进行分类成多个消息队列的主题(topic),传递进入消息队列中间件Kafka,下游再配置一下最终日志聚合器ElasticSearch或者Loki按照指定主题(Topic)进行数据消费,供下游日志数据查询实体读取;对于实例C,上游日志采集器收集到的日志进入到公有云上的消息队列,由该公有云上的流计算产品进行实时计算消费,另作他用。
可选地,该方法还包括:接收数据查询组件对应的第二配置信息;基于第二配置信息,将数据查询组件部署在容器集群内或容器集群外部的目标集群;响应于接收到的日志查询请求,通过数据查询组件获取日志查询请求对应的日志查询结果;输出日志查询结果。
上述的数据查询组件可以是采用开源软件,例如Grafana,Kibana,SuperSet(企业级商业智能),PowerBI(数据可视化工具)等创建的数据查询组件实体。第二配置信息可以包括数据查询组件使用的软件,数据查询软件地址等。此处数据查询组件可以采用外部软件,数据查询组件可以部署在容器集群的外部,例如公有云上的Grafana,也可以采用内部软件,数据查询组件可以部署在容器集群内部。目标集群可以是容器集群外部的公有云中的集群,例如,可以是Grafana集群。
在一种可选的实施例中,用户可以首先进行数据查询组件定义,生成第二配置信息,并将第二配置信息发送至容器集群,从而可以基于第二配置信息对数据查询组件进行配置,对于采用外部软件的数据查询组件,可以在容器集群外部的目标集群中创建出数据查询组件对应的实体,实现将数据查询组件部署在容器集群外部;对于采用内部软件的数据查询组件,可以在容器集群内部创建出数据查询组件对应的实体,实现将数据查询组件部署在容器集群内部。
如果用户需要查看日志,用户可以在UI界面上创建日志查询请求,并通过已经部署好的数据查询组件获取到日志查询请求对应的日志查询结果,并显示在UI界面上,供用户查看。
通过上述步骤,通过第二配置信息对不同的数据查询组件进行部署,达到支持丰富的第三方软件,降低运维成本,快速且大规模查询各类日志的效果。
可选地,通过数据查询组件获取日志查询请求对应的日志查询结果包括:通过数据查询组件获取目标日志聚合组件输出的多个日志,其中,目标日志聚合组件部署在容器集群内部;确定多个日志中日志查询请求对应的目标日志;基于目标日志生成日志查询结果。
在一种可选的实施例中,对于部署在容器集群内部和容器集群外部的数据查询组件,均可以从部署在容器集群内部的日志聚合器,并从日志聚合器输出的多个日志中确定用户希望查看的目标日志,并将所有目标日志进行组合,得到最终反馈给用户的日志查询结果,或者,将所有目标日志的相关信息进行汇总,得到最终反馈给用户的日志查询结果。
通过上述步骤,通过获取部署在容器集群内部的日志聚合组件输出的日志,实现各类日志快速查询,降低运维成本的效果。
可选地,该方法还包括:接收日志报警任务;对日志报警任务进行解析,生成数据查询组件对应的报警配置文件;基于报警配置文件,通过数据查询组件生成报警信息;发送报警信息至目标终端。
上述的日志报警任务可以包含报警类型,报警触发条件,监控规则,监控检查频率,告警策略等,但不仅限于此。目标终端可以是容器集群管理人员的移动终端,例如,智能手机、平板电脑、掌上电脑、笔记本电脑等,但不仅限于此。
为了方便针对不同租户进行不同类型的日志的收集,在一种可选的实施例中,可以为用户提供一个Web UI界面,用户通过该界面可以生成日志采集任务,并将该日志采集任务下发至容器集群;在另一种可选的实施例中,用户可以通过命令行工具生成日志采集任务,并将该日志采集任务下发至容器集群。
在本公开实施例中,由于AI云原生架构支持多种开源数据查询组件,但是,不同开源数据查询组件具备被不同的配置文件格式和配置内容。在此基础上,为了方便简化用户操作,避免用户需要记忆不同开源数据查询组件对应的配置规则,可以向用户提供一种领域特定语言作为配置母版,从而用户只需要记忆配置母版的规则即可。在一种可选的实施例中,在接收到日志报警任务之后,可以通过特定的数据结构组合和算法将日志报警任务解析成编译成LogQL(Loki系统使用语言),Elastic Search SQL(Elastic Search系统使用语言),PromQL(Prometheus系统使用语言)。
数据查询组件可以按照报警配置文件与多种日志聚合组件进行互动,在确定满足报警触发条件时,可以生成相应的报警信息,并按照告警策略将报警信息直接发送给目标终端上安装的客户端,或者通过短信、电子邮件等方式发送给目标终端,从而用户可以即时查看到报警信息,并进行相关操作。
通过上述步骤,通过解析日志报警任务生成报警配置文件,并基于报警配置文件进行报警,从而达到支持丰富的第三方开源软件,降低运维成本,快速且大规模日志监控报警的效果。
针对于上述实施例中的日志平台,提供了如图4所示的日志查询报警流程,其中,实线表示控制逻辑,虚线表示日志传输方向。如图4所示,数据查询组件定义存储在容器调度平台中,数据查询组件实体部署在容器调度平台和公有云中。用户可以通过多集群多租户组件访问日志平台管理服务,并进行数据查询组件定义,也可以直接引用外部数据查询组件实体提供的服务。如果用户需要数据监控报警,则进行相关数据监控报警定义。协调器收到定义后,可以进行数据查询实体的声明式创建,不同数据查询组件实体可以实现日志实时查询,监控预警等功能。用户可以通过Web UI界面创建数据查询请求,通过实现日志实时查询功能的数据查询组件实体从日志聚合器获取用户希望查询的日志,并返回给用户查看。实现监控预警功能的数据查询组件实体可以从日志聚合器获取日志,并按照报警渠道进行监控报警。
可选地,该方法还包括:接收多个协调器发送的日志处理信息,其中,多个协调器分别部署在多个容器集群中,每个协调器用于采集部署有该协调器的容器集群的日志处理状态;发送预设形式的配置信息至多个协调器。
上述的日志处理状态可以包括不同组件部署情况、运行情况、日志收集情况等,此处的日志收集情况可以包含容器集群内有哪些被收集的日志组件,有哪些容器的日志处于被收集状态,哪些容器的日志不是被收集状态,但不仅限于此。
上述的预设行驶可以是容器调度平台内的自定义对象的形式。
在一种可选的实施例中,可以在每个容器集群内部部署一个协调器,并通过同步协调器会中同步各个容器集群的日志处理状态,同时,将不同租户配置的配置信息以容器调度平台内的自定义对象(CRD)的形式下发到各个集群,将一些必要信息存储在数据库内。
而且,可以通过UI界面将日志处理状态进行可视化,方便用户快速查看。
通过上述步骤,通过多个协调器采集容器集群的日志处理状态,并下发预设形式的配置信息,达到全面日志监控,降低运维成本的效果。
本公开的技术方案中,所涉及的日志的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开提供了一种日志处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下使用得,术语“模块”、“单元”可以实现预定功能的软件和/或硬件的组合,尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或软件和硬件的组合的实现也是可能并被构想的。
图5是根据本公开实施例的一种日志处理装置的示意图,如图5所示,该装置包括:
任务接收模块52,用于接收日志采集任务,其中,日志采集任务用于采集初始日志,初始日志至少包括:容器集群包含的目标容器的日志;
文件生成模块54,用于对日志采集任务进行解析,生成多个日志采集组件对应的配置文件;
组件部署模块56,用于将多个日志采集组件中的目标日志采集组件部署到目标对象,其中,目标对象为目标容器所属的目标节点或目标容器组;
日志收集模块58,用于基于目标日志采集组件对应的目标配置文件,通过目标日志采集组件对初始日志进行收集。
可选地,文件生成模块包括:解析单元,用于基于预设数据结构对日志采集任务进行解析,得到多个配置字段;文件组合单元,用于基于每个日志采集组件对应的数据结构对多个配置字段进行组合,生成每个日志采集组件对应的配置文件。
可选地,组件部署模块包括:确定单元,用于基于在目标对象为目标容器所属的目标容器组的情况下,目标容器的目标标识信息,确定目标容器组和目标日志采集组件;容器创建单元,用于基于目标日志采集组件创建旁路容器,其中,旁路容器用于基于文件共享机制对初始日志进行收集;容器插入单元,用于将旁路容器插入至目标容器组。
可选地,确定单元还用于执行如下功能:获取日志采集任务对应的配置对象和日志采集任务对应的配置内容,其中,配置对象用于表征不同标识信息对应的容器组,配置内容用于表征不同标识信息对应的日志采集组件;获取配置对象中目标标识信息对应的容器组,得到目标容器组;获取配置内容中目标标识信息对应的日志采集组件,得到目标日志采集组件。
可选地,该装置还包括:信息接收模块,用于接收至少一个日志聚合组件的第一配置信息;组件部署模块还用于基于第一配置信息,对至少一个日志聚合组件进行部署;聚合处理模块,用于通过部署的至少一个日志聚合组件对收集到的日志进行聚合处理。
可选地,第一配置信息包括:至少一个日志聚合组件的部署类型,组件部署模块还用于在部署类型为外部部署的情况下,将至少一个日志聚合组件部署在容器集群外部的目标集群;在部署类型为内部部署的情况下,将至少一个日志聚合组件部署在容器集群内部。
可选地,第一配置信息包括:多个日志聚合组件的部署关系,组件部署模块包括:组件组合单元,用于基于部署关系,将多个日志聚合组件组合成日志聚合组件流水线;组件部署单元,用于对日志聚合组件流水线进行部署。
可选地,该装置还包括:信息接收模块,用于接收数据查询组件对应的第二配置信息;组件部署模块还用于基于第二配置信息,将数据查询组件部署在容器集群内或容器集群外部的目标集群;日志查询模块,用于响应于接收到的日志查询请求,通过数据查询组件获取日志查询请求对应的日志查询结果;结果输出模块,用于输出日志查询结果。
可选地,日志查询模块包括:日志获取单元,用于通过数据查询组件获取目标日志聚合组件输出的多个日志,其中,目标日志聚合组件部署在容器集群内部;日志确定单元,用于确定多个日志中日志查询请求对应的目标日志;结果生成单元,用于基于目标日志生成日志查询结果。
可选地,任务接收模块还用于接收日志报警任务;文件生成模块还用于对日志报警任务进行解析,生成数据查询组件对应的报警配置文件;信息生成模块,用于基于报警配置文件,通过数据查询组件生成报警信息;信息发送模块,用于发送报警信息至目标终端。
可选地,信息接收模块还用于接收多个协调器发送的日志处理信息,其中,多个协调器分别部署在多个容器集群中,每个协调器用于采集部署有该协调器的容器集群的日志处理状态;信息发送模块还用于发送预设形式的配置信息至多个协调器。
根据本公开的实施例,本公开提供了一种日志处理系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。
图6是根据本公开实施例的一种日志处理系统的示意图,如图6所示,该系统600包括:
日志管理设备62,用于接收日志采集任务,并对日志采集任务进行解析,生成多个日志采集组件对应的配置文件,其中,日志采集任务用于采集初始日志,初始日志至少包括:容器集群包含的目标容器的日志。
上述的日志管理设备可以是如图2至图5中所示的日志平台管理服务对应的设备。
目标日志采集组件64,部署在目标对象,用于基于目标日志采集组件对应的目标配置文件,对初始日志进行收集,其中,目标对象为目标容器所属的目标节点或目标容器组。
可选地,日志管理设备包括:
配置生成器,用于基于预设数据结构对日志采集任务进行解析,得到多个配置字段,并基于每个日志采集组件对应的数据结构对多个配置字段进行组合,生成每个日志采集组件对应的配置文件。
上述的配置生成器可以是如图2所示的开源日志采集软件配置生成器。
可选地,该系统还包括:
组件注入器,用于在目标对象为目标容器所属的目标容器组的情况下,基于目标容器的目标标识信息,确定目标容器组和目标日志采集组件,基于目标日志采集组件创建旁路容器,并将旁路容器插入至目标容器组,其中,旁路容器用于基于文件共享机制对初始日志进行收集。
上述的组件注入器可以是如图2所示的开源日志采集软件自动注入器。
可选地,组件注入器包括:
注入器定义,用于获取日志采集任务对应的配置对象和日志采集任务对应的配置内容,其中,配置对象用于表征不同标识信息对应的容器组,配置内容用于表征不同标识信息对应的日志采集组件;
注入器系统,用于获取配置对象中目标标识信息对应的容器组,得到目标容器组,并获取配置内容中目标标识信息对应的日志采集组件,得到目标日志采集组件。
可选地,该系统还包括:
至少一个日志聚合组件,用于对收集到的日志进行聚合处理;
日志管理设备还用于接收至少一个日志聚合组件的第一配置信息;
协调器,用于基于第一配置信息对至少一个日志聚合组件进行部署。
可选地,第一配置信息包括:至少一个日志聚合组件的部署类型,协调器还用于在部署类型为外部部署的情况下,将至少一个日志聚合组件部署在容器集群外部的目标集群;在部署类型为内部部署的情况下,将至少一个日志聚合组件部署在容器集群内部。
可选地,第一配置信息包括:多个日志聚合组件的部署关系,该系统还包括:
流水线,用于基于部署关系,将多个日志聚合组件组合成日志聚合组件流水线。
上述的流水线可以是如图3所示的日志聚合器流水线。
协调器还用于对日志聚合组件流水线进行部署。
可选地,该系统还包括:
数据查询组件,用于响应于日志管理设备接收到的日志查询请求,获取日志查询请求对应的日志查询结果;
日志管理设备还用于接收数据查询组件对应的第二配置信息,并输出日志查询结果;
协调器用于基于第二配置信息,将数据查询组件部署在容器集群内或容器集群外部的目标集群。
可选地,数据查询组件还用于获取目标日志聚合组件输出的多个日志,确定多个日志中日志查询请求对应的目标日志,并基于目标日志生成日志查询结果,其中,目标日志聚合组件部署在容器集群内部。
可选地,日志管理设备还用于接收日志报警任务,并对日志报警任务进行解析,生成数据查询组件对应的报警配置文件;信息生成模块还用于生成报警信息,并发送报警信息至目标终端。
可选地,该系统还包括:
多个协调器,分别部署在多个容器集群中,每个协调器用于采集部署有该协调器的容器集群的日志处理状态;
日志管理设备还用于接收多个协调器发送的日志处理信息,并发送预设形式的配置信息至多个协调器。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如日志处理方法。例如,在一些实施例中,日志处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的日志处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行日志处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (9)

1.一种日志处理方法,包括:
接收日志采集任务,其中,所述日志采集任务用于采集初始日志,所述初始日志为容器集群包含的目标容器的日志;
对所述日志采集任务进行解析,生成多个日志采集组件对应的配置文件;
将所述多个日志采集组件中的目标日志采集组件部署到目标对象,其中,所述目标对象为所述目标容器所属的目标节点或目标容器组;
基于所述目标日志采集组件对应的目标配置文件,通过所述目标日志采集组件对所述初始日志进行收集;
其中,在所述目标对象为所述目标容器所属的目标容器组的情况下,将所述多个日志采集组件中的目标日志采集组件部署到目标对象包括:
基于所述目标容器的目标标识信息,确定所述目标容器组和所述目标日志采集组件;
基于所述目标日志采集组件创建旁路容器,其中,所述旁路容器用于基于文件共享机制对所述初始日志进行收集;
将所述旁路容器插入至所述目标容器组;
其中,基于所述目标容器的目标标识信息,确定所述目标容器组和所述目标日志采集组件包括:
获取所述日志采集任务对应的配置对象和所述日志采集任务对应的配置内容,其中,所述配置对象用于表征不同标识信息对应的容器组,所述配置内容用于表征不同标识信息对应的日志采集组件;
获取所述配置对象中所述目标标识信息对应的容器组,得到所述目标容器组;
获取所述配置内容中所述目标标识信息对应的日志采集组件,得到所述目标日志采集组件;
其中,还包括:
接收至少一个日志聚合组件的第一配置信息;
基于所述第一配置信息,对所述至少一个日志聚合组件进行部署;
通过部署的所述至少一个日志聚合组件对收集到的日志进行聚合处理;
其中,所述第一配置信息包括:所述至少一个日志聚合组件的部署类型,基于所述第一配置信息,对所述至少一个日志聚合组件进行部署包括:
在所述部署类型为外部部署的情况下,将所述至少一个日志聚合组件部署在所述容器集群外部的目标集群;
在所述部署类型为内部部署的情况下,将所述至少一个日志聚合组件部署在所述容器集群内部;
其中,还包括:
接收数据查询组件对应的第二配置信息;
基于所述第二配置信息,将所述数据查询组件部署在所述容器集群内或所述容器集群外部的目标集群;
响应于接收到的日志查询请求,通过所述数据查询组件获取所述日志查询请求对应的日志查询结果;
输出所述日志查询结果;
其中,通过所述数据查询组件获取所述日志查询请求对应的日志查询结果包括:
通过所述数据查询组件获取目标日志聚合组件输出的多个日志,其中,所述目标日志聚合组件部署在所述容器集群内部;
确定所述多个日志中所述日志查询请求对应的目标日志;
基于所述目标日志生成所述日志查询结果。
2.根据权利要求1所述的方法,其中,对所述日志采集任务进行解析,生成多个日志采集组件对应的配置文件包括:
基于预设数据结构对所述日志采集任务进行解析,得到多个配置字段;
基于每个日志采集组件对应的数据结构对所述多个配置字段进行组合,生成所述每个日志采集组件对应的配置文件。
3.根据权利要求1所述的方法,其中,所述第一配置信息包括:多个日志聚合组件的部署关系,基于所述第一配置信息,对所述至少一个日志聚合组件进行部署包括:
基于所述部署关系,将所述多个日志聚合组件组合成日志聚合组件流水线;
对所述日志聚合组件流水线进行部署。
4.根据权利要求1所述的方法,还包括:
接收日志报警任务;
对所述日志报警任务进行解析,生成所述数据查询组件对应的报警配置文件;
基于所述报警配置文件,通过所述数据查询组件生成报警信息;
发送所述报警信息至目标终端。
5.根据权利要求1至4中任意一项所述的方法,还包括:
接收多个协调器发送的日志处理信息,其中,所述多个协调器分别部署在多个容器集群中,每个协调器用于采集部署有该协调器的容器集群的日志处理状态;
发送预设形式的配置信息至所述多个协调器。
6.一种日志处理装置,包括:
任务接收模块,用于接收日志采集任务,其中,所述日志采集任务用于采集初始日志,所述初始日志至少包括:容器集群包含的目标容器的日志;
文件生成模块,用于对所述日志采集任务进行解析,生成多个日志采集组件对应的配置文件;
组件部署模块,用于将所述多个日志采集组件中的目标日志采集组件部署到目标对象,其中,所述目标对象为所述目标容器所属的目标节点或目标容器组;
日志收集模块,用于基于所述目标日志采集组件对应的目标配置文件,通过所述目标日志采集组件对所述初始日志进行收集;
其中,组件部署模块还用于在所述目标对象为所述目标容器所属的目标容器组的情况下,基于所述目标容器的目标标识信息,确定所述目标容器组和所述目标日志采集组件,基于所述目标日志采集组件创建旁路容器,其中,所述旁路容器用于基于文件共享机制对所述初始日志进行收集,将所述旁路容器插入至所述目标容器组;
其中,组件部署模块还用于获取所述日志采集任务对应的配置对象和所述日志采集任务对应的配置内容,其中,所述配置对象用于表征不同标识信息对应的容器组,所述配置内容用于表征不同标识信息对应的日志采集组件,获取所述配置对象中所述目标标识信息对应的容器组,得到所述目标容器组,获取所述配置内容中所述目标标识信息对应的日志采集组件,得到所述目标日志采集组件,
其中,所述装置用于接收至少一个日志聚合组件的第一配置信息,基于所述第一配置信息,对所述至少一个日志聚合组件进行部署,通过部署的所述至少一个日志聚合组件对收集到的日志进行聚合处理;
其中,所述第一配置信息包括:所述至少一个日志聚合组件的部署类型,该装置还用于在所述部署类型为外部部署的情况下,将所述至少一个日志聚合组件部署在所述容器集群外部的目标集群,在所述部署类型为内部部署的情况下,将所述至少一个日志聚合组件部署在所述容器集群内部;
其中,所述装置还用于接收数据查询组件对应的第二配置信息,基于所述第二配置信息,将所述数据查询组件部署在所述容器集群内或所述容器集群外部的目标集群,响应于接收到的日志查询请求,通过所述数据查询组件获取所述日志查询请求对应的日志查询结果,输出所述日志查询结果;
其中,所述装置还用于通过所述数据查询组件获取目标日志聚合组件输出的多个日志,其中,所述目标日志聚合组件部署在所述容器集群内部,确定所述多个日志中所述日志查询请求对应的目标日志,基于所述目标日志生成所述日志查询结果。
7.一种日志处理系统,包括:
日志管理设备,用于接收日志采集任务,并对所述日志采集任务进行解析,生成多个日志采集组件对应的配置文件,其中,所述日志采集任务用于采集初始日志,所述初始日志至少包括:容器集群包含的目标容器的日志;
目标日志采集组,部署在目标对象,用于基于所述目标日志采集组件对应的目标配置文件,对所述初始日志进行收集,其中,所述目标对象为所述目标容器所属的目标节点或目标容器组;
其中,目标日志采集组还用于在所述目标对象为所述目标容器所属的目标容器组的情况下,基于所述目标容器的目标标识信息,确定所述目标容器组和所述目标日志采集组件;基于所述目标日志采集组件创建旁路容器,其中,所述旁路容器用于基于文件共享机制对所述初始日志进行收集;将所述旁路容器插入至所述目标容器组;
其中,目标日志采集组还用于基于获取所述日志采集任务对应的配置对象和所述日志采集任务对应的配置内容,其中,所述配置对象用于表征不同标识信息对应的容器组,所述配置内容用于表征不同标识信息对应的日志采集组件;获取所述配置对象中所述目标标识信息对应的容器组,得到所述目标容器组;获取所述配置内容中所述目标标识信息对应的日志采集组件,得到所述目标日志采集组件;
其中,所述系统还用于接收至少一个日志聚合组件的第一配置信息;基于所述第一配置信息,对所述至少一个日志聚合组件进行部署;通过部署的所述至少一个日志聚合组件对收集到的日志进行聚合处理;
其中,所述第一配置信息包括:所述至少一个日志聚合组件的部署类型,所述系统还用于在所述部署类型为外部部署的情况下,将所述至少一个日志聚合组件部署在所述容器集群外部的目标集群,在所述部署类型为内部部署的情况下,将所述至少一个日志聚合组件部署在所述容器集群内部;
其中,所述系统还用于接收数据查询组件对应的第二配置信息,基于所述第二配置信息,将所述数据查询组件部署在所述容器集群内或所述容器集群外部的目标集群,响应于接收到的日志查询请求,通过所述数据查询组件获取所述日志查询请求对应的日志查询结果,输出所述日志查询结果;
其中,所述系统还用于通过所述数据查询组件获取目标日志聚合组件输出的多个日志,其中,所述目标日志聚合组件部署在所述容器集群内部,确定所述多个日志中所述日志查询请求对应的目标日志,基于所述目标日志生成所述日志查询结果。
8. 一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法。
9.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-5中任一项所述的方法。
CN202210435811.9A 2022-04-24 2022-04-24 日志处理方法、装置和系统 Active CN114756301B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210435811.9A CN114756301B (zh) 2022-04-24 2022-04-24 日志处理方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210435811.9A CN114756301B (zh) 2022-04-24 2022-04-24 日志处理方法、装置和系统

Publications (2)

Publication Number Publication Date
CN114756301A CN114756301A (zh) 2022-07-15
CN114756301B true CN114756301B (zh) 2023-09-01

Family

ID=82334080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210435811.9A Active CN114756301B (zh) 2022-04-24 2022-04-24 日志处理方法、装置和系统

Country Status (1)

Country Link
CN (1) CN114756301B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115757041B (zh) * 2022-11-28 2023-11-21 安超云软件有限公司 可动态配置的多集群日志采集的方法及应用

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9578063B1 (en) * 2015-11-20 2017-02-21 International Business Machines Corporation Application self-service for assured log management in cloud environments
CN111258722A (zh) * 2020-02-14 2020-06-09 苏州浪潮智能科技有限公司 一种集群的日志采集方法、系统、设备以及介质
CN111625419A (zh) * 2020-05-15 2020-09-04 浪潮电子信息产业股份有限公司 一种日志采集方法、系统、设备及计算机可读存储介质
CN111782470A (zh) * 2020-06-30 2020-10-16 中国工商银行股份有限公司 分布式容器日志数据处理方法及装置
CN111930700A (zh) * 2020-07-13 2020-11-13 车智互联(北京)科技有限公司 一种分布式日志处理方法、服务器、系统和计算设备
JP2020198046A (ja) * 2019-06-05 2020-12-10 富士通株式会社 情報処理装置、ログ参照プログラム
WO2020258290A1 (zh) * 2019-06-28 2020-12-30 京东方科技集团股份有限公司 日志数据收集方法、日志数据收集装置、存储介质和日志数据收集系统
CN113468111A (zh) * 2021-07-27 2021-10-01 中国银行股份有限公司 一种容器云的日志监控管理系统及方法
CN113688002A (zh) * 2021-07-28 2021-11-23 济南浪潮数据技术有限公司 一种日志采集方法及相关装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9578063B1 (en) * 2015-11-20 2017-02-21 International Business Machines Corporation Application self-service for assured log management in cloud environments
JP2020198046A (ja) * 2019-06-05 2020-12-10 富士通株式会社 情報処理装置、ログ参照プログラム
WO2020258290A1 (zh) * 2019-06-28 2020-12-30 京东方科技集团股份有限公司 日志数据收集方法、日志数据收集装置、存储介质和日志数据收集系统
CN111258722A (zh) * 2020-02-14 2020-06-09 苏州浪潮智能科技有限公司 一种集群的日志采集方法、系统、设备以及介质
CN111625419A (zh) * 2020-05-15 2020-09-04 浪潮电子信息产业股份有限公司 一种日志采集方法、系统、设备及计算机可读存储介质
CN111782470A (zh) * 2020-06-30 2020-10-16 中国工商银行股份有限公司 分布式容器日志数据处理方法及装置
CN111930700A (zh) * 2020-07-13 2020-11-13 车智互联(北京)科技有限公司 一种分布式日志处理方法、服务器、系统和计算设备
CN113468111A (zh) * 2021-07-27 2021-10-01 中国银行股份有限公司 一种容器云的日志监控管理系统及方法
CN113688002A (zh) * 2021-07-28 2021-11-23 济南浪潮数据技术有限公司 一种日志采集方法及相关装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
罗东锋等."基于Docker的大规模日志采集与分析系统".《计算机系统应用》.2017,第26卷(第10期),第82-88页. *

Also Published As

Publication number Publication date
CN114756301A (zh) 2022-07-15

Similar Documents

Publication Publication Date Title
CN107577805B (zh) 一种面向日志大数据分析的业务服务系统
CN107454140A (zh) 一种基于大数据平台的Ceph集群自动化部署方法及系统
US20100070981A1 (en) System and Method for Performing Complex Event Processing
CN110351150A (zh) 故障根源确定方法及装置、电子设备和可读存储介质
US9992269B1 (en) Distributed complex event processing
CN110362544A (zh) 日志处理系统、日志处理方法、终端及存储介质
CN108595316A (zh) 分布式应用的生命周期管理方法、管理器、设备和介质
CN113312191A (zh) 数据分析方法、装置、设备及存储介质
CN109241096A (zh) 数据处理方法、装置和系统
CN113377626B (zh) 基于服务树的可视化统一报警方法、装置、设备和介质
CN113448812A (zh) 微服务场景下的监控告警方法及装置
CN109783151A (zh) 规则变更的方法和装置
US10331484B2 (en) Distributed data platform resource allocator
CN113962597A (zh) 一种数据分析方法、装置、电子设备及存储介质
CN114756301B (zh) 日志处理方法、装置和系统
CN114356692A (zh) 一种应用监控链路的可视化处理方法、装置及存储介质
Wladdimiro et al. Disaster management platform to support real-time analytics
CN112579402A (zh) 一种应用系统故障定位的方法和装置
CN116521664A (zh) 数据仓库的数据监控方法及装置、计算设备、存储介质
CN116955856A (zh) 信息展示方法、装置、电子设备以及存储介质
CN116383207A (zh) 一种数据标签管理方法、装置、电子设备和存储介质
CN115408236A (zh) 一种日志数据审计系统、方法、设备及介质
CN115514618A (zh) 告警事件的处理方法、装置、电子设备和介质
KR101878291B1 (ko) 에너지 빅데이터 관리 시스템 및 그 방법
CN114625763A (zh) 用于数据库的信息分析方法、装置、电子设备和可读介质

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
GR01 Patent grant
GR01 Patent grant