一种分布式环境下实时日志的无损采集方法及其系统技术方案

技术编号:15895416 阅读:55 留言:0更新日期:2017-07-28 19:52
本发明专利技术涉及一种分布式环境下实时日志的无损采集方法及其系统,该方法包括获取日志文件中的日志消息;采用Disk‑Assisted缓冲模式对所述日志消息进行缓存;实时更新状态信息到偏移量状态文件;记录日志文件与偏移量状态文件的对应关系;判断日志文件是否出现漏采情况;若日志文件出现漏采情况,则调用配置模块接口,生成漏采日志文件的采集配置文件。本发明专利技术通过将日志消息持久化到磁盘中,保障消息不丢失,偏移量状态文件的更新有利于保障消息不丢失或重复发送数据,对日志文件进行漏采判断,防止漏采情况发生,实现无损的采集实时日志,配置以及运营均方便,性能高,保障分布式系统日志采集实时性与可靠性,具有强大的异常重采能力。

Real time log non destructive collection method and system in distributed environment

The invention relates to a method for real-time lossless acquisition log distributed environment and system, the method includes obtaining log messages in the log file; using Disk Assisted buffer mode to cache the log message; real-time update state information to the offset of the state; corresponding relation between the log file and the offset of the state file if the log file leakage judgment; mining; if the log file is called leakage recovery, configuration module interface, generate leakage acquisition configuration file log file recovery. The log message persisted to disk, guarantee message is not lost, the offset state of the file update message is not conducive to the protection of missing or repeated transmission data, leakage judging of the log file, to prevent leakage of mining situation, realize real-time log collection lossless, configuration and convenient operation, high performance distributed system security log collection, real-time and reliability, has a strong ability of heavy mining.

