一种日志清理方法、装置、设备及存储介质制造方法及图纸

技术编号:36893140 阅读:21 留言:0更新日期:2023-03-15 22:07
本申请提供一种日志清理方法、装置、设备及存储介质,首先获取注册表文件,然后解析注册表文件,并获取日志文件路径;再根据日志文件路径确定日志文件实际大小,并将日志文件实际大小与注册表文件的偏移量进行对比,并基于对比结果确定日志文件是否完成采集;若日志文件已完成采集,且日志文件未继续写入日志时,对日志文件进行日志清理;若日志文件未完成采集,则不对日志文件进行日志清理。本申请能及时自动的清理被Filebeat采集完成的日志信息,避免磁盘空间被过多占用。本申请不仅降低了研发成本,提高了服务器磁盘资源利用率,而且能根据业务状态准确的清理日志,在保证磁盘空间的同时保障了日志采样的完整性、准确性。准确性。准确性。

【技术实现步骤摘要】
一种日志清理方法、装置、设备及存储介质


[0001]本申请涉及计算机
,具体涉及一种日志清理方法、装置、设备及存储介质。

技术介绍

[0002]Kubernetes可以帮助管理业务Pod生命周期,越来越多的公司使用Kubernetes托管应用程序,这些应用程序放在Pod中运行,一个Kubernetes集群通常承载了几百个应用程序,这些应用程序会输出日志,方便研发快速定位问题,在集群环境中,通常采用集中管理日志的方法,Filebeat可以监视指定的日志文件或位置,收集日志事件,记录日志的采集进度,并将采集到的日志传输到Kafka、Elasticsearch、Logstash等。每个业务应用程序会源源不断的输出日志,此Pod占用的磁盘空间会越来越大,会使得应用所在服务器的磁盘空间紧张,手动删除日志需要甄别哪些日志能删,哪些日志不能删,如果误删除还没被Filebeat处理完的日志,会导致业务程序输出的日志部分丢失,给定位问题带来了难度。
[0003]现有文献1(CN111488320A)记载了一种清理Kubernetes中业务应用程序日志的方法,其提出了基于日志目录总容量阈值、单日志文件大小阈值,对日志文件进行处理。但是,现有文献1没有从研发定位问题的角度判断日志是否被采集,仅通过阈值判断删除,若日志还未采集完成就删除会导致日志丢失,若日志采集完成后很久达不到阈值,不能进行及时清理,所以现有文献1中的清理方法在生产环境中具体一定的缺陷,不能很好的提高服务器磁盘资源利用率。
[0004]目前,当前车云平台、驾驶、交互体验空间都使用Kubernetes进行托管,应用输出的日志信息都挂载到宿主机磁盘,但磁盘空间有限,导致宿主机磁盘清理频率增大,而这些应用程序不断地基于工作负载启动、毁灭,日志可能在应用程序毁灭的时候还没被Filebeat采集完成,给清理的工作带来了难度。因此,亟需一种清理业务日志的方法,在清理日志的同时确保日志采样完成,能根据业务运行情况灵活清除日志。

技术实现思路

