CN103401704A - 一种分布式日志采集服务器的实现方案 - Google Patents
一种分布式日志采集服务器的实现方案 Download PDFInfo
- Publication number
- CN103401704A CN103401704A CN2013103179606A CN201310317960A CN103401704A CN 103401704 A CN103401704 A CN 103401704A CN 2013103179606 A CN2013103179606 A CN 2013103179606A CN 201310317960 A CN201310317960 A CN 201310317960A CN 103401704 A CN103401704 A CN 103401704A
- Authority
- CN
- China
- Prior art keywords
- service
- server
- page
- message
- collector
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种分布式日志采集服务器的实现方案。Java web服务器在企业级应用系统中,一般都配置为多机集群方式,在这样的环境当中,如何通过分布式、可靠、和高可用的方式完成海量曰志的采集、传输和统计,是目前企业应用软件平台需要解决的必要课题。本发明提供了一种在Java web平台上实现的分布式日志采集服务器的方案,解决在多机环境下的日志采集服务所面临的可靠性、可扩展性问题:1)可靠性指:当一个采集节点出现故障时,日志能够被传送到其他的节点上面而不丢失;2)可扩展性指当采集对象增加时,采集节点能平行扩展,自动分担采集任务;以及对后端日志处理的可扩展性功能的支持。
Description
技术领域
本发明涉及信息技术领域,特别是涉及一种分布式日志采集服务器的实现方案。
背景技术
Java Web服务器在企业级应用系统中,一般都配置为多机集群方式,而且在当今互联网应用如此普及的情形下,服务器的规模也逐渐变得庞大,解决分布式环境下高可靠、高可用的海量日志的采集、传输和统计,是应用企业势待解决的问题。目前针对该项需求已有一些成熟的商用解决方案,开源方面也有Flume软件支持,但需要依托Apache Hadoop的计算环境,才能提供一些常用的监测业务,方便开发者进行集成。
发明内容
本发明提供了一种在Java Web平台上实现的分布式日志采集服务器的方案,解决在多机环境下的曰志采集服务所面临的可靠性、可扩展性问题:1)可靠性指:当一个采集节点出现故障时,日志能够被传送到其他的节点上面而不丢失;2)可扩展性指当采集对象增加时,采集节点能平行扩展,自动分担采集任务;以及对后端曰志处理的可扩展性功能的支持。
为实现上述发明目的,本发明提供一套j ava web平台相关插件的日志采集代理。日志采集代理包括如下工具包:log4j/jsper/servlet-api/catalina/ojdbc/mysql/sqljdbc;分别实现对jsp页面访问/httpreques t请求/session/jdbc数据访问的监测。其中,jsp和servlet的监测,实现访问量、访问请求响应时长、以及服务调用异常消息的监测;catalina的session监测实现一个session过程内用户访问的页面和服务请求的记录和跟踪,以实现用户行为的分析;jdbc的相关实现类,监测SQL的执行性能。
本发明还提供了一种分布式环境日志采集消息过滤机制。Collector的消息机制由zeromq组件实现。订阅接收来自agent的日志消息。zeromq是一个轻量级的消息内核,提供了一种异步消息队列,消息过滤机制。支持对多种传输协议的无缝访问。订阅的过滤条件包括:服务器/命令类型。服务器指被检查的web服务器,命令类型包括:页面/服务/SQL/Error类型;订阅的申请,提交给zookeeper服务器进行批准。
本发明还提供了系统稳定性相关的可靠性维护机制。系统的可靠性包括两个方面:首先,所有collector服务和日志持久化服务,以及agent和collector的发布订阅关系的冗余配置。该机制的特点在于采用了zookeeper为何集群状态信息。选举的算法关联到发布订阅的过滤类型,既跟服务器状态相关,也跟订阅的消息命令类型相关。注册到zookeeper时,可以对应一组collector,依次以主备方式为agentA提供日志接收/处理/转发服务;当col lector[0]失效时,collector[1]自动切换或者添加对agentA的订阅日志过滤,接收来自agentA的日志消息;同时,根据自身订阅日志的任务量,自动调整在zookeeper中的队列位置,任务轻的节点靠前。
本发明还提供了一种可扩展性支持的配置方案。配置的扩展性设计包括:1)监测页面和服务的可配置;系统需要监测的页面/服务/异常,通过xml进行描述;javaagent仅对需要进行监测的内容进行日志消息的上报;2)用户行为的跟踪记录;当一个用户在同一个session,访问多个页面或者服务时,可以指定开始和结束的URI,仅当这页面或者服务在这两个URI之间的日子才进行采集上报。
本发明还提供了一种解决复杂业务场景下,为方便通过日志分析用户行为而提供的日志会话管理功能。当一项业务办理需要访问多个页面或者服务请求才能完成时,对该项业务成功率和操作评价时长进行统计的功能。实现方式为:记录一个session范围内该项业务办理的初始访问页面和结束访问页面的时间,来计算一次业务办理的时长;当在这个周期内,服务请求发送异常,采集点会产生一次error命令,终止该项办理业务的跟踪记录,并记录为一次失败操作;只有当开始/结束两个服务消息都成功接收时,此项业务办理操作才算成功。
由上述方案可以看出,本发明集成zeromq/zookeeper/hypertable开源工具,通过内置的多种日志采集代理/灵活的消息订阅发布机制/可靠性选举算法等措施,实现了在分布式环境下面的日志采集/转发/处理以及统计的功能,可以为企业应用在该种类环境下面,提供了一种可选的实施方案。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。
图为本发明实施例中系统结构示意图;
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步的说明。
实施例一,参见图。
本发明提供了一种在Java Web平台上实现的分布式日志采集服务器的方案,解决在多机环境下的日志采集服务所面临的可靠性、可扩展性问题:1)可靠性指:当一个采集节点出现故障时,日志能够被传送到其他的节点上面而不丢失;2)可扩展性指当采集对象增加时,采集节点能平行扩展,自动分担采集任务;以及对后端日志处理的可扩展性功能的支持。其开发实施过程如下:
1)在web环境中安装zeromq/zookeeper/hypertable运行环境。
2)针对需要监测的类型(页面访问次数/服务请求时长/业务跟踪记录/服务异常/SQL性能等),配置日志检测模版文件。
3)修改web启动批处理文件,添加javaagent,以启动配置的采集代理服务。
4)启动web服务器,浏览监测管理页面,查看检测结果数据。
5)根据监测服务器的性能情况,调整采集点服务器的配置到适合的数量。
由上述方案可以看出,本发明集成zeromq/zookeeper/hypertable开源工具,通过内置的多种日志采集代理/灵活的消息订阅发布机制/可靠性选举算法等措施,实现了在分布式环境下面的日志采集/转发/处理以及统计的功能,解决在多机环境下的日志采集服务所面临的可靠性、可扩展性问题。
Claims (5)
1.一种分布式日志采集服务器的实现方案,其特征在于,日志采集代理的实现方式:系统通过java-agent方式,在jdk启动时,配置相关的aop插件;插件实现的日志采集的Instrument类型包括如下jar工具包:log4j/jsper/servlet-api/catalina/ojdbc/mysql/sqljdbc;分别实现对jsp页面访问/httprequest请求/session/jdbc数据访问的监测;
其中,jsp和servlet的监测,实现访问量、访问请求响应时长、以及服务调用异常消息的监测;catalina的session监测实现一个session过程内用户访问的页面和服务请求的记录和跟踪,以实现用户行为的分析;jdbc的相关实现类,监测SQL的执行性能。
2.一种分布式日志采集服务器的实现方案,其特征在于,Collector消息过滤方式:Collector的消息机制由zeromq组件实现,订阅接收来自agent的曰志消息;zeromq是一个轻量级的消息内核,提供了一种异步消息队列,消息过滤机制;支持对多种传输协议的无缝访问;订阅的过滤条件包括:服务器/命令类型;服务器指被检查的web服务器,命令类型包括:页面/服务/SQL/Error类型;订阅的申请,提交给zookeeper服务器进行批准。
3.一种分布式曰志采集服务器的实现方案,其特征在于,可靠性设计:系统的可靠性包括两个方面:首先,所有collector服务和日志持久化服务,都在zookeeper服务器注册管理;zookeeper服务配置为主备方式,当主节点down掉时,备用服务器可以接管服务;其次,agent和collector的发布订阅关系设计为冗佘配置,比如agentA采集点,注册到zookeeper时,可以对应一组collector,依次以主备方式为agentA提供日志接收/处理/转发服务;当collector[0]失效时,collector[1]自动切换或者添加对agentA的订阅日志过滤,接收来自agentA的日志消息;同时,根据自身订阅日志的任务量,自动调整在zookeeper中的队列位置,任务轻的节点靠前。
4.一种分布式日志采集服务器的实现方案,其特征在于,扩展性设计,系统的扩展性设计包括:1)监测页面和服务的可配置;系统需要监测的页面/服务/异常,通过xml进行描述;javaagent仅对需要进行监测的内容进行曰志消息的上报;2)用户行为的跟踪记录;当一个用户在同一个session,访问多个页面或者服务时,可以指定开始和结束的URI,仅当这页面或者服务在这两个URI之间的日子才进行采集上报。
5.一种分布式日志采集服务器的实现方案,其特征在于,业务操作的行为分析:指当一项业务办理需要访问多个页面或者服务请求才能完成时,对该项业务成功率和操作评价时长进行统计的功能;实现方式为:记录一个session范围内该项业务办理的初始访问页面和结束访问页面的时间,来计算一次业务办理的时长;当在这个周期内,服务请求发送异常,采集点会产生一次error命令,终止该项办理业务的跟踪记录,并记录为一次失败操作;只有当开始/结束两个服务消息都成功接收时,此项业务办理操作才算成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103179606A CN103401704A (zh) | 2013-07-24 | 2013-07-24 | 一种分布式日志采集服务器的实现方案 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103179606A CN103401704A (zh) | 2013-07-24 | 2013-07-24 | 一种分布式日志采集服务器的实现方案 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103401704A true CN103401704A (zh) | 2013-11-20 |
Family
ID=49565235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013103179606A Pending CN103401704A (zh) | 2013-07-24 | 2013-07-24 | 一种分布式日志采集服务器的实现方案 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103401704A (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729479A (zh) * | 2014-01-26 | 2014-04-16 | 北京北纬通信科技股份有限公司 | 基于分布式文件存储的网站页面内容统计的方法和系统 |
CN104023083A (zh) * | 2014-06-23 | 2014-09-03 | 广东睿江科技有限公司 | 日志收集集群负载均衡的方法及装置 |
CN104993957A (zh) * | 2015-06-29 | 2015-10-21 | 浪潮软件股份有限公司 | 一种为使用Log4j的分布式应用提供云端日志服务的方法 |
CN105141452A (zh) * | 2015-08-07 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种基于cxf的高性能服务系统及方法 |
CN105243125A (zh) * | 2015-09-29 | 2016-01-13 | 北京京东尚科信息技术有限公司 | PrestoDB集群的运行方法、装置、集群及查询数据方法和装置 |
CN105430030A (zh) * | 2014-09-16 | 2016-03-23 | 钛马信息网络技术有限公司 | 基于osgi技术的可平行扩展的应用服务器 |
CN105490864A (zh) * | 2014-09-16 | 2016-04-13 | 钛马信息网络技术有限公司 | 基于osgi的业务模块监控方法 |
CN105653607A (zh) * | 2015-12-23 | 2016-06-08 | 北京奇虎科技有限公司 | Sql日志收集分析方法及装置 |
CN106095864A (zh) * | 2016-06-03 | 2016-11-09 | 中国工商银行股份有限公司 | 一种日志处理系统及方法 |
CN106559241A (zh) * | 2015-09-29 | 2017-04-05 | 阿里巴巴集团控股有限公司 | 应用日志的收集、发送方法、装置、系统及日志服务器 |
CN108280080A (zh) * | 2017-01-06 | 2018-07-13 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、装置以及电子设备 |
CN108600035A (zh) * | 2018-07-21 | 2018-09-28 | 杭州安恒信息技术股份有限公司 | 一种非侵入式web应用监控与日志查询方法 |
CN108712296A (zh) * | 2018-06-07 | 2018-10-26 | 郑州云海信息技术有限公司 | 一种基于分布式的日志监控装置及方法 |
CN109587138A (zh) * | 2018-12-06 | 2019-04-05 | 中电工业互联网有限公司 | 一种物联网系统服务节点容错动态调度方法及服务器 |
CN110476154A (zh) * | 2017-04-12 | 2019-11-19 | 华为技术有限公司 | 用于数据收集的代理服务器设备和方法 |
CN110750740A (zh) * | 2019-09-16 | 2020-02-04 | 苏宁云计算有限公司 | 网页请求中的采集数据校验方法及装置 |
CN111371586A (zh) * | 2018-12-26 | 2020-07-03 | 顺丰科技有限公司 | 日志数据传输方法、装置和设备 |
CN113015203A (zh) * | 2021-03-22 | 2021-06-22 | Oppo广东移动通信有限公司 | 信息获取方法、装置、终端、系统及存储介质 |
CN115801203A (zh) * | 2023-01-19 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 一种分布式集群可靠性管理方法、装置及设备 |
-
2013
- 2013-07-24 CN CN2013103179606A patent/CN103401704A/zh active Pending
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729479A (zh) * | 2014-01-26 | 2014-04-16 | 北京北纬通信科技股份有限公司 | 基于分布式文件存储的网站页面内容统计的方法和系统 |
CN104023083B (zh) * | 2014-06-23 | 2017-12-12 | 广东睿江云计算股份有限公司 | 日志收集集群负载均衡的方法及装置 |
CN104023083A (zh) * | 2014-06-23 | 2014-09-03 | 广东睿江科技有限公司 | 日志收集集群负载均衡的方法及装置 |
CN105490864B (zh) * | 2014-09-16 | 2018-12-07 | 钛马信息网络技术有限公司 | 基于osgi的业务模块监控方法 |
CN105430030A (zh) * | 2014-09-16 | 2016-03-23 | 钛马信息网络技术有限公司 | 基于osgi技术的可平行扩展的应用服务器 |
CN105490864A (zh) * | 2014-09-16 | 2016-04-13 | 钛马信息网络技术有限公司 | 基于osgi的业务模块监控方法 |
CN105430030B (zh) * | 2014-09-16 | 2018-12-07 | 钛马信息网络技术有限公司 | 基于osgi技术的可平行扩展的应用服务器 |
CN104993957A (zh) * | 2015-06-29 | 2015-10-21 | 浪潮软件股份有限公司 | 一种为使用Log4j的分布式应用提供云端日志服务的方法 |
CN104993957B (zh) * | 2015-06-29 | 2018-09-21 | 浪潮软件股份有限公司 | 一种为使用Log4j的分布式应用提供云端日志服务的方法 |
CN105141452A (zh) * | 2015-08-07 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种基于cxf的高性能服务系统及方法 |
CN105243125A (zh) * | 2015-09-29 | 2016-01-13 | 北京京东尚科信息技术有限公司 | PrestoDB集群的运行方法、装置、集群及查询数据方法和装置 |
CN105243125B (zh) * | 2015-09-29 | 2018-07-06 | 北京京东尚科信息技术有限公司 | PrestoDB集群的运行方法、装置、集群及查询数据方法和装置 |
CN106559241A (zh) * | 2015-09-29 | 2017-04-05 | 阿里巴巴集团控股有限公司 | 应用日志的收集、发送方法、装置、系统及日志服务器 |
CN106559241B (zh) * | 2015-09-29 | 2019-11-08 | 阿里巴巴集团控股有限公司 | 应用日志的收集、发送方法、装置、系统及日志服务器 |
CN105653607B (zh) * | 2015-12-23 | 2019-05-07 | 北京奇虎科技有限公司 | Sql日志收集分析方法及装置 |
CN105653607A (zh) * | 2015-12-23 | 2016-06-08 | 北京奇虎科技有限公司 | Sql日志收集分析方法及装置 |
CN106095864A (zh) * | 2016-06-03 | 2016-11-09 | 中国工商银行股份有限公司 | 一种日志处理系统及方法 |
CN108280080A (zh) * | 2017-01-06 | 2018-07-13 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、装置以及电子设备 |
CN110476154A (zh) * | 2017-04-12 | 2019-11-19 | 华为技术有限公司 | 用于数据收集的代理服务器设备和方法 |
CN110476154B (zh) * | 2017-04-12 | 2021-09-03 | 华为技术有限公司 | 用于数据收集的代理服务器设备和方法 |
CN108712296A (zh) * | 2018-06-07 | 2018-10-26 | 郑州云海信息技术有限公司 | 一种基于分布式的日志监控装置及方法 |
CN108600035A (zh) * | 2018-07-21 | 2018-09-28 | 杭州安恒信息技术股份有限公司 | 一种非侵入式web应用监控与日志查询方法 |
CN109587138A (zh) * | 2018-12-06 | 2019-04-05 | 中电工业互联网有限公司 | 一种物联网系统服务节点容错动态调度方法及服务器 |
CN111371586A (zh) * | 2018-12-26 | 2020-07-03 | 顺丰科技有限公司 | 日志数据传输方法、装置和设备 |
CN111371586B (zh) * | 2018-12-26 | 2023-01-10 | 顺丰科技有限公司 | 日志数据传输方法、装置和设备 |
CN110750740A (zh) * | 2019-09-16 | 2020-02-04 | 苏宁云计算有限公司 | 网页请求中的采集数据校验方法及装置 |
CN113015203A (zh) * | 2021-03-22 | 2021-06-22 | Oppo广东移动通信有限公司 | 信息获取方法、装置、终端、系统及存储介质 |
CN115801203A (zh) * | 2023-01-19 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 一种分布式集群可靠性管理方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103401704A (zh) | 一种分布式日志采集服务器的实现方案 | |
CN105224445B (zh) | 分布式跟踪系统 | |
Goodhope et al. | Building LinkedIn's Real-time Activity Data Pipeline. | |
Logothetis et al. | In-situ {MapReduce} for Log Processing | |
CN108365985A (zh) | 一种集群管理方法、装置、终端设备及存储介质 | |
CN110489699B (zh) | 一种异步数据采集方法及系统 | |
CN103944924A (zh) | 一种基于RESTful的泛在网发布订阅中间件模型 | |
CN109918349A (zh) | 日志处理方法、装置、存储介质和电子装置 | |
CN112860393B (zh) | 一种分布式任务调度方法及系统 | |
CN106850258A (zh) | 一种日志管理系统、方法及装置 | |
CN104113585A (zh) | 用于产生指示负载平衡状态的硬件级中断的方法和设备 | |
CN111464612B (zh) | 一种恶劣环境下提供稳定计算服务的方法 | |
CN102262680A (zh) | 一种基于海量数据存取需求的分布式数据库代理系统 | |
CN111352806A (zh) | 日志数据监控方法及装置 | |
CN106302628B (zh) | Arm架构网络集群中计算资源的统一管理调度方法 | |
WO2022238345A1 (en) | Data synchronization in edge computing networks | |
CN104734895A (zh) | 业务监控系统及业务监控方法 | |
JP2013171542A (ja) | 性能分析装置、性能分析方法及び性能分析プログラム | |
CN112417050A (zh) | 数据同步方法和装置、系统、存储介质及电子装置 | |
CN116775420A (zh) | 基于Flink流计算的信创云平台资源展示和预警方法及系统 | |
CN116186139A (zh) | 一种基于微服务架构的仪器仪表产品全生命周期信息感知平台 | |
US10348596B1 (en) | Data integrity monitoring for a usage analysis system | |
US10706073B1 (en) | Partitioned batch processing for a usage analysis system | |
US20090164623A1 (en) | Methods and systems for tracking event loss | |
CN113824601A (zh) | 一种基于业务日志的电力营销监控系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20131120 |