【技术实现步骤摘要】
一种分布式环境下实时日志的无损采集方法及其系统
本专利技术涉及日志采集方法,更具体地说是指一种分布式环境下实时日志的无损采集方法及其系统。
技术介绍
随着平台化技术和分布式计算技术的发展,用于记录用户操作、系统运行状态的日志可能遍布成百上千的服务器上,如何将这些数据收集到一起,供后续分析使用,是一大技术难题。分布式采集系统的出现就是为了满足分布式系统环境下海量日志的采集需求,分布式采集系统利用分布在网络联通的多个计算机节点上的采集器,通过元数据统一管理、采集器分布存放实现分布式环境下系统的日志采集。目前,通常采用Rsyslog以及Logstash两种方式进行日志的采集,Rsyslog是Linux日志机制的核心常驻服务,该服务负责监听Linux下的日志信息,并把日志信息追加到对应的日志文件中,一般在/var/log目录下。它还可以把日志信息通过网络协议发送到另一台Linux服务器上。Rsyslog采用模块化设计,能够定制各类数据发送方,同时提供对数据进行处理并写到各种数据接受方(可定制)的能力。Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置。Logstash也采用模块化设计,能够支持多种发送方,同时提供对数据进行处理并写到各种数据接受方(可定制)的能力。其低准入门槛适合小企业使用。使用Rsyslog进行采集日志文件时会有以下的缺点:1、Rsyslog的单点问题会导致异常退出期间部分滚动输出的日志文件无法采集。2、Rsyslog不支持动态日志目录采集如每日更新的日期目录,同时也不支持对相同结构的多目录进行统一配置与采集。3、Rsyslog不支持采集后日志文件的归档与删除,日志输出目录的文件数量越来越多,需要人工归档与删除。使用Logstash进行采集日志文件时会有以下的缺点:1、Logstash的单点问题会导致异常退出期间,会出现高概率的重发与丢失日志消息。2、Logstash不支持动态日志目录采集如每日更新的日期目录,同时也不支持对相同结构的多目录进行统一配置与采集。3、Logstash都不支持采集后日志文件的归档与删除,日志输出目录的文件数量越来越多。4、在分布式系统环境下,Logstash采集配置等元数据没有中心化配置与发布等功能,无法对各个主机的采集元数据有效管理。5、在分布式系统环境下,Logstash没有提供监控输出接口,无法有效管理Logstash地状态。4、Logstash采用ruby开发,采集性能低下。因此,有必要设计一种分布式环境下实时日志的无损采集方法及其系统,实现无损的采集实时日志,配置以及运营均方便,且性能高,不仅保障分布式系统日志采集实时性与可靠性,同时具有了强大的异常重采能力。
技术实现思路
本专利技术的目的在于克服现有技术的缺陷,提供一种分布式环境下实时日志的无损采集方法及其系统。为实现上述目的,本专利技术采用以下技术方案:一种分布式环境下实时日志的无损采集方法,所述方法包括:获取日志文件中的日志消息;采用Disk-Assisted缓冲模式对所述日志消息进行缓存;实时更新状态信息到偏移量状态文件;记录日志文件与偏移量状态文件的对应关系;判断日志文件是否出现漏采情况;若日志文件出现漏采情况,则调用配置模块接口,生成漏采日志文件的采集配置文件。其进一步技术方案为:采用Disk-Assisted缓冲模式对所述日志消息进行缓存的步骤之后,还包括:对日志消息进行格式化与过滤。其进一步技术方案为:获取日志文件中的日志消息的步骤,包括以下具体步骤:判断采集路径中是否含有“*”,若采集路径中含有“*”,则根据目录生成实际的采集配置文件,采集多目录下的日志文件,或者,若采集路径中不含有“*”,则进行下一步骤;判断采集路径中是否含有“{date}”,若采集路径中含有“{date}”,则定时根据当日日期生成对应的采集配置文件,采集动态日期目录下的日志文件,或者,若采集路径中不含有“{date}”,则采集单目录下的日志文件。其进一步技术方案为:采用Disk-Assisted缓冲模式对所述日志消息进行缓存的步骤,包括以下具体步骤:判断内存队列是否处于满载状态或者退出状态;若内存队列不处于满载状态或者退出状态,则将所述日志消息缓存于所述内存列队中;若内存队列处于满载状态或者退出状态,则激活磁盘队列,将所述日志消息持久化到磁盘中。其进一步技术方案为:若日志文件出现漏采情况,则调用配置模块接口,生成漏采日志文件的采集配置文件的步骤之后,还包括:对最后更新时间为历史日期的日志文件发起归档与删除操作。其进一步技术方案为:所述一种分布式环境下实时日志的无损采集方法还包括:提供网页进行统一配置与发布。本专利技术还提供了一种分布式环境下实时日志的无损采集系统,包括输入单元、消息缓存单元、输出单元、记录单元以及数据检测单元;所述输入单元,用于获取日志文件中的日志消息;所述消息缓存单元,用于采用Disk-Assisted缓冲模式对所述日志消息进行缓存;所述输出单元,用于实时更新状态信息到偏移量状态文件;所述记录单元,用于记录日志文件与偏移量状态文件的对应关系;所述数据检测单元,用于判断日志文件是否出现漏采情况,若日志文件出现漏采情况,则调用配置模块接口,生成漏采日志文件的采集配置文件。其进一步技术方案为:所述一种分布式环境下实时日志的无损采集系统还包括解析过滤单元,所述解析过滤单元用于对日志消息进行格式化与过滤。其进一步技术方案为:所述输入单元包括多目录采集模块以及动态目录采集模块;所述多目录采集模块,用于判断采集路径中是否含有“*”,若采集路径中含有“*”,则根据目录生成实际的采集配置文件,采集多目录下的日志文件;所述动态目录采集模块,用于判断采集路径中是否含有“{date}”,若采集路径中含有“{date}”,则定时根据当日日期生成对应的采集配置文件,采集动态日期目录下的日志文件,或者,若采集路径中不含有“{date}”,则采集单目录下的日志文件。其进一步技术方案为:所述消息缓存单元包括判断模块、内存列队缓存模块以及磁盘队列缓存模块;所述判断模块,用于判断内存队列是否处于满载状态或者退出状态;所述内存列队缓存模块,用于若内存队列不处于满载状态或者退出状态,则将所述日志消息缓存于所述内存列队中;所述磁盘队列缓存模块,用于若内存队列处于满载状态或者退出状态,则激活磁盘队列,将所述日志消息持久化到磁盘中。本专利技术与现有技术相比的有益效果是:本专利技术的一种分布式环境下实时日志的无损采集方法,通过将获取的日志消息进行缓存,当内存队列满或者退出时会激活磁盘队列,用于持久化到磁盘中,保障消息不丢失,偏移量状态文件的更新有利于保障消息不丢失或者重复发送数据,对日志文件进行漏采判断,防止漏采情况发生,实现无损的采集实时日志,配置以及运营均方便,且性能高,不仅保障分布式系统日志采集实时性与可靠性,同时具有了强大的异常重采能力。下面结合附图和具体实施例对本专利技术作进一步描述。附图说明图1为本专利技术具体实施例提供的一种分布式环境下实时日志的无损采集方法的流程图;图2为本专利技术具体实施例提供的获取日志文件中的日志消息的具体流程图;图3为本专利技术具体实施例提供的采用Disk-A本文档来自技高网
...
一种分布式环境下实时日志的无损采集方法及其系统

