一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种日志采集方法及相关装置与流程

2021-11-25 00:02:00 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别涉及一种日志采集方法、日志采集装置、服务器以及计算机可读存储介质。


背景技术:

2.随着云平台技术的不断发展,出现了容器技术,降低了应用管理难度。在云平台运行了大量的容器实例,容器实例随时被创建调度在不同的集群机器之上。当业务出现问题的时候,技术人员需要查看应用打出的日志进行定位排查,但是日志分布在不同的位置,很难进行查看搜索,因此需要统一的日志管理平台来管理日志。
3.相关技术中,efk(elasticsearch kibana fluentd)技术栈可进行日志的集中收集与展示,elasticsearch用于数据的存储,kibana用于日志的展示,fluentd用于日志的收集。其中,fluentd作为日志收集工具,有很多的日志采集插件,可采集各种日志。但是fluentd的采集哪个路径下的日志由配置文件决定,每次启动之前都需要固定采集的日志文件的路径,面对kubenates下管理的docker容器日志能力不足,如果动态的添加或删除掉容器,收集的文件路径会动态的调整,需要人工手动对配置文件执行调整操作,才能在变动之后对容器进行正常的日志收集操作,增加了人工成本,降低了日志收集的效率。
4.因此,如何提高对于容器进行日志收集操作的效率,降低人工成本是本领域技术人员关注的重点问题。


技术实现要素:

