专利名称:一种云平台全自动管理日志采集方法及终端
专利类型:发明专利
专利申请号:CN202210221852.8
专利申请(专利权)人:浪潮云信息技术股份公司
权利人地址:山东省济南市高新区浪潮路1036号浪潮科技园S01号楼
专利发明(设计)人:杨桂龙,孙思清,赵山,朱勇,张建伟
专利摘要:本发明提供了一种云平台全自动管理日志采集方法,包括以下步骤:判断Filebeat是否已启动,读取SideCar配置文件,运行期间根据心跳间隔时间进行更新日志采集配置,将待新增配置文件添加到filebeat配置文件目录下,关闭模块。本发明提出的云平台全自动管理日志采集方法及终端自动从服务端拉取采集配置,并动态加载最新的配置文件,期间不需要重新启动。同时日志采集终端向服务端发送其运行状态,可以通过监控状态的形式发现其是否正常运行。自动探测采集终端的新版本,并自动下载、更新、重启,过程无需用户手动干预。
主权利要求:
1.一种云平台全自动管理日志采集方法,其特征在于,包括以下步骤:判断Filebeat是否已启动,如未启动,则启动Filebeat;
读取SideCar配置文件,获取服务端URL、终端nodeLabel与心跳间隔时间,如服务端URL未配置则使用默认URL;获取当前Filebeat版本号;
运行期间根据心跳间隔时间进行更新日志采集配置、获取Filebeat组件状态并上报至服务端、自动更新Filebeat版本并重启;
将待新增配置文件添加到filebeat配置文件目录下,将待编辑配置文件内容更新到配置文件目录下的配置文件,在配置文件目录下将待删除的进行删除,同时更新本地缓存文件为读取SideCar配置文件提供元数据;
关闭模块,关闭SideCar组件时,通过钩子关闭Filebeat,然后再关闭其本身;
更新采集配置的流程步骤如下:
a.每隔10倍心跳间隔时间,读取本地缓存文件获取当前所有input文件名与内容md5,访问服务端,获取虚拟机最新input配置,包括新增配置、修改配置、删除配置;
b.根据虚拟机标签查询出所有的开启状态的配置及md5值;如果查询为空,则将入参中所有配置文件名放到删除配置文件列表中;如果查询不为空,则循环入参中所有配置文件名与查询结果比较,查询结果中不存在的,放置到删除配置文件列表中;存在且md5值不一致的放到修改配置文件列表中;如果查询不为空,循环查询结果与入参中配置文件名比较,入参中不存在的将配置文件放置到新增配置文件列表中;
获取Filebeat组件状态并上报至服务端的流程步骤如下:a.每隔心跳间隔时间,通过调用Filebeat接口,获取Filebeat当前状态;
b.如果步骤a调用接口失败,则认定Filebeat为死亡状态,调用成功则使用其状态信息;
c.向服务端发送nodeLabel、虚拟机ip与状态信息;
d.服务端收到SideCar组件的上报信息后插入至采集终端运行状态历史表中;
e.如果步骤b.中Filebeat为死亡状态,则从当前操作系统中获取Filebeat组件的进程号,如果获取到,则kill该进程;
f.启动Filebeat组件,启动成功后向服务端上报nodeLabel、虚拟机ip与运行中状态信息;
自动更新Filebeat版本并重启的流程步骤如下:
a.间隔20倍心跳间隔时间,调用服务端接口获取最新的Filebeat版本;
b.与当前运行状态的Filebeat版本号进行对比,如果服务端的版本号与当前版本号相同,则结束本次更新任务,等待下个执行更新窗口;否则进入步骤c;
c.将步骤a中获取的最新版本号作为参数请求服务端下载接口,下载与此版本号匹配的Filebeat组件;
d.将当前运行状态的Filebeat组件关闭,运行下载的新版本Filebeat组件;
e.将旧版本Filebeat组件从本地磁盘中删除。
2.一种云平台全自动管理日志采集终端,其特征在于:包括启动模块、数据获取模块、更新采集模块、文件配置模块以及关闭模块;
数据获取模块获取服务端URL、终端nodeLabel与心跳间隔时间,更新采集模块根据心跳间隔时间进行更新日志采集配置,文件配置模块将待新增配置文件添加到filebeat配置文件目录下,关闭模块用于关闭状态;
所述启动模块用于判断Filebeat是否已启动,如未启动,则启动Filebeat;
所述数据获取模块用于读取SideCar配置文件,获取服务端URL、终端nodeLabel与心跳间隔时间,如服务端URL未配置则使用默认URL;获取当前Filebeat版本号;
所述更新采集模块用于运行期间根据心跳间隔时间进行更新日志采集配置、获取Filebeat组件状态并上报至服务端、自动更新Filebeat版本并重启;
更新采集配置的流程步骤如下:
a.每隔10倍心跳间隔时间,读取本地缓存文件获取当前所有input文件名与内容md5,访问服务端,获取虚拟机最新input配置,包括新增配置、修改配置、删除配置;
b.根据虚拟机标签查询出所有的开启状态的配置及md5值;如果查询为空,则将入参中所有配置文件名放到删除配置文件列表中;如果查询不为空,则循环入参中所有配置文件名与查询结果比较,查询结果中不存在的,放置到删除配置文件列表中;存在且md5值不一致的放到修改配置文件列表中;如果查询不为空,循环查询结果与入参中配置文件名比较,入参中不存在的将配置文件放置到新增配置文件列表中;
获取Filebeat组件状态并上报至服务端的流程步骤如下:a.每隔心跳间隔时间,通过调用Filebeat接口,获取Filebeat当前状态;
b.如果步骤a调用接口失败,则认定Filebeat为死亡状态,调用成功则使用其状态信息;
c.向服务端发送nodeLabel、虚拟机ip与状态信息;
d.服务端收到SideCar组件的上报信息后插入至采集终端运行状态历史表中;
e.如果步骤b.中Filebeat为死亡状态,则从当前操作系统中获取Filebeat组件的进程号,如果获取到,则kill该进程;
f.启动Filebeat组件,启动成功后向服务端上报nodeLabel、虚拟机ip与运行中状态信息;
自动更新Filebeat版本并重启的流程步骤如下:
a.间隔20倍心跳间隔时间,调用服务端接口获取最新的Filebeat版本;
b.与当前运行状态的Filebeat版本号进行对比,如果服务端的版本号与当前版本号相同,则结束本次更新任务,等待下个执行更新窗口;否则进入步骤c;
c.将步骤a中获取的最新版本号作为参数请求服务端下载接口,下载与此版本号匹配的Filebeat组件;
d.将当前运行状态的Filebeat组件关闭,运行下载的新版本Filebeat组件;
e.将旧版本Filebeat组件从本地磁盘中删除;
所述文件配置模块用于将待新增配置文件添加到filebeat配置文件目录下,将待编辑配置文件内容更新到配置文件目录下的配置文件,在配置文件目录下将待删除的进行删除,同时更新本地缓存文件为读取SideCar配置文件提供元数据;
所述关闭模块用于关闭SideCar组件时,通过钩子关闭Filebeat,然后再关闭其本身。 说明书 : 一种云平台全自动管理日志采集方法及终端技术领域[0001] 本发明涉及日志采集终端系统技术领域,具体为一种云平台全自动管理日志采集方法及终端。背景技术[0002] 随着云平台的发展,越来越多的服务产品都通过云平台为介质向用户提供软件服务,包括大家通常使用的数据库、堡垒机等等。[0003] 现有技术中,上述服务产品在运行时产生了大量的、各式各样的日志,日志记录着服务产品的运行状态与行为,云平台需要对这些日志进行采集、存储、分析以了解该服务产品是否存在稳定性、性能等问题。[0004] 但是,在服务产品演进过程中,一些原本不需要进行采集的日志文件需要进行采集,原本一条日志对应一行改为多行打印,原来的多行匹配规则已经不再适用的问题都将对日志采集终端产生影响,需要对其采集配置进行重新设置,再做镜像以对服务产品日志采集提供服务。同时在采集终端运行过程中,难免因一些不可坑因素导致其停止运行或发生问题导致不能正常采集日志或日志采集后不能正常发送到后端存储系统。修复日志采集组件在运行中发现的问题,推出新版本后不能统一进行升级,并且需要用户自行升级或是侵入用户虚机才能进行升级。发明内容[0005] 本发明的目的在于提供一种云平台全自动管理日志采集方法及终端,以解决上述背景技术中提出的问题。[0006] 为实现上述目的,本发明提供如下技术方案:一种云平台全自动管理日志采集方法及终端,包括以下步骤:[0007] 判断Filebeat是否已启动,如未启动,则启动Filebeat;[0008] 读取SideCar配置文件,获取服务端URL、本终端nodeLabel与心跳间隔时间,如服务端URL未配置则使用默认URL;获取当前Filebeat版本号;[0009] 运行期间根据心跳间隔时间进行更新日志采集配置、获取Filebeat组件状态并上报至服务端、自动更新Filebeat版本并重启;[0010] 将待新增配置文件添加到filebeat配置文件目录下,将待编辑配置文件内容更新到配置文件目录下的配置文件,在配置文件目录下将待删除的进行删除,同时更新本地缓存文件为读取SideCar配置文件提供元数据;[0011] 关闭模块,关闭SideCar组件时,通过钩子关闭Filebeat,然后再关闭其本身。[0012] 优选的,更新采集配置的流程步骤如下:[0013] a.每隔10倍心跳间隔时间,读取本地缓存文件获取当前所有input文件名与内容md5,访问服务端,获取该虚机最新input配置,包括新增配置、修改配置、删除配置;[0014] b.根据虚机标签查询出所有的开启状态的配置及md5值;如果查询为空,则将入参中所有配置文件名放到删除配置文件列表中;如果查询不为空,则循环入参中所有配置文件名与查询结果比较,查询结果中不存在的,放置到删除配置文件列表中;存在且md5值不一致的放到修改配置文件列表中;如果查询不为空,循环查询结果与入参中配置文件名比较,入参中不存在的将配置文件放置到新增配置文件列表中。[0015] 优选的,获取Filebeat组件状态并上报至服务端的流程步骤如下:[0016] a.每隔心跳间隔时间,通过调用Filebeat接口,获取Filebeat当前状态;[0017] b.如果步骤a调用接口失败,则认定Filebeat为死亡状态,调用成功则使用其状态信息;[0018] c.向服务端发送nodeLabel、虚机ip与状态信息;[0019] d.服务端收到SideCar组件的上报信息后插入至采集终端运行状态历史表中;[0020] e.如果步骤b.中Filebeat为死亡状态,则从当前操作系统中获取Filebeat组件的进程号,如果获取到,则kill该进程;[0021] f.启动Filebeat组件,启动成功后向服务端上报nodeLabel、虚机ip与运行中状态信息。[0022] 优选的,自动更新Filebeat版本并重启的流程步骤如下:[0023] a.间隔20倍心跳间隔时间,调用服务端接口获取最新的Filebeat版本;[0024] b.与当前运行状态的Filebeat版本号进行对比,如果服务端的版本号与当前版本号相同,则结束本次更新任务,等待下个执行更新窗口。否则进入步骤3;[0025] c.将步骤a中获取的最新版本号作为参数请求服务端下载接口,下载与此版本号匹配的Filebeat组件;[0026] d.将当前运行状态的Filebeat组件关闭,运行下载的新版本Filebeat组件;[0027] e.将旧版本Filebeat组件从本地磁盘中删除。[0028] 一种云平台全自动管理日志采集终端,包括启动模块、数据获取模块、更新采集模块、文件配置模块以及关闭模块;[0029] 数据获取模块获取服务端URL、本终端nodeLabel与心跳间隔时间,更新采集模块根据心跳间隔时间进行更新日志采集配置,文件配置模块将待新增配置文件添加到filebeat配置文件目录下,关闭模块用于关闭状态。[0030] 优选的,所述启动模块用于判断Filebeat是否已启动,如未启动,则启动Filebea。[0031] 优选的,所述数据获取模块用于读取SideCar配置文件,获取服务端URL、本终端nodeLabel与心跳间隔时间,如服务端URL未配置则使用默认URL;获取当前Filebeat版本号。[0032] 优选的,所述更新采集模块用于运行期间根据心跳间隔时间进行更新日志采集配置、获取Filebeat组件状态并上报至服务端、自动更新Filebeat版本并重启;[0033] 更新采集配置的流程步骤如下:[0034] a.每隔10倍心跳间隔时间,读取本地缓存文件获取当前所有input文件名与内容md5,访问服务端,获取该虚机最新input配置,包括新增配置、修改配置、删除配置;[0035] b.根据虚机标签查询出所有的开启状态的配置及md5值;如果查询为空,则将入参中所有配置文件名放到删除配置文件列表中;如果查询不为空,则循环入参中所有配置文件名与查询结果比较,查询结果中不存在的,放置到删除配置文件列表中;存在且md5值不一致的放到修改配置文件列表中;如果查询不为空,循环查询结果与入参中配置文件名比较,入参中不存在的将配置文件放置到新增配置文件列表中;[0036] 获取Filebeat组件状态并上报至服务端的流程步骤如下:[0037] a.每隔心跳间隔时间,通过调用Filebeat接口,获取Filebeat当前状态;[0038] b.如果步骤a调用接口失败,则认定Filebeat为死亡状态,调用成功则使用其状态信息;[0039] c.向服务端发送nodeLabel、虚机ip与状态信息;[0040] d.服务端收到SideCar组件的上报信息后插入至采集终端运行状态历史表中;[0041] e.如果步骤b.中Filebeat为死亡状态,则从当前操作系统中获取Filebeat组件的进程号,如果获取到,则kill该进程;[0042] f.启动Filebeat组件,启动成功后向服务端上报nodeLabel、虚机ip与运行中状态信息;[0043] 自动更新Filebeat版本并重启的流程步骤如下:[0044] a.间隔20倍心跳间隔时间,调用服务端接口获取最新的Filebeat版本;[0045] b.与当前运行状态的Filebeat版本号进行对比,如果服务端的版本号与当前版本号相同,则结束本次更新任务,等待下个执行更新窗口。否则进入步骤3;[0046] c.将步骤a中获取的最新版本号作为参数请求服务端下载接口,下载与此版本号匹配的Filebeat组件;[0047] d.将当前运行状态的Filebeat组件关闭,运行下载的新版本Filebeat组件;[0048] e.将旧版本Filebeat组件从本地磁盘中删除。[0049] 优选的,所述文件配置模块用于将待新增配置文件添加到filebeat配置文件目录下,将待编辑配置文件内容更新到配置文件目录下的配置文件,在配置文件目录下将待删除的进行删除,同时更新本地缓存文件为读取SideCar配置文件提供元数据。[0050] 优选的,所述关闭模块用于关闭SideCar组件时,通过钩子关闭Filebeat,然后再关闭其本身。[0051] 与现有技术相比,本发明的有益效果是:[0052] 本发明提出的云平台全自动管理日志采集方法及终端自动从服务端拉取采集配置,并动态加载最新的配置文件,期间不需要重新启动。同时日志采集终端向服务端发送其运行状态,可以通过监控状态的形式发现其是否正常运行。自动探测采集终端的新版本,并自动下载、更新、重启,过程无需用户手动干预;[0053] 本发明使各服务产品在日志文件发生变动或采集文件发生改变后不需要专门针对日志采集做任何变更,针对历史服务产品实例,也可在不侵入用户虚机的情况下进行配置变更以适配新的业务需求。同时通过对终端状态历史表的查询为定位日志采集问题提供有力的参考依据,也为后续对终端运行状态监控与告警提供了数据支持。自动更新下载采集器组件的功能为修复采集器问题,升级版本提供了便利,全程无需用户参与,无感知的平滑升级。附图说明[0054] 图1为SideCar发送心跳、拉取采集配置与自动更新时序图。具体实施方式[0055] 为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本发明实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0056] 在本发明的描述中,需要说明的是,术语“中心”、“中”、“上”、“下”、“左”、“右”、“内”、“外”、“顶”、“底”、“侧”、“竖直”、“水平”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“一”、“第一”、“第二”、“第三”、“第四”、“第五”、“第六”仅用于描述目的,而不能理解为指示或暗示相对重要性。[0057] 在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。[0058] 出于简明和说明的目的,实施例的原理主要通过参考例子来描述。在以下描述中,很多具体细节被提出用以提供对实施例的彻底理解。然而明显的是,对于本领域普通技术人员,这些实施例在实践中可以不限于这些具体细节。在一些实例中,没有详细地描述公知方法和结构,以避免无必要地使这些实施例变得难以理解。另外,所有实施例可以互相结合使用。[0059] 请参阅图1,本发明提供一种技术方案:一种云平台全自动管理日志采集方法及终端,其特征在于,包括以下步骤:[0060] 判断Filebeat是否已启动,如未启动,则启动Filebeat;[0061] 读取SideCar配置文件,获取服务端URL、本终端nodeLabel与心跳间隔时间,如服务端URL未配置则使用默认URL;获取当前Filebeat版本号;[0062] 运行期间根据心跳间隔时间进行更新日志采集配置、获取Filebeat组件状态并上报至服务端、自动更新Filebeat版本并重启;[0063] 更新采集配置的流程步骤如下:[0064] a.每隔10倍心跳间隔时间,读取本地缓存文件获取当前所有input文件名与内容md5,访问服务端,获取该虚机最新input配置,包括新增配置、修改配置、删除配置;[0065] b.根据虚机标签查询出所有的开启状态的配置及md5值;如果查询为空,则将入参中所有配置文件名放到删除配置文件列表中;如果查询不为空,则循环入参中所有配置文件名与查询结果比较,查询结果中不存在的,放置到删除配置文件列表中;存在且md5值不一致的放到修改配置文件列表中;如果查询不为空,循环查询结果与入参中配置文件名比较,入参中不存在的将配置文件放置到新增配置文件列表中;[0066] 获取Filebeat组件状态并上报至服务端的流程步骤如下:[0067] a.每隔心跳间隔时间,通过调用Filebeat接口,获取Filebeat当前状态;[0068] b.如果步骤a调用接口失败,则认定Filebeat为死亡状态,调用成功则使用其状态信息;[0069] c.向服务端发送nodeLabel、虚机ip与状态信息;[0070] d.服务端收到SideCar组件的上报信息后插入至采集终端运行状态历史表中;[0071] e.如果步骤b.中Filebeat为死亡状态,则从当前操作系统中获取Filebeat组件的进程号,如果获取到,则kill该进程;[0072] f.启动Filebeat组件,启动成功后向服务端上报nodeLabel、虚机ip与运行中状态信息;[0073] 自动更新Filebeat版本并重启的流程步骤如下:[0074] a.间隔20倍心跳间隔时间,调用服务端接口获取最新的Filebeat版本;[0075] b.与当前运行状态的Filebeat版本号进行对比,如果服务端的版本号与当前版本号相同,则结束本次更新任务,等待下个执行更新窗口。否则进入步骤3;[0076] c.将步骤a中获取的最新版本号作为参数请求服务端下载接口,下载与此版本号匹配的Filebeat组件;[0077] d.将当前运行状态的Filebeat组件关闭,运行下载的新版本Filebeat组件;[0078] e.将旧版本Filebeat组件从本地磁盘中删除;[0079] 将待新增配置文件添加到filebeat配置文件目录下,将待编辑配置文件内容更新到配置文件目录下的配置文件,在配置文件目录下将待删除的进行删除,同时更新本地缓存文件为读取SideCar配置文件提供元数据;[0080] 关闭模块,关闭SideCar组件时,通过钩子关闭Filebeat,然后再关闭其本身。[0081] 一种云平台全自动管理日志采集终端,包括启动模块、数据获取模块、更新采集模块、文件配置模块以及关闭模块;[0082] 数据获取模块获取服务端URL、本终端nodeLabel与心跳间隔时间,更新采集模块根据心跳间隔时间进行更新日志采集配置,文件配置模块将待新增配置文件添加到filebeat配置文件目录下,关闭模块用于关闭状态。[0083] 启动模块用于判断Filebeat是否已启动,如未启动,则启动Filebeat。[0084] 数据获取模块用于读取SideCar配置文件,获取服务端URL、本终端nodeLabel与心跳间隔时间,如服务端URL未配置则使用默认URL;获取当前Filebeat版本号。[0085] 更新采集模块用于运行期间根据心跳间隔时间进行更新日志采集配置、获取Filebeat组件状态并上报至服务端、自动更新Filebeat版本并重启;[0086] 更新采集配置的流程步骤如下:[0087] a.每隔10倍心跳间隔时间,读取本地缓存文件获取当前所有input文件名与内容md5,访问服务端,获取该虚机最新input配置,包括新增配置、修改配置、删除配置;[0088] b.根据虚机标签查询出所有的开启状态的配置及md5值;如果查询为空,则将入参中所有配置文件名放到删除配置文件列表中;如果查询不为空,则循环入参中所有配置文件名与查询结果比较,查询结果中不存在的,放置到删除配置文件列表中;存在且md5值不一致的放到修改配置文件列表中;如果查询不为空,循环查询结果与入参中配置文件名比较,入参中不存在的将配置文件放置到新增配置文件列表中;[0089] 获取Filebeat组件状态并上报至服务端的流程步骤如下:[0090] a.每隔心跳间隔时间,通过调用Filebeat接口,获取Filebeat当前状态;[0091] b.如果步骤a调用接口失败,则认定Filebeat为死亡状态,调用成功则使用其状态信息;[0092] c.向服务端发送nodeLabel、虚机ip与状态信息;[0093] d.服务端收到SideCar组件的上报信息后插入至采集终端运行状态历史表中;[0094] e.如果步骤b.中Filebeat为死亡状态,则从当前操作系统中获取Filebeat组件的进程号,如果获取到,则kill该进程;[0095] f.启动Filebeat组件,启动成功后向服务端上报nodeLabel、虚机ip与运行中状态信息;[0096] 自动更新Filebeat版本并重启的流程步骤如下:[0097] a.间隔20倍心跳间隔时间,调用服务端接口获取最新的Filebeat版本;[0098] b.与当前运行状态的Filebeat版本号进行对比,如果服务端的版本号与当前版本号相同,则结束本次更新任务,等待下个执行更新窗口。否则进入步骤3;[0099] c.将步骤a中获取的最新版本号作为参数请求服务端下载接口,下载与此版本号匹配的Filebeat组件;[0100] d.将当前运行状态的Filebeat组件关闭,运行下载的新版本Filebeat组件;[0101] e.将旧版本Filebeat组件从本地磁盘中删除。[0102] 文件配置模块用于将待新增配置文件添加到filebeat配置文件目录下,将待编辑配置文件内容更新到配置文件目录下的配置文件,在配置文件目录下将待删除的进行删除,同时更新本地缓存文件为读取SideCar配置文件提供元数据。[0103] 关闭模块用于关闭SideCar组件时,通过钩子关闭Filebeat,然后再关闭其本身。[0104] 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
专利地区:山东
专利申请日期:2022-03-07
专利公开日期:2024-06-18
专利公告号:CN114584464B