CN116541354A - 日志检索方法、装置、计算机设备及存储介质 - Google Patents

日志检索方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN116541354A
CN116541354A CN202310525071.2A CN202310525071A CN116541354A CN 116541354 A CN116541354 A CN 116541354A CN 202310525071 A CN202310525071 A CN 202310525071A CN 116541354 A CN116541354 A CN 116541354A
Authority
CN
China
Prior art keywords
log
task
container
retrieval
search result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310525071.2A
Other languages
English (en)
Inventor
代健坤
赵耀
杨天佑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ziroom Information Technology Co Ltd
Original Assignee
Beijing Ziroom Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Ziroom Information Technology Co Ltd filed Critical Beijing Ziroom Information Technology Co Ltd
Priority to CN202310525071.2A priority Critical patent/CN116541354A/zh
Publication of CN116541354A publication Critical patent/CN116541354A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/156Query results presentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及数据处理技术领域,具体涉及日志检索方法、装置、计算机设备及存储介质,公开了接收客户端发送的日志检索请求,并基于日志检索请求中容器的数量生成容器任务,容器任务包括检索参数;将容器任务发送给日志采集端,以使日志采集端接收到所述容器任务之后,对容器任务进行拆分,并基于拆分后的容器任务进行日志检索,生成日志检索结果;向日志采集端发送检索结果获取请求,以接收日志采集端发送的日志检索结果;将日志检索结果发送至客户端,以使客户端显示所述日志检索结果。本方法能够检索较大的日志文件,由于日志采集端将容器任务拆分后再进行日志检索,提升了日志检索的效率。

Description

日志检索方法、装置、计算机设备及存储介质
技术领域
本发明涉及数据处理技术领域,具体涉及日志检索方法、装置、计算机设备及存储介质。
背景技术
网络设备、系统以及服务程序等运作时都会产生事件记录,每一行日志都记载相关操作的描述,网络操作系统设有多种日志文件,包括应用程序日志、安全日志、系统日志等。
当前的容器云日志系统通常占用较大内存,运维这些系统对服务器的消耗较大,而硬件资源不足会导致查看日志时出现比较大的延迟,当开发人员需要排查问题时若缺少参考日志,会严重降低工作效率和问题排查速度。
发明内容
有鉴于此,本发明实施例提供了一种日志检索方法、装置、计算机设备及存储介质,以解决日志检索效率不高的问题。
第一方面,本发明实施例提供了一种日志检索方法,应用于服务端,所述方法包括:
接收客户端发送的日志检索请求,并基于所述日志检索请求中容器的数量生成容器任务,所述容器任务包括检索参数;
将所述容器任务发送给日志采集端,以使所述日志采集端接收到所述容器任务之后,对所述容器任务进行拆分,并基于拆分后的容器任务进行日志检索,生成日志检索结果;
向所述日志采集端发送检索结果获取请求,以接收所述日志采集端发送的日志检索结果;
将所述日志检索结果发送至客户端,以使所述客户端显示所述日志检索结果。
本实施例提供的日志检索方法,服务端在接收到日志检索请求后,生成容器任务,并将容器任务发送给日志采集端,日志采集端拆分容器任务,并执行拆分后的容器任务,日志采集端根据接收到的检索结果获取请求向服务端返回日志检索结果,服务端再将日志检索结果发送给客户端。本方法能够检索较大的日志文件,由于日志采集端将容器任务拆分后再进行日志检索,提升了日志检索的效率。
在一些可选的实施方式中,所述基于所述日志检索请求中容器的数量生成容器任务,包括:
基于所述日志检索请求建立全局检索任务;
根据所述日志检索请求中容器的数量对所述全局检索任务进行拆解,生成容器任务,所述容器任务的数量与所述容器的数量一致。
在一些可选的实施方式中,所述根据所述日志检索请求中容器的数量对所述全局检索任务进行拆解,生成容器任务,包括:
根据所述容器的数量对所述全局检索任务进行拆解,得到初始容器任务;
根据所述日志检索请求中的容器名称查询所述容器对应的IP地址;
基于所述IP地址更新所述初始容器任务,生成容器任务。
在一些可选的实施方式中,所述将所述容器任务发送给日志采集端之后,所述方法还包括:
接收所述日志采集端接收到所述容器任务后生成的任务标识号,所述任务标识号是所述日志采集端基于所述容器任务生成的,所述任务标识号与容器任务一一对应。
在一些可选的实施方式中,所述向所述日志采集端发送检索结果获取请求,以接收所述日志采集端发送的日志检索结果,包括:
基于所述任务标识号向所述日志采集端发送检索结果获取请求,以获取所述日志采集端发送的与所述任务标识号对应的日志检索结果。
在一些可选的实施方式中,所述日志采集端接收到所述容器任务之后,对所述容器任务进行拆分,并基于拆分后的容器任务进行日志检索,生成日志检索结果,包括:
将所述容器任务拆分为多个子任务,所述子任务的数量与容器内的文件数量一致;
基于所述容器任务内的检索参数执行所述子任务,确定日志检索结果。
在一些可选的实施方式中,所述检索参数中包括检索关键字,所述客户端显示所述日志检索结果,包括:
在所述日志检索结果中高亮所述检索关键字。
第二方面,本发明实施例提供了一种日志检索装置,包括:
请求接收模块,用于接收客户端发送的日志检索请求,并基于所述日志检索请求中容器的数量生成容器任务,所述容器任务包括检索参数;
任务发送模块,用于将所述容器任务发送给日志采集端,以使所述日志采集端接收到所述容器任务之后,对所述容器任务进行拆分,并基于拆分后的容器任务进行日志检索,生成日志检索结果;
结果获取模块,用于向所述日志采集端发送检索结果获取请求,以接收所述日志采集端发送的日志检索结果;
结果发送模块,用于将所述日志检索结果发送至客户端,以使所述客户端显示所述日志检索结果。
第三方面,本发明实施例提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的日志检索方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的日志检索方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明一些实施例的日志检索方法的流程示意图;
图2是根据本发明一些实施例的日志检索方法的流程示意图;
图3是根据本发明一些实施例的日志检索界面的示意图;
图4是根据本发明实施例的日志检索装置的结构框图;
图5是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前企业主流的容器云日志方案ELK(Elasticsearch,Logstash,Kibana)或者Grafana开源的Loki日志等系统比较重量级,运维这些系统对服务器的消耗较大,硬件资源的不足会导致检索日志时有延迟,严重影响工作效率以及问题排查速度,为此,本发明实施例提供一种日志检索方法。
根据本发明实施例,提供了一种日志检索方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种日志检索方法,应用于服务端,该服务端为一种日志检索平台的服务端,图1是根据本发明实施例的日志检索方法的流程图,如图1所示,该流程包括如下步骤:
步骤S11,接收客户端发送的日志检索请求,并基于日志检索请求中容器的数量生成容器任务,所述容器任务包括检索参数。
开发人员在系统开发过程中可能有排查问题等需求,此时需要进行日志检索,本发明实施例提供一种日志检索平台,可在该日志检索平台中进行日志筛选和检索。打开日志检索平台的客户端,输入检索参数,检索参数包括日期范围、日志文件、关键字、应用所在集群、容器名称、日志条数等。
服务端是一种Java的服务进程,当用户输入检索参数,点击搜索控件,即向服务端发出日志检索请求,发出的日志检索请求相当于一种指令,服务端可根据该指令执行检索任务,发出的指令携带检索参数。服务端接收到客户端发送的日志检索请求以及检索参数,统计其中的容器名称,从而确定容器数量,根据容器数量生成与容器数量对应的容器任务,容器任务表示所指的容器所要执行的任务。本实施方式中,容器任务可以是一个也可以是多个,容器任务中携带有检索参数。
步骤S12,将容器任务发送给日志采集端,以使日志采集端接收到容器任务之后,对容器任务进行拆分,并基于拆分后的容器任务进行日志检索,生成日志检索结果。
日志采集端是一种主机代理端(Agent),主要用于在接收到服务端的消息后进行日志的获取。服务端将容器任务发送给日志采集端,容器任务中携带有检索参数,为了提升检索效率,对容器任务进行拆解,可以根据容器任务包含的文件数量进行拆分,从而得到多个拆分后的容器任务,基于拆分后的容器任务以及容器任务携带的检索参数进行日志检索,在任务执行过程中,各个拆分后的容器任务是并列执行的。得到的日志检索结果是根据检索参数从各个文件夹搜出的日志行。
步骤S13,向日志采集端发送检索结果获取请求,以接收日志采集端发送的日志检索结果。
服务端在发出容器任务后,推送线程并进入睡眠模式,轮询日志采集端的线程定期向日志采集端发送检索结果获取请求,日志采集端得到日志检索结果后将日志检索结果写入临时缓存,根据接收到的检索结果获取请求将缓存的日志检索结果发送给服务端。
步骤S14,将日志检索结果发送至客户端,以使客户端显示日志检索结果。
服务端获取到日志检索结果后写入服务端缓存,唤醒睡眠进程,向客户端推送日志检索结果,客户端的页面上显示日志检索结果。发送的日志检索结果还携带有查询状态,查询状态包括检索成功、检索失败、查询的文件列表、文件大小等。
服务端向日志采集端发出容器任务之后,不会立即向客户端推送结果,由于日志采集端接收消息以及检索日志通常需要一段时间。采用轮询线程的方式,可优化服务端和客户端之间通信的效率,减少无效的消息推送。
当服务端接收到客户端的中止任务信号、服务端通过心跳监测到客户端页面关闭或崩溃、日志采集端汇报查询状态结束等,服务端会中止日志检索全局任务,并向日志采集端发送清理请求,日志采集端根据清理请求对写入临时缓存中的日志检索结果进行清空操作。客户端在发起日志检索请求时,还可以根据实际需求选择中止任务,在日志检索平台的相关页面中设有任务中止的控件,点击任务中止的控件后将向服务端发送中止任务信号。同时,服务端通过心跳监测对客户端页面的状态进行监测,页面关闭、浏览器关闭、浏览器崩溃等多种情况都会停止日志检索的全局任务。
本实施例提供的日志检索方法,服务端在接收到日志检索请求后,生成容器任务,并将容器任务发送给日志采集端,日志采集端拆分容器任务,并执行拆分后的容器任务,日志采集端根据接收到的检索结果获取请求向服务端返回日志检索结果,服务端再将日志检索结果发送给客户端。本方法能够检索较大的日志文件,由于日志采集端将容器任务拆分后再进行日志检索,提升了日志检索的效率。
在本实施例中提供了一种日志检索方法,可用于上述的服务端,图1中步骤S11的基于所述日志检索请求中容器的数量生成容器任务,包括如下步骤:
步骤S111,基于日志检索请求建立全局检索任务。
当用户需要进行日志检索,在客户端的页面上输入检索参数,点击搜索控件,即向服务端发出日志检索请求,发出的日志检索请求相当于一种指令,服务端接收到日志检索请求后,确定需要执行日志检索任务,即生成全局检索任务。
步骤S112,根据日志检索请求中容器的数量对全局检索任务进行拆解,生成容器任务,所述容器任务的数量与所述容器的数量一致。
具体地,上述步骤S112包括:
步骤S1121,根据容器的数量对所述全局检索任务进行拆解,得到初始容器任务。
日志检索请求所携带的检索参数中包括所有需要检索的容器名称,统计所有容器名称即可确定容器的数量。一个初始容器任务只负责一个容器中的日志检索,全局检索任务可能涉及多个容器,因此,根据容器的数量对全局检索任务进行拆解,拆分得到的每个初始容器任务对应一个容器。
步骤S1122,根据日志检索请求中的容器名称查询容器对应的IP地址。
IP地址用于确定容器任务被发送到哪个IP端口进行日志检索,可起到定位容器的功能,通常集群中有几万个容器,根据IP地址可以确定容器在哪个节点运行。
以Kubernetes集群为例,Kubernetes集群发出的变更事件会发送到Nacos配置中心,事件中包括了容器名称和容器所在的K8S节点的IP地址,服务端通过订阅该Nacos的配置,可以确定初始容器任务对应的IP地址。
步骤S1123,基于IP地址更新初始容器任务,生成容器任务。
初始容器任务携带检索参数,在得到IP地址后,初始容器任务还需携带IP地址,将其作为容器任务的一个参数值,更新后得到的容器任务携带有IP地址,具体形式可以是写作容器名称-IP地址的组合。
本发明实施例提供的日志检索方法,将全局检索任务进行拆解,得到的容器任务数量与容器数量一致,最终发出的容器任务携带IP地址,IP地址起到定位容器的功能,提高日志检索的效率。
在本实施例中提供了一种日志检索方法,图1中步骤S12的将所述容器任务发送给日志采集端之后,该方法还包括:
接收日志采集端接收到所述容器任务后生成的任务标识号,所述任务标识号是所述日志采集端基于所述容器任务生成的,所述任务标识号与容器任务一一对应。
服务端向日志采集端发出容器任务后,日志采集端根据容器任务中的任务参数摘要生成任务标识号,任务标识号与容器任务一一对应,日志采集端将生成的任务标识号发送给服务端,每个容器任务的任务标识号唯一。
进一步地,图1中步骤S13包括:
基于任务标识号向日志采集端发送检索结果获取请求,以获取日志采集端发送的与任务标识号对应的日志检索结果。
服务端接收到任务标识号后,向日志采集端发送的检索结果获取请求中携带任务标识号,日志采集端根据任务标识号将对应容器任务的日志检索结果发送给服务端。
本发明实施例提供的方法,服务端在需要获取日志检索结果时,发出的检索结果获取请求中携带有任务标识号,通过任务标识号将对应容器任务的日志检索结果发送给服务端,避免出现因多个容器任务导致发送错误的日志检索结果的情况。
在本实施例中提供了一种日志检索方法,图1中步骤S12的所述日志采集端接收到所述容器任务之后,对所述容器任务进行拆分,并基于拆分后的容器任务进行日志检索,生成日志检索结果,包括如下步骤:
步骤S31,将容器任务拆分为多个子任务,所述子任务的数量与容器内的文件数量一致。
日志采集端使用K8S提供的DaemonSet守护进程控制器,日志采集端接收到容器任务后,根据容器所包含的文件数量对容器任务进行拆分,将容器任务拆分为细粒度更高的子任务,得到的每个子任务对应一个文件。
步骤S32,基于容器任务内的检索参数执行子任务,确定日志检索结果。
一个子任务对应一个文件的检索,对文件进行并行的读取,根据检索参数中的关键字、时间范围等对读取到的日志进行过滤,将符合检索参数的日志行写入临时缓存,
集群流量负载均衡和日志文件生成策略,通常同一应用所属的多个容器生成的日志文件名称相同,内容不同。例如用户登录应用,启动了10个容器,10个容器内都有all_data.log这个文件,但是内容是不同的,所有文件的总和就是应用产生的所有日志,日志检索结果包括所有符合检索参数的日志行。日志采集端与服务端之间通过该http建立通信连接。
本发明实施例提供的方法,日志采集端将容器任务进行拆分,多个子任务并列执行,提高日志检索的效率。
在本实施例中提供了一种日志检索方法,图1中步骤S13包括:
在所述日志检索结果中高亮所述检索关键字。
客户端指日志检索平台的客户端,在界面上显示所有符合检索参数的日志行,并高亮日志行中的所有关键字,便于用户查看。
下面以提供一种具体的实施方式,在本实施方式中提供一种日志检索方法,涉及前端页面(即客户端页面)、服务端、主机代理(Agent,即日志采集端),流程如图2所示,用户在前面页面发起日志查询请求,客户端将日志查询请求发送给服务端,服务端根据日志查询请求创建容器任务,并根据容器名称和IP地址的映射关系将容器任务异步发给日志采集端,日志采集端根据接收到的容器任务生成各容器对应的任务编码(即任务标识号),将任务标识号返回给服务端,服务端在发出容器任务后会立即启动日志拉取的线程,在一定时间间隔下持续从所有的日志采集端拉取日志检索结果,直到达到结束的条件。结束条件包括:数量达到检索参数中的用户预设值、文件读取结束等。数量达到检索参数中的用户预设值是指查询得到的日志行数满足用户预设值,例如用户设置需要100行日志,检索得到100行日志后不再进行检索。文件读取结束表示可检索完成所有满足关键字的日志行,可能日志行不满足用户设置的预设值。服务端推送线程后进入线程睡眠,轮询日志采集端的线程如果获取到了日志检索结果,就会唤醒睡眠的线程,向客户端推送日志检索结果。可同时优化服务端和客户端通信的效率,减少无效的消息推送。两个线程池的组合在实际应用场景中,实现了低延迟下并且达到了预期的吞吐量要求。
日志采集端对容器任务进行拆分,根据拆分得到的子任务读取文件命令,将得到的日志检索结果写入临时缓存。在接收到服务端发起的结果获取请求后,将日志检索结果发送给服务端,服务端唤醒睡眠线程并将结果推送至客户端,当服务端接收到客户端的中止任务信号、服务端通过心跳监测到客户端页面关闭或崩溃、日志采集端汇报查询状态结束等,服务端会中止日志检索全局任务,并向日志采集端发送清理请求,日志采集端根据清理请求对写入临时缓存中的日志检索结果进行清空操作。
客户端的日志检索界面如图3所示,图中包括日志检索结果。客户端采用一个日志格式的可视化组件方案,支持关键字高亮、长文本换行、上下文检索。为了提高系统的流畅度和用户体验,除了更新日志内容外,在事件流推送过程中会实时更新命中行数和文件大小以及进度信息。对于日志上下文检索的设计,具体地:在每一条推送到客户端的日志条目中均携带了offset信息,表示该条日志开始位置在原文件(非chunk文件,因为上下文不受过滤条件限制)中的偏移量,偏移量是指当前日志行在整个文件中的字节偏移。当用户需要查看某一条日志的上下文时,需要使用对应的文件路径和偏移量及限制条数请求日志采集端。日志采集端使用类似Golang中os.File#Seek方法将文件游标设置到要读取的位置,再使用Read方法逐字符读取,直到满足limit数量的换行符’\n’出现后即可将内容返回。在服务端拉取日志检索结果的过程中,只需要将目前已经拉取到的日志最后一条的偏移量+1,再次请求日至服务端,即可增量获取后续的日志,另外,在上下文的实现中,使用偏移量可以实现文件游标的快速移动,高效的查出要查看的日志上下文内容。日志采集端采用DaemonSet部署,方便运行以及维护,由于DaemonSet只在Node上运行一个Pod,因此它们通常不会对业务应用程序产生干扰或侵入。
服务端与客户端采用Http SSE(Server-Sent-Events)方案进行通信,这是一种WebSocket的轻量级替代方案。SSE为单向通道,只能由服务端向客户端推送消息。日志文件所组成的日志流和日志文件的状态流可以无阻塞的推送到浏览器页面,使用户接近实时的查阅检索到的日志内容。
本发明提供的分布式日志检索方案,能够高效检索日志,不消耗额外存储和计算资源,日志采集端业务应用无感知、无侵入,提供轻量级日志检索解决方案,提升日志检索的效率。
在本实施例中还提供了一种日志检索装置,该装置用于实现上述实施例及实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种日志检索装置,如图4所示,包括:
请求接收模块,用于接收客户端发送的日志检索请求,并基于所述日志检索请求中容器的数量生成容器任务,所述容器任务包括检索参数;
任务发送模块,用于将所述容器任务发送给日志采集端,以使所述日志采集端接收到所述容器任务之后,对所述容器任务进行拆分,并基于拆分后的容器任务进行日志检索,生成日志检索结果;
结果获取模块,用于向所述日志采集端发送检索结果获取请求,以接收所述日志采集端发送的日志检索结果;
结果发送模块,用于将所述日志检索结果发送至客户端,以使所述客户端显示所述日志检索结果。
在一些可选的实施方式中,请求接收模块包括:
任务建立单元,用于基于所述日志检索请求建立全局检索任务;
任务拆解单元,用于根据所述日志检索请求中容器的数量对所述全局检索任务进行拆解,生成容器任务,所述容器任务的数量与所述容器的数量一致。
在一些可选的实施方式中,任务拆解单元包括:
任务拆解子单元,用于根据所述容器的数量对所述全局检索任务进行拆解,得到初始容器任务;
地址查询子单元,用于根据所述日志检索请求中的容器名称查询所述容器对应的IP地址;
任务生成子单元,用于基于所述IP地址更新所述初始容器任务,生成容器任务。
在一些可选的实施方式中,装置还包括:
标识号接收模块,用于接收所述日志采集端接收到所述容器任务后生成的任务标识号,所述任务标识号是所述日志采集端基于所述容器任务生成的,所述任务标识号与容器任务一一对应。
在一些可选的实施方式中,结果获取模块包括:
结果获取单元,用于基于所述任务标识号向所述日志采集端发送检索结果获取请求,以获取所述日志采集端发送的与所述任务标识号对应的日志检索结果。
在一些可选的实施方式中,所述日志采集端接收到所述容器任务之后,对所述容器任务进行拆分,并基于拆分后的容器任务进行日志检索,生成日志检索结果,包括:
将所述容器任务拆分为多个子任务,所述子任务的数量与容器内的文件数量一致;
基于所述容器任务内的检索参数执行所述子任务,确定日志检索结果。
在一些可选的实施方式中,所述检索参数中包括检索关键字,所述客户端显示所述日志检索结果,包括:
在所述日志检索结果中高亮所述检索关键字。
本实施例中的日志检索装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种计算机设备,具有上述图4所示的日志检索装置。
请参阅图5,图5是本发明可选实施例提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (10)

