一种分布式日志归集方法、计算机设备及存储介质与流程

文档序号:28721366发布日期:2022-01-29 15:08阅读:171来源:国知局
一种分布式日志归集方法、计算机设备及存储介质与流程

1.本发明涉及一种日志收集技术领域,具体地,涉及一种分布式日志归集方法、计算机设备及存储介质。


背景技术:

2.在使用设备及服务的过程中,设备及服务都会生成大量的日志数据,运维人员需要归集所有这些设备的日志,在海量日志中有效的提取关键信息,以找到相关安全事件、故障原因,例如用户存取、不寻常的活动、用户行为异常、违反政策、内部威胁、外部攻击、数据盗窃等进行维护。
3.而传统的日志归集系统均采用主动模式,首先由分布于各个节点上的归集程序根据保存在本地的配置文件搜集相关日志、数据,经过信息提取、格式整理、数据过滤等处理后发送给远端服务器上,服务器接收日志数据后保存,供用户查询、操作,但是在这种模式下会存在下列缺点:
4.1)节点上的归集程序按照配置文件进行日志数据的搜集和处理,不利于大规模设备的维护。当设备日志更新、日志搜集路径改变、日志数据处理规则更改、日志服务器变更、新设备上架等操作,均需更新海量节点上的配置文件,繁琐且容易出错,时效性也不尽理想;
5.2)服务器对海量的日志数据进行筛选、格式化等处理,需要配置高性能的硬件设备,实现成本较高。


技术实现要素:

6.本发明旨在克服现有技术中至少一种缺陷,提供一种分布式日志归集方法、计算机设备及存储介质,解决主动模式下日志归集繁琐且时效性低的问题。
7.第一方面,提供一种分布式日志归集方法,包括:
8.接收服务器下发的新配置模板,并判断所述新配置模板是否与归集规则库中的旧配置模板相同;
9.若否,则将所述新配置模板新增至所述归集规则库中;
10.若是,则将所述新配置模板替换所述旧配置模板;
11.根据所述归集规则库中的所有配置模板归集对应的日志文件,将归集后的所述日志文件上传至所述服务器。
12.在接收到服务器下发的新配置模板后,将新配置模板新增至归集规则库中或替换归集规则库中与新配置模板相同的旧配置模板,并根据归集规则库中的所有配置模板归集对应的日志文件,通过这种被动模式的日志归集方法可快速收集数量繁多、分布广泛、日志格式不统一的各类终端节点设备日志文件,可快速根据业务情况、运维要求调整日志文件收集内容。
13.进一步地,配置模板的内容包括归集周期和归集规则;根据所述归集规则库中的
所有配置模板归集对应的日志文件,将归集后的所述日志文件上传至所述服务器,包括:
14.读取配置模板的归集周期,并在每个所述归集周期内读取一次配置模板的归集规则;
15.读取未上传至所述服务器的日志文件;
16.选取一个所述日志文件作为当前日志文件,根据所读取的所述归集规则归集日志文件,得到当前日志文件的归集结果,并将当前日志文件的归集结果上传至所述服务器;
17.判断是否所读取的所述日志文件均已上传至所述服务器,若否,则继续根据所读取的所述归集规则归集下一个日志文件,直至所读取的所述日志文件均已上传至所述服务器为止。
18.进一步地,所述归集规则包括拆分规则和若干个按顺序排列的匹配规则;
19.根据所读取的所述归集规则当前归集日志文件,得到当前日志文件的归集结果,包括:
20.根据所述拆分规则将所述当前日志文件拆分成日志数据;
21.选取一个所述日志数据作为当前日志数据,按照匹配规则的排列顺序,选取一个匹配规则作为当前匹配规则;
22.采用当前匹配规则匹配当前日志数据,判断当前匹配规则的配置是否指示继续匹配当前日志数据;
23.若指示继续匹配当前日志数据,则判断是否有未与所述当前日志数据匹配的匹配规则;
24.若有未与当前日志数据匹配的匹配规则,则按照匹配规则的排列顺序,选取下一个顺序的匹配规则作为当前匹配规则,继续采用当前匹配规则匹配当前日志数据,直至没有未与当前日志数据匹配的匹配规则为止,得到当前日志数据的匹配结果;
25.若指示不继续匹配当前日志数据,则结束当前日志数据的匹配,并判断是否有未与匹配规则匹配的下一个日志数据;
26.若是,则选取下一个日志数据作为当前日志数据,继续按照匹配规则的排列顺序,选取一个匹配规则作为当前匹配规则,采用当前匹配规则匹配当前日志数据:
27.若否,则根据所有日志数据的匹配结果,得到当前日志文件的归集结果。
28.进一步地,当前匹配规则的配置包括匹配成功配置和匹配失败配置;采用当前匹配规则匹配当前日志数据,包括:
29.根据当前匹配规则中的正则表达式匹配当前日志数据,并判断所述正则表达式是否匹配成功;
30.若是,则根据当前匹配规则的匹配成功配置对当前日志数据进行配置,得到当前匹配规则的匹配子结果;
31.若否,则根据当前匹配规则的匹配失败配置对当前日志数据进行配置;
32.当前日志数据的匹配结果由所有匹配规则的匹配子结果按所述排列顺序组成。
33.进一步地,在根据当前匹配规则中的正则表达式匹配当前日志数据之前,还包括:
34.判断当前匹配规则中的正则表达式是否为空;
35.若否,则根据所述正则表达式匹配当前日志数据;
36.若是,则根据所述当前匹配规则的匹配失败配置对当前日志数据进行配置,按照
匹配规则的排列顺序,选取下一个顺序的匹配规则作为当前匹配规则,继续采用当前匹配规则匹配当前日志数据。
37.进一步地,所述匹配子结果和所述匹配结果为json格式的报文;
38.根据当前匹配规则的匹配成功配置对当前日志数据进行配置,包括:
39.根据所述正则表达式匹配当前日志数据,获取当前日志数据中与所述正则表达式中匹配的日志字符串;
40.根据当前匹配规则的匹配成功配置,结束当前日志数据的匹配,或者,在所述json格式的报文的标签中插入标志字符串,以标志所述日志字符串,得到或丢弃带有所述标志字符串的日志字符串,得到当前匹配规则的匹配子结果;
41.根据当前匹配规则的匹配失败配置对当前日志数据进行配置,包括:
42.根据当前匹配规则的匹配失败配置,结束当前日志数据的匹配,或者,在所述json格式的报文的标签中插入默认值。
43.根据正则表达式匹配日志数据,并根据匹配规则的匹配失败配置或匹配成功配置对所述日志数据进行配置,得到json格式的匹配子结果,再将所有匹配规则的匹配子结果组成json格式的匹配结果,从而在日志文件上传至服务器前已将日志文件格式化,解决了因处理大批量日志格式使服务器处理能力不足的问题。
44.进一步地,所述配置模板的内容还包括日志路径;读取未上传至所述服务器的日志文件,包括:
45.根据所述日志路径,读取未上传至所述服务器的日志文件。
46.进一步地,所述归集规则还包括分隔标志;
47.在选取下一个日志数据作为当前日志数据之前,还包括:在当前日志数据的匹配结果后设置所述分隔标志,以将当前日志数据的匹配结果与下一个日志数据的匹配结果进行分隔。
48.第二方面,提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述方法的步骤。
49.第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述方法的步骤。
50.与现有技术相比,本发明的有益效果为:本发明在接收到服务器下发的新配置模板后,将新配置模板新增至归集规则库中或替换归集规则库中与新配置模板相同的旧配置模板,并根据归集规则库中的所有配置模板归集对应的日志文件,通过这种被动模式的日志归集方法可快速收集数量繁多、分布广泛、日志格式不统一的各类终端节点设备日志文件,可快速根据业务情况、运维要求调整日志文件收集内容;可在产生日志文件的终端节点按照归集规则完成日志文件的格式化,解决了因处理大批量日志格式使服务器处理能力不足的问题;还可快速、简便地实现丢失日志重传功能。
附图说明
51.图1为实施例1中所述方法的流程示意图;
52.图2为实施例1中所述方法的另一个流程示意图;
53.图3为实施例1中所述方法的另一个流程示意图;
54.图4为实施例1中所述方法的另一个流程示意图。
具体实施方式
55.本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
56.实施例1
57.在本实施例中,如图1所示,提供一种分布式日志归集方法,以终端节点为执行主体,本方法包括以下步骤:
58.s100.接收服务器下发的新配置模板,并判断所述新配置模板是否与归集规则库中的旧配置模板相同。
59.配置模板是由管理人员设置在服务器,用于控制终端节点根据配置模板的内容对日志文件进行归集的指令信息集合,服务器在下发新配置模板之前,先从配置文件中读取所有的配置模板,并筛选启用的配置模板;读取启用的配置模板的内容并将读取的内容与保存的配置模板的内容进行对比,判断是否为新增的配置模板或者配置模板的内容是否有更新,若是,则将该配置模板格式化后形成新配置模板,并根据该新配置模板下发给对应的终端节点;其中,配置模板的内容包括但不限于以下字段:
60.配置模板的名称name、配置模板是否启用active、接收归集后的日志文件的服务器地址host、使用该配置模板进行日志文件归集的终端节点的地址node、所要归集的日志文件的日志路径path、日志文件的归集周期time、分隔标志split、是否重传所有日志文件resend、匹配规则method,其中,active:true表示该配置模板启用,active:false表示该配置模板不启用;所要归集的日志文件的日志路径path可以使用数组形式进行配置,从而一个配置模板可以供多个终端节点使用。
61.优选地,服务器从配置文件中读取所有的配置模板,并筛选active:true的配置模板,将读取的启用的配置模板的内容与保存的配置模板的内容进行比对,当该配置模板的名称name与保存的配置模板的名称name不相同时,则判定该配置模板为新增的模板,当该配置模板中其余字段中配置的指令信息与保存从配置模板中其余字段中配置的指令信息不完全相同时,则判定该配置模板的内容有更新;将该配置模板格式化后作为新配置模板,并根据使用该配置模板进行日志文件归集的终端节点的地址node将该新配置模板下发给对应地址的终端节点。
62.s200.若否,则将所述新配置模板新增至所述归集规则库中。
63.终端节点在接收到服务器下发的新配置模板后,先判断新配置模板是否与归集规则库中的旧配置模板相同,归集规则库中存储有若干个服务器发下的配置模板。优选地,终端节点判断新配置模板的名称是否与归集规则库中的旧配置模板的名称相同,当判定新配置模板的名称与归集规则库中所有的旧配置模板的名称均不相同时,将新配置模板新增至归集规则库中。
64.s300.若是,则将所述新配置模板替换所述旧配置模板。
65.当终端节点判定新配置模板的名称与归集规则中一个旧配置模板的名称相同时,判断新配置模板的内容是否与跟其名称相同的旧配置模板的内容相同,若否,则将新配置
模板的内容替换旧配置模板的内容,也就对旧配置模板的内容进行更新;终端节点根据归集规则库中的所有配置模板归集对应的日志文件。
66.s400.根据所述归集规则库中的所有配置模板归集对应的日志文件,将归集后的所述日志文件上传至所述服务器。
67.具体的,配置模板的内容包括归集周期和归集规则;步骤s400根据所述归集规则库中的所有配置模板归集对应的日志文件,将归集后的所述日志文件上传至所述服务器,如图2所示,具体可以包括以下步骤:
68.s410.读取配置模板的归集周期,并在每个所述归集周期内读取一次配置模板的归集规则。
69.终端节点读取归集规则库中的每个配置模板,并读取每个配置模板的归集周期time,在每个配置模板的每个归集周期time内读取一次该配置模板的归集规则;例如,当某个配置模板的归集周期time:5s,终端节点在读取该配置模板的归集周期后,每隔5s则读取一次该配置模板的归集周期。
70.s420.读取未上传至所述服务器的日志文件。
71.所述配置模板的内容还包括日志路径;步骤s420读取未上传至所述服务器的日志文件具体可以包括:
72.根据所述日志路径,读取未上传至所述服务器的日志文件。
73.终端节点根据所要归集的日志文件的日志路径path,读取未上传至服务器的日志文件,可以理解的是,未上传至服务器的日志文件可以是某个时间点后终端节点产生的日志文件,亦可以是终端节点产生的所有日志文件,当读取到配置模板中的resend:true时,表示重传该日志路径下所有的日志文件,即所有日志文件均为未上传至服务器的日志文件,当读取到配置模板中的resend:false,则可以根据日志文件的修改时间、上一个归集周期中读取的未上传至服务器的日志文件的位置及上一个归集周期的时间进行判断,例如上一个归集周期中读取的未上传至服务器的日志文件的时间为10:19:00,则日志文件的修改时间在10:19:00之后的日志文件则为未上传至服务器的日志文件。
74.s430.选取一个所述日志文件作为当前日志文件,根据所读取的所述归集规则归集当前日志文件,得到当前日志文件的归集结果,并将当前日志文件的归集结果上传至所述服务器。
75.其中,所述归集规则包括拆分规则和若干个按顺序排列的匹配规则;步骤s403根据所读取的所述归集规则归集当前日志文件,如图3所示,具体可以包括以下步骤:
76.s431.根据所述拆分规则将当前日志文件拆分成日志数据。
77.具体的,可以根据日志文件中每个日志数据的生成时间进行拆分,日志文件可以被拆分成一个或多个日志数据。
78.s432.选取一个所述日志数据作为当前日志数据,按照匹配规则的排列顺序,选取一个匹配规则作为当前匹配规则;
79.s433.采用当前匹配规则匹配当前日志数据,判断当前匹配规则的配置是否指示继续匹配当前日志数据。
80.具体的,匹配规则method的排列顺序可以是根据method id的先后进行排列,当前匹配规则的配置包括匹配成功配置和匹配失败配置;其中,步骤s433采用当前匹配规则匹
配当前日志数据,如图4所示,具体可以包括:
81.判断当前匹配规则中的正则表达式是否为空;
82.若判定正则表达式不为空,则根据所述正则表达式匹配当前日志数据,并判断所述正则表达式是否匹配成功;
83.若判定正则表达式匹配成功,则根据当前匹配规则的匹配成功配置对当前日志数据进行配置;
84.其中,根据当前匹配规则的匹配成功配置对当前日志数据进行配置,包括:
85.根据所述正则表达式匹配当前日志数据,获取当前日志数据中与所述正则表达式中匹配的日志字符串;
86.根据当前匹配规则的匹配成功配置,结束当前日志数据的匹配,或者,在所述json格式的报文的标签中插入标志字符串,以标志所述日志字符串,得到或丢弃带有所述标志字符串的日志字符串,得到当前匹配规则的匹配子结果;
87.若判定正则表达式为空或正则表达式匹配失败,则根据当前匹配规则的匹配失败配置对当前日志数据进行配置;
88.其中,根据当前匹配规则的匹配失败配置对当前日志数据进行配置,包括:
89.根据当前匹配规则的匹配失败配置,结束当前日志数据的匹配,或者,在所述json格式的报文的标签中插入默认值。
90.具体的,匹配规则method包括method id、正则表达式method regex、匹配成功配置method success和匹配失败配置method failed;其中,匹配成功配置method success可以为insert-插入符合规则的标志字符串到json格式的报文中的标签tag中,也可以为ignore-丢弃日志字符串,亦可以为end-终止匹配;匹配失败配置method failed可以为insert-插入default到json格式的报文中的标签tag中,也可以为end-终止匹配;以其中一个匹配规则来举例说明,该匹配规则为{"id":3,"regex":"\s+","success":"insert","failed":"insert","tag":"hostname","default":""},则该匹配规则的正则表达式不为空,根据正则表达式regex:\s+匹配当前日志数据,若匹配成功,则截取第一个符合规则的日志字符串保存,并在json格式的报文中的标签tag中插入标志字符串hostname,并得到带有所述标志字符串hostname的日志字符串;若匹配失败,则在json格式的报文中的标签tag中插入默认值default,并转到步骤s434。
91.当前日志数据的匹配结果由所有匹配规则的匹配子结果按所述排列顺序组成。
92.s434.若指示继续匹配当前日志数据,则判断是否有未与当前日志数据匹配的匹配规则。
93.具体的,当匹配成功配置method success不为end时,则指示继续匹配当前日志数据。
94.若是,则按照匹配规则的排列顺序,选取下一个顺序的匹配规则作为当前匹配规则,继续采用当前匹配规则匹配当前日志数据,直至没有未与当前日志数据匹配的匹配规则为止,得到当前日志数据的匹配结果。
95.s435.若指示不继续匹配当前日志数据,则结束当前日志数据的匹配,并判断是否有未与匹配规则匹配的下一个日志数据。
96.具体的,当匹配成功配置method success为end时,则指示结束匹配当前日志数
据。
97.s436.若是,则选取下一个日志数据作为当前日志数据,继续按照匹配规则的排列顺序,选取一个匹配规则作为当前匹配规则,采用当前匹配规则匹配当前日志数据。
98.s437.若否,则根据所有日志数据的匹配结果,得到当前日志文件的归集结果。
99.具体的,得到json格式的匹配结果后,根据接收归集后的日志文件的服务器地址host将匹配结果上传至对应的服务器。
100.s440.判断是否所读取的所述日志文件均已上传至所述服务器,若否,则继续根据所读取的所述归集规则归集下一个日志文件,直至所读取的所述日志文件均已上传至所述服务器为止。
101.本实施的终端节点在接收到服务器下发的新配置模板后,将新配置模板新增至归集规则库中或替换归集规则库中与新配置模板相同的旧配置模板,并根据归集规则库中的所有配置模板归集对应的日志文件,通过这种被动模式的日志归集方法可快速收集数量繁多、分布广泛、日志格式不统一的各类终端节点设备日志文件,可快速根据业务情况、运维要求调整日志文件收集内容。
102.在一个实施例中,所述归集规则还包括分隔标志;
103.在选取下一个日志数据作为当前日志数据之前,还包括:在当前日志数据的匹配结果后设置所述分隔标志,以将当前日志数据的匹配结果与下一个日志数据的匹配结果进行分隔。
104.实施例2
105.在本实施例中,提供一种计算机设备,该计算机设备可以是终端节点,该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力,存储器包括非易失性存储介质中的操作系统和计算机程序的运行提供环境,通信接口用于与外部的终端节点进行有线或无线方式的通信,无线方式可通过wifi、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现实施例1所述的一种分布式日志归集方法。
106.实施例3
107.在本实施例中,提供一种计算机可读存介质,其上存储有计算机程序,该计算机程序被处理器执行时实现实施例1所述的一种分布式日志归集方法。
108.显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1