【技术保护点】
一种分布式环境下实时日志的无损采集方法,其特征在于,所述方法包括:获取日志文件中的日志消息;采用Disk‑Assisted缓冲模式对所述日志消息进行缓存;实时更新状态信息到偏移量状态文件;记录日志文件与偏移量状态文件的对应关系;判断日志文件是否出现漏采情况;若日志文件出现漏采情况,则调用配置模块接口,生成漏采日志文件的采集配置文件。

【技术特征摘要】
1.一种分布式环境下实时日志的无损采集方法,其特征在于,所述方法包括:获取日志文件中的日志消息;采用Disk-Assisted缓冲模式对所述日志消息进行缓存;实时更新状态信息到偏移量状态文件;记录日志文件与偏移量状态文件的对应关系;判断日志文件是否出现漏采情况;若日志文件出现漏采情况,则调用配置模块接口,生成漏采日志文件的采集配置文件。2.根据权利要求1所述的一种分布式环境下实时日志的无损采集方法,其特征在于,采用Disk-Assisted缓冲模式对所述日志消息进行缓存的步骤之后,还包括:对日志消息进行格式化与过滤。3.根据权利要求1所述的一种分布式环境下实时日志的无损采集方法,其特征在于,获取日志文件中的日志消息的步骤,包括以下具体步骤:判断采集路径中是否含有“*”,若采集路径中含有“*”,则根据目录生成实际的采集配置文件,采集多目录下的日志文件,或者,若采集路径中不含有“*”,则进行下一步骤;判断采集路径中是否含有“{date}”,若采集路径中含有“{date}”,则定时根据当日日期生成对应的采集配置文件,采集动态日期目录下的日志文件,或者,若采集路径中不含有“{date}”,则采集单目录下的日志文件。4.根据权利要求3所述的一种分布式环境下实时日志的无损采集方法,其特征在于,采用Disk-Assisted缓冲模式对所述日志消息进行缓存的步骤,包括以下具体步骤:判断内存队列是否处于满载状态或者退出状态;若内存队列不处于满载状态或者退出状态,则将所述日志消息缓存于所述内存列队中;若内存队列处于满载状态或者退出状态,则激活磁盘队列,将所述日志消息持久化到磁盘中。5.根据权利要求4所述的一种分布式环境下实时日志的无损采集方法,其特征在于,若日志文件出现漏采情况,则调用配置模块接口,生成漏采日志文件的采集配置文件的步骤之后,还包括:对最后更新时间为历史日期的日志文件发起归档与删除操作。6.根据权利要求1至5任一项所述的一种分布式环境下实时日志的无损采集方法,...

【专利技术属性】
技术研发人员:张雷张伟何广柏
申请(专利权)人:广东亿迅科技有限公司
类型:发明
国别省市:广东,44

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

1