1.一种日志检索方法,其特征在于,应用于服务端,所述方法包括:
接收客户端发送的日志检索请求,并基于所述日志检索请求中容器的数量生成容器任务,所述容器任务包括检索参数;
将所述容器任务发送给日志采集端,以使所述日志采集端接收到所述容器任务之后,对所述容器任务进行拆分,并基于拆分后的容器任务进行日志检索,生成日志检索结果;
向所述日志采集端发送检索结果获取请求,以接收所述日志采集端发送的日志检索结果;
将所述日志检索结果发送至客户端,以使所述客户端显示所述日志检索结果。
2.根据权利要求1所述的方法,其特征在于,所述基于所述日志检索请求中容器的数量生成容器任务,包括:
基于所述日志检索请求建立全局检索任务;
根据所述日志检索请求中容器的数量对所述全局检索任务进行拆解,生成容器任务,所述容器任务的数量与所述容器的数量一致。
3.根据权利要求2所述的方法,其特征在于,所述根据所述日志检索请求中容器的数量对所述全局检索任务进行拆解,生成容器任务,包括:
根据所述容器的数量对所述全局检索任务进行拆解,得到初始容器任务;
根据所述日志检索请求中的容器名称查询所述容器对应的IP地址;
基于所述IP地址更新所述初始容器任务,生成容器任务。
4.根据权利要求1所述的方法,其特征在于,所述将所述容器任务发送给日志采集端之后,所述方法还包括:
接收所述日志采集端接收到所述容器任务后生成的任务标识号,所述任务标识号是所述日志采集端基于所述容器任务生成的,所述任务标识号与容器任务一一对应。
5.根据权利要求4所述的方法,其特征在于,所述向所述日志采集端发送检索结果获取请求,以接收所述日志采集端发送的日志检索结果,包括:
基于所述任务标识号向所述日志采集端发送检索结果获取请求,以获取所述日志采集端发送的与所述任务标识号对应的日志检索结果。
6.根据权利要求1所述的方法,其特征在于,所述日志采集端接收到所述容器任务之后,对所述容器任务进行拆分,并基于拆分后的容器任务进行日志检索,生成日志检索结果,包括:
将所述容器任务拆分为多个子任务,所述子任务的数量与容器内的文件数量一致;
基于所述容器任务内的检索参数执行所述子任务,确定日志检索结果。
7.根据权利要求1所述的方法,其特征在于,所述检索参数中包括检索关键字,所述客户端显示所述日志检索结果,包括:
在所述日志检索结果中高亮所述检索关键字。
8.一种日志检索装置,其特征在于,所述装置包括:
请求接收模块,用于接收客户端发送的日志检索请求,并基于所述日志检索请求中容器的数量生成容器任务,所述容器任务包括检索参数;
任务发送模块,用于将所述容器任务发送给日志采集端,以使所述日志采集端接收到所述容器任务之后,对所述容器任务进行拆分,并基于拆分后的容器任务进行日志检索,生成日志检索结果;
结果获取模块,用于向所述日志采集端发送检索结果获取请求,以接收所述日志采集端发送的日志检索结果;
结果发送模块,用于将所述日志检索结果发送至客户端,以使所述客户端显示所述日志检索结果。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的日志检索方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的日志检索方法。
CN202310525071.2A 2023-05-10 2023-05-10 日志检索方法、装置、计算机设备及存储介质 Pending CN116541354A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310525071.2A CN116541354A (zh) 2023-05-10 2023-05-10 日志检索方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310525071.2A CN116541354A (zh) 2023-05-10 2023-05-10 日志检索方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN116541354A true CN116541354A (zh) 2023-08-04

