CN102480489A - 一种用于分布式环境下的日志记录方法和设备 - Google Patents
一种用于分布式环境下的日志记录方法和设备 Download PDFInfo
- Publication number
- CN102480489A CN102480489A CN2010105803319A CN201010580331A CN102480489A CN 102480489 A CN102480489 A CN 102480489A CN 2010105803319 A CN2010105803319 A CN 2010105803319A CN 201010580331 A CN201010580331 A CN 201010580331A CN 102480489 A CN102480489 A CN 102480489A
- Authority
- CN
- China
- Prior art keywords
- log
- daily record
- client
- log server
- server
- 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
一种用于分布式环境下的日志记录方法,包括以下步骤:配置日志服务器和客户端的日志策略;实时地将所述客户端的日志发送给所述日志服务器;以及按照所述日志策略对所述日志服务器接收到的所述日志进行存储。本发明能够提供高并发、大容量的日志服务。同时,其系统易扩展,能够满足各种不同的需求。本发明对客户端语言没有任何限制,可以满足各种环境的需求。此外,本发明还能充分利用带宽。
Description
技术领域
本发明一般地涉及分布式系统,更特别地,涉及一种用于分布式环境下的日志记录方法和设备。
背景技术
日志在实际应用中具有重要的意义。它有助于发现系统中存在的问题,以改进产品的质量。如果对日志进行更深层次的挖掘,还可以了解用户的潜在需求,为产品开发者提供指导。
在大流量、高并发的分布式系统中,每天会产生大量的日志数据。以某WAP站点为例,该WAP站点具有大约10台计算机。每天每台计算机产生的访问日志就多达大约5GB,再加上其他的统计日志,这个数量是非常庞大的。
图1是现有技术的分布式系统100的结构示意图。分布式系统100可以包括日志服务器101、客户端集群102-1,...,102-N以及统计服务器103。日志服务器101用于收集客户端集群102-1,...,102-N的日志信息。每个客户端集群102通常是具有相同属性(例如,对应于同一业务)的多个计算机的集合。统计服务器103用于对日志信息进行统计分析。
当前,客户端集群102-1,...,102-N白天正常处理日常业务。在夜间访问量较少时,由日志服务器101将客户端集群102-1,...,102-N的日志复制到统计服务器103,再由统计服务器103进行合并分析。其中,为了复制日志,日志服务器101首先向客户端集群102-1,...,102-N发送消息,以表明其需要复制日志。响应于接收到日志服务器101发来的表明其需要复制日志的消息,客户端集群102-1,...,102-N将日志发送给日志服务器101。
应当注意,图1只是示例性的,实际的分布式系统可以包括更多的设备,日志服务器数量、统计服务器数量以及每个客户端集群所包括的计算机数量也可以与所示出的不同。
随着业务的不断扩张和用户的不断增长,站点的访问量也越来越大。在此情况下,无法在规定的时间内将日志复制到统计服务器,从而致使了日志统计的不准确。
因此,需要一种能够克服上述问题的日志记录方法和设备。
发明内容
根据本发明的一个方面,提供了一种用于分布式环境下的日志记录方法,包括以下步骤:配置日志服务器和客户端的日志策略;实时地将所述客户端的日志发送给所述日志服务器;以及按照所述日志策略对所述日志服务器接收到的所述日志进行存储。
根据本发明的另一方面,提供了一种用于分布式环境下的日志记录设备,包括:用于配置日志服务器和客户端的日志策略的装置;用于实时地将所述客户端的日志发送给所述日志服务器的装置;以及用于按照所述日志策略对所述日志服务器接收到的所述日志进行存储的装置。
本发明能够提供高并发、大容量的日志服务。同时,其系统易扩展,能够满足各种不同的需求。本发明对客户端语言没有任何限制,可以满足各种环境的需求。此外,本发明还能充分利用带宽。
附图说明
根据以下参照附图对本发明实施例的详细描述,本发明的其他目的、特征、应用和优点将变得明显,其中相同的参考标号代表相同或相应的组件或步骤,其中:
图1是现有技术的分布式系统100的结构示意图;
图2是现有技术的日志记录方法200的流程图;
图3是根据本发明优选实施例的分布式系统300的结构示意图;
图4是根据本发明优选实施例的用于分布式环境下的日志记录方法400的示意性流程图;以及
图5是根据本发明优选实施例的用于分布式环境下的日志记录设备500的示意性框图。
具体实施方式
下面结合具体实施例对本发明进行详细描述。
图2是现有技术的日志记录方法200的流程图。方法200开始于步骤201。在步骤201中,分别在客户端集群102-1,...,102-N本地存储日志。在步骤202中,日志服务器101向客户端集群102-1,...,102-N发送消息,以表明其需要复制日志。在步骤203中,响应于接收到日志服务器101发来的表明其需要复制日志的消息,客户端集群102-1,...,102-N将日志发送给日志服务器101。在步骤204中,日志服务器101将客户端集群102-1,...,102-N的日志复制到统计服务器103。随后,统计服务器103可以对这些日志进行统计分析。
图3是根据本发明的优选实施例的分布式系统300的结构示意图。分布式系统300可以包括日志服务器301、客户端集群302-1,...,302-N以及统计服务器303。其中,日志服务器301可以位于图1所示的日志服务器101中,客户端集群302-1,...,302-N中的每个客户的可分别位于图1所示的客户端集群102-1,...,102-N中的每台计算机上,统计服务器303可以与图1所示的统计服务器103是同一个。参见图1可知,分布式系统300的物理结构与分布式系统100的物理结构可以是相同的。
图3所示的日志服务器301可以包括接收器3011、分发器3012、DB(数据库)并存储有若干文件。
应当注意,图3只是示例性的,实际的分布式系统300可以包括更多的设备,日志服务器数量、统计服务器数量以及每个客户端集群所包括的客户端数量也可以与所示出的不同。
图4是根据本发明优选实施例的用于分布式环境下的日志记录方法400的示意性流程图。
方法400开始于步骤401。在步骤401中,配置日志服务器和客户端的日志策略。完成对日志服务器和客户端的配置后,方法400进行到步骤402。在步骤402中,实时地将所述客户端的日志发送给所述日志服务器。接着,方法400进行到步骤403。在步骤403中,按照所述日志策略对所述日志服务器接收到的所述日志进行存储。
分布式日志服务可以采用CS(客户端/服务器)架构,其分别提供了如图3所示的日志服务器301与客户端302。
日志策略可以设置自定义的日志输出格式和日志滚动周期,根据不同模块的需求自定义合适的日志输出级别及存储方式。根据本发明的优选实施例,所述日志策略可以包括日志文件存储名称、格式和滚动周期中的至少一个。所述日志策略可以体现为配置文件。
客户端302提供了不同的编程语言版本,可以运行在不同的操作系统和计算机架构上。无论部署环境如何,这些应用的源码都是可移植的。客户端302采用AMI(异步方法调用)发出远地调用,从而使得发出调用的线程不会阻塞。
客户端302需要提供日志服务器301为其所配置的名字。
例如remoteLoggerName=wap_useraccess
日志服务器301可以采用AMD(异步方法分派)技术。当日志服务器301接收到一个请求时,接收器3011通常会把请求数据放入队列,供分发器3012随后处理用。这样,日志服务器301就使接收器3011所使用的分派线程的使用率降到了最低限度,能够高效地支持高并发客户。
分发器3012会从队列中取出相应的请求数据,然后根据配置文件中的规则将数据加工处理,放入到相应的文件或者数据库中。
分发器3012的配置文件主要有Logger和Appender。
Logger的名字应与相应的客户端302的配置一致。
Appender则为根据不同规则来处理加工日志数据和存放日志数据的真正执行者。可以根据具体的规则来实现Appender接口的不同子类,从而实现具体需求。换言之,根据本发明的分布式系统具有很强的可扩展性。
例如,DailyRollingFileAppender,如果为其配置了以下属性:
File=″/data/logs/useraccess.log″,DatePattern=″′.′yyyy-MM-dd″
则日志会以天(滚动周期)为单位被转存至文件/data/logs/useraccess.log,并以“年-月-日”格式的后缀来保存。
在图1和图2所示的现有技术中,由于要避开白天的高峰,往往需要用凌晨的低峰时段进行日志的同步(即复制),24小时下来,数GB的日志同步也是风险很高的操作。然而,根据本发明,只要客户端302产生日志,就可以主动将其发送到日志服务器301,实现了应用分布而日志集中。此外,由于日志的发送是由客户端302主动发起,不再需要日志服务器首先发送表明其需要复制日志的消息,因此减少了客户端与日志服务器的消息往来,减少了传输开销。
客户端302将所产生的日志实时地发送给日志服务器301之后,也可以在本地保留该日志的备份。但是,在客户端302不本地保留日志备份的情况下,可以一定程度上节省客户端302的存储资源。
根据本发明的优选实施例,客户端302可以通过TCP(传输控制协议)长连接与日志服务器301进行通信,从而向日志服务器301发送日志。但是,由于日志服务的可靠性要求并不是很高,即使有少量数据丢失,也是可以接受的。因此,客户端302也可以通过UDP(用户数据报协议)来与日志服务器301进行通信。在客户端302通过UDP协议来与日志服务器301进行通信的情况下,由于并不需要日志服务器的确认,进一步减少了传输开销。
如上所述,日志服务器301采用AMD(异步方法分派)技术。当日志服务器301接收到一个请求时,接收器3011通常会把请求数据放入队列,供分发器3012随后处理用。这样,日志服务器301就使接收器3011所使用的分派线程的使用率降到了最低限度,能够高效地支持高并发客户。
分发器3012会从队列中取出相应的请求数据,然后根据配置文件中的规则将数据加工处理,放入到相应的文件或者数据库中。
AMD技术使得不需要立即对接收到的日志进行处理,而可以在日志服务器空闲时再进行处理,从而能够更有效地利用服务器资源。
如图3所示,日志服务器301也可以连接到统计服务器303并将日志发送给统计服务器303,由其对这些日志进行统计分析。
这样,本发明的方法能够对日志进行统一的集中式的管理和分析,从而减少了分布式环境下日志合并和网络传输带来的开销。
使用了上述远程日志后,日志被实时地发送至日志服务器。日志服务器会根据客户端属性将同业务的日志实时地合并至一起,可以根据业务需求实时地对日志进行分析,按照小时、天等时间对日志进行分割打包压缩。从而减少了夜间的机群服务器网络压力和数据的冗余。
图5是根据本发明优选实施例的用于分布式环境下的日志记录设备500的示意性框图。日志记录设备500包括用于配置日志服务器和客户端的日志策略的装置501、用于实时地将所述客户端的日志发送给所述日志服务器的装置502以及用于按照所述日志策略对所述日志服务器接收到的所述日志进行存储的装置503。
根据本发明的优选实施例,所述用于实时地将所述客户端的日志发送给所述日志服务器的装置通过TCP长连接来实现所述发送。
根据本发明的优选实施例,所述用于实时地将所述客户端的日志发送给所述日志服务器的设备通过UDP协议来实现所述发送。
根据本发明的优选实施例,所述日志策略包括日志文件存储名称、格式和滚动周期中的至少一个。
本发明可以不需要对现有技术的分布式系统的物理结构进行改变,而只需要在现有的日志服务器设备和客户端设备的应用中增添相应的模块,其可以是相应的硬件模块,也可以仅仅是一小段软件代码。因此,本发明实现简单,成本低廉。此外,本发明对客户端语言没有任何限制,因此具有很高的可移植性。
本发明可以采取完全硬件实现、完全软件实现或者同时包含硬件单元和软件单元的实现的形式。在优选的实施例中,本发明是以软件实现的,该软件包括但不限于固件、驻留软件、微代码等。
此外,本发明可以采取可从计算机可用介质或计算机可读介质访问的计算机程序产品的形式,该介质提供程序代码以供计算机或任意指令执行系统使用或者结合计算机或任意指令执行系统而使用。出于本描述的目的,计算机可用介质或计算机可读介质可以是任意切实可行的装置,其可以包含、存储、传送、传播或传输程序以供计算机或任意指令执行系统、装置或设备使用或者结合计算机或任意指令执行系统、装置或设备而使用。
在前面的详细描述中,参考了形成该描述的一部分的附图,其中通过图示示出了可以实现本发明的特定实施例。上面已经充分详细地描述了这些实施例及其某些变型,以便本领域的普通技术人员可以实现本发明。应当理解,在不偏离本发明的本质或范围的情况下,可以采用其他适合的实施例,并且可以进行逻辑的、机械的和电学的改变。例如,在不偏离本发明的本质或范围的情况下,可以以任何方式对图中示出的功能块进行进一步的合并或分离。为了避免不必要的细节,本说明书省略了本领域的普通技术人员公知的某些信息。因此,以上的详细说明并非意在限于在此提出的特定形式,相反,其意在覆盖可以合理地包括在所附权利要求的本质和范围内的那些变更、修改以及等效形式。
Claims (8)
1.一种用于分布式环境下的日志记录方法,包括以下步骤:
配置日志服务器和客户端的日志策略;
实时地将所述客户端的日志发送给所述日志服务器;以及
按照所述日志策略对所述日志服务器接收到的所述日志进行存储。
2.根据权利要求1所述的日志记录方法,其中所述实时地将所述客户端的日志发送给所述日志服务器的步骤通过TCP长连接来实现。
3.根据权利要求1所述的日志记录方法,其中所述实时地将所述客户端的日志发送给所述日志服务器的步骤通过UDP协议来实现。
4.根据权利要求1所述的日志记录方法,其中所述日志策略包括日志文件存储名称、格式和滚动周期中的至少一个。
5.一种用于分布式环境下的日志记录设备,包括:
用于配置日志服务器和客户端的日志策略的装置;
用于实时地将所述客户端的日志发送给所述日志服务器的装置;以及
用于按照所述日志策略对所述日志服务器接收到的所述日志进行存储的装置。
6.根据权利要求5所述的日志记录设备,其中所述用于实时地将所述客户端的日志发送给所述日志服务器的装置通过TCP长连接来实现所述发送。
7.根据权利要求5所述的日志记录设备,其中所述用于实时地将所述客户端的日志发送给所述日志服务器的设备通过UDP协议来实现所述发送。
8.根据权利要求5所述的日志记录设备,其中所述日志策略包括日志文件存储名称、格式和滚动周期中的至少一个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105803319A CN102480489A (zh) | 2010-11-30 | 2010-11-30 | 一种用于分布式环境下的日志记录方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105803319A CN102480489A (zh) | 2010-11-30 | 2010-11-30 | 一种用于分布式环境下的日志记录方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102480489A true CN102480489A (zh) | 2012-05-30 |
Family
ID=46092971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105803319A Pending CN102480489A (zh) | 2010-11-30 | 2010-11-30 | 一种用于分布式环境下的日志记录方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102480489A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778049A (zh) * | 2012-10-19 | 2014-05-07 | 北京市三希电子科技开发公司 | 一种嵌入式设备开发日志系统 |
CN103927252A (zh) * | 2014-04-18 | 2014-07-16 | 安徽科大讯飞信息科技股份有限公司 | 一种跨组件日志记录方法、装置及系统 |
CN103942134A (zh) * | 2014-04-04 | 2014-07-23 | 福建星网视易信息系统有限公司 | 查看嵌入式设备日志的方法及系统 |
CN104765775A (zh) * | 2015-03-17 | 2015-07-08 | 新浪网技术(中国)有限公司 | 一种日志保存方法及装置 |
CN105227354A (zh) * | 2015-09-07 | 2016-01-06 | 浪潮软件集团有限公司 | 一种基于日志的对分布式系统监控管理的方法 |
CN105487963A (zh) * | 2015-11-26 | 2016-04-13 | 小米科技有限责任公司 | 消息确认方法及装置 |
CN105554042A (zh) * | 2016-03-01 | 2016-05-04 | 上海斐讯数据通信技术有限公司 | 一种UDP远程传输log的方法及系统 |
CN105635301A (zh) * | 2016-01-14 | 2016-06-01 | 郑州悉知信息科技股份有限公司 | 一种访问日志合并方法、日志处理服务器及系统 |
CN106649729A (zh) * | 2016-12-23 | 2017-05-10 | 深圳市金证科技股份有限公司 | 日志运行方法及系统、客户端和服务器 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101087210A (zh) * | 2007-05-22 | 2007-12-12 | 网御神州科技(北京)有限公司 | 高性能的Syslog日志处理和存储方法 |
-
2010
- 2010-11-30 CN CN2010105803319A patent/CN102480489A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101087210A (zh) * | 2007-05-22 | 2007-12-12 | 网御神州科技(北京)有限公司 | 高性能的Syslog日志处理和存储方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778049A (zh) * | 2012-10-19 | 2014-05-07 | 北京市三希电子科技开发公司 | 一种嵌入式设备开发日志系统 |
CN103942134A (zh) * | 2014-04-04 | 2014-07-23 | 福建星网视易信息系统有限公司 | 查看嵌入式设备日志的方法及系统 |
CN103927252A (zh) * | 2014-04-18 | 2014-07-16 | 安徽科大讯飞信息科技股份有限公司 | 一种跨组件日志记录方法、装置及系统 |
CN104765775A (zh) * | 2015-03-17 | 2015-07-08 | 新浪网技术(中国)有限公司 | 一种日志保存方法及装置 |
CN104765775B (zh) * | 2015-03-17 | 2018-07-27 | 新浪网技术(中国)有限公司 | 一种日志保存方法及装置 |
CN105227354A (zh) * | 2015-09-07 | 2016-01-06 | 浪潮软件集团有限公司 | 一种基于日志的对分布式系统监控管理的方法 |
CN105487963A (zh) * | 2015-11-26 | 2016-04-13 | 小米科技有限责任公司 | 消息确认方法及装置 |
CN105487963B (zh) * | 2015-11-26 | 2018-04-06 | 小米科技有限责任公司 | 消息确认方法及装置 |
CN105635301A (zh) * | 2016-01-14 | 2016-06-01 | 郑州悉知信息科技股份有限公司 | 一种访问日志合并方法、日志处理服务器及系统 |
CN105635301B (zh) * | 2016-01-14 | 2018-12-21 | 郑州悉知信息科技股份有限公司 | 一种访问日志合并方法、日志处理服务器及系统 |
CN105554042A (zh) * | 2016-03-01 | 2016-05-04 | 上海斐讯数据通信技术有限公司 | 一种UDP远程传输log的方法及系统 |
CN106649729A (zh) * | 2016-12-23 | 2017-05-10 | 深圳市金证科技股份有限公司 | 日志运行方法及系统、客户端和服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102480489A (zh) | 一种用于分布式环境下的日志记录方法和设备 | |
CN102411637B (zh) | 分布式文件系统的元数据管理方法 | |
CN105138615A (zh) | 一种构建大数据分布式日志的方法和系统 | |
CN101808012B (zh) | 一种云环境下的数据备份方法 | |
CN103440244A (zh) | 一种大数据存储优化方法 | |
CN103064731A (zh) | 一种提高消息队列系统性能的装置及其方法 | |
CN102088490B (zh) | 数据存储方法、设备和系统 | |
CN105025053A (zh) | 基于云存储技术的分布式文件的上传方法及其系统 | |
CN112565415B (zh) | 一种基于云边协同的跨地域资源纳管系统和纳管方法 | |
CN103761309A (zh) | 一种运营数据处理方法及系统 | |
CN104317800A (zh) | 一种海量智能用电数据混合存储系统及方法 | |
CN101969386A (zh) | 一种日志采集装置和日志采集方法 | |
CN103944981A (zh) | 一种基于纠删码技术改进的云存储系统及实现方法 | |
CN103533058A (zh) | 面向HDFS/Hadoop存储集群的资源监控系统及方法 | |
CN108848132B (zh) | 一种基于云的配电调度主站系统 | |
CN102411639A (zh) | 元数据的多副本存储管理方法和系统 | |
CN101873005A (zh) | 一种实现电能量均衡采集的方法 | |
CN104657497A (zh) | 一种基于分布式计算的海量用电信息并行计算系统及方法 | |
CN108599992A (zh) | 一种数据处理系统及方法 | |
CN101594256A (zh) | 容灾方法、装置和系统 | |
CN105205167A (zh) | 一种日志数据系统 | |
CN109739435A (zh) | 文件存储和更新方法及装置 | |
CN104281980A (zh) | 基于分布式计算的火力发电机组远程诊断方法及系统 | |
CN105760398A (zh) | 一种日志记录系统及日志记录操作方法 | |
EP3660679B1 (en) | Data backup method, device and system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120530 |