CN110032496B - 一种支持多样化日志合并的日志采集方法及系统 - Google Patents
一种支持多样化日志合并的日志采集方法及系统 Download PDFInfo
- Publication number
- CN110032496B CN110032496B CN201910315551.XA CN201910315551A CN110032496B CN 110032496 B CN110032496 B CN 110032496B CN 201910315551 A CN201910315551 A CN 201910315551A CN 110032496 B CN110032496 B CN 110032496B
- Authority
- CN
- China
- Prior art keywords
- log
- merging
- transaction
- rule
- module
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种支持多样化日志合并的日志采集方法及系统,其中方法包括:日志监听模块对监听对象进行监听,判断监听对象是否产生变化;判断监听对象产生变化,生成事件信息,并将事件信息传输至日志处理模块;日志处理模块接收日志监听模块传输的事件信息,判断事件信息的类型,如果事件信息为删除动作,则清空监听对象的读取记录;如果事件信息为创建动作,则初始化偏移量并读取日志内容;如果事件信息为修改,则获取配置规则,按照配置规则根据预存的偏移量读取日志内容,存储到缓存队列中;日志上传模块从缓存队列中批量获取日志,将日志按照预设协议转换成字节流,并将字节流进行上传。
Description
技术领域
本发明涉及日志采集技术领域,尤其涉及一种支持多样化日志合并的日志采集方法及系统。
背景技术
企业的内部业务系统每天都会产生大量的日志,这些日志分散在各个服务器上,没有被集中管理利用,随着大数据时代的到来,出现了众多的开源日志采集-处理-可视化系统,其中包括facebook的scribe,apache的chukwa,elastic的filebeat+logstash+elasticsearch+kibana。
但在filebeat+logstash+elasticsearch+kibana生态中,filebeat作为采集系统,有2项不足:
(1)没法在aix6及以下的操作系统机器上运行。
(2)日志的合并技术缺乏多样性。仅限于多行合并,如果需要根据日志当中的关联信息进行合并的话,仅靠多行合并技术是没法达成的。
发明内容
本发明旨在提供一种克服上述问题之一或者至少部分地解决上述任一问题的支持多样化日志合并的日志采集方法及系统。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明的一个方面提供了一种支持多样化日志合并的日志采集方法,包括:日志监听模块对监听对象进行监听,判断监听对象是否产生变化,其中,监听对象产生的变化包括创建、修改和/或删除动作;日志监听模块判断监听对象产生变化,生成事件信息,并将事件信息传输至日志处理模块;日志处理模块接收日志监听模块传输的事件信息,判断事件信息的类型,如果事件信息为删除动作,则清空监听对象的读取记录;如果事件信息为创建动作,则初始化偏移量并读取日志内容;如果事件信息为修改,则获取配置规则,按照配置规则根据预存的偏移量读取日志内容,存储到缓存队列中;日志上传模块从缓存队列中批量获取日志,将日志按照预设协议转换成字节流,并将字节流进行上传。
其中,获取配置规则,按照配置规则根据预存的偏移量读取日志内容,存储到缓存队列中包括:按照逐个字节进行读取,按照字符集配置转换成字符串,如果配置规则包括多行合并,则执行多行日志合并的合并逻辑,如果配置规则包括事务合并,则执行事务合并的合并逻辑,如果配置规则包括多行合并和事务合并,则先执行多行日志合并的合并逻辑,后执行事务合并的合并逻辑,将合并后的字符串存储到缓存队列中。
其中,日志监听模块对监听对象进行监听,判断监听对象是否产生变化包括:日志监听模块对指定监听的目录或者文件建立目录树,按照预设周期遍历目录树,判断是否产生创建、修改和/或删除动作的日志文件。
其中,系统还包括:配置模块读取并解析配置文件,获取配置规则,初始化日志监听模块、日志处理模块和日志上传模块。
其中,系统还包括:日志存储模块在日志上传模块将字节流成功上传后,将成功上传的日志偏移量进行存储。
其中,事务合并包括:事务上游规则和事务下游规则,事务下游规则为沿用上一规则时,沿用上一规则,事务下游规则为终结规则时,终结事务合并。
本发明另一方面提供了一种支持多样化日志合并的日志采集系统,包括:日志监听模块、日志处理模块以及日志上传模块;其中:日志监听模块,用于对监听对象进行监听,判断监听对象是否产生变化,其中,监听对象产生的变化包括创建、修改和/或删除动作;判断监听对象产生变化,生成事件信息,并将事件信息传输至日志处理模块;日志处理模块,用于接收日志监听模块传输的事件信息,判断事件信息的类型,如果事件信息为删除动作,则清空监听对象的读取记录;如果事件信息为创建动作,则初始化偏移量并读取日志内容;如果事件信息为修改,则获取配置规则,按照配置规则根据预存的偏移量读取日志内容,存储到缓存队列中;日志上传模块,用于从缓存队列中批量获取日志,将日志按照预设协议转换成字节流,并将字节流进行上传。
其中,日志处理模块通过如下方式获取配置规则,按照配置规则根据预存的偏移量读取日志内容,存储到缓存队列中:日志处理模块,具体用于按照逐个字节进行读取,按照字符集配置转换成字符串,如果配置规则包括多行合并,则执行多行日志合并的合并逻辑,如果配置规则包括事务合并,则执行事务合并的合并逻辑,如果配置规则包括多行合并和事务合并,则先执行多行日志合并的合并逻辑,后执行事务合并的合并逻辑,将合并后的字符串存储到缓存队列中。
其中,日志监听模块通过如下方式对监听对象进行监听,判断监听对象是否产生变化:日志监听模块,具体用于对指定监听的目录或者文件建立目录树,按照预设周期遍历目录树,判断是否产生创建、修改和/或删除动作的日志文件。
其中,方法还包括:配置模块;配置模块,用于读取并解析配置文件,获取配置规则,初始化日志监听模块、日志处理模块和日志上传模块。
其中,方法还包括:日志存储模块;日志存储模块,用于在日志上传模块将字节流成功上传后,将成功上传的日志偏移量进行存储。
其中,事务合并包括:事务上游规则和事务下游规则,事务下游规则为沿用上一规则时,沿用上一规则,事务下游规则为终结规则时,终结事务合并。
由此可见,通过本发明实施例提供的支持多样化日志合并的日志采集方法及系统,既弥补了aix5及aix6机器上没法上传日志到logstash服务的缺陷,又弥补了传统多行合并技术没法合并多行存在关联关系的日志的缺陷。使得本发明实施例提供的支持多样化日志合并的日志采集方法支持多样化日志合并,方便日志文件的管理。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的支持多样化日志合并的日志采集系统的结构示意图;
图2为本发明实施例提供支持多样化日志合并的日志采集方法的流程图;
图3为本发明实施例提供的一种具体的支持多样化日志合并的日志采集方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明的目的是解决了排查或调试问题时需要查看某个或某些日志时需要同时登陆不同机器或分屏的复杂操作。包括条件过滤、暂停/运行、分屏、全量/精简模式等功能。
图1示出了本发明实施例提供的支持多样化日志合并的日志采集系统的结构示意图,参见图1,本发明实施例提供的支持多样化日志合并的日志采集系统,包括:日志监听模块、日志处理模块以及日志上传模块;其中:
日志监听模块,用于对监听对象进行监听,判断监听对象是否产生变化,其中,监听对象产生的变化包括创建、修改和/或删除动作;判断监听对象产生变化,生成事件信息,并将事件信息传输至日志处理模块;
日志处理模块,用于接收日志监听模块传输的事件信息,判断事件信息的类型,如果事件信息为删除动作,则清空监听对象的读取记录;如果事件信息为创建动作,则初始化偏移量并读取日志内容;如果事件信息为修改,则获取配置规则,按照配置规则根据预存的偏移量读取日志内容,存储到缓存队列中;
日志上传模块,用于从缓存队列中批量获取日志,将日志按照预设协议转换成字节流,并将字节流进行上传。
具体地,本发明中,日志监听模块,可以对日志文件集合进行监听,判断日志文件集合中是否产生变化,从而根据实际需要对日志进行后续的合并操作。
作为本发明实施例的一个可选实施方式,日志监听模块通过如下方式对监听对象进行监听,判断监听对象是否产生变化:日志监听模块,具体用于对指定监听的目录或者文件建立目录树,按照预设周期遍历目录树,判断是否产生创建、修改和/或删除动作的日志文件。通过此种监听方式,可以简单高效的进行监听。
本发明中,日志处理模块,可以根据不同事件信息,执行相应处理的操作,进而根据预先设置好的配置规则执行相应的处理操作。
作为本发明实施例的一个可选实施方式,日志处理模块通过如下方式获取配置规则,按照配置规则根据预存的偏移量读取日志内容,存储到缓存队列中:日志处理模块,具体用于按照逐个字节进行读取,按照字符集配置转换成字符串,如果配置规则包括多行合并,则执行多行日志合并的合并逻辑,如果配置规则包括事务合并,则执行事务合并的合并逻辑,如果配置规则包括多行合并和事务合并,则先执行多行日志合并的合并逻辑,后执行事务合并的合并逻辑,将合并后的字符串存储到缓存队列中。通过此种方式,可以方便用户的合并,弥补传统多行合并技术没法合并多行存在关联关系的日志的缺陷。
作为本发明实施例的一个可选实施方式,事务合并包括:事务上游规则和事务下游规则,事务下游规则为沿用上一规则时,沿用上一规则,事务下游规则为终结规则时,终结事务合并。通过此种方式可以高效的将事务进行合并,在多行存在关联关系时,快速的进行事务合并。
本发明中,日志上传模块可以将合并后的日志文件进行上传,从而弥补了aix5及aix6机器上没法上传日志到logstash服务的缺陷。
作为本发明实施例的一个可选实施方式,本发明实施例提供的支持多样化日志合并的日志采集系统,还包括:配置模块,用于读取并解析配置文件,获取配置规则,初始化日志监听模块、日志处理模块和日志上传模块。由此可以预先解析配置文件,获取配置规则后对日志监听模块、日志处理模块和日志上传模块进行初始化,方便后续使用。
作为本发明实施例的一个可选实施方式,本发明实施例提供的支持多样化日志合并的日志采集系统,还包括:日志存储模块;日志存储模块,用于在日志上传模块将字节流成功上传后,将成功上传的日志偏移量进行存储。由此,可以在成功合并日志后,可以将新的日志文件进行存储,保证数据的一致性。
具体实施时,本发明实施例提供的支持多样化日志合并的日志采集系统使用java5进行开发,由于在aix5和aix6机器默认安装了java5或者java6,因此本发明实施例提供的支持多样化日志合并的日志采集系统可以运行在aix5和aix6机器上。
本发明实施例提供的支持多样化日志合并的日志采集系统中:
日志监听模块,实现了对日志文件的新增、修改和删除操作的监听,并以事件方式告知日志处理模块。例如监听的文件为/home目录下所有用户目录的*.log文件,那么只需要配置/home/*/*.log,那么监听模块就会定期判断这些目录下的变化,出现类似/home/admin/visit.log的日志修改发生,就会把/home/admin/visit.log文件信息告知日志处理模块。
日志处理模块,是有别于elastic开源的filebeat系统的关键所在,filebeat只支持多行合并,但是本采集系统不仅支持多行合并,还支持事务合并,并且可以同时使用2种合并技术。下面用例子说明事务合并:
现有多行日志如下:
1.0502:155243:481|T1234|L5|routeIn.cpp:289|转发交易请求[WFM:Ncs2pl:ncs2AcctValid]
2.0502:155243:483|T3333|L8|COrbCli.cpp:814|Send to server:...
3.0502:155243:483|T1234|L8|COrbCli.cpp:814|Send to server:...
4.0502:155244:245|T1234|L8|COrbCli.cpp:861|Server response:...
已知日志由多线程并发写入,T1234和T3333都代表线程号,同一线程的日志被其他线程的日志隔断,现在需要把T1234的日志合并成一行。多行合并最多只能把上述4行都合并起来,但没法通过日志内容的关联关系“跳”过线程T3333的日志。这时候用事务合并,配置规则为:^\d+:\d+:\d+|(?T\d+).*转发交易请求->${thread}->${thread}.*Server\s+response,即可把包含T1234的从转发交易请求开始到Server response的日志合并成一行。该事务合并的规则设计具有独创性,其中,->是事务向量,用于连接事务上下游规则;规则支持正则匹配,当中的(?<key>value)为捕获功能,捕获的value可以在下游规则使用,下游采取${key}可获取value。..表示无数次沿用上一规则。${thread}.*Server\s+response属于终结规则,他会先于..进行匹配,一旦匹配终结规则,事务合并结束,不再进行..匹配。
日志上传模块,实现了批量处理、心跳、重试等机制,并兼容filebeat2.0私有协议,最终把日志上传到日志接收端。发送成功会持久化最新发送成功的日志偏移量到磁盘。
由此可见,通过本发明实施例提供的支持多样化日志合并的日志采集系统,既弥补了aix5及aix6机器上没法上传日志到logstash服务的缺陷,又弥补了传统多行合并技术没法合并多行存在关联关系的日志的缺陷。使得本发明实施例提供的支持多样化日志合并的日志采集方法支持多样化日志合并,方便日志文件的管理。
图2示出了本发明实施例提供的支持多样化日志合并的日志采集方法的流程图,该支持多样化日志合并的日志采集方法应用于上述支持多样化日志合并的日志采集系统,以下仅对支持多样化日志合并的日志采集方法的流程进行简要说明,其他未尽事宜,请参照上述支持多样化日志合并的日志采集系统的相关说明,在此不再赘述。参见图2,本发明实施例提供的支持多样化日志合并的日志采集方法,包括:
S201,日志监听模块对监听对象进行监听,判断监听对象是否产生变化,其中,监听对象产生的变化包括创建、修改和/或删除动作;
S202,日志监听模块判断监听对象产生变化,生成事件信息,并将事件信息传输至日志处理模块;
S203,日志处理模块接收日志监听模块传输的事件信息,判断事件信息的类型,如果事件信息为删除动作,则清空监听对象的读取记录;如果事件信息为创建动作,则初始化偏移量并读取日志内容;如果事件信息为修改,则获取配置规则,按照配置规则根据预存的偏移量读取日志内容,存储到缓存队列中;
S204,日志上传模块从缓存队列中批量获取日志,将日志按照预设协议转换成字节流,并将字节流进行上传。
由此可见,通过本发明实施例提供的支持多样化日志合并的日志采集方法,既弥补了aix5及aix6机器上没法上传日志到logstash服务的缺陷,又弥补了传统多行合并技术没法合并多行存在关联关系的日志的缺陷。使得本发明实施例提供的支持多样化日志合并的日志采集方法支持多样化日志合并,方便日志文件的管理。
作为本发明实施例的一个可选实施方式,获取配置规则,按照配置规则根据预存的偏移量读取日志内容,存储到缓存队列中包括:按照逐个字节进行读取,按照字符集配置转换成字符串,如果配置规则包括多行合并,则执行多行日志合并的合并逻辑,如果配置规则包括事务合并,则执行事务合并的合并逻辑,如果配置规则包括多行合并和事务合并,则先执行多行日志合并的合并逻辑,后执行事务合并的合并逻辑,将合并后的字符串存储到缓存队列中。通过此种方式,可以方便用户的合并,弥补传统多行合并技术没法合并多行存在关联关系的日志的缺陷。
作为本发明实施例的一个可选实施方式,日志监听模块对监听对象进行监听,判断监听对象是否产生变化包括:日志监听模块对指定监听的目录或者文件建立目录树,按照预设周期遍历目录树,判断是否产生创建、修改和/或删除动作的日志文件。通过此种监听方式,可以简单高效的进行监听。
作为本发明实施例的一个可选实施方式,本发明实施例提供的支持多样化日志合并的日志采集方法还包括:配置模块读取并解析配置文件,获取配置规则,初始化日志监听模块、日志处理模块和日志上传模块。由此可以预先解析配置文件,获取配置规则后对日志监听模块、日志处理模块和日志上传模块进行初始化,方便后续使用。
作为本发明实施例的一个可选实施方式,本发明实施例提供的支持多样化日志合并的日志采集方法还包括:日志存储模块在日志上传模块将字节流成功上传后,将成功上传的日志偏移量进行存储。
作为本发明实施例的一个可选实施方式,事务合并包括:事务上游规则和事务下游规则,事务下游规则为沿用上一规则时,沿用上一规则,事务下游规则为终结规则时,终结事务合并。通过此种方式可以高效的将事务进行合并,在多行存在关联关系时,快速的进行事务合并。由此,可以在成功合并日志后,可以将新的日志文件进行存储,保证数据的一致性。
以下提供一种具体的支持多样化日志合并的日志采集方法,但本发明并不局限于此,具体方法参见图3,结合图1,本发明实施例提供的支持多样化日志合并的日志采集方法,包括:
(1)日志采集系统读取并解析jfilebeat.yaml配置文件,初始化日志监听模块、日志处理模块、日志上传模块。
(2)日志监听模块监听日志文件的变化。具体地,针对指定监听的目录或者文件建立一颗目录树,定期遍历目录树,判断产生创建、修改、删除动作的日志文件,并把产生了变化的日志文件以事件的形式传递日志处理模块。
(3)日志处理模块对日志进行多行合并及事务合并。具体地,日志处理模块接收来自日志监听模块的事件信息,如果是删除,则清空该文件的读取记录,如果是创建,则先初始化偏移量再继续读取日志内容,如果是修改,则直接根据保存在磁盘的偏移量来读取日志内容。读取的过程是从磁盘当中逐个字节读取,按照字符集配置转换成字符串,配置了多行合并则先进行多行日志的合并逻辑,配置了事务合并的话再进行事务合并的合并逻辑,最终存到缓存队列中。
(4)日志上传模块把日志上传到logstash服务。具体地,日志上传模块从缓存队列中批量获取日志,按照filebeat2.0协议转换成字节流,上传到logstash服务。
(5)判断是否上传成功;
(6)如果判断成功,则持久化(保存)日志偏移量到磁盘,如果上传失败,则返回执行(4)日志上传模块把日志上传到logstash服务的操作。
由此可见,通过本发明实施例提供的支持多样化日志合并的日志采集方法,既弥补了aix5及aix6机器上没法上传日志到logstash服务的缺陷,又弥补了传统多行合并技术没法合并多行存在关联关系的日志的缺陷。使得本发明实施例提供的支持多样化日志合并的日志采集方法支持多样化日志合并,方便日志文件的管理。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (7)
1.一种支持多样化日志合并的日志采集方法,其特征在于,包括:
日志监听模块对监听对象进行监听,判断所述监听对象是否产生变化,其中,所述监听对象产生的变化包括创建、修改和/或删除动作;
所述日志监听模块判断所述监听对象产生变化,生成事件信息,并将所述事件信息传输至日志处理模块;
所述日志处理模块接收所述日志监听模块传输的事件信息,判断所述事件信息的类型,如果所述事件信息为删除动作,则清空所述监听对象的读取记录;如果所述事件信息为创建动作,则初始化偏移量并读取日志内容;如果所述事件信息为修改,则获取配置规则,按照所述配置规则根据预存的偏移量读取日志内容,存储到缓存队列中;
日志上传模块从所述缓存队列中批量获取日志,将所述日志按照预设协议转换成字节流,并将所述字节流进行上传;
其中:
所述获取配置规则,按照所述配置规则根据预存的偏移量读取日志内容,存储到缓存队列中包括:
按照逐个字节进行读取,按照字符集配置转换成字符串,如果所述配置规则包括多行合并,则执行多行日志合并的合并逻辑,如果所述配置规则包括事务合并,则执行事务合并的合并逻辑,如果所述配置规则包括多行合并和事务合并,则先执行多行日志合并的合并逻辑,后执行事务合并的合并逻辑,将合并后的字符串存储到所述缓存队列中;
还包括:
日志存储模块在所述日志上传模块将所述字节流成功上传后,将成功上传的日志偏移量进行存储;
已知多行日志由至少两个第一线程的日志和至少一个第二线程的日志并发写入,所述第一线程的日志被所述第二线程的日志隔断,采用事务合并的合并逻辑,所述事务合并的合并逻辑的配置规则为:^\d+:\d+:\d+|(?T\d+).*起始日志->${thread}->${thread}.*Server\s+response,把包含所述第一线程的日志合并成一行;其中,“->”是事务向量,用于连接事务上下游规则;规则支持正则匹配,所述规则当中的(?<key>value)为捕获功能,捕获的value可以在下游规则使用,下游采取${key}可获取value;
“..”表示无数次沿用上一规则;${thread}.*Server\s+response属于终结规则,先于“..”进行匹配,一旦匹配终结规则,事务合并结束,不再进行
“..”匹配。
2.根据权利要求1所述的方法,其特征在于,所述日志监听模块对监听对象进行监听,判断所述监听对象是否产生变化包括:
所述日志监听模块对指定监听的目录或者文件建立目录树,按照预设周期遍历所述目录树,判断是否产生创建、修改和/或删除动作的日志文件。
3.根据权利要求1所述的方法,其特征在于,还包括:
配置模块读取并解析所述配置文件,获取所述配置规则,初始化所述日志监听模块、所述日志处理模块和所述日志上传模块。
4.根据权利要求1所述的方法,其特征在于,所述事务合并包括:事务上游规则和事务下游规则,所述事务下游规则为沿用上一规则时,沿用上一规则,所述事务下游规则为终结规则时,终结所述事务合并。
5.一种支持多样化日志合并的日志采集系统,其特征在于,包括:日志监听模块、日志处理模块以及日志上传模块;其中:
所述日志监听模块,用于对监听对象进行监听,判断所述监听对象是否产生变化,其中,所述监听对象产生的变化包括创建、修改和/或删除动作;判断所述监听对象产生变化,生成事件信息,并将所述事件信息传输至所述日志处理模块;
所述日志处理模块,用于接收所述日志监听模块传输的事件信息,判断所述事件信息的类型,如果所述事件信息为删除动作,则清空所述监听对象的读取记录;如果所述事件信息为创建动作,则初始化偏移量并读取日志内容;如果所述事件信息为修改,则获取配置规则,按照所述配置规则根据预存的偏移量读取日志内容,存储到缓存队列中;
所述日志上传模块,用于从所述缓存队列中批量获取日志,将所述日志按照预设协议转换成字节流,并将所述字节流进行上传;
其中:所述日志处理模块通过如下方式获取配置规则,按照所述配置规则根据预存的偏移量读取日志内容,存储到缓存队列中:
所述日志处理模块,具体用于按照逐个字节进行读取,按照字符集配置转换成字符串,如果所述配置规则包括多行合并,则执行多行日志合并的合并逻辑,如果所述配置规则包括事务合并,则执行事务合并的合并逻辑,如果所述配置规则包括多行合并和事务合并,则先执行多行日志合并的合并逻辑,后执行事务合并的合并逻辑,将合并后的字符串存储到所述缓存队列中;
日志存储模块,所述日志存储模块,用于在所述日志上传模块将所述字节流成功上传后,将成功上传的日志偏移量进行存储;
已知多行日志由至少两个第一线程的日志和至少一个第二线程的日志并发写入,所述第一线程的日志被所述第二线程的日志隔断,采用事务合并的合并逻辑,所述事务合并的合并逻辑的配置规则为:^\d+:\d+:\d+|(?T\d+).*起始日志->${thread}->${thread}.*Server\s+response,把包含所述第一线程的日志合并成一行;其中,“->”是事务向量,用于连接事务上下游规则;规则支持正则匹配,所述规则当中的(?<key>value)为捕获功能,捕获的value可以在下游规则使用,下游采取${key}可获取value;“..”表示无数次沿用上一规则;
${thread}.*Server\s+response属于终结规则,先于“..”进行匹配,一旦匹配终结规则,事务合并结束,不再进行“..”匹配。
6.根据权利要求5所述的系统,其特征在于,所述日志监听模块通过如下方式对监听对象进行监听,判断所述监听对象是否产生变化:
所述日志监听模块,具体用于对指定监听的目录或者文件建立目录树,按照预设周期遍历所述目录树,判断是否产生创建、修改和/或删除动作的日志文件。
7.根据权利要求5所述的系统,其特征在于,还包括:配置模块;
所述配置模块,用于读取并解析所述配置文件,获取所述配置规则,初始化所述日志监听模块、所述日志处理模块和所述日志上传模块;
其中,所述事务合并包括:事务上游规则和事务下游规则,所述事务下游规则为沿用上一规则时,沿用上一规则,所述事务下游规则为终结规则时,终结所述事务合并。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910315551.XA CN110032496B (zh) | 2019-04-19 | 2019-04-19 | 一种支持多样化日志合并的日志采集方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910315551.XA CN110032496B (zh) | 2019-04-19 | 2019-04-19 | 一种支持多样化日志合并的日志采集方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110032496A CN110032496A (zh) | 2019-07-19 |
CN110032496B true CN110032496B (zh) | 2023-10-13 |
Family
ID=67239088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910315551.XA Active CN110032496B (zh) | 2019-04-19 | 2019-04-19 | 一种支持多样化日志合并的日志采集方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110032496B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825711A (zh) * | 2019-10-17 | 2020-02-21 | 上海易点时空网络有限公司 | 基于Flume快速分区传输数据的方法以及装置 |
CN111858527B (zh) * | 2020-06-22 | 2023-07-07 | 清华大学深圳国际研究生院 | 一种日志数据建模分析方法及计算机可读存储介质 |
CN112000698B (zh) * | 2020-08-25 | 2023-09-19 | 青岛海尔科技有限公司 | 日志的记录方法及装置、存储介质、电子装置 |
CN112445937B (zh) * | 2020-11-30 | 2023-11-14 | 成都新潮传媒集团有限公司 | 一种Json日志的生成方法、装置及计算机可读存储介质 |
CN112685370B (zh) * | 2020-12-17 | 2022-08-05 | 福建新大陆软件工程有限公司 | 一种日志采集方法、装置、设备和介质 |
US11966323B2 (en) | 2021-01-05 | 2024-04-23 | Red Hat, Inc. | Troubleshooting software services based on system calls |
CN112818063A (zh) * | 2021-02-04 | 2021-05-18 | 厦门安盟网络股份有限公司 | 分布式系统的数据同步方法及装置 |
CN113190418A (zh) * | 2021-07-01 | 2021-07-30 | 奇安信科技集团股份有限公司 | 日志接收方法、装置、电子设备及存储介质 |
CN113672488A (zh) * | 2021-09-06 | 2021-11-19 | 银清科技有限公司 | 日志文本处理方法及装置 |
CN114116811B (zh) * | 2022-01-29 | 2022-05-27 | 北京优特捷信息技术有限公司 | 日志处理方法、装置、设备及存储介质 |
CN115269531B (zh) * | 2022-09-29 | 2023-01-31 | 杭州玳数科技有限公司 | 一种基于akka框架的云原生日志收集方法和系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2998634A1 (en) * | 2005-11-12 | 2007-05-24 | Logrhythm, Inc. | Log collection, structuring and processing |
CN101197700A (zh) * | 2006-12-05 | 2008-06-11 | 阿里巴巴公司 | 提供日志服务的方法及系统 |
CN101605028A (zh) * | 2009-02-17 | 2009-12-16 | 北京安天电子设备有限公司 | 一种日志记录合并方法和系统 |
CN103929321A (zh) * | 2013-01-15 | 2014-07-16 | 腾讯科技(深圳)有限公司 | 一种日志处理方法和装置 |
CN105955876A (zh) * | 2016-05-13 | 2016-09-21 | 腾讯科技(深圳)有限公司 | 一种数据监控处理方法以及装置 |
CN106776556A (zh) * | 2016-12-12 | 2017-05-31 | 北京蓝海讯通科技股份有限公司 | 一种文本模式生成方法、装置和计算设备 |
CN107590054A (zh) * | 2017-09-21 | 2018-01-16 | 大连君方科技有限公司 | 船舶服务器日志监控系统 |
CN108733546A (zh) * | 2018-04-02 | 2018-11-02 | 阿里巴巴集团控股有限公司 | 一种日志采集方法、装置及设备 |
CN108984686A (zh) * | 2018-07-02 | 2018-12-11 | 中国电子科技集团公司第五十二研究所 | 一种基于日志合并的分布式文件系统索引方法和装置 |
WO2019006454A1 (en) * | 2017-06-30 | 2019-01-03 | Yiftach Shoolman | METHODS, SYSTEMS, AND MEDIA FOR CONTROLLING FILE ADJUSTMENTS ONLY IN ADD |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3701972A (en) * | 1969-12-16 | 1972-10-31 | Computer Retrieval Systems Inc | Data processing system |
US7653633B2 (en) * | 2005-11-12 | 2010-01-26 | Logrhythm, Inc. | Log collection, structuring and processing |
US9633088B1 (en) * | 2015-10-20 | 2017-04-25 | Voalte, Inc. | Event log versioning, synchronization, and consolidation |
US11216491B2 (en) * | 2016-03-31 | 2022-01-04 | Splunk Inc. | Field extraction rules from clustered data samples |
JP2018142240A (ja) * | 2017-02-28 | 2018-09-13 | 東芝メモリ株式会社 | メモリシステム |
-
2019
- 2019-04-19 CN CN201910315551.XA patent/CN110032496B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2998634A1 (en) * | 2005-11-12 | 2007-05-24 | Logrhythm, Inc. | Log collection, structuring and processing |
CN101197700A (zh) * | 2006-12-05 | 2008-06-11 | 阿里巴巴公司 | 提供日志服务的方法及系统 |
CN101605028A (zh) * | 2009-02-17 | 2009-12-16 | 北京安天电子设备有限公司 | 一种日志记录合并方法和系统 |
CN103929321A (zh) * | 2013-01-15 | 2014-07-16 | 腾讯科技(深圳)有限公司 | 一种日志处理方法和装置 |
CN105955876A (zh) * | 2016-05-13 | 2016-09-21 | 腾讯科技(深圳)有限公司 | 一种数据监控处理方法以及装置 |
CN106776556A (zh) * | 2016-12-12 | 2017-05-31 | 北京蓝海讯通科技股份有限公司 | 一种文本模式生成方法、装置和计算设备 |
WO2019006454A1 (en) * | 2017-06-30 | 2019-01-03 | Yiftach Shoolman | METHODS, SYSTEMS, AND MEDIA FOR CONTROLLING FILE ADJUSTMENTS ONLY IN ADD |
CN107590054A (zh) * | 2017-09-21 | 2018-01-16 | 大连君方科技有限公司 | 船舶服务器日志监控系统 |
CN108733546A (zh) * | 2018-04-02 | 2018-11-02 | 阿里巴巴集团控股有限公司 | 一种日志采集方法、装置及设备 |
CN108984686A (zh) * | 2018-07-02 | 2018-12-11 | 中国电子科技集团公司第五十二研究所 | 一种基于日志合并的分布式文件系统索引方法和装置 |
Non-Patent Citations (1)
Title |
---|
基于关联规则的日志分析系统的研究与设计;李哲;李先国;;微型电脑应用(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110032496A (zh) | 2019-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110032496B (zh) | 一种支持多样化日志合并的日志采集方法及系统 | |
Narkhede et al. | Kafka: the definitive guide: real-time data and stream processing at scale | |
US20180316735A1 (en) | Systems and methods of streaming data | |
Shapira et al. | Kafka: the definitive guide | |
US7698602B2 (en) | Systems, methods and computer products for trace capability per work unit | |
CN107341258B (zh) | 一种日志数据采集方法及系统 | |
WO2021057825A1 (zh) | 一种云系统资源集合的推荐方法、装置及计算设备集群 | |
US9235491B2 (en) | Systems and methods for installing, managing, and provisioning applications | |
US20170177461A1 (en) | Dynamically identifying performance anti-patterns | |
US11036608B2 (en) | Identifying differences in resource usage across different versions of a software application | |
CN111177237B (zh) | 一种数据处理系统、方法及装置 | |
US20180032387A1 (en) | Predictive Analytics on Database Wait Events | |
US9501377B2 (en) | Generating and implementing data integration job execution design recommendations | |
US10713591B2 (en) | Adaptive metric pruning | |
US20230214229A1 (en) | Multi-tenant java agent instrumentation system | |
CN116194896A (zh) | 基于摄取服务背压的智能跨度优先化 | |
US9817731B2 (en) | Acquiring diagnostic data selectively | |
Deyhim | Best practices for amazon emr | |
US20200327037A1 (en) | Software application performance analyzer | |
US10644971B2 (en) | Graph search in structured query language style query | |
US11307940B2 (en) | Cognitive data backup | |
US10970152B2 (en) | Notification of network connection errors between connected software systems | |
US9952773B2 (en) | Determining a cause for low disk space with respect to a logical disk | |
US11449411B2 (en) | Application-specific log routing | |
WO2024212622A1 (zh) | Nexus仓库制品的同步方法、装置、计算机设备及存储介质 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 311121 room 102-1 / F, room 102-2 / F, building 6, Haizhi center, 2301 yuhangtang Road, Cangqian street, Yuhang District, Hangzhou, Zhejiang Province Applicant after: HANGZHOU DAISHU TECHNOLOGY Co.,Ltd. Address before: 310030 8F, building 2, Hangzhou Internet innovation and entrepreneurship Park, 176 Zixia street, Xihu District, Hangzhou City, Zhejiang Province Applicant before: HANGZHOU DAISHU TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |