日志分析(一)框架选择

  • 概要html

    日志分析,有两个主要模块日志收集以及分析统计。日志收集主要实现日志数据源的获取。分析统计是对数据源的聚合和统计分析。前端

    日志收集又分为离线收集和热数据收集:离线收集的日志收集服务器与日志分析系统彻底隔离,服务器日志以文本的格式输出到指定文件,而后经过logstash或者flume等文本收集系统进行传输,从而造成对应的日志数据源。java

    分析统计主要根据日志的数据源新进聚合和处理,聚合的过程主要是分布式日志的数据聚拢,由于聚拢的策略通常是遵循fifo准则和fcfs算法,保证时间优先进行日志聚合。由于目前日志分析在必定程度上要求实时性,对日志数据源的处理,又多了些预处理、流计算等模式进行数据的实时处理运算,以实现日志数据最终存储或者内存的格式即查询或者图形化展现须要的内容。git

  1. 热门应用的介绍github

        一、logstashredis

        elk 是logstash,elasticsearch,kibana 的缩写,这个架构组合很是适合作日志分析,其就是离线式日志实时分析的表明,并且有目前已知的最强大的社区支持。logstash shipper利用file input读取日志文件,filter组件进行正则日志筛选,而后经过 broker 进行聚合,日志经过es out已有的组件输出到 elasticsearch。kibana根据elasticsearch的索引进行实时查询。成功案例参照 新浪 、芒果TV等,github上有4000+ stars,它好在有一套完整的日志收集(logstash)、日志存储(elasticsearch)、日志展现分析(kibana),搭建起来很是方便。算法

        详细介绍:http://kibana.logstash.es/content/index.htmlapache

        

        logstash能够多线程共享 SizedQueue、java协议写ES等等优势就不罗列了,其缺点大概有如下:logstash 的一系列问题,好比Input/syslog性能极差,Filter/geoip性能较差,Filter/grok费CPU,Output/elasticsearch的retry逻辑跟stud的SizedQueue重复等等。针对版本能够作相应代码优化以实现版本问题。缓存

        ps www.elastic.co的一句 :If a newbie has a bad time, it's a bug.服务器

        二、flume

        flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各种数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各类数据接受方(可定制)的能力。相似的有。

        官网:http://flume.apache.org/

        简介http://my.oschina.net/u/2284716/blog/542991

        三、kafka

        kafka数据处理管道

        原文:http://kafka.apache.org/design.html

        翻译的:http://www.oschina.net/translate/kafka-design?lang=chs&page=1

        四、druid

        druid 是实时试探性查询的分析数据存储工具,能够理解成一种数据缓存化的聚合存储,为olap而生。

如下是针对druid和目前较多 数据存储工具的对比:

如下 是druid 的架构模型:

        只说两个缺点:硬件要求,以及 自己便是数据的聚合结果存储须要对源数据进行额外存储。

        原文 :http://druid.io/docs/0.8.2/design/index.html


        五、es

        elasticsearch搜索引擎,基于lucene,分布式,RESTful搜索引擎, 比solr在实时数据方面有优点。kibana 提供了数据前端展现。

        缺点:没有事务概念,针对单个document最好采用单一实例操做。

        官网:http://www.elastic.co


olap的暂时了解了以上开源框架,elk、flume+管道(redis或kafka)+es+kibana 、flume / logstash /rsync+ kafka+Hadoop+druid 等组合。

but,however,以上全部的olap的日志分析都要很大的主机(以上组合最少也要3个实例进程,或者须要大量内存空间)成本...我如今告诉你们一种省钱的架构组合,成本更低,效率有必定的优点。

jvm agent+kafka+es +kibana ~~

    官网:http://my.oschina.net/u/2284716/blog/544201

相关文章
相关标签/搜索