CN107025222A - 一种分布式日志采集方法及装置 - Google Patents
一种分布式日志采集方法及装置 Download PDFInfo
- Publication number
- CN107025222A CN107025222A CN201610063824.2A CN201610063824A CN107025222A CN 107025222 A CN107025222 A CN 107025222A CN 201610063824 A CN201610063824 A CN 201610063824A CN 107025222 A CN107025222 A CN 107025222A
- Authority
- CN
- China
- Prior art keywords
- daily record
- log
- record data
- middleware
- sent
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
Abstract
本发明提出了一种分布式日志采集方法及装置,在客户端侧执行的流程包括:步骤1,当客户端中有业务系统基于请求调用所述业务系统对应的中间件时,采集与所述业务系统调用有关的数据,并将采集到的所述数据连同中间件运行时间数据一并填充入日志数据;步骤2,将所述日志数据发送给日志收集服务器进行统一存储。本发明能够及时从大规模业务系统集群的工作过程中采集到一些能够反映业务逻辑的日志数据。
Description
技术领域
本发明涉及日志系统技术领域,尤其涉及一种分布式日志采集方法及装置。
背景技术
当前,互联网公司提供的服务都是基于复杂的大规模分布式的业务系统集群来实现的,即一个服务构建于不同的业务系统集群之上,一个前端请求会调用多个不同的后端业务,调用方式多种多样,比如:远程过程调用、数据库、分布式缓存、分布式文件系统等。这些后端业务系统集群可能是由不同的团队来开发的,也可能是使用不同的编程语言来实现的,可能分布在多个服务器之上,也可能横跨多个不同的数据中心。随着公司业务的不断拓展,业务需求只会越来越多,后端业务逻辑将会越来越复杂,开发人员将会遇到越来越多的系统问题、业务耦合问题以及性能问题,比如:上线了新的服务,如何确定它一切正常,比如发布5台服务器,如何直观了解是否有请求进来,访问是否正常,是否每台服务器都可以正常提供服务;某个核心服务出现故障,导致大量报错,如何快速定位到出现故障的服务;前端请求响应慢,如何确定是哪些服务导致的,哪个环节的性能遇到瓶颈;应用程序出现性能瓶颈,如何确定瓶颈在哪里;开发人员离职,接手业务的开发人员如何快速的上手业务,快速的理清业务逻辑之间的调用关系。
解决这类问题需要占用多个不同业务线开发人员的大量时间与精力,并且未必能够快速的有效的解决问题。在这种情况下,需要一些可以帮助开发人员理解业务逻辑、快速定位问题的日志数据供用户参考。
发明内容
本发明要解决的技术问题是,提供一种分布式日志采集方法及装置,及时从大规模业务系统集群的工作过程中采集到一些能够反映业务逻辑的日志数据。
本发明采用的技术方案是,所述分布式日志采集方法,在客户端侧执行的流程包括:
步骤1,当客户端中有业务系统基于请求调用所述业务系统对应的中间件时,通过中间件中预设的埋点采集与所述业务系统调用有关的数据,并将采集到的所述数据连同中间件运行时间数据一并填充入日志数据;
步骤2,将所述日志数据发送给日志收集服务器进行统一存储。
进一步的,所述方法在客户端侧执行的流程,还包括:
在所述步骤1之前,按照预先设定的采样率从所述业务系统接收到的所有的所述请求中选择相应数量的请求,针对选择出的请求执行所述步骤1。
进一步的,所述步骤2包括:
按照设定的通信方式将所述日志数据发送给日志收集代理模块,再通过日志收集代理模块发送给日志收集服务器进行统一存储;
所述设定的通信方式,包括:套接字方式、共享内存方式或者管道方式。
进一步的,所述按照设定的通信方式将所述日志数据发送给日志收集代理模块,包括:
将所述日志数据放入到多个第一异步队列并从中轮询选出日志数据按照设定的通信方式发送给所述日志收集代理模块。
进一步的,在所述日志收集服务器的数量为一个的情况下,所述通过日志收集代理模块发送给日志收集服务器进行统一存储,包括:
日志收集代理模块将所述日志数据放入到多个第二异步队列并从中轮询选出日志数据;再将每次选出的日志数据发送给所述日志收集服务器,以使所述日志收集服务器将接收到的日志数据进行兼容性处理后统一保存到数据库中;
在所述日志收集服务器的数量为两个以上的情况下:
所述通过日志收集代理模块发送给日志收集服务器进行统一存储,包括:
日志收集代理模块一方面获取日志收集服务器列表并从中轮询选择每次发送所对应接收的日志收集服务器,另一方面将所述日志数据放入到多个第二异步队列并从中轮询选出日志数据;再将每次选出的日志数据发送给对应接收的日志收集服务器,以使各日志收集服务器将接收到的日志数据进行兼容性处理后统一保存到数据库中。
进一步的,在客户端的数量为两个以上的情况下:
为中间件设置采集开关;当所述采集开关开启时,允许通过中间件中预设的埋点执行所述步骤1;和/或,
为日志收集代理模块设置发送开关;当所述发送开关开启时,允许通过日志收集代理模块将所述日志数据发送给日志收集服务器进行统一存储。
进一步的,所述与业务系统调用有关的数据,包括:业务系统的名称、类型、全局唯一标识ID、全局唯一顺序ID、当前的系统时间、调用方业务系统的IP地址及端口、和被调用方业务系统的IP地址及端口;
所述中间件运行时间数据,至少包括以下之一:中间件的全程运行时长、中间件的设定阶段的运行时长。
本发明还提供一种分布式日志采集装置,设置于客户端侧,所述装置包括:
中间件模块,用于当客户端中有业务系统基于请求调用所述业务系统对应的中间件时,通过中间件中预设的埋点采集与所述业务系统调用有关的数据,并将采集到的所述数据连同中间件运行时间数据一并填充入日志数据;将所述日志数据发送给日志收集服务器进行统一存储。
进一步的,所述装置,还包括:
请求筛选模块,用于按照预先设定的采样率从所述业务系统接收到的所有的所述请求中选择相应数量的请求,针对选择出的请求调用中间件模块。
进一步的,所述装置,还包括:日志收集代理模块;
所述中间件模块,还用于按照设定的通信方式将所述日志数据发送给日志收集代理模块;所述设定的通信方式,包括:套接字方式、共享内存方式或者管道方式;
所述日志收集代理模块,用于将所述日志数据发送给日志收集服务器进行统一存储。
进一步的,所述中间件模块,具体用于:
将所述日志数据放入到多个第一异步队列并从中轮询选出日志数据按照设定的通信方式发送给所述日志收集代理模块。
进一步的,在所述日志收集服务器的数量为一个的情况下,所述日志收集代理模块,具体用于:
日志收集代理模块将所述日志数据放入到多个第二异步队列并从中轮询选出日志数据;再将每次选出的日志数据发送给所述日志收集服务器,以使所述日志收集服务器将接收到的日志数据进行兼容性处理后统一保存到数据库中;
在所述日志收集服务器的数量为两个以上的情况下:
所述日志收集代理模块,具体用于:一方面获取日志收集服务器列表并从中轮询选择每次发送所对应接收的日志收集服务器,另一方面将所述日志数据放入到多个第二异步队列并从中轮询选出日志数据;再将每次选出的日志数据发送给对应接收的日志收集服务器,以供各日志收集服务器将接收到的日志数据进行兼容性处理后统一保存到数据库中。
进一步的,在客户端的数量为两个以上的情况下,所述中间件模块,还用于:
为中间件设置采集开关;当所述采集开关开启时,允许通过中间件中预设的埋点执行所述采集和所述发送的操作;和/或,
为日志收集代理模块设置发送开关;当所述发送开关开启时,允许通过日志收集代理模块将所述日志数据发送给日志收集服务器进行统一存储。
进一步的,所述与业务系统调用有关的数据,包括:业务系统的名称、类型、全局唯一标识ID、全局唯一顺序ID、当前的系统时间、调用方业务系统的IP地址及端口、和被调用方业务系统的IP地址及端口;
所述中间件运行时间数据,至少包括以下之一:中间件的全程运行时长、中间件的设定阶段的运行时长。
采用上述技术方案,本发明至少具有下列优点:
本发明所述分布式日志采集方法及装置,通过采集并汇总前端请求访问后端业务系统所留下的足迹,为业务开发人员排除故障、性能调优、掌握业务执行逻辑提供底层支撑。本发明可以在对业务系统不侵入的前提下,完成日志数据的采集工作,即对使用方无感,减少业务开发人员的工作量;在业务无感知的情况下实时采集到日志数据,以便使用方可以尽快的定位与解决问题。在为中间件设置采集开关、为日志收集代理模块设置发送开关的情况下,使用方可以根据需求,自定义收集日志数据的范围和粒度。本发明多处使用异步队列,保证了数据的实效性,同时,异步队列也可以做短时间内的数据缓存。
附图说明
图1为本发明第一实施例的分布式日志采集方法流程图;
图2为本发明第五实施例的分布式日志采集系统组成结构示意图;
图3为本发明第五实施例分布式日志采集系统的采集流程示意图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
本发明第一实施例,一种分布式日志采集方法,如图1所示,在客户端侧执行的流程包括以下具体步骤:
步骤S101,当客户端中有业务系统基于请求调用所述业务系统对应的中间件时,通过中间件中预设的埋点采集与所述业务系统调用有关的数据,并将采集到的所述数据连同中间件运行时间数据一并填充入日志数据。该预设的埋点为在中间件的执行过程中的设定时间点执行的一段程序。
具体的,所述与业务系统调用有关的数据,包括:业务系统的名称、类型、全局唯一标识ID、全局唯一顺序ID、当前的系统时间、调用方业务系统的IP地址及端口、和被调用方业务系统的IP地址及端口。
所述中间件运行时间数据,至少包括以下之一:中间件的全程运行时长、中间件的设定阶段的运行时长。
步骤S102,将所述日志数据发送给日志收集服务器进行统一存储。
具体的,步骤S102包括:
按照设定的通信方式将所述日志数据发送给日志收集代理模块,再通过日志收集代理模块发送给日志收集服务器进行统一存储;
所述设定的通信方式,包括:套接字方式、共享内存方式或者管道方式。
进一步的,在步骤S102中,所述按照设定的通信方式将所述日志数据发送给日志收集代理模块,包括:
将所述日志数据放入到多个第一异步队列并从中轮询选出日志数据按照设定的通信方式发送给所述日志收集代理模块;
在所述日志收集服务器的数量为一个的情况下,所述通过日志收集代理模块发送给日志收集服务器进行统一存储,包括:
日志收集代理模块将所述日志数据放入到多个第二异步队列并从中轮询选出日志数据;再将每次选出的日志数据发送给所述日志收集服务器,以使所述日志收集服务器将接收到的日志数据进行兼容性处理后统一保存到数据库中;
在所述日志收集服务器的数量为两个以上的情况下,所述通过日志收集代理模块发送给日志收集服务器进行统一存储,包括:
日志收集代理模块一方面获取日志收集服务器列表并从中轮询选择每次发送所对应接收的日志收集服务器,另一方面将所述日志数据放入到多个第二异步队列并从中轮询选出日志数据;再将每次选出的日志数据发送给对应接收的日志收集服务器,各日志收集服务器将接收到的日志数据进行兼容性处理后统一保存到数据库中。
优选的,在客户端的数量为两个以上的情况下:
为中间件设置采集开关;当所述采集开关开启时,允许通过中间件中预设的埋点执行所述步骤1;和/或,
为日志收集代理模块设置发送开关;当所述发送开关开启时,允许通过日志收集代理模块将所述日志数据发送给日志收集服务器进行统一存储。
在为中间件设置采集开关、为日志收集代理模块设置发送开关的情况下,使用方可以根据需求,自定义收集日志数据的范围,因为当发送开关关闭时,相应的日志收集代理模块可以不发送日志数据;当采集开关关闭时,相应的中间件则无需采集日志数据。
本发明第二实施例,一种分布式日志采集方法,本实施例所述方法与第一实施例大致相同,区别在于,本实施例的所述方法,在客户端侧执行的流程还包括以下具体步骤:
在所述步骤S101之前,按照预先设定的采样率从所述业务系统接收到的所有的所述请求中选择相应数量的请求,针对选择出的请求执行所述步骤S101。
具体的,在本发明实施例中,可以针对任一业务系统,设定对该业务系统中的所述请求的采样率,按照采样率去选取相应数量的请求进行日志数据的收集,而无需对该业务系统收到的全部的所述请求进行日志数据的收集。
本发明第三实施例,与第一实施例对应,本实施例介绍一种分布式日志采集装置,设置于客户端侧,所述装置包括以下组成部分:
中间件模块,用于当客户端中有业务系统基于请求调用所述业务系统对应的中间件时,通过中间件中预设的埋点采集与所述业务系统调用有关的数据,并将采集到的所述数据连同中间件运行时间数据一并填充入日志数据;将所述日志数据发送给日志收集服务器进行统一存储。
具体的,所述与业务系统调用有关的数据,包括:业务系统的名称、类型、全局唯一标识ID、全局唯一顺序ID、当前的系统时间、调用方业务系统的IP地址及端口、和被调用方业务系统的IP地址及端口。
所述中间件运行时间数据,至少包括以下之一:中间件的全程运行时长、中间件的设定阶段的运行时长。
优选的,所述装置,还包括:日志收集代理模块;
所述中间件模块,具体用于按照设定的通信方式将所述日志数据发送给日志收集代理模块;所述设定的通信方式,包括:套接字方式、共享内存方式或者管道方式;
所述日志收集代理模块,用于将所述日志数据发送给日志收集服务器进行统一存储。
进一步的,所述中间件模块,用于:
将所述日志数据放入到多个第一异步队列并从中轮询选出日志数据按照设定的通信方式发送给所述日志收集代理模块;
在所述日志收集服务器的数量为一个的情况下,所述日志收集代理模块,具体用于:
日志收集代理模块将所述日志数据放入到多个第二异步队列并从中轮询选出日志数据;再将每次选出的日志数据发送给所述日志收集服务器,以使所述日志收集服务器将接收到的日志数据进行兼容性处理后统一保存到数据库中;
在所述日志收集服务器的数量为两个以上的情况下,所述日志收集代理模块,具体用于:
一方面获取日志收集服务器列表并从中轮询选择每次发送所对应接收的日志收集服务器,另一方面将所述日志数据放入到多个第二异步队列并从中轮询选出日志数据;再将每次选出的日志数据发送给对应接收的日志收集服务器,以供各日志收集服务器将接收到的日志数据进行兼容性处理后统一保存到数据库中。
优选的,在客户端的数量为两个以上的情况下,所述中间件模块,还用于:
为中间件设置采集开关;当所述采集开关开启时,允许通过中间件中预设的埋点执行所述采集和所述发送的操作;和/或,
为日志收集代理模块设置发送开关;当所述发送开关开启时,允许通过日志收集代理模块将所述日志数据发送给日志收集服务器进行统一存储。
中间件模块在为中间件设置采集开关、为日志收集代理模块设置发送开关的情况下,使用方可以根据需求,自定义收集日志数据的范围。
本发明第四实施例,一种分布式日志采集装置,本实施例所述装置与第一实施例大致相同,区别在于,本实施例的所述装置,还包括:
请求筛选模块,用于按照预先设定的采样率从所述业务系统接收到的所有的所述请求中选择相应数量的请求,针对选择出的请求调用中间件模块。
本发明第五实施例,本实施例是在上述实施例的基础上,结合附图2~3介绍一个本发明的应用实例。
互联网公司提供的服务都是基于各类中间件来开发的,例如数据库中间件、消息中间件、web中间件等,这为本发明实施例的设计与实现提供了便利条件。
本发明实施例的核心思想在于:对中间件进行埋点,即在中间件代码中设置日志监测代码,以保证对业务系统的不侵入性与业务无感知。以异步队列的方式进行日志数据的实时采集,同时不影响业务系统的性能与效率。通过增加开关与采样率等手段确保日志数据的范围与粒度,增加本发明实施例的灵活性。重新设计了日志数据的格式,保证不同业务系统采集到的数据格式统一,易于进行后续的汇总与分析。对日志数据收集采用集群的方式,避免了日志收集的单点故障,同时减低了每台日志收集服务器的压力,并且对于日志收集服务器集群,服务器的增删都是动态的。
本发明实施例的分布式日志采集系统的整体框架如图2所示,包含以下组件:位于日志收集客户端侧的带埋点的中间件和日志收集代理、以及位于日志收集服务器侧的日志收集服务器集群和数据库存储集群。
带埋点的中间件:业务系统日志实时采集并发送。可以设有采集开关,开关关闭后则该中间件不会采集日志数据。
日志收集代理:接收多个业务系统的日志并发送到日志收集服务器集群,可以设有发送开关,开关关闭后则该代理不会向日志收集服务器集群发送数据。
日志收集服务器集群:处理接收到的日志数据并保存到数据库存储集群中。
当有请求访问相应的业务系统时,业务请求会触发中间件调用,由于已经对中间件进行埋点,所以中间件被调用时,就会触发日志监测代码,从而生成指定格式的日志数据。日志监测代码执行时,通过在初始化时就建立好的socket连接将日志数据发送给本地的日志收集代理。日志收集代理将接收到的日志数据实时的发送给日志收集服务器集群。日志收集服务器集群统一对日志进行格式化处理后,保存到数据库存储集群当中。
如图3所示,本发明实施例的分布式日志采集系统的采集流程如下:
步骤1,当有请求调用到业务系统时,业务系统会执行相应中间件代码;
步骤2,当执行到日志监测代码时,首先检查采集开关是否打开,如果打开则跳转到步骤3,否则跳转到步骤6;
步骤3,按照预先设定的采样率从业务系统所收到的请求中筛选出相应数量的请求,针对筛选出的请求执行步骤4;特别的,采样率的含义是指可以指定每隔指定间隔个请求后才采集一次日志数据;
步骤4,初始化环境上下文并根据定义好的数据结构格式初始化日志结构体;
步骤5,收集需要的系统信息填入日志结构体,收集的数据包括:业务系统的名称、业务系统的类型、业务系统的全局唯一标识ID、业务系统的全局唯一顺序ID、业务系统的当前系统时间、调用方业务系统的IP地址及端口、以及被调用方业务系统的IP地址及端口等;
步骤6,执行中间件代码;
步骤7,中间件代码执行完毕后,检查采集开关是否打开,如果打开则跳转到步骤8,否则中间件代码执行结束;
步骤8,二次采集系统信息并填入日志结构体,收集的数据包括:中间件代码调用执行时间,即用步骤8的当前系统时间减去步骤5中采集的系统时间;
步骤9,将包含有步骤5和步骤8中收集的系统信息的日志结构体进行封装得到日志数据,将日志数据放入到异步队列当中;特别的,为了增加吞吐量,在初始化时创建了多个异步队列,并且将日志数据放入异步队列时,根据预定义的哈希算法选择将日志数据放入的异步队列,以保证多个异步队列中数据的均衡性;
步骤10,带埋点的中间件中运行着异步队列消费者模块,该模块轮询每个异步队列,将其中的数据取出,并通过本地套接字SOCKET的方式发送到日志收集代理;特别的,本地SOCKET是在业务系统初始化时就创建完成的;
步骤11,日志收集代理监听本地SOCKET端口,接入日志数据;
步骤12,日志收集代理检查发送开关是否打开,如打开则跳转到步骤13,否则丢弃该条日志;特别的,在日志收集代理中加入发送开关,是为了统一管理一台日志收集客户端主机上的多个业务系统,当某台主机都不需要采集时,可以直接关闭该开关;
步骤13,日志收集代理将日志数据放入到异步队列当中;特别的,为了增加吞吐量,系统在初始化时创建了多个异步队列,并且日志数据放入异步队列时,根据预定义的哈希算法选择异步队列,以保证多个异步队列中数据的均衡性;
步骤14,日志收集代理的异步队列消费者模块轮询每个异步队列,将其中的数据取出发送给日志收集服务器集群;特别的,日志收集代理获取日志收集服务器集群列表,从中选出合适的日志收集服务器;当数据发送失败时,异步队列消费者模块会重新选择日志收集服务器,尽可能的保证数据均匀的分布在多个日志收集服务器中;
步骤15,日志收集服务器集群中的日志收集服务器对日志数据进行监听,发现有日志数据到达时执行步骤16;
步骤16,日志收集服务器对接收到的日志数据做版本兼容性检查;由于带埋点的中间件可能有多个版本,即不同版本之间的日志结构体可能不同,所以在日志收集服务器端做兼容性处理;
步骤17,日志收集服务器根据版本号对日志数据做不同的格式化处理,统一成相同的格式;
步骤18,日志收集服务器将日志数据保存到数据库存储集群中的数据库当中。
本发明实施例所述分布式日志采集方法、装置及系统,通过采集并汇总前端请求访问后端业务系统所留下的足迹,为业务开发人员排除故障、性能调优、掌握业务执行逻辑提供底层支撑。本发明可以在对业务系统不侵入的前提下,完成日志数据的采集工作,即对使用方无感,减少业务开发人员的工作量;在业务无感知的情况下实时采集到日志数据,以便使用方可以尽快的定位与解决问题。在为中间件设置采集开关、为日志收集代理模块设置发送开关的情况下,使用方可以根据需求,自定义收集日志数据的范围和粒度。本发明多处使用异步队列,保证了数据的实效性,同时,异步队列也可以做短时间内的数据缓存。
通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。
Claims (14)
1.一种分布式日志采集方法,其特征在于,包括:
步骤1,当客户端中有业务系统基于请求调用所述业务系统对应的中间件时,通过中间件中预设的埋点采集与所述业务系统调用有关的数据,并将采集到的所述数据连同中间件运行时间数据一并填充入日志数据;步骤2,将所述日志数据发送给日志收集服务器进行统一存储。
2.根据权利要求1所述的分布式日志采集方法,其特征在于,所述方法在客户端侧执行的流程,还包括:
在所述步骤1之前,按照预先设定的采样率从所述业务系统接收到的所有的所述请求中选择相应数量的请求,针对选择出的请求执行所述步骤1。
3.根据权利要求1所述的分布式日志采集方法,其特征在于,所述步骤2包括:
按照设定的通信方式将所述日志数据发送给日志收集代理模块,再通过日志收集代理模块发送给日志收集服务器进行统一存储;
所述设定的通信方式,包括:套接字方式、共享内存方式或者管道方式。
4.根据权利要求3所述的分布式日志采集方法,其特征在于,所述按照设定的通信方式将所述日志数据发送给日志收集代理模块,包括:
将所述日志数据放入到多个第一异步队列并从中轮询选出日志数据按照设定的通信方式发送给所述日志收集代理模块。
5.根据权利要求3所述的分布式日志采集方法,其特征在于,在所述日志收集服务器的数量为一个的情况下,所述通过日志收集代理模块发送给日志收集服务器进行统一存储,包括:
日志收集代理模块将所述日志数据放入到多个第二异步队列并从中轮询选出日志数据;再将每次选出的日志数据发送给所述日志收集服务器,以使所述日志收集服务器将接收到的日志数据进行兼容性处理后统一保存到数据库中;
在所述日志收集服务器的数量为两个以上的情况下,所述通过日志收集代理模块发送给日志收集服务器进行统一存储,包括:
日志收集代理模块一方面获取日志收集服务器列表并从中轮询选择每次发送所对应接收的日志收集服务器,另一方面将所述日志数据放入到多个第二异步队列并从中轮询选出日志数据;再将每次选出的日志数据发送给对应接收的日志收集服务器,以使各日志收集服务器将接收到的日志数据进行兼容性处理后统一保存到数据库中。
6.根据权利要求3所述的分布式日志采集方法,其特征在于,在客户端的数量为两个以上的情况下:
为中间件设置采集开关;当所述采集开关开启时,允许通过中间件中预设的埋点执行所述步骤1;和/或,
为日志收集代理模块设置发送开关;当所述发送开关开启时,允许通过日志收集代理模块将所述日志数据发送给日志收集服务器进行统一存储。
7.根据权利要求1~6中任一项所述的分布式日志采集方法,其特征在于,所述与业务系统调用有关的数据,包括:业务系统的名称、类型、全局唯一标识ID、全局唯一顺序ID、当前的系统时间、调用方业务系统的IP地址及端口、和被调用方业务系统的IP地址及端口;
所述中间件运行时间数据,至少包括以下之一:中间件的全程运行时长、中间件的设定阶段的运行时长。
8.一种分布式日志采集装置,其特征在于,包括:
中间件模块,用于当客户端中有业务系统基于请求调用所述业务系统对应的中间件时,通过中间件中预设的埋点采集与所述业务系统调用有关的数据,并将采集到的所述数据连同中间件运行时间数据一并填充入日志数据;将所述日志数据发送给日志收集服务器进行统一存储。
9.根据权利要求8所述的分布式日志采集装置,其特征在于,所述装置,还包括:
请求筛选模块,用于按照预先设定的采样率从所述业务系统接收到的所有的所述请求中选择相应数量的请求,针对选择出的请求调用中间件模块。
10.根据权利要求8所述的分布式日志采集装置,其特征在于,所述装置,还包括:日志收集代理模块;
所述中间件模块,还用于按照设定的通信方式将所述日志数据发送给日志收集代理模块;所述设定的通信方式,包括:套接字方式、共享内存方式或者管道方式;
所述日志收集代理模块,用于将所述日志数据发送给日志收集服务器进行统一存储。
11.根据权利要求10所述的分布式日志采集装置,其特征在于,所述中间件模块,具体用于:
将所述日志数据放入到多个第一异步队列并从中轮询选出日志数据按照设定的通信方式发送给所述日志收集代理模块。
12.根据权利要求10所述的分布式日志采集装置,其特征在于,在所述日志收集服务器的数量为一个的情况下,所述日志收集代理模块,具体用于:
日志收集代理模块将所述日志数据放入到多个第二异步队列并从中轮询选出日志数据;再将每次选出的日志数据发送给所述日志收集服务器,以使所述日志收集服务器将接收到的日志数据进行兼容性处理后统一保存到数据库中;
在所述日志收集服务器的数量为两个以上的情况下,所述日志收集代理模块,具体用于:一方面获取日志收集服务器列表并从中轮询选择每次发送所对应接收的日志收集服务器,另一方面将所述日志数据放入到多个第二异步队列并从中轮询选出日志数据;再将每次选出的日志数据发送给对应接收的日志收集服务器,以供各日志收集服务器将接收到的日志数据进行兼容性处理后统一保存到数据库中。
13.根据权利要求10所述的分布式日志采集装置,其特征在于,在客户端的数量为两个以上的情况下,所述中间件模块,还用于:
为中间件设置采集开关;当所述采集开关开启时,允许通过中间件中预设的埋点执行所述采集和所述发送的操作;和/或,
为日志收集代理模块设置发送开关;当所述发送开关开启时,允许通过日志收集代理模块将所述日志数据发送给日志收集服务器进行统一存储。
14.根据权利要求8~13中任一项所述的分布式日志采集装置,其特征在于,所述与业务系统调用有关的数据,包括:业务系统的名称、类型、全局唯一标识ID、全局唯一顺序ID、当前的系统时间、调用方业务系统的IP地址及端口、和被调用方业务系统的IP地址及端口;
所述中间件运行时间数据,至少包括以下之一:中间件的全程运行时长、中间件的设定阶段的运行时长。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610063824.2A CN107025222A (zh) | 2016-01-29 | 2016-01-29 | 一种分布式日志采集方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610063824.2A CN107025222A (zh) | 2016-01-29 | 2016-01-29 | 一种分布式日志采集方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107025222A true CN107025222A (zh) | 2017-08-08 |
Family
ID=59524130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610063824.2A Pending CN107025222A (zh) | 2016-01-29 | 2016-01-29 | 一种分布式日志采集方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107025222A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107832210A (zh) * | 2017-10-27 | 2018-03-23 | 广州四三九九信息科技有限公司 | 日志埋点接入测试方法、装置及服务器 |
CN108255993A (zh) * | 2017-12-29 | 2018-07-06 | 北京三快在线科技有限公司 | 提取业务字段的方法、装置、电子设备及存储介质 |
CN109088782A (zh) * | 2018-11-01 | 2018-12-25 | 郑州云海信息技术有限公司 | 分布式系统的日志收集方法及装置 |
CN109344153A (zh) * | 2018-08-22 | 2019-02-15 | 中国平安人寿保险股份有限公司 | 业务数据的处理方法及终端设备 |
CN109583676A (zh) * | 2018-09-11 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 分布式系统中采集业务流程数据的方法、系统及其服务器 |
CN110166298A (zh) * | 2019-05-24 | 2019-08-23 | 和记奥普泰通信技术有限公司 | 一种分组化otn、ptn、ipran及spn管控一体日志实现系统及方法 |
CN112131070A (zh) * | 2019-06-25 | 2020-12-25 | 北京京东尚科信息技术有限公司 | 调用关系跟踪方法、装置、设备及计算机可读存储介质 |
CN112181789A (zh) * | 2020-08-31 | 2021-01-05 | 福州智象信息技术有限公司 | 一种基于aws的设备端日志采集方法 |
CN112199346A (zh) * | 2020-12-08 | 2021-01-08 | 北京每日优鲜电子商务有限公司 | 物品信息存储方法、装置、电子设备和计算机可读介质 |
CN113746883A (zh) * | 2020-05-29 | 2021-12-03 | 华为技术有限公司 | 链路跟踪方法及系统 |
CN115086296A (zh) * | 2022-05-27 | 2022-09-20 | 阿里巴巴(中国)有限公司 | 一种日志传输系统、日志传输方法及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110276541A1 (en) * | 2010-05-10 | 2011-11-10 | Ricoh Company, Ltd. | Information processing system |
CN103631699A (zh) * | 2012-08-28 | 2014-03-12 | 纽海信息技术(上海)有限公司 | 日志管理系统及日志监控、获取和查询方法 |
CN103916293A (zh) * | 2014-04-15 | 2014-07-09 | 浪潮软件股份有限公司 | 一种监控分析网站用户行为的方法 |
CN104348650A (zh) * | 2013-08-05 | 2015-02-11 | 腾讯科技(深圳)有限公司 | 网站的监控方法、业务装置及系统 |
CN105224445A (zh) * | 2015-10-28 | 2016-01-06 | 北京汇商融通信息技术有限公司 | 分布式跟踪系统 |
-
2016
- 2016-01-29 CN CN201610063824.2A patent/CN107025222A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110276541A1 (en) * | 2010-05-10 | 2011-11-10 | Ricoh Company, Ltd. | Information processing system |
CN103631699A (zh) * | 2012-08-28 | 2014-03-12 | 纽海信息技术(上海)有限公司 | 日志管理系统及日志监控、获取和查询方法 |
CN104348650A (zh) * | 2013-08-05 | 2015-02-11 | 腾讯科技(深圳)有限公司 | 网站的监控方法、业务装置及系统 |
CN103916293A (zh) * | 2014-04-15 | 2014-07-09 | 浪潮软件股份有限公司 | 一种监控分析网站用户行为的方法 |
CN105224445A (zh) * | 2015-10-28 | 2016-01-06 | 北京汇商融通信息技术有限公司 | 分布式跟踪系统 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107832210A (zh) * | 2017-10-27 | 2018-03-23 | 广州四三九九信息科技有限公司 | 日志埋点接入测试方法、装置及服务器 |
CN108255993A (zh) * | 2017-12-29 | 2018-07-06 | 北京三快在线科技有限公司 | 提取业务字段的方法、装置、电子设备及存储介质 |
CN109344153B (zh) * | 2018-08-22 | 2023-12-05 | 中国平安人寿保险股份有限公司 | 业务数据的处理方法及终端设备 |
CN109344153A (zh) * | 2018-08-22 | 2019-02-15 | 中国平安人寿保险股份有限公司 | 业务数据的处理方法及终端设备 |
CN109583676A (zh) * | 2018-09-11 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 分布式系统中采集业务流程数据的方法、系统及其服务器 |
CN109088782A (zh) * | 2018-11-01 | 2018-12-25 | 郑州云海信息技术有限公司 | 分布式系统的日志收集方法及装置 |
CN110166298A (zh) * | 2019-05-24 | 2019-08-23 | 和记奥普泰通信技术有限公司 | 一种分组化otn、ptn、ipran及spn管控一体日志实现系统及方法 |
CN112131070A (zh) * | 2019-06-25 | 2020-12-25 | 北京京东尚科信息技术有限公司 | 调用关系跟踪方法、装置、设备及计算机可读存储介质 |
CN113746883A (zh) * | 2020-05-29 | 2021-12-03 | 华为技术有限公司 | 链路跟踪方法及系统 |
CN112181789B (zh) * | 2020-08-31 | 2022-07-15 | 北京智象信息技术有限公司 | 一种基于aws的设备端日志采集方法 |
CN112181789A (zh) * | 2020-08-31 | 2021-01-05 | 福州智象信息技术有限公司 | 一种基于aws的设备端日志采集方法 |
CN112199346A (zh) * | 2020-12-08 | 2021-01-08 | 北京每日优鲜电子商务有限公司 | 物品信息存储方法、装置、电子设备和计算机可读介质 |
CN112199346B (zh) * | 2020-12-08 | 2021-03-23 | 北京每日优鲜电子商务有限公司 | 物品信息存储方法、装置、电子设备和计算机可读介质 |
CN115086296A (zh) * | 2022-05-27 | 2022-09-20 | 阿里巴巴(中国)有限公司 | 一种日志传输系统、日志传输方法及相关装置 |
CN115086296B (zh) * | 2022-05-27 | 2024-04-05 | 阿里巴巴(中国)有限公司 | 一种日志传输系统、日志传输方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107025222A (zh) | 一种分布式日志采集方法及装置 | |
US11700303B1 (en) | Distributed data analysis for streaming data sources | |
CN104639374B (zh) | 一种应用程序部署管理系统 | |
CN101207550B (zh) | 负载均衡系统及多种业务实现负载均衡的方法 | |
CN103870297B (zh) | 云计算环境中虚拟机的性能数据采集系统和方法 | |
CN103152352B (zh) | 一种基于云计算环境的全信息安全取证监听方法和系统 | |
CN110535831A (zh) | 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质 | |
CN103902537B (zh) | 多业务的日志数据存储处理和查询系统及其方法 | |
CN103546343B (zh) | 网络流量分析系统的网络流量展示方法和系统 | |
CN102375837B (zh) | 数据采集系统和方法 | |
CN106170947B (zh) | 一种告警信息处理方法、相关设备和系统 | |
CN105224445A (zh) | 分布式跟踪系统 | |
CN102497427B (zh) | 实现可再生能源监测系统数据采集服务的方法和装置 | |
CN109120461B (zh) | 一种业务性能端到端监控方法、系统及装置 | |
CN103139157B (zh) | 一种基于socket的网络通信方法、装置及系统 | |
CN106201754A (zh) | 任务信息分析方法及装置 | |
CN103795575B (zh) | 一种面向多数据中心的系统监控方法 | |
CN114143203A (zh) | 一种基于动态服务拓扑映射的Kubernetes容器网络数据包指标采集的方法及系统 | |
CN108632111A (zh) | 一种基于日志的服务链路监控方法 | |
CN111209467A (zh) | 一种多并发多通道环境下的数据实时查询系统 | |
CN110855481B (zh) | 数据采集系统及方法 | |
CN114401284A (zh) | 固定污染源治理工况实时数据采集与传输系统及方法 | |
CN116489214A (zh) | 一种基于微服务网关的统一服务调度方法、装置、介质及设备 | |
CN107426017A (zh) | 一种通过采集交换机网络流量进行数据分析的方法 | |
CN208046653U (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170808 |
|
RJ01 | Rejection of invention patent application after publication |