Family

ID=87446676

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310525071.2A Pending CN116541354A (zh) 2023-05-10 2023-05-10 日志检索方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN116541354A (zh)

Similar Documents

Publication Publication Date Title
CN110062025B (zh) 数据采集的方法、装置、服务器及存储介质
EP3318991B1 (en) Monitoring processes running on a platform as a service architecture
JP7230083B2 (ja) 地図サービステスト用の方法及び装置
US8166350B2 (en) Apparatus and method for persistent report serving
CN109542595B (zh) 一种数据采集方法、装置和系统
CN111209258A (zh) 税务端系统日志实时分析方法、设备、介质及系统
CN110895484A (zh) 任务调度方法及装置
US9535754B1 (en) Dynamic provisioning of computing resources
JP2009545060A (ja) 超大規模データベースに対するデータ処理
CN107919987B (zh) 一种微服务云部署的实现方法
CN110740184B (zh) 基于微服务架构的交易策略测试系统
CN110895488B (zh) 任务调度方法及装置
CN110895487B (zh) 分布式任务调度系统
CN112506915A (zh) 一种应用数据的管理系统以及处理方法、装置和服务器
CN110895483A (zh) 任务恢复方法及装置
CN115373835A (zh) Flink集群的任务资源调整方法、装置及电子设备
CN113806305A (zh) 数据导出方法及装置、计算机可读存储介质及电子设备
CN111371585A (zh) 用于cdn节点的配置方法及装置
CN108667740B (zh) 流量控制的方法、装置及系统
CN110674008B (zh) Ssd的问题盘日志信息收集方法、装置、设备及介质
CN110895486A (zh) 分布式任务调度系统
CN109033188A (zh) 一种元数据采集方法、装置、服务器和计算机可读介质
CN106874343B (zh) 一种时序数据库的数据删除方法及系统
CN110895485A (zh) 任务调度系统
CN110019045B (zh) 日志落地方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination