所以分布式日志系统就是将二者结合,实现对于日志的存储。论文网
1.4 分布式日志系统介绍
随着业务的拓展,服务受众的增多,日志颗粒的减小,使得日志量呈现指数级 增长,原先的传输模式和存储模式无法应对这种需求,所以就需要采用分布式存储系统的技术,主要解决了,单点机器存储大小的限制,存储读取速度的限制,并且还可以通过实现日志的自动分类,各个系统模块之间的运行信息互不影响。
这里的分布式,包括两个方面的分布式,首先的使用本框架的系统的模型是分布式的,另外就是本系统的模型是分布式的。因为上文说过了,现在很多网站需要承载的服务类型,面向的用户受众越来越多,所以一些底层计算模型,采用了分布式计算的模型,而且很多网站为了提高网站的负载能力,使用了负载均衡和反向代理技术,这若干种方式,造成的相同结果就是,底层的服务节点较多,业务层网络结构复杂,应用程序所依托的平台多样性,需要从相同的程序模块,不同的程序模块,不同的网络环境,不同的平台上获取日志,而且需要进行简单的格式化,保证存储的格式统一,方便使用和统计;另外,由于业务量的增加,系统运行过程中产生的信息也会剧烈的增长,日志的数量对于存储和传输造成很大的负担,所以本框架在收集日志的同时,结合分布式存储技术,将日志分布式的存储在若干存储节点上,这样就可以避免因为单点造成的网络、硬盘传输瓶颈,避免单点造成的存储瓶颈,使用廉价的小容量sata硬盘,就可以代替大容量的高成本硬盘,在满足业务增长需求的同时,降低了系统硬件成本和运维成本,而且本系统提供了订阅服务,即可以系统接口订阅某一个模块的日志,很好的实现了模块运行情况的监控,大大降低了系统服务不可用时间,提高系容的高可用性。
客户节点:作为服务运行在模块节点上,主要作用是收集模块运行日志,格式化运行日志,将日志信息发送到服务节点上
服务节点:作为服务运行在一个单独的服务器上,主要将各个客户节点发送来的日志信息,按照客户端需要的存储方式,存储到不同的存储节点上,维护订阅者队列和状态
存储节点:作为服务运行在普通的存储性机器上,简单的将服务节点发送来的信息持久化到硬盘
2. 分布式日志系统的发展现状
2.3 在国外的发展现状
2.4 在国内的发展现状
3. 系统实现功能
本系统本系统运行在Linux系统上,服务端主要使用Python编写,部分对于效率要求较高的组件,含有部分C代码;客户端由于操作系统、运行环境的差异,所以采用了多种语言的跨平台操作,主要包括C#,Python,Java。
客户端运行在不同的主机上,这些主机可能从硬件到OS到网络环境都有各种差异,上面运行这系统中各种应用和服务,时刻接受这外界的请求,或者对外界发出请求,这都会产生运行信息,所有的信息由客户端通过网络输出到服务端,这其中可能包括一些原本的程序输出信息,以及客户端主动收集的程序运行信息,经过格式化操作,标准化成标准日志格式。
服务端在收到这些日志以后,根据配置文件,对这些日志做出不同的处理,最后将这些日志持久化到一个分布式存储系统中,方便日志分析程序使用,做出分析。
本系统主要实现了以下功能:文献综述