1.本发明涉及日志采集领域,具体而言,涉及一种用于分布式系统的日志采集方法及系统。
背景技术:2.为了适应较大系统的正常运行,选择将系统拆分成多个独立的进程,也即是分布式系统,分布式系统中的运行需要基于大量的硬件、软件服务支持,分布式系统中系统日常运行过程中的动作的数据文件,也即是采集分布式日志,分布式系统中的所有节点都是相互连接的,系统中的任何一个节点可以很容易地与其他节点共享数据,分布式日志采集记录每一个节点的运行状态和异常信息,以便当系统处于异常状态的情况下,可以根据分析对应的日志信息定位出异常时间和原因,此时分布式系统需要耗费更多的资源去管理日志。
3.于现有技术中,分布式系统的日志采集工具要依赖数据库或第三方软件的支持,定期的将日志文件存入数据库当中,然后通过第三方插件进行日志文件解析,通过数据库存储信息进而获取日志信息,分布式系统运行过程中需要收集系统中各个服务器节点的日志,获取所有节点的日志信息,且任何一个节点的日志文件均需要依赖数据库资源去存储和读取,当日志文件存储量过多的情况下,查询数据库耗时加长,日志查询效率随着日志文件的增加不断降低。
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.1.本技术基于分布式系统中的所有节点都是相互连接的,系统中任何一个节点可以与其他节点数据共享,选择一个处于登录状态的节点为控制节点,发送日志采集指令,并行执行日志采集,实现每个节点的文件形成压缩文件保存至本地磁盘,不依赖第三方数据库的支持,大大降低了因数据库异常导致的日志文件无法采集及日志文件无法解析查询的风险。
34.2.通过本技术提出的技术方案,日志文件不依赖第三方解析和查询,减少依赖于数据库实现日志解析和查询内容带来的时间消耗,同时采用日志原文件根据进行采集并压缩也能够大大降低存储带来的资源消耗,且支持定时清理、自动检查存储达到阈值以后的清理功能,减少系统空间存储和日志查询的开销。
35.3.通过本技术提出的技术方案,通过日志采集请求中预设时间区间、空间区间、数据分组定义服务,可以快速实现轻量化的日志采集,保证即使在大多数服务器异常情况下也可以实现采集需求下到的日志文件采集,同时方便快速定位日志文件,提高了日志采集的灵活性,实现日志灵活快速的采集。
附图说明
36.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显
37.图1根据本技术的实施例,示出了一种用于分布式系统的日志采集方法的流程图;
38.图2根据本技术的实施例,示出了一种用于分布式系统的日志采集系统的框图。
具体实施方式
39.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
40.为了解决现有技术中分布式系统的日志采集工具要依赖数据库或第三方软件的支持导致日志文件存储的安全性、可靠性降低,大量日志文件的存储导致日志分析和查询效率低的问题,本发明提出了一种用于分布式系统的日志采集方法及系统。
41.本日志采集方法的日志采集工具日志采集将作为一个独立的服务工具,不依赖第三方软件进行使用,在分布式系统中某一个服务器节点的数据库异常最终导致系统出现异常的情况下,该种异常需要对系统进一步调试从而确定数据库异常的具体原因。此时,可以通过查看数据库产生的日志文件来定位其异常的原因,若是因为服务器连接之间的存储网络异常导致,则通过此信息判断是否服务器有过异常掉电的情况,进一步通过排查分布式系统运行执行动作时的日志文件或者通过排查系统的网络状态的系统网络日志,从而根据观察相应服务组件的日志文件定位系统异常的具体原因,最终寻求解决问题的最佳方案。
42.具体地,图1根据本技术的实施例,示出了一种用于分布式系统的日志采集方法的流程图,具体包括:
43.步骤100:根据采集需求生成采集请求,并发送至控制节点,控制节点为分布式系统中处于登录状态的任一节点。可以理解的是,分布式系统对应的服务器节点可以存在多
个,当任何一个节点或者多个节点出现采集需求的情况下,根据日志的采集需求生成日志采集请求的指令,该日志采集请求可以对应分布式系统的任何一个或者多个节点,此时用户可以登陆任何一个节点,将登录的节点或者节点对应的网络页面标记为控制节点,点击前端页面的“开始日志采集”按钮或者直接通过命令行,发送日志采集的请求至控制节点,控制节点接收采集请求。
44.在本技术的一些实施例中,采集请求通过可以界面交互或者命令行的方式生成。可以理解的是,当系统存在可视化界面的情况下,通过界面对接api生成采集请求,当系统可视化界面出现异常或者基于linux等无可视化界面系统的情况下,可以使用命令行等形式登录控制节点的后台终端,进而实现采集请求的生成,在此不做限定。
45.步骤200:控制节点将采集请求发送至集群中对应的每个节点,判断是否满足预设采集条件。可以理解的是,在执行日志采集的指令前,为了保证当前控制节点具备足够的存储空间执行保存本次日志采集的日志文件,同时为了实现日志文件解析和查询的高效率实现,需要对当前控制节点存储的日志文件进行初步预判并对相应日志文件进行处理。
46.具体地,控制节点接收到的日志采集请求包括了需要采集的日志的范围、时间范围或采集优先级等相关参数信息,各个节点可以根据采集请求在执行日志采集前计算日志空间,时间范围可以根据从当前时间点以天数,小时等作为基本单位计量,向前推算一段相应的时间段实现日志的采集。根据参数构建日志配置文件结构,进而确定具体需要采集的日志文件类型及相关信息,控制节点采集请求发送至集群中对应的每个节点,并遍历节点上需要进行日志采集的目录或文件,计算需要每个需要采集节点的日志文件所占据的存储空间,并预估压缩后的需要存储空间大小,从而初步预判系统控制节点空间即控制节点存储的剩余空间大小,进一步判断是否满足预设采集条件。
47.于本技术的一些实施例中,配置文件中划分了服务的组,可以根据组采集具体的组或者具体的服务日志,对应日志采集的节点可以是系统所有节点,也可以说部分节点;日志采集的范围,可以是系统全量服务日志也可以是部分服务的日志,本领域技术人员可以根据实际日志采集的目标需求设定相应的日志采集需求,在此不做限定。
48.步骤300:在控制节点的存储空间满足预设采集条件的情况下,节点根据采集请求,执行日志采集,并将每个采集到的日志文件进行分别压缩形成若干个第一压缩文件。可以理解的是,分布式系统每一个节点之间的数据是互通的,执行日志的采集的指令可以通过远程控制工具部署采集,对于存在采集需求的各个节点执行日志采集,通过调整第二压缩文件的数量实现控制节点的存储空间满足预设采集条件。
49.在本技术的一些实施例中,控制节点存储空间满足预设采集条件的情况包括:控制节点保存的第二压缩文件的存储空间不超过第一预设阈值,和/或,控制节点保存的第二压缩文件的数量不超过第二预设阈值。可以理解的是,采集的日志文件需要占用节点的存储空间,在执行采集指令前,对当前控制节点存储的第二压缩文件的占用存储空间不应超过第一预设阈值,该第一预设阈值可以根据当前控制节点的存储空间大小而定,例如,在当前控制节点的总存储空间为3gb的情况下,第二压缩文件的最大可用存储空间一定小于3gb,可以设置为0.3gb或者小于3gb的其他数值,在当前控制节点的第二压缩文件占用存储空间大于0.3gb的情况下,应该允许用户通过日期先后顺序删除较早日期采集任务采集的日志文件,以便使得第二压缩文件的容量满足第一预设阈值,其中,第一预设阈值可以根据
当前控制节点的最大存储空间而定,具体数值在此不做限定。
50.进一步地,可以通过第二预设阈值限制节点中保存的日志文件的存储数量。例如,可以预设但第二预设阈值为3,即此时第二压缩文件的数量小于等于3,当是在当前控制节点存储的第二压缩文件数量大于3的情况下,应该允许用户通过日期先后顺序删除较早日期的采集请求实现采集的日志文件,以便使得第二压缩文件的数量满足第二预设阈值。其中,第二预设阈值可以根据当前控制节点的最大存储空间而定,具体数值在此不做限定。
51.在本技术的一些实施例中,也提供了每日定时检查日志metadata文件,定时清理超过最近第二预设阈值的日志文件。
52.在本技术的一些实施例中,当同时需要第一预设阈值和第二预设阈值对预设采集条件进行判断的情况下,第二预设阈值等价设置为以存储空间大小与第一预设阈值比较,以较小的存储空间占据大小的数值作为满足预设采集条件的判断标准。
53.在本技术的一些实施例中,日志文件的删除不提供命令行的方式,只提供api方式。api通过指定任务的日志采集任务的标识符删除日志采集记录系统文件和日志压缩文件。
54.在本技术的一些实施例中,在生成的日志采集请求为批量日志请求的情况下,即在某一固定时长时段内,生成的日志采集请求不止一个的情况下,日志采集响应执行最后一次对应的日志采集请求。
55.在本技术的一些实施例中,节点根据采集请求,执行日志采集包括:每个节点按照采集请求并行执行日志采集,节点至少包括分布式系统中的任意一个节点。可以理解的是,日志采集执行的过程中,任何一个需要采集日志的节点同步接收采集请求,并根据采集请求实现相应日志的采集。当日志采集过程中,出现信息更新时,基于远程控制指令同时采集每个节点的日志文件,并监听执行采集的节点文件,通过存储节点的ip信息,实现节点信息文件发生变更时,及时录入更新结果。
56.在本技术的一些实施例中,在某一个节点的采集请求指定为预设时段的时间区间采集请求的情况下,并行采集每个节点的预设时段的日志文件。可以理解的是,分布式系统存在某个异常的情况下,可以根据异常出现的时间段,可以生成按照当前时刻发起从当前时间往前n小时的日志采集请求,例如,可以采集当前时刻向前推比如2h的日志文件,同时该采集时间区间范围也可以是系统运行过程中任何一个预设时间区间的日志采集,例如,20180628 14:00-20180628 20:00则是按照起始和结束日期设定预设时间区间,按照时间段或者起始和结束日期设置日志采集请求,对于采集请求包含的时间区间范围,可以根据系统日志文件的日志采集需求而定,在此不做限定。
57.在本技术的一些实施例中,在某一个节点的采集请求指定为预设存储空间的空间区间采集请求的情况下,并行采集每个节点的预设存储空间对应的日志文件。可以理解的是,,分布式系统存在某个异常的情况下,可以根据异常的情况预估采集需求,进而预估控制节点保存本次采集所需的日志文件空间,进而生成按照日志文件预存储空间并行采集每个节点的预设存储空间对应的日志文件
58.在本技术的一些实施例中,可以根据日志文件可以通过查看具体每个日志文件的状态,实现为了同时支持按照预设时间区间或者预设存储空间大小进行选择日志文件截断进而保存部分需要保存的日志文件。
59.在本技术的一些实施例中,在某一个节点的采集请求指定为预设标记信息的情况下,并行采集每个节点的预设标记信息对应的日志文件。可以理解的是,采集请求对应的单个节点或部分节点的日志采集命令,部分节点日志采集范围和集群采集范围一致,该采集请求对应的采集日志预设标记信息预先存储在配置文件,通过使用界面触发日志采集也可以通过命令行进行日志采集传入特定参数,输入指定的部分组或者指定部分,该指定组或者指定部分日志信息指定为预设标记信息,执行并行采集每个节点的预设标记信息对应的日志文件。
60.步骤400:在每个节点日志文件采集完成的情况下,生成日志发送请求。可以理解的是,基于采集请求执行日志采集。可以理解的是,执行日志采集对应的每个节点包括分布式系统的一个或者多个节点。其中,控制节点和分布式系统的任何一个节点可以根据采集请求执行日志采集,当接收采集请求的每一个节点完成当前节点的日志采集的情况下,将对应生成日志发送请求,以便控制节点接收日志发送请求。
61.步骤500:根据日志发送请求,将若干个第一压缩文件发送至控制节点,并生成第二压缩文件,保存至控制节点。可以理解的是,日志发送请求接收每个日志采集文件的一个或者多个第一压缩文件发送至控制节点,该若干个第一压缩文件包括采集请求对应的每个节点采集完成的日志文件,控制节点接收若干个第一压缩文件并进一步压缩成为第二压缩文件,保存控制节点对应的本地磁盘。
62.进一步地,控制节点按照日志采集的时间先后顺序保存的一定数量的第二压缩文件包含了对应时间执行的日志采集的所有信息。
63.具体地,为了进一步实现节约相应节点的存储空间,对日志原文件进行第一次压缩生成第一压缩文件,并在日志采集完成后进行第二次压缩最终在控制节点保存为第二压缩文件,其中对应第一次压缩和第二次压缩都是无损压缩。
64.在本技术的一些实施例中根据每个节点的日志采集进度,计算当前分布式系统的日志采集进度,并显示。可以理解的是,日志采集时间随着集群中节点数目的增多、采集时间范围的增大而变长,执行在采集请求进行时实时展示当前的采集进度,根据日志已采集节点数目和总节点数目实现日志采集进度的显示。
65.具体地,命令行方式启动采集任务时,进度条在采集请求节点的控制台实时展示或者以api方式启动采集任务时,采集进度需要实时同步到日志采集记录系统文件以百分比显示,当每个需要采集的每个节点的采集认为完成的情况下,当前的日志采集进度显示为已完成即为100%。
66.进一步地,当集群中每个节点在执行日志的过程中,若出现该节点日志采集出现错误或者日志采集失败的情况下,日志采集工具会在预设尝试采集次数内不断尝试执行本次日志采集,当大于预设采集次数时,仍未采集成功的情况下,此时日志采集记录系统文件记录采集认为失败,此时采集进度显示已完成,显示采集结果失败。
67.在本技术的一些实施例中,在任意一个节点的日志采集进度无法完成的情况下,采集完成的日志文件保存在各个节点。可以理解的是,预设尝试采集次数已达到尚未采集到日志文件,则认为本节点的采集认为失败,即本次集群日志采集失败,各个节点并行执行的已完成的日志采集文件保存本次采集,保存在当前节点已采集完成的日志原文件保存为压缩文件,由于本次采集执行未成功,该压缩文件并不会生成日志发送请求,因此该日志文
件最终无法生成第二压缩文件保存至控制节点。
68.在申请第一方面的一种可能实现方式中,在任意一个节点的日志采集未完成的情况下,确定日志采集是否需要终止;在任意一个节点的日志采集未完成的情况下,确定日志采集是否需要终止;
69.在任意一个节点的日志采集进度无法完成的情况下,采集完成的日志文件保存在各个节点;在接收到终止执行日志采集的指令的情况下,删除节点执行本次日志采集保存的日志文件。可以理解的是,日志采集任务运行时,在日志采集任务未完成之前的任意时刻,允许用户停止采集任务,采集任务停止后,需要删除日志采集记录系统文件和采集过程中产生的中间文件,仅仅保存本次采集请求的日志采集记录。
70.具体地,命令行方式启动采集任务时,用户在控制台输入”ctrl+c”的命令,即可以强制停止本次日志采集,这种情况下无法删除任务的日志采集记录系统文件和采集过程中产生的中间文件,只能由节点空间清理任务清理。
71.具体地,api方式启动采集任务时,需要提供停止采集任务的api接口,停止采集任务的api接口被调用时,即为接收到终止日志采集的指令,此时需要停止当前的采集任务,并删除任务的日志采集记录系统文件和采集过程中产生的中间文件。
72.现提供一具体实施例对上述技术方案进行进一步阐释和说明:
73.于上述具体实施例中,根据日志采集的需求,登录一个节点作为控制节点,基于ansible自动化运维工具通过远程控制指令实现采集请求指令向集群节点发出,使用ssh协议连接就可以来进行系统管理,自动化执行命令,部署等任务,具体地,采用配置ssh public key的方式免密登录,使用一个独立的命令行工具,进行ssh public key的生成,使得集群的初次部署无需在界面展示,集群的升级基于升级步骤或者脚本显示配置,然后通过http api方式并行发送采集请求至到集群各个节点,同时使用inotify监听/etc/zbs/zbs.conf节点文件,zbs.config中存入了集群中节点的ip信息,比集群管理ips集群存储ips。当zbs.conf文件发生变动,inotify会根据监听此文件,更新相应集群节点ip信息。更新结果信息存入/var/log/zbs/log-collectot.info。
74.具体地,针对每一个集群的日志采集最终对应一个采集任务的日志采集记录系统文件,此文件保留在接受采集任务的对应的节点上,该日志采集记录系统文件中至少包括了:预设时间的日志采集:即当前日志任务采集的日志采集时间范围;日志采集的节点列表、日志采集的预设存储区间、日志压缩文件存放路径和大小和存放节点、采集任务的状态、日志采集进度等。
75.日志采集记录系统文件被保存为“metadata”文件中的采集任务的状态“status”字段应该与日志采集进度“progress”字段存在对应关系:当status是”running”时,progress应该处于0%到100%之间;当status是”failed”或者”successful”时,表示采集任务已经结束,progress应该为100%,处于网络页面周期性调用api,得到当前状态下集群中metadata文件信息,通过metadata文件中的progress字段更新进度。
76.于上述具体实施例中,日志采集请求可以根据时间范围可以按照若干小时、根据预设空间大小进行采集、指定部分分组执行日志采集,保存日志文件。
77.于上述具体实施例中,将当前节点的日志采集实现第一压缩后,将第一压缩文件存在到临时目录下压缩文件包的命名为:${data_ip}-${uuid}.tar.gz,第一压缩文件根据
日志发送请求形成第二压缩文件保存在控制节点。
78.具体地,图2根据本技术的实施例,示出了一种用于分布式系统的日志采集系统框图,具体包括:
79.发送单元1,用于根据采集需求生成采集请求,并发送至控制节点,控制节点为分布式系统中处于登录状态的任一节点;
80.判断单元2,用于控制节点将采集请求发送至集群中对应的每个节点,判断是否满足预设采集条件;
81.采集单元3,用于在控制节点的存储空间满足预设采集条件的情况下,节点根据采集请求,执行日志采集,并将每个采集到的日志文件进行分别压缩形成若干个第一压缩文件;
82.生成单元4,用于在每个节点日志文件采集完成的情况下,生成日志发送请求;
83.保存单元5,用于根据日志发送请求,将若干个第一压缩文件发送至控制节点,并生成第二压缩文件,保存在控制节点。
84.可以理解的是,上述用于分布式系统的日志采集系统中各个功能模块执行与前述用于分布式系统的日志采集方法中相同的步骤流程,在此不做赘述。
85.在本技术的一些实施例中,还提供了一种存储介质,包括存储的程序,在程序运行时控制存储介质所在设备执行前述用于分布式系统的日志采集的方法。
86.在本技术的一些实施例中,还提供了一种处理器,其特征在于,处理器用于运行程序,其中,程序运行时执行权前述用于分布式系统的日志采集的方法。
87.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
88.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
89.用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指
令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
90.上述本发明实施例仅仅为了描述,不代表实施例的优劣。
91.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
92.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其他的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
技术特征:1.一种用于分布式系统的日志采集方法,其特征在于,所述的方法包括:根据采集需求生成采集请求,并发送至控制节点,所述控制节点为分布式系统中处于登录状态的任一节点;所述控制节点将所述采集请求发送至集群中对应的每个节点,判断是否满足预设采集条件;在控制节点的存储空间满足所述预设采集条件的情况下,所述节点根据所述采集请求,执行日志采集,并将每个采集到的日志文件进行分别压缩形成若干个第一压缩文件;在每个所述节点日志文件采集完成的情况下,生成日志发送请求;根据所述日志发送请求,将若干个所述第一压缩文件发送至所述控制节点,并生成第二压缩文件,保存至所述控制节点。2.根据权利要求1所述的一种用于分布式系统的日志采集方法,其特征在于,控制节点存储空间满足预设采集条件的情况包括:所述控制节点保存的所述第二压缩文件的存储空间不超过第一预设阈值,和/或所述控制节点保存的所述第二压缩文件的数量不超过第二预设阈值。3.根据权利要求1所述的一种用于分布式系统的日志采集方法,其特征在于,所述节点根据所述采集请求,执行日志采集包括:在某一个所述节点的所述采集请求指定为预设时段的时间区间采集请求的情况下,并行采集每个所述节点的预设时段的所述日志文件。4.根据权利要求1所述的一种用于分布式系统的日志采集方法,其特征在于,所述节点根据所述采集请求,执行日志采集还包括:在某一个所述节点的所述采集请求指定为预设存储空间的空间区间采集请求的情况下,并行采集每个所述节点的所述预设存储空间对应的所述日志文件。5.根据权利要求4所述的一种用于分布式系统的日志采集方法,其特征在于,所述节点根据所述采集请求,执行日志采集还包括:在某一个所述节点的所述采集请求指定为预设标记信息的情况下,并行采集每个所述节点的预设标记信息对应的所述日志文件。6.根据权利要求1所述的一种用于分布式系统的日志采集方法,其特征在于,每个所述节点按照所述采集请求并行执行日志采集还包括:根据每个所述节点的日志采集进度,计算当前所述分布式系统的日志采集进度,并显示。7.根据权利要求1所述的一种用于分布式系统的日志采集方法,其特征在于,所述的方法还包括:在任意一个所述节点的所述日志采集未完成的情况下,确定所述日志采集是否需要终止;在任意一个所述节点的所述日志采集进度无法完成的情况下,采集完成的所述日志文件保存在各个所述节点;在接收到终止执行日志采集的指令的情况下,删除所述节点执行本次日志采集保存的所述日志文件。8.一种用于分布式系统的日志采集系统,所述的系统包括:
发送单元,用于根据采集需求生成采集请求,并发送至控制节点,所述控制节点为分布式系统中处于登录状态的任一节点;判断单元,用于所述控制节点将所述采集请求发送至集群中对应的每个节点,判断是否满足预设采集条件;采集单元,用于在控制节点的存储空间满足所述预设采集条件的情况下,所述节点根据所述采集请求,执行日志采集,并将每个采集到的日志文件进行分别压缩形成若干个第一压缩文件;生成单元,用于在每个所述节点日志文件采集完成的情况下,生成日志发送请求;保存单元,用于根据所述日志发送请求,将若干个所述第一压缩文件发送至所述控制节点,并生成第二压缩文件,保存在所述控制节点。9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任意一项所述的方法。10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的方法。
技术总结本发明提供了一种用于分布式系统的日志采集方法及系统。其中日志采集方法具体包括:根据采集需求生成采集请求,并发送至分布式系统中处于登录状态的任一控制节点,根据控制节点的存储空间的数值,在满足预设采集条件的情况下,并行执行每个节点的日志采集,在每个节点日志文件采集完成的情况下,生成第一压缩文件保存,将若干个第一压缩文件发送至控制节点,并生成第二压缩文件,保存在控制节点。通过本申请提出的技术方案实现不依赖第三方数据库的支持,大大降低了因数据库异常导致的日志文件无法采集及日志文件无法解析查询的风险,同时提高了日志文件存储的稳定性和可靠性。同时提高了日志文件存储的稳定性和可靠性。同时提高了日志文件存储的稳定性和可靠性。
技术研发人员:韩旭 徐文豪 王弘毅 张凯
受保护的技术使用者:北京志凌海纳科技有限公司
技术研发日:2022.03.31
技术公布日:2022/7/5