[0005]鉴于以上所述现有技术的缺点,本申请提供一种日志清理方法、装置、设备及存储介质,以解决上述技术问题。
[0006]本申请提供一种日志清理方法,所述方法包括以下步骤:
[0007]获取注册表文件;
[0008]解析所述注册表文件,并获取日志文件路径;
[0009]根据所述日志文件路径确定日志文件实际大小;
[0010]将所述日志文件实际大小与所述注册表文件的偏移量进行对比,并基于对比结果确定所述日志文件是否完成采集;
[0011]若所述日志文件已完成采集,且所述日志文件未继续写入日志时,对所述日志文件进行日志清理;
[0012]若所述日志文件未完成采集,则不对所述日志文件进行日志清理。
[0013]于本申请的一实施例中,若所述日志文件已完成采集,所述方法还包括:
[0014]判断所述日志文件中是否存在目标字符;
[0015]若存在目标字符,则对所述日志文件进行日志清理;
[0016]若不存在目标字符,则不对所述日志文件进行日志清理;
[0017]其中,所述目标字符包括与历史日志文件关联的字符。
[0018]于本申请的一实施例中,获取注册表文件的过程包括:
[0019]利用查找器查找指定目录下的所有日志文件;
[0020]利用采集器读取单个日志文件的内容,并记录每个日志文件的状态;
[0021]将所记录的状态刷新到磁盘中,得到所述注册表文件。
[0022]于本申请的一实施例中,在所述日志文件已完成采集后,所述方法还包括判断所述日志文件是否继续写入日志,有:
[0023]与目标集群的入口进行通信,获取所有名称空间下的容器列表;
[0024]根据日志文件路径中的容器名称,判断当前容器在所有名称空间下是否存在容器列表;
[0025]若不存在容器列表,则表示业务程序被重启,所述日志文件不会被所述业务程序继续写入日志;
[0026]若存在容器列表,则表示所述日志文件会被继续写入日志。
[0027]于本申请的一实施例中,利用查找器查找指定目录下的所有日志文件的过程包括:
[0028]获取预先或实时设置的业务程序输出日志的目录、挂载到清空日志程序的扫描目录以及Filebeat日志采集目录;以及,获取预先或实时设置的业务程序输出日志的目录结构;
[0029]利用Filebeat中的查找器采集指定目录下的日志文件,并利用所述日志清理程序扫描所述指定目录,获取所述指定目录下保存的业务程序的所有日志文件;其中,所述指定目录包括:/var/logs目录。
[0030]于本申请的一实施例中,将所述日志文件实际大小与所述注册表文件的偏移量进行对比,并基于对比结果确定所述日志文件是否完成采集的过程包括:
[0031]加载Filebeat的Registry文件,获取日志文件路径、偏移量;
[0032]根据日志文件路径计算日志文件实际大小,将所述日志文件实际大小与偏移量进行对比;
[0033]若所述日志文件实际大小与偏移量不相等,则表示日志文件还未被Filebeat完成采集;
[0034]若所述日志文件实际大小与偏移量相等,则表示日志文件已被Filebeat完成采集。
[0035]于本申请的一实施例中,所述历史日志文件包括按天分割的日志文件。
[0036]本申请还提供一种日志清理装置,所述装置包括有:
[0037]注册表文件模块,用于获取注册表文件;
[0038]解析模块,用于解析所述注册表文件,并获取日志文件路径;
[0039]文件大小模块,用于根据所述日志文件路径确定日志文件实际大小;
[0040]对比模块,用于将所述日志文件实际大小与所述注册表文件的偏移量进行对比,并基于对比结果确定所述日志文件是否完成采集;
[0041]日志清理模块,用于在所述日志文件已完成采集,且所述日志文件未继续写入日志时,对所述日志文件进行日志清理;或者,在所述日志文件未完成采集时,不对所述日志文件进行日志清理。
[0042]于本申请的一实施例中,若所述日志文件已完成采集,所述日志清理模块还包括:
[0043]判断所述日志文件中是否存在目标字符;
[0044]若存在目标字符,则对所述日志文件进行日志清理;
[0045]若不存在目标字符,则不对所述日志文件进行日志清理;
[0046]其中,所述目标字符包括与历史日志文件关联的字符。
[0047]于本申请的一实施例中,在所述日志文件已完成采集后,所述装置还包括判断所述日志文件是否继续写入日志,有:
[0048]与目标集群的入口进行通信,获取所有名称空间下的容器列表;
[0049]根据日志文件路径中的容器名称,判断当前容器在所有名称空间下是否存在容器列表;
[0050]若不存在容器列表,则表示业本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种日志清理方法,其特征在于,所述方法包括以下步骤:获取注册表文件;解析所述注册表文件,并获取日志文件路径;根据所述日志文件路径确定日志文件实际大小;将所述日志文件实际大小与所述注册表文件的偏移量进行对比,并基于对比结果确定所述日志文件是否完成采集;若所述日志文件已完成采集,且所述日志文件未继续写入日志时,对所述日志文件进行日志清理;若所述日志文件未完成采集,则不对所述日志文件进行日志清理。2.根据权利要求1所述的日志清理方法,其特征在于,若所述日志文件已完成采集,所述方法还包括:判断所述日志文件中是否存在目标字符;若存在目标字符,则对所述日志文件进行日志清理;若不存在目标字符,则不对所述日志文件进行日志清理;其中,所述目标字符包括与历史日志文件关联的字符。3.根据权利要求1或2所述的日志清理方法,其特征在于,获取注册表文件的过程包括:利用查找器查找指定目录下的所有日志文件;利用采集器读取单个日志文件的内容,并记录每个日志文件的状态;将所记录的状态刷新到磁盘中,得到所述注册表文件。4.根据权利要求1所述的日志清理方法,其特征在于,在所述日志文件已完成采集后,所述方法还包括判断所述日志文件是否继续写入日志,有:与目标集群的入口进行通信,获取所有名称空间下的容器列表;根据日志文件路径中的容器名称,判断当前容器在所有名称空间下是否存在容器列表;若不存在容器列表,则表示业务程序被重启,所述日志文件不会被所述业务程序继续写入日志;若存在容器列表,则表示所述日志文件会被继续写入日志。5.根据权利要求3所述的日志清理方法,其特征在于,利用查找器查找指定目录下的所有日志文件的过程包括:获取预先或实时设置的业务程序输出日志的目录、挂载到清空日志程序的扫描目录以及Filebeat日志采集目录;以及,获取预先或实时设置的业务程序输出日志的目录结构;利用Filebeat中的查找器采集指定目录下的日志文件,并利用所述日志清理程序扫描所述指定目录,获取所述指定目录下保存的业务程序的所有日志文件;其中,所述指定目录包括:/var/logs目录。6.根据权利要求1所述的日志清理方法,其特征在于,将所述日志文件实际大小与所述注册表文件的偏移量进行对比,并基于对比结果确定所述日志文件是否完成采集的过程包括:加载Filebeat的Reg...

【专利技术属性】
技术研发人员:刘娟
申请(专利权)人:重庆长安汽车股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1