5.本技术的目的是提供一种日志采集方法、日志采集装置、服务器以及计算机可读存储介质,降低对于容器日志进行收集操作的人工成本,提高日志收集操作的效率。
6.为解决上述技术问题,本技术提供一种日志采集方法,包括:
7.根据目标容器的日志路径确定容器日志信息;
8.根据所述容器日志信息从日志采集模板库中匹配对应的日志解析规则;
9.根据所述日志解析规则生成对应的配置文件;
10.根据所述配置文件对所述目标容器进行日志采集。
11.可选的,根据目标容器的预设路径确定容器日志信息,包括:
12.当创建新的容器时,将所述新的容器作为所述目标容器;
13.根据所述目标容器的id确定所述日志路径;
14.将所述目标容器的id、容器信息以及所述日志路径进行组合,得到所述容器日志信息。
15.可选的,根据目标容器的预设路径确定容器日志信息,包括:
16.获取所有容器列表,并将所述所有容器列表中的容器作为目标容器;
17.根据每个所述目标容器的id确定对应所述日志路径;
18.将每个所述目标容器的id、容器信息以及所述日志路径进行组合,得到对应的所
述容器日志信息。
19.可选的,获取所有容器列表,包括:
20.通过dockerapi获取所述所有容器列表。
21.可选的,还包括:
22.按照预设周期判断是否出现删除容器事件;
23.若是,则删除所述删除容器事件对应的容器的配置文件。
24.可选的,根据所述配置文件对所述目标容器进行日志采集,包括:
25.采用fluentd服务根据所述配置文件对所述目标容器进行日志采集。
26.可选的,还包括:
27.当更新所述配置文件时,将所述fluentd服务进行重启。
28.本技术还提供一种日志采集装置,包括:
29.日志信息确定模块,用于根据目标容器的日志路径确定容器日志信息;
30.解析规则匹配模块,用于根据所述容器日志信息从日志采集模板库中匹配对应的日志解析规则;
31.配置文件生成模块,用于根据所述日志解析规则生成对应的配置文件;
32.日志采集模块,用于根据所述配置文件对所述目标容器进行日志采集。
33.本技术还提供一种服务器,包括:
34.存储器,用于存储计算机程序;
35.处理器,用于执行所述计算机程序时实现如上所述的日志采集方法的步骤。
36.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的日志采集方法的步骤。
37.本技术所提供的一种日志采集方法,包括:根据目标容器的日志路径确定容器日志信息;根据所述容器日志信息从日志采集模板库中匹配对应的日志解析规则;根据所述日志解析规则生成对应的配置文件;根据所述配置文件对所述目标容器进行日志采集。
38.通过目标容器的日志路径确定对应的容器日志信息,然后在模板库中匹配日志解析规则,最后根据该日志解析规则生成对应的配置文件,实现对容器进行自动化的配置文件生成过程,而不需要人工手动生成对应的配置文件,降低人工成本,提高了日志采集的效率。
39.本技术还提供一种日志采集装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不做赘述。
附图说明
40.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
41.图1为本技术实施例所提供的一种日志采集方法的流程图;
42.图2为本技术实施例所提供的一种日志采集装置的结构示意图。
具体实施方式
43.本技术的核心是提供一种日志采集方法、日志采集装置、服务器以及计算机可读存储介质,降低对于容器日志进行收集操作的人工成本,提高日志收集操作的效率。
44.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
45.相关技术中,efk技术栈可进行日志的集中收集与展示,elasticsearch用于数据的存储,kibana用于日志的展示,fluentd用于日志的收集。其中,fluentd作为日志收集工具,有很多的日志采集插件,可采集各种日志。但是fluentd的采集哪个路径下的日志由配置文件决定,每次启动之前都需要固定采集的日志文件的路径,面对kubenates下管理的docker容器日志能力不足,如果动态的添加或删除掉容器,收集的文件路径会动态的调整,需要人工手动对配置文件执行调整操作,才能在变动之后对容器进行正常的日志收集操作,增加了人工成本,降低了日志收集的效率。
46.因此,本技术提供一种日志采集方法,通过目标容器的日志路径确定对应的容器日志信息,然后在模板库中匹配日志解析规则,最后根据该日志解析规则生成对应的配置文件,实现对容器进行自动化的配置文件生成过程,而不需要人工手动生成对应的配置文件,降低人工成本,提高了日志采集的效率。
47.以下通过一个实施例,对本技术提供的一种日志采集方法进行说明。
48.请参考图1,图1为本技术实施例所提供的一种日志采集方法的流程图。
49.本实施例中,该方法可以包括:
50.s101,根据目标容器的日志路径确定容器日志信息;
51.本步骤旨在根据目标容器的日志路径确定容器日志信息;
52.其中,容器日志信息可以包括:容器id,类型、名称、日志路径等。
53.进一步的,本步骤可以包括:
54.步骤1,当创建新的容器时,将新的容器作为目标容器;
55.步骤2,根据目标容器的id确定日志路径;
56.步骤3,将目标容器的id、容器信息以及日志路径进行组合,得到容器日志信息。
57.可见,本可选方案中主要是对如何获取容器日志信息进行说明。本可选方案中主要是当创建新的容器时,将新的容器作为目标容器,根据目标容器的id确定日志路径,将目标容器的id、容器信息以及日志路径进行组合,得到容器日志信息。
58.也就是说,通过本可选方案中主要是当动态创建新的容器时就自动生成对应的配置文件,实现了对创建的新的容器进行动态生成对应的配置文件。
59.进一步的,本步骤可以包括:
60.步骤1,获取所有容器列表,并将所有容器列表中的容器作为目标容器;
61.步骤2,根据每个目标容器的id确定对应日志路径;
62.步骤3,将每个目标容器的id、容器信息以及日志路径进行组合,得到对应的容器日志信息。
63.可见,本可选方案中主要是对如何获取容器日志信息进行说明。本实施例中,获取
所有容器列表,并将所有容器列表中的容器作为目标容器,根据每个目标容器的id确定对应日志路径,将每个目标容器的id、容器信息以及日志路径进行组合,得到对应的容器日志信息。也就是说,基于本实施例可以实现多个容器实现自动生成对应的配置文件。
64.进一步的,上一可选的技术方案中获取所有容器列表的步骤可以包括:
65.通过dockerapi获取所有容器列表。
66.可见,本可选方案中主要是通过dockerapi获取所有容器列表。其中,dockerapi是docker软件对外界提供的管理接口。
67.s102,根据容器日志信息从日志采集模板库中匹配对应的日志解析规则;
68.在s101的基础上,本步骤旨在根据容器日志信息从日志采集模板库中匹配对应的日志解析规则。
69.其中,日志采集模板库主要是存储有多种类型容器的日志解析规则。可以是,在日常使用过程中将不同类型的容器的日志解析规则进行汇总,得到该日志采集模板库,进而根据类型进行匹配确定当前目标容器对应的日志解析规则。
70.因此,本实施例中可以通过容器日志信息中的类型匹配对应的日志解析规则。
71.s103,根据日志解析规则生成对应的配置文件;
72.在s102的基础上,本步骤旨在根据日志解析规则生成对应的配置文件。也就是说,配置文件中主要是内容是以何种解析方式获取到对应的日志数据。因此,在确定了日志解析规则的基础上就可以生成对应的配置文件。进一步的,本步骤中可以是根据采集服务的格式将该日志解析规则生成对应的配置文件。
73.s104,根据配置文件对目标容器进行日志采集。
74.在s103的基础上,本步骤旨在根据配置文件对目标容器进行日志采集。
75.进一步的,本步骤可以包括:
76.采用fluentd服务根据配置文件对目标容器进行日志采集。
77.可见,本可选方案中主要是采用fluentd服务根据配置文件对目标容器进行日志采集。其中,fluentd为日志管理工具,它简化了日志的收集、处理、和存储,技术人员可以不需要在维护编写特殊的日志处理脚本。
78.基于上述可选方案,本实施例还可以包括:
79.当更新配置文件时,将fluentd服务进行重启。
80.也就是说,每当fluentd服务重启时才可以应用新的配置文件,实现对日志采集过程的动态管理。
81.此外,本实施例还可以包括:
82.步骤1,按照预设周期判断是否出现删除容器事件;
83.步骤2,若是,则删除删除容器事件对应的容器的配置文件。
84.可见,本可选方案中主要是说明当删除容器时,也对对应的配置文件进行动态调整,避免人工进行操作,提高日志采集的效率。
85.综上,本实施例通过目标容器的日志路径确定对应的容器日志信息,然后在模板库中匹配日志解析规则,最后根据该日志解析规则生成对应的配置文件,实现对容器进行自动化的配置文件生成过程,而不需要人工手动生成对应的配置文件,降低人工成本,提高了日志采集的效率。
86.以下通过一个具体的实施例,对本技术提供的一种日志采集方法做进一步说明。
87.本实施例,可以包括docker容器事件管理装置、fluentd配置文件管理装置、docker日志采集模板管理装置、fluentd采集插件管理装置。
88.其中,docker容器事件管理装置会先获取当前的容器列表,并将全量列表发送到fluentd配置文件管理装置。fluentd配置文件管理装置解析docker容器事件管理装置发送来的信息,解析里面的数据,并根据每个容器的信息向docker日志采集模板管理装置进行请求,以获取当前容器的采集配置模板,并为已存在的容器根据模板生成单独的配置文件。生成配置文件之后,fluentd配置文件管理装置会发送信息到fluentd采集插件管理装置,启动fluentd服务进行日志的收集。
89.此外,docker容器事件管理装置会不断监听docker的进程,获取哪些容器被新创建和删除,并将这些信息整理后再次发送到fluentd配置文件管理装置,fluentd配置文件管理装置会再次根据发送来的信息来新增或删减配置文件,完成后发送信息到fluentd采集插件管理装置,进行fluent的重启,以便动态更新配置文件。
90.进一步的,本实施例中的过程可以包括:
91.步骤1,每个应用的容器在制作镜像的时候都要求将日志打印到控制台,通过docker服务收集控制台日志,并为每个容器生成一个以容器id命名的文件,并将日志文件放入/var/lib/docker/containers/<containerid>

