基于grep的分布式日志查询方法、终端、系统、设备及介质技术方案

技术编号:38464582 阅读:12 留言:0更新日期:2023-08-11 14:41
本发明专利技术公开了一种基于grep的分布式日志查询方法、终端、系统、设备及介质,其查询方法包括:在web控制台新增应用,在应用中添加实例,为实例配置客户端的IP及程序运行端口,以及日志路径及日志的正则匹配;web控制台向客户端程序下发日志路径;web控制台接收客户端程序上传的日志及其时间戳,根据日志的时间顺序及预设的文件大小合并日志以生成合并日志,合并日志的命名信息包含日志时间范围信息;web控制台调用grep搜索查询日志,查询条件包括应用名称及时间范围,其后根据是否有关键词返回不同的查询结果。本发明专利技术组件少,性能高,搭建简单,运维成本和学习成本极低,大大提高了日志查询的效率。日志查询的效率。日志查询的效率。

【技术实现步骤摘要】
基于grep的分布式日志查询方法、终端、系统、设备及介质


[0001]本专利技术涉及分布式日志查询
,具体涉及一种基于grep的分布式日志查询方法、终端、系统、设备及介质。

技术介绍

[0002]互联网应用看中高可用,往往一个应用会部署多个实例,这些实例又会跑在多个终端上,这将导致应用的日志分散在各个机器,想查找日志变得比较困难,不知道某个请求的日志在哪台机器上,往往需要一台一台登录上去查找日志。
[0003]当前,常用的分布式日志收集与查询工具是ELK,它是三个开源软件的缩写,分别表示:Elasticsearch、Logstash、Kibana,配合使用可以用来做分布式日志收集。
[0004]但ELK其过于复杂,使用门槛很高,光软件的搭建就异常复杂,更不用说后续的优化和调优,需要对这些技术有较为深入的研究的专业技术人员才可以胜任。
[0005]ELK的使用也很复杂,往往用户只需要进行分布式的日志收集和搜索,但是它提供了很多其他不是很有必要、用户基本用不上的功能,但用户仍然需要为它的整体复杂性进行买单。尤其是搜索,无论是KQL还是基于Lucene的查询都需要相关的技术知识,否则用户会对查询结果感到十分困惑。

技术实现思路

[0006]本专利技术的第一目的在于提供一种基于grep的高性能的极其简单的分布式日志收集和查询方法,以实现搭建简单,使用更简单,对运维人员和使用人员门槛极低,做到开箱即用。
[0007]为实现上述目的,本专利技术采用以下技术方案:
[0008]基于grep的分布式日志查询方法,包括:
[0009]在web控制台新增应用,在所述应用中添加实例,为所述实例配置客户端的IP及程序运行端口,以及输入日志的路径及每行日志的正则匹配;
[0010]web控制台与客户端程序通信,向所述客户端程序下发日志路径;
[0011]web控制台接收所述客户端程序上传的日志及其时间戳,根据日志的时间顺序及预设的文件大小合并日志以生成合并日志,所述合并日志的命名信息包含日志时间范围信息;
[0012]web控制台调用grep搜索查询日志,查询条件包括应用名称及时间范围,识别查询条件是否有关键词,若有,根据关键词多线程grep后过滤不在查询时间范围内的内容后汇总返回,若无,根据开始时间grep到起始行分页返回。
[0013]进一步地,根据日志的时间顺序合并日志包括:web控制台根据不同应用创建不同目录,所述目录中按设定时间间隔生成有若干列表,所述列表的命名信息包含按所述时间间隔而分级的时间信息,所述列表中按时间排序保存了该时间间隔中的日志;将所述列表按时间顺序写入磁盘中。
[0014]进一步地,将所述列表按时间顺序写入磁盘包括:设定缓冲时间;将最近一定时间内的日志存储在内存中,将内存中距离当前时间已超过缓冲时间的列表持久化到所述磁盘后,然后从所述内存中清除。
[0015]进一步地,按预设的文件大小合并日志包括:顺序读取并合并所述列表,将第一个列表中第一行日志的时间作为起始时间添加到所述合并日志的命名信息中;判断当前列表是否读取完毕,若否,继续读取当前列表,若是,删除当前列表;判断所述合并日志是否达到预设的文件大小,若否,继续顺序读取所述列表;若是,继续读取当前列表直至其日志读取完毕,将当前列表的时间作为终止时间添加到所述合并日志的命名信息中。
[0016]进一步地,所述时间间隔为分钟;所述预设的文件大小为100

