一种分布式环境下的日志管理方法和装置制造方法及图纸

技术编号:9751102 阅读:168 留言:0更新日期:2014-03-09 08:02
本发明专利技术提供了一种分布式环境下的日志管理方法和装置,其中的方法包括步骤:拦截收集日志数据并发送;接收日志数据,并对集中的日志数据进行分析整理;将整理后的日志数据存储在数据库中,提供给用户进行查询和统计。利用本发明专利技术可以将分散在各个物理存储位置的日志实时收集到一个集中的日志中心,并将各日志文件中的日志记录按照统一时间线顺序进行排序并结构化存储,提供了更强的日志查询、分析、统计功能。本发明专利技术解决了分布、集群部署时应用产生的日志在空间与时间上的不一致造成使用日志的各种问题,方便了用户的查询统计。

【技术实现步骤摘要】
一种分布式环境下的日志管理方法和装置
本专利技术涉及日志管理,尤其涉及分布式环境下的日志管理方法和装置。
技术介绍
当前基于J2EE的应用得到了广泛的使用。为了获取应用的运行情况以及便于调试,基于J2EE的应用一般都会使用某种日志组件将应用实时产生的日志写入到文件系统中。日志组件的典型例子包括Log4j、common-log等。由于基于J2EE的应用通常会部署在集群环境或分布式环境中,此时的日志就会分散在多个物理机器上。当需要从日志中查找或者定位某些问题时,将会面临以下问题:1)空间不统一,日志的存储位置分散:由于应用被分布或集群部署,每个应用将被部署在多个物理机器上,每个部署的应用实例产生自己的日志文件,此时应用的日志将被分散于每个物理机器上。2)时间不统一,每个实例产生自己的日志时间线:在集群部署的每个应用实例都使用自己的服务器时间作为产生日志时间,每个应用实例只写自己的日志,多个应用实例就产生了多条基于各自时间的日志文件。为了解决日志分散存储的问题,现有技术中存在一些实时日志收集方法,但由于收集过程中占用大量的资源,会造成应用系统本身性能显著下降。同时现有技术中没有提供对收集过程的管理和控制,针对已集中的日志记录也没有提供灵活、有效的日志查询、分析、统计功能。
技术实现思路
鉴于以上问题,本专利技术旨在提供一种分布式环境下的日志管理方法和装置,以解决分布、集群部署时应用产生的日志在空间与时间上的不一致造成使用日志的各种问题。根据本专利技术的一个方面,提供了一种分布式环境下的日志管理方法,包括以下步骤: 拦截收集日志数据并发送; 接收日志数据,并对集中的日志数据进行分析整理; 将整理后的日志数据存储在数据库中,提供给用户进行查询和统计。其中,优选的方案是,拦截收集日志数据并发送的步骤具体包括: 拦截日志数据并将日志放入日志待打包队列; 按时间或数据量条件将日志待打包队列中的日志进行压缩形成数据包,并放入数据包待发送队列; 连接日志中心,向日志中心发送日志数据包。其中,优选的方案是,接收日志数据,并对集中的日志数据进行整理分析的步骤具体包括: 接收日志数据包,并将其放入数据包队列; 对数据包队列中的数据包进行解压并放入日志队列; 对日志队列中的日志进行分析并整理为固定的存储结构。根据本专利技术的另一方面,提供了一种分布式环境下的日志管理装置,包括: 日志拦截器,用于拦截收集日志数据并发送; 日志中心,用于接收日志数据并对集中的日志数据进行分析整理; 存储数据库,用于存储整理后的日志数据,并提供给用户进行查询和统计。其中,优选的方案是,日志拦截器包括: 拦截器,用于拦截日志数据并将日志放入日志待打包队列; 打包线程,用于按时间或数据量条件将日志待打包队列中的日志进行压缩形成数据包,并放入数据包待发送队列; 发送线程,用于连接日志中心,向日志中心发送日志数据包。其中,优选的方案是,日志中心包括: 日志接收器,用于接收日志数据包,并将其放入数据包队列; 解包线程,用于对数据包队列中的数据包进行解压并放入日志队列; 分析线程,用于对日志队列中的日志进行分析并整理为固定的存储结构。本专利技术的分布式环境下的日志管理方法和装置将分散在各个物理存储位置的日志实时收集到一个集中的日志中心,并将各日志文件中的日志记录按照统一时间线顺序进行排序并结构化存储,在一定程度上降低了对应用本身性能的影响。本专利技术的技术方案允许管理人员从日志中心实时管理与控制各个应用实例中的日志生成、收集的过程中的参数及行为,在日志中心也提供了更强的日志查询、分析、统计功能。本专利技术的方案能够解决在分布式应用开发及维护过程中查找日志时由于日志文件存放的物理位置不同及时间顺序不同所带来的问题。【附图说明】 图1是根据本专利技术实施例的分布式环境下的日志管理装置的模块图; 图2是根据本专利技术实施例的分布式环境下的日志管理装置的日志拦截器的模块图; 图3是根据本专利技术实施例的分布式环境下的日志管理装置的日志中心的模块图; 图4-5是根据本专利技术实施例的分布式环境下的日志管理装置中在数据库中存储的日志数据所包括的属性; 图6是根据本专利技术实施例的分布式环境下的日志管理方法的流程图。【具体实施方式】下面结合附图和实施例对本专利技术的技术方案进行详细说明。图1是根据本专利技术实施例的分布式环境下的日志管理装置的模块图。如图1所示,本专利技术的分布式环境下的日志管理装置包括日志拦截器、日志中心和存储数据库。其中日志拦截器随应用启动并过滤其需要收集的日志信息;日志中心用于接收各个应用的日志数据,并对集中的日志数据进行分析整理,提供人机界面给用户进行管理、查询、统计等操作;存储数据库用于存储经过整理后的日志数据。日志拦截器位于应用中,是一组辅助型工具类组合,其结构如图2所示。该日志拦截器包括拦截器来获取应用中的各个日志数据。更具体地,拦截器包括启动及过滤类以及JVM数据收集线程。启动及过滤器实现了 Servlet 2.3规范中所定义的Filter接口,在Web应用启动时负责启动日志拦截器相关的线程及服务,同时负责拦截web应用所有请求生成访应用的访问记录以及应用产生的各个日志记录,并将这些记录存入日志待打包队列。JVM数据收集线程随Web应用启动,每隔N秒收集内存、线程、类等数据,生成JVM状态日志数据记录,存入日志待打包队列。上面的参数N可以由用户根据经验值设定。该拦截器根据相关日志拦截参数来拦截应用所产生的日志,将符合条件的日志放入到待打包队列中。日志拦截器中运行的相关线程还包括: O日志打包线程:从日志待打包队列中取得多条原始日志数据,使用数据压缩算法将多条日志数据压缩成为一个数据包。当满足下面2个条件之一时结束打包,将数据包存入数据包待发送队列。条件1:K条日志数据的原始大小累计大于M byte。条件2:当前时间-开始打包时间大于S秒。上面的参数K、M、S可以由用户根据经验值设定。该日志打包线程可以是一组线程,其数量可以根据待打包日志数据的数量和大小来确定。2)发送线程:从数据包待发送队列中取得压缩好的数据包,使用HTTP协议将数据包发送给日志中心。该发送操作可以以固定的时间间隔进行或是在数据包待发送队列的长度大于一定长度阈值时进行。上述的时间间隔和长度阈值均可由用户根据经验值设定。该发送线程同样可以是一组线程,其数量可以根据待发送的数据包的数量来确定。3)时间校准线程:该每间隔N小时使用NTP协议访问国家授时服务器获取标准时间,计算本地时间与标准时间的差值,对日志生成时间进行校准。该日志拦截器中包括2个数据缓存队列,分别是日志待打包队列和数据包待发送队列,它们分别用于存放原始日志数据和压缩后的数据包。日志拦截器通过上述的后台守护线程的运行来定时收集、打包和发送日志,克服了现有技术中实时收集日志方法所带来的占用大量资源,造成应用性能显著下降的缺陷。日志中心是一个Web应用程序,其接收各个应用的日志数据,并对集中的日志数据进行分析整理,同时提供GUI用户管理界面给用户进行管理、查询、统计等操作。其结构如图3所示。该日志中心包括: O日志接收器:基于HTTP协议接收日志拦截器发送来的日志数据包,并将其存入数据包队列中。2)本文档来自技高网...