json.log的日志文件。
92.其中,日志文件为json格式,包含log、stream、time三个字段,其中log字段为具体打印出的内容。
93.步骤2,docker容器事件管理装置会通过主机上的docker服务获取目前正在运行的容器列表,便能找到对应容器的日志输出文件位置。
94.步骤3,docker容器事件管理装置将每个容器信息(主要包含容器id,类型、名称、日志路径等)发送给fluentd配置文件管理装置。
95.步骤4,fluentd配置文件管理装置会根据容器的类型请求日志采集模板管理装置,如果在日志采集模板管理中找到相应类型的容器的日志解析规则就按照相应的规则进行配置文件的生成,否则不进行解析规则的生成。
96.步骤5,生成配置文件之后,fluentd配置文件管理装置会给fluentd采集插件管理装置发送重启信号。
97.步骤6,fluentd采集插件管理装置收到接收的重启信号之后,会重启fluentd的服务,配置文件会用最新生成的。
98.其中,配置文件默认生成已经读取过的日志的位置,防止重启后重复读入。
99.此外,docker容器事件管理装置会不断监听docker服务的事件,获取那些容器的创建或销毁,相应的发送请求到fluentd配置文件管理装置。
100.fluentd配置文件管理装置重复以上步骤,达到docker日志动态采集的目的。
101.可见,本实施例通过目标容器的日志路径确定对应的容器日志信息,然后在模板库中匹配日志解析规则,最后根据该日志解析规则生成对应的配置文件,实现对容器进行自动化的配置文件生成过程,而不需要人工手动生成对应的配置文件,降低人工成本,提高了日志采集的效率。
102.下面对本技术实施例提供的日志采集装置进行介绍,下文描述的日志采集装置与
上文描述的日志采集方法可相互对应参照。
103.请参考图2,图2为本技术实施例所提供的一种日志采集装置的结构示意图。
104.本实施例中,该装置可以包括:
105.日志信息确定模块100,用于根据目标容器的日志路径确定容器日志信息;
106.解析规则匹配模块200,用于根据容器日志信息从日志采集模板库中匹配对应的日志解析规则;
107.配置文件生成模块300,用于根据日志解析规则生成对应的配置文件;
108.日志采集模块400,用于根据配置文件对目标容器进行日志采集。
109.可选的,该日志信息确定模块100,具体用于当创建新的容器时,将新的容器作为目标容器;根据目标容器的id确定日志路径;将目标容器的id、容器信息以及日志路径进行组合,得到容器日志信息。
110.可选的,该日志信息确定模块100,具体用于获取所有容器列表,并将所有容器列表中的容器作为目标容器;根据每个目标容器的id确定对应日志路径;将每个目标容器的id、容器信息以及日志路径进行组合,得到对应的容器日志信息。
111.可选的,该装置还可以包括:
112.动态删除模块,用于按照预设周期判断是否出现删除容器事件;若是,则删除删除容器事件对应的容器的配置文件。
113.本技术实施例还提供一种服务器,包括:
114.存储器,用于存储计算机程序;
115.处理器,用于执行所述计算机程序时实现如以上实施例所述的日志采集方法的步骤。
116.本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的日志采集方法的步骤。
117.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
118.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
119.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd

rom、或技术领域内所公知的任意其它形式的存储介质中。
120.以上对本技术所提供的一种日志采集方法、日志采集装置、服务器以及计算机可
读存储介质进行了详细介绍。本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献