300M。
[0017]本专利技术的第二目的在于提供一种基于grep的分布式日志查询方法,其包括:
[0018]在查询终端部署web控制台及grep搜索,在若干个客户端分别部署客户端程序;
[0019]配置所述web控制台,在web控制台新增应用,在所述应用中添加实例,为所述实例配置客户端的IP及程序运行端口,以及输入日志的路径及每行日志的正则匹配;向所述客户端程序下发日志路径;
[0020]配置所述客户端程序,所述客户端程序监控客户端的日志,在有日志输出时,对日志进行正则匹配以提取时间戳,然后将日志及其时间戳发送给所述web控制台;
[0021]web控制台接收所述客户端上传的日志及其时间戳,根据日志的时间顺序及预设的文件大小合并日志以生成合并日志,所述合并日志的命名信息包含日志时间范围信息;
[0022]通过所述grep搜索查询日志,查询条件包括应用名称及时间范围,web控制台确认是否有关键词,若有,根据关键词多线程grep后过滤不在查询时间范围内的内容后汇总返回,若无,根据开始时间grep到起始行分页返回。
[0023]本专利技术的第三目的在于提供一种基于grep的分布式日志查询终端,其包括:
[0024]配置模块,所述配置模块用于新增应用,并在所述应用中添加实例,为所述实例配置客户端的IP及程序运行端口,以及输入日志的路径及每行日志的正则匹配;
[0025]日志获取模块,用于向所述客户端下发日志路径,并接收所述客户端上传的日志及其时间戳;
[0026]日志合并模块,用于根据日志的时间顺序及预设的文件大小合并日志以生成合并日志,所述合并日志的命名信息包含日志时间范围信息;
[0027]查询模块,用于调用grep搜索以用于根据查询条件实现日志查询,所述查询条件包括应用名称及时间范围,web控制台确认是否有关键词,若有,根据关键词多线程grep后过滤不在查询时间范围内的内容后汇总返回,若无,根据开始时间grep到起始行分页返回。
[0028]本专利技术的第四目的在于提供一种基于grep的分布式日志查询系统,其包括:
[0029]grep搜索;
[0030]若干个客户端程序,分别部署于若干个客户端以监控客户端的日志;
[0031]web控制台,所述web控制台为如前所述的查询终端。
[0032]本专利技术的第五目的在于提供一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如前述所述的方法。
[0033]本专利技术的第六目的在于提供一种计算机可读存储介质,当所述存储介质中的指令由计算机设备的处理器执行时,使得所述计算机设备能够执行如前所述的方法。
[0034]采用上述技术方案后,本专利技术与
技术介绍
相比,具有如下优点:
[0035]本专利技术涉及的组件极少(只有web控制台与客户端程序),搭建简单,除了linux系统自带的grep搜索,其不依赖于第三方组件(如ES、数据库,ES,flume,kafka等),在日志生成与查询过程中,日志的读写采用了顺序操作,读写效率极高,并且,对合并日志的大小进行了限制,基于此基础,结合grep的高性能搜索,查询的延迟时间通常只需几分钟,大幅提高了查询性能,此外,其对终端用户的查询也很简单,不涉及复杂的操作,运维成本和学习成本低。
[0036]本专利技术的日志汇总操作通过内存计算实现,性能高,在日志收集过程中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于grep的分布式日志查询方法,其特征在于,包括:在web控制台新增应用,在所述应用中添加实例,为所述实例配置客户端的IP及程序运行端口,以及输入日志的路径及每行日志的正则匹配;web控制台与客户端程序通信,向所述客户端程序下发日志路径;web控制台接收所述客户端程序上传的日志及其时间戳,根据日志的时间顺序及预设的文件大小合并日志以生成合并日志,所述合并日志的命名信息包含日志时间范围信息;web控制台调用grep搜索查询日志,查询条件包括应用名称及时间范围,识别查询条件是否有关键词,若有,根据关键词多线程grep后过滤不在查询时间范围内的内容后汇总返回,若无,根据开始时间grep到起始行分页返回。2.如权利要求1所述的基于grep的分布式日志查询方法,其特征在于,根据日志的时间顺序合并日志包括:web控制台根据不同应用创建不同目录,所述目录中按设定时间间隔生成有若干列表,所述列表的命名信息包含按所述时间间隔而分级的时间信息,所述列表中按时间排序保存了该时间间隔中的日志;将所述列表按时间顺序写入磁盘中。3.如权利要求2所述的基于grep的分布式日志查询方法,其特征在于:将所述列表按时间顺序写入磁盘包括:设定缓冲时间;将最近一定时间内的日志存储在内存中,将内存中距离当前时间已超过缓冲时间的列表持久化到所述磁盘后,然后从所述内存中清除。4.如权利要求2所述的基于grep的分布式日志查询方法,其特征在于,按预设的文件大小合并日志包括:顺序读取并合并所述列表,将第一个列表中第一行日志的时间作为起始时间添加到所述合并日志的命名信息中;判断当前列表是否读取完毕,若否,继续读取当前列表,若是,删除当前列表;判断所述合并日志是否达到预设的文件大小,若否,继续顺序读取所述列表;若是,继续读取当前列表直至其日志读取完毕,将当前列表的时间作为终止时间添加到所述合并日志的命名信息中。5.如权利要求2

4任一项所述的基于grep的分布式日志查询方法,其特征在于:所述时间间隔为分钟;所述预设的文件大小为100

300M。6.基于grep的分布式日志查询方法,其特征在于,包括:在查询终端部署web控制台及grep搜索,在若干个客户端分别部署客户端程...

【专利技术属性】
技术研发人员:童浩
申请(专利权)人:厦门立林科技有限公司
类型:发明
国别省市:

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

1