历史日志收集方法、装置与存储介质与流程

文档序号:30085054发布日期:2022-05-18 05:27阅读:139来源:国知局
历史日志收集方法、装置与存储介质与流程

1.本技术涉及计算机技术领域,尤其涉及一种历史日志收集方法、装置与存储介质。


背景技术:

2.随着kubernetes的技术越发成熟,许多公司选择kubernetes来作为容器化的重要手段,但是由于容器化应用和常规服务器应用的差别比较大,所以历史日志归档成了一大难题。
3.目前,业内常用kubernetes日志中心架构为efk,e代表elasticsearch(日志存储),f代表为fluentd或者filebeat(日志收集工具),k代表为kibana(日志查询页面),这是一种完全依赖日志上传到日志中心的方案,系统将日志实时上传到日志中心,日志中心再把实时日志按照需求归档为历史日志。
4.但是,实时日志会把产生的所有日志文件全部实时传输到日志中心,占用了大量带宽。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种历史日志收集方法、装置与存储介质,能够按照需求获取历史日志,不用实时上传所有日志,减少了带宽占用,节约了带宽扩容费用。
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.第一发送单元,用于向所述第二服务器发送所述历史日志。
38.结合第二方面,在一些实施例中,所述装置还包括:
39.第二接收单元,用于从所述目标设备接收上报信息,所述上报信息用于指示所述目标设备中用于存储运行所述目标组件时所产生日志的存储路径;
40.判断单元,用于判断所述历史日志在所述第二服务器中是否存在,在不存在的情况下,将所述历史日志拷贝并压缩到临时目录;
41.第二发送单元,用于向消息中间件发送指示信息,所述指示信息用于指示所述第一服务器完成向所述第二服务器发送所述历史日志的日志收集任务,以使所述消息中间件向所述第二服务器转发所述指示信息;
42.第三接收单元,用于接收所述消息中间件转发的接收完成信息,所述接收完成信息用于指示所述第二服务器完成接收所述第一服务器发送的所述临时目录的任务;
43.删除单元,用于依据所述接收完成信息删除所述临时目录。
44.第三方面,本技术提供另一种历史日志收集装置,其特征在于,包括处理器、存储器以及通信接口,所述处理器、存储器和通信接口相互连接,其中,所述通信接口用于接收和发送数据,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
45.第四方面,本技术提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序;当所述计算机程序在一个或多个处理器上运行时,执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
46.本技术实施例中,第一服务器接收第二服务器发送的日志收集请求,日志收集请求是用于请求获取满足目标条件的历史日志;第一服务器根据目标条件确定至少一个目标存储路径,并分别从各个目标存储路径对应的目标设备中获取至少一个目标日志文件,作为历史日志,目标设备是属于上述多个设备中的设备;第一服务器向第二服务器发送上述历史日志。第一服务器按照第二服务器的收集请求收集上传满足目标条件的日志作为历史日志,实现了历史日志的按需收集和上传,不必实时上传所有日志,减少带宽占用,降低了服务器负载,也节约了宽带扩容费用。
附图说明
47.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
48.图1为本技术实施例提供的一种历史日志收集方法的第一流程示意图;
49.图2为本技术实施例提供的一种历史日志收集方法的第二流程示意图;
50.图3为本技术实施例提供的一种历史日志收集方法的第三流程示意图;
51.图4为本技术实施例提供的一种历史日志收集方法的系统示意图;
52.图5为本技术实施例提供的一种历史日志收集装置的示意图;
53.图6为本技术实施例提供的另一种历史日志收集装置的示意图。
具体实施方式
54.下面结合附图对本发明作进一步详细描述。
55.本技术以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。
56.在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”。
57.随着kubernetes(k8s)的技术越发成熟,许多公司选择kubernetes来作为容器化的重要手段,但是由于容器化应用和常规服务器应用的差别比较大,所以历史日志归档成了一大难题。
58.目前,业内常用kubernetes日志中心架构为efk,e代表elasticsearch(日志存储),f代表为fluentd或者filebeat(日志收集工具),k代表为kibana(日志查询页面),这是一种完全依赖日志上传到日志中心的方案,系统将日志实时上传到日志中心,日志中心再把实时日志按照需求归档为历史日志。
59.但是,实时日志会把产生的所有日志文件全部实时传输到日志中心,占用了大量带宽。
60.针对上述问题,本发明实施例提供了一种历史日志收集方法、装置与存储介质,下面将结合附图1-附图4,对本发明实施例提供的一种历史日志收集方法进行详细介绍。
61.请参见图1,为本技术实施例提供的一种历史日志收集方法的第一流程示意图。如图1所示,本发明实施例的历史日志收集方法可以包括以下步骤s101-步骤s103。
62.s101,上述第一服务器接收第二服务器发送的日志收集请求,上述日志收集请求用于请求获取满足目标条件的历史日志。
63.本技术实施例中,第一服务器包括应用服务器,可以是部署在设备上的服务器,也可以是外设服务器,上述第一服务器包括探针(agent),探针提供日志搜索服务是收集和搬运日志的主要工具,另外,上述第一服务器管理一个或多个设备,这些设备包括电脑、移动电话等;第二服务器是存储历史日志的目的地,包括kubernetes日志中心,或者其他可以存储历史日志的服务器,上述第二服务器包括后台(backend),后台可以调度日志探针,会监测和记录k8s中每个pod的运行轨迹。
64.具体的,第一服务器接收第二服务器发送的日志收集请求,日志收集请求包括要收集的历史日志的目标条件,第一服务器根据日志收集请求获取满足目标条件的日志文件作为历史日志。
65.可选的,上述日志收集请求包括目标组件的组件名称和上述目标组件的运行轨迹,上述运行轨迹为运行上述目标组件的至少一个目标设备;
66.上述日志收集请求用于请求获取上述至少一个目标设备在运行上述目标组件时
所产生的日志。
67.本技术实施例中,上述组件是k8s中的pod,上述pod可能会在一个或多个设备上运行,上述运行轨迹是指pod在哪些设备上运行过。
68.具体的,由于第二服务器一直监测每个pod的运行轨迹,当第二服务器需要历史日志时,就会发送日志收集请求给第一服务器,上述日志收集请求含有产生需要的历史日志的组件的组件名称和运行轨迹;上述日志收集请求用于请求获取上述至少一个目标设备在运行上述目标组件时所产生的日志,因为上述组件可能在多个设备被运行,所以目标设备至少有一个也可能是多个。
69.s102,上述第一服务器根据上述目标条件确定至少一个目标存储路径,并分别从各个上述目标存储路径对应的目标设备中获取至少一个目标日志文件,作为历史日志,上述目标设备是属于上述多个设备中的设备。
70.本技术实施例中,上述目标存储路径是指历史日志根据产生源头被分类存储的路径,该路径包括产生该历史日志的设备和组件,例如组件a在设备e1上运行产生的日志,对应存储路径就是e1:\logs\poda,也可以在这个路径对应的文件夹中对上述日志按照不同功能分类存储;上述多个设备是上述第一服务器管理的设备。
71.具体的,上述第一服务器根据上述目标条件确定至少一个目标存储路径,因为上述目标存储路径包括目标设备信息,所以能分别从各个上述目标存储路径对应的目标设备中获取至少一个目标日志文件,作为历史日志,上述目标设备是属于上述多个设备中的设备。
72.可选的,上述第一服务器根据上述目标条件确定至少一个目标存储路径,包括:
73.上述第一服务器根据上述运行轨迹和上述组件名称,确定上述至少一个目标设备中用于存储运行上述目标组件时所产生日志的存储路径;
74.上述第一服务器将上述至少一个目标设备中用于存储运行上述目标组件时所产生日志的存储路径作为上述至少一个目标存储路径。
75.具体的,因为上述运动轨迹是运行所过上述目标组件的设备,只要获得了组件名称和运行轨迹,上述第一服务器就可确定目标设备,同时还有组件名称,上述第一服务器就确定了目标存储路径,因为运行所过上述目标组件的设备不止一个或者需要收集的上述目标组件不止一个,那么对应的目标存储路径就不止一个。
76.例如,现在目标组件的组件名称为poda,运行轨迹包括:e1、e2、e3,那对应的目标设备就是e1、e2、e3,因为本实施例中每个设备的日志存储在一个约定的文件夹下,例如是logs,那根据组件名称和运行轨迹可以确定对应目标存储路径为:e1:\logs\poda;e2:\logs\poda;e3:\logs\poda。
77.又例如,现在目标组件名称还包括podb,运行轨迹包括:e1、e4,那对应目标存储路径还包括:e1:\logs\podb;e4:\logs\podb。
78.在确定目标存储路径后,第一服务器的探针根据目标存储路径去对应设备收集日志,如果上述日志收集请求只包括组件名称和运行轨迹,那探针直接搬运上述目标存储路径对应文件夹中的所有日志,作为历史日志;但是如果还包含其他条件如:任务开始时间、日志产生时段等条件,就需要探针根据条件筛选上述目标存储路径对应文件夹中的日志文件作为历史日志,例如:任务开始时间为晚上12点,日志产生时段为下午3-5点,那么探针就
会在晚上12点去上述目标存储路径的对应设备,在对应设备中的目标存储路径对应文件夹中筛选下午3-5点产生的日志文件作为历史日志。
79.s103,上述第一服务器向上述第二服务器发送上述历史日志。
80.具体的,上述第一服务器将在上述目标设备的目标存储路径的对应文件夹中找到的历史日志发送给第二服务器。
81.本技术实施例中,第一服务器根据第二服务器发送的日志收集请求,按需收集日志作为历史日志发送给第二服务器,实现了历史日志的按需收集和分类存储,也可以定时定点发送历史日志,定点发送日志使得服务器可以在空闲时段上传历史日志降低了服务器繁忙时因日志传输产生业务故障的可能性;本技术实施例替代了现有利用实时上传的日志直接作为历史日志的业内惯用手段,使得无需实时上传所有日志,减少了带宽占用,节约了带宽扩容费用,而且实现了对历史日志的分类归档降低了运维工作量,还因为不用实时上传日志,将用于实时上传日志的日志采集工具剥离出容器,使镜像更加轻量;本技术实施例将现有的实时上传日志归档架构和历史日志归档架构解耦,历史日志不再依赖实时日志,避免了实时日志上下游依赖复杂导致很难保证日志的完整性的问题,提升了历史日志的准确率。
82.同时在本技术实施例中,通过日志保存为文件进行传输归档,不用担心日志条数的丢失,保证了数据的完整性。
83.请参见图2,为本技术实施例提供的一种历史日志收集方法的第二流程示意图。如图2所示,本发明实施例的上述历史日志收集方法可以包括以下步骤s201-步骤s204。
84.s201,上述第一服务器接收第二服务器发送的日志收集请求,上述日志收集请求用于请求获取满足目标条件的历史日志。
85.本技术实施例步骤s201请参照图1实施例的步骤s101,在此不再赘述。
86.s202,上述第一服务器从上述目标设备接收上报信息,上述上报信息用于指示上述目标设备中用于存储运行上述目标组件时所产生日志的存储路径;
87.上述第一服务器根据上述运行轨迹和上述组件名称,确定上述至少一个目标设备中用于存储运行上述目标组件时所产生日志的存储路径,包括:
88.上述第一服务器根据上述运行轨迹中包含的至少一个上述目标设备和上述目标设备的上述上报信息,确定上述至少一个目标设备中用于存储运行上述目标组件时所产生日志的存储路径。
89.具体的,在各个设备将各个组件产生的日志按照组件名称分类存储在同一个存储路径后,向上述第一服务器上报信息,上述第一服务器接收上报信息并记录其中的存储路径。例如:e4设备将组件c产生日志存放在e4:\logs\podc这个存储路径的文件夹中,e4设备就将e4:\logs\podc这个信息上报给第一服务器。
90.s203,上述第一服务器根据上述目标条件确定至少一个目标存储路径,并分别从各个上述目标存储路径对应的目标设备中获取至少一个目标日志文件,作为历史日志,上述目标设备是属于上述多个设备中的设备。
91.本技术实施例步骤s203请参照图1实施例的步骤s102,在此不再赘述。
92.可选的,上述第一服务器根据上述运行轨迹和上述组件名称,确定上述至少一个目标设备中用于存储运行上述目标组件时所产生日志的存储路径,包括:
93.上述第一服务器根据上述运行轨迹中包含的至少一个上述目标设备和上述目标设备的上述上报信息,确定上述至少一个目标设备中用于存储运行上述目标组件时所产生日志的存储路径。
94.具体的,在第一服务器接收上报信息和第二服务器发来的包含组件运行轨迹的日志收集请求后,就可以直接将运行轨迹的设备与上报信息设备对比,再结合组件名称就可以确定至少一个目标设备中用于存储运行上述目标组件时所产生日志的存储路径。例如现在组件c运行轨迹是e4设备,那第一服务器根据运行轨迹的e4设备和组件c名称podc,上报信息有对应路径e4:\logs\podc,上述对应路径e4:\logs\podc就是日志的存储路径。
95.s204,上述第一服务器向上述第二服务器发送上述历史日志。
96.本技术实施例步骤s204请参照图1实施例的步骤s103,在此不再赘述。
97.本技术实施例中,各个设备向第一服务器上报日志文件存储信息,方便了上述第一服务器管理下设的设备和监测日志生成情况,第一服务器在接收到第二服务器发送的日志收集请求后,不用和多个设备通信就可以直接确定存储路径,使收集流程更加简洁,降低了确定目标存储路径的难度;另外各个设备将产生的日志存放在一个约定路径下,减轻了探针的寻址和寻找目标日志文件的难度,减少了访问k8s中每个组件的次数,也解决了历史日志文件目录定位的困难的问题。
98.请参见图3,为本技术实施例提供的一种历史日志收集方法的第三流程示意图。如图3所示,本发明实施例的上述历史日志收集方法可以包括以下步骤s301-步骤s306。
99.s301,上述第一服务器接收第二服务器发送的日志收集请求,上述日志收集请求用于请求获取满足目标条件的历史日志。
100.s302,上述第一服务器从上述目标设备接收上报信息,上述上报信息用于指示上述目标设备中用于存储运行上述目标组件时所产生日志的存储路径。
101.s303,上述第一服务器根据上述目标条件确定至少一个目标存储路径,并分别从各个上述目标存储路径对应的目标设备中获取至少一个目标日志文件,作为历史日志,上述目标设备是属于上述多个设备中的设备。
102.本技术实施例步骤s301-步骤s303请参照图2实施例的步骤s201-步骤s203,在此不再赘述。
103.s304,上述第一服务器判断上述历史日志在上述第二服务器中是否存在,在不存在的情况下,将上述历史日志拷贝并压缩到临时目录。
104.具体的,上述第一服务器向上述第二服务器发送历史日志的验证信息,第二服务器根据验证信息判断是否有上述历史日志,如果没有就发信息给第一服务器,第一服务器的探针将不在第二服务器中的日志文件拷贝到临时目录,并压缩,压缩时保留存储路径,例如日志文件的存储路径为e4:\logs\podc,那么日志文件在临时目录压缩后路径仍为e4:\logs\podc;如果第二服务器中有上述历史日志,上述第一服务器就不会发送上述历史日志给第二服务器。
105.可选的,上述第一服务器判断上述历史日志在上述第二服务器中是否存在,包括:
106.上述第一服务器采用密码杂凑函数对上述历史日志进行处理,获得上述历史日志对应的目标密码杂凑参数;
107.上述第一服务器将上述目标密码杂凑参数发送给上述第二服务器;
108.上述第一服务器接收上述第二服务器发送的反馈信息,上述反馈信息用于指示上述第二服务器中是否存在与上述目标密码杂凑参数相同的密码杂凑参数;
109.若上述反馈信息指示上述第二服务器中存在与上述目标密码杂凑参数相同的密码杂凑参数,则确定上述历史日志在上述第二服务器已经存在;
110.若上述反馈信息指示上述第二服务器中不存在与上述目标密码杂凑参数相同的密码杂凑参数,则上述第一服务器确定上述历史日志在上述第二服务器中不存在。
111.本技术实施例中,密码杂凑函数是讯息摘要演算法(message-digest algorithm,md5),是一种被广泛使用的密码杂凑函数,可以产生出一个128位元(16位元组)的散列值(hash value),用于确保信息传输完整一致。
112.具体的,上述第一服务器采用密码杂凑函数对上述历史日志进行处理,获得上述历史日志对应的目标密码杂凑参数,就是日志文件的md5,每个日志文件有唯一的md5,上述第一服务器向第二服务器发送上述历史日志的md5,第二服务器判断上述历史日志的md5是否存在,若上述历史日志的md5存在,则确定上述历史日志在上述第二服务器已经存在,向第一服务器发送存在信息;若上述历史日志的md5不存在,则确定上述历史日志在上述第二服务器中不存在,向第一服务器发送不存在信息。
113.s305,上述第一服务器向上述第二服务器发送上述临时目录。
114.具体的,上述第一服务器向上述第二服务器发送步骤s304获得的临时目录,发送上述临时目录的过程会根据带宽的实际情况进行限速处理,避免数据丢失。
115.s306,上述第一服务器向消息中间件发送指示信息,上述指示信息用于指示上述第一服务器完成向上述第二服务器发送上述历史日志的日志收集任务,以使上述消息中间件向上述第二服务器转发上述指示信息。
116.本技术实施例中,上述消息中间件包括kafka,是一个分布式、分区的、多副本的、多订阅者的消息发布订阅系统,kafka为消息中间件的一种可能情况,也可采用其他消息发布订阅系统。
117.具体的,上述第一服务器在发送完上述临时目录后,向消息中间件发送指示信息,上述消息中间件向上述第二服务器转发上述指示信息。
118.s307,上述第一服务器接收上述消息中间件转发的接收完成信息,上述接收完成信息用于指示上述第二服务器完成接收上述第一服务器发送的上述临时目录的任务,上述第一服务器依据上述接收完成信息删除上述临时目录。
119.具体的,第二服务器在完成接收上述临时目录后,也会向消息中间件发送接收完成信息,消息中间件再向第一服务器转发上述接收完成信息,第一服务器接收上述接收完成信息后,删除上述临时目录,节约内存。
120.在第一服务器删除上述临时目录后,本次历史日志收集任务结束。
121.本技术实施例中,增加了判断历史日志是否上传的步骤,避免历史日志重复上传,将历史日志压缩到临时目录一起上传而不是逐一上传历史日志,减少了历史日志上传次数,降低了因多次上传出现数据错误的风险,另外第一服务器与第二服务器都向消息中间件发送历史日志传输详情,避免了第一服务器与第二服务器之间的传输出现问题如断网时,系统无法识别错误进行处理的问题,提高了数据传输的安全性。
122.为更好理解本技术实施例的历史日志收集方法,请参见图4,为本技术实施例提供
的一种历史日志收集方法的系统示意图。如图4所示:
123.第二服务器向第一服务器发送日志收集请求,第一服务器根据收集请求确定历史日志的目标存储路径,第一服务器去目标存储路径对应设备获取目标日志文件,将上述目标日志文件的md5发给第二服务器判断目标日志文件是否上传过,如果没有上传过,就将上述目标日志文件拷贝并压缩到临时目录,然后将临时目录发送给第二服务器,发送完成后向消息中间件发送临时目录传输完成的指示信息,消息中间件向第二服务器转发上述指示信息,第二服务器接收上述临时目录并且和指示信息比对,如果接收了全部临时目录没有遗漏或错误就向消息中间件发送接收完成信息,然后对临时目录进行解压,根据需要对历史日志进行归档,第一服务器接收消息中间件转发的确认信息后删除对应临时目录,历史日志收集任务结束。
124.请参照图5,为本技术实施例提供的一种历史日志收集装置的示意图,如图5所示,该历史日志收集装置50包括:
125.第一接收单元501,用于接收第二服务器发送的日志收集请求,上述日志收集请求用于请求获取满足目标条件的历史日志;
126.获取单元502,用于根据上述目标条件确定至少一个目标存储路径;并分别从各个上述目标存储路径对应的目标设备中获取至少一个目标日志文件,作为历史日志,上述目标设备是属于上述多个设备中的设备;
127.第一发送单元503,用于向上述第二服务器发送上述历史日志。
128.在一种可能的设计中,上述日志收集请求包括目标组件的组件名称和上述目标组件的运行轨迹,上述运行轨迹为运行上述目标组件的至少一个目标设备;
129.上述日志收集请求用于请求获取上述至少一个目标设备在运行上述目标组件时所产生的日志。
130.在一种可能的设计中,上述获取单元502,具体用于:
131.根据上述运行轨迹和上述组件名称,确定上述至少一个目标设备中用于存储运行上述目标组件时所产生日志的存储路径;
132.上述第一服务器将上述至少一个目标设备中用于存储运行上述目标组件时所产生日志的存储路径作为上述至少一个目标存储路径。
133.在一种可能的设计中,上述装置还包括:
134.第二接收单元504,用于从上述目标设备接收上报信息,上述上报信息用于指示上述目标设备中用于存储运行上述目标组件时所产生日志的存储路径;
135.判断单元505,用于判断上述历史日志在上述第二服务器中是否存在,在不存在的情况下,将上述历史日志拷贝并压缩到临时目录;
136.第二发送单元506,用于向消息中间件发送指示信息,上述指示信息用于指示上述第一服务器完成向上述第二服务器发送上述历史日志的日志收集任务,以使上述消息中间件向上述第二服务器转发上述指示信息;
137.第三接收单元507,用于接收上述消息中间件转发的接收完成信息,上述接收完成信息用于指示上述第二服务器完成接收上述第一服务器发送的上述临时目录的任务;
138.删除单元508,用于依据上述接收完成信息删除上述临时目录。
139.在一种可能的设计中,上述获取单元502,还具体用于:
140.上述第一服务器根据上述运行轨迹中包含的至少一个上述目标设备和上述目标设备的上述上报信息,确定上述至少一个目标设备中用于存储运行上述目标组件时所产生日志的存储路径。
141.在一种可能的设计中,第一发送单元503,具体用于:
142.向上述第二服务器发送上述临时目录。
143.在一种可能的设计中,上述判断单元505,具体用于:
144.上述第一服务器采用密码杂凑函数对上述历史日志进行处理,获得上述历史日志对应的目标密码杂凑参数;
145.上述第一服务器将上述目标密码杂凑参数发送给上述第二服务器;
146.上述第一服务器接收上述第二服务器发送的反馈信息,上述反馈信息用于指示上述第二服务器中是否存在与上述目标密码杂凑参数相同的密码杂凑参数;
147.若上述反馈信息指示上述第二服务器中存在与上述目标密码杂凑参数相同的密码杂凑参数,则确定上述历史日志在上述第二服务器已经存在;
148.若上述反馈信息指示上述第二服务器中不存在与上述目标密码杂凑参数相同的密码杂凑参数,则上述第一服务器确定上述历史日志在上述第二服务器中不存在。
149.其中,图5所示装置实施例的具体描述可以参照前述图1、图2或图3所示方法实施例的具体说明,在此不进行赘述。
150.请参照图6,为本技术实施例提供的另一种历史日志收集装置的结构示意图,如图6所示,该历史日志收集装置600可以包括:至少一个处理器601,例如cpu,至少一个通信接口603,存储器604,至少一个通信总线602。其中,通信总线602用于实现这些组件之间的连接通信。通信接口603可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器604可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器604可选的还可以是至少一个位于远离前述处理器601的存储装置。如图6所示,作为一种计算机存储介质的存储器604中可以包括操作系统、网络通信单元以及程序指令。
151.在图6所示的历史日志收集装置600中,处理器601可以用于加载存储器604中存储的程序指令,并具体执行以下操作:
152.上述第一服务器接收第二服务器发送的日志收集请求,上述日志收集请求用于请求获取满足目标条件的历史日志;
153.上述第一服务器根据上述目标条件确定至少一个目标存储路径,并分别从各个上述目标存储路径对应的目标设备中获取至少一个目标日志文件,作为历史日志,上述目标设备是属于上述多个设备中的设备;
154.上述第一服务器向上述第二服务器发送上述历史日志。
155.需要说明的是,具体执行过程可以参见图1、图2或图3所示方法实施例的具体说明,在此不进行赘述。
156.本技术实施例还提供了一种计算机存储介质,上述计算机存储介质可以存储有多条指令,上述指令适于由处理器加载并执行如上述图1、图2或图3所示实施例的方法步骤,具体执行过程可以参见图1、图2或图3所示实施例的具体说明,在此不进行赘述。
157.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实
现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本技术实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如dvd)、或者半导体介质(例如固态硬盘)等。
158.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:rom或随机存储记忆体ram、磁碟或者光盘等各种可存储程序代码的介质。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1