【技术保护点】
一种分布式环境下的日志管理方法,包括以下步骤:?拦截收集日志数据并发送;?接收日志数据,并对集中的日志数据进行分析整理;将整理后的日志数据存储在数据库中,提供给用户进行查询和统计。

【技术特征摘要】
1.一种分布式环境下的日志管理方法,包括以下步骤: 拦截收集日志数据并发送; 接收日志数据,并对集中的日志数据进行分析整理; 将整理后的日志数据存储在数据库中,提供给用户进行查询和统计。2.根据权利要求1所述的分布式环境下的日志管理方法,其中,所述拦截收集日志数据并发送的步骤具体包括: 拦截日志数据并将日志放入日志待打包队列; 按时间或数据量条件将日志待打包队列中的日志进行压缩形成数据包,并放入数据包待发送队列; 连接日志中心,向日志中心发送日志数据包。3.根据权利要求2所述的分布式环境下的日志管理方法,其中,由打包线程将日志进行压缩形成数据包,由发送线程向日志中心发送日志数据包。4.根据权利要求2所述的分布式环境下的日志管理方法,其中,拦截日志时根据日志拦截参数来拦截日志,将符合条件的日志放入到待打包队列中。5.根据权利要求2所述的分布式环境下的日志管理方法,其中,在检测到数据包待发送队列中的数据长度大于一定长度阈值时或以固定的时间间隔发送日志数据包。6.根据权利要求2所述 分布式环境下的日志管理方法,其中,所述接收日志数据,并对集中的日志数据进行整理分析的步骤具体包括: 接收日志数据包,并将其放入数据包队列; 对数据包队列中的数据包进行解压并放入日志队列; 对日志队列中的日志进行分析并整理为固定的存储结构。7.根据权利要求6所...

【专利技术属性】
技术研发人员:孙凯
申请(专利权)人:用友软件股份有限公司
类型:发明
国别省市:

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

1