SlideShare a Scribd company logo
1 of 26
分布式系统日志处理调研

   20120131-0206
目录
• 介绍
• 开源日志系统
• 方案
介绍
背景
• 随着分布式系统规模扩大以及模块化程度
  越来越高,各组件关联性越来越强,使得
  调试变得很复杂
• 服务器上存放多样化的日志数据(访问日
  志,错误日志,程序跟踪日志,中间件平
  台日志等),需要集中汇总分析
• 日志的数据量越来越大
• 日志的管理困难
特性
• 解耦,应用系统及应用监控、分析解耦
• 扩展性,日志系统的扩展性,处理大规模
  数据
• 高可用性
• 性能
• 可管理性
• 规范
日志系统模块划分
•   日志收集
    – 多样化的日志收集方式,一般采用适配器或依赖于操作系统的流处理,通过传输模块将
      数据传输到日志服务。
    – 对应用的性能影响最小
    – 允许一定范围的异常
•   日志处理
    –   接收数据,并进行存储
    –   性能高,吞吐量大
    –   方便扩展
    –   存储量大
    –   可用性高
•   日志分析
    –   离线、在线日志分析
    –   模式匹配
    –   并行计算,提升性能
    –   关联分析
•   日志监控及报警
    – 异常监控
    – 提示
日志处理流程
• 应用请求本地的日志代理服务,进行日志本地
  记录
• 日志传输服务,将本地日志向远端日志服务请
  求存储
• 日志存储服务根据配置,将日志文件存储到文
  件或数据库
• 日志监控服务根据规则配置,进行报警及处理
• 日志管理平台,对各个代理进行配置,对日志
  进行查询,查看
技术点
•   多样化的前端适配器
•   日志格式的处理
•   分布式日志传输,缓冲
•   日志存储方式
•   日志查询,模式匹配,并行任务
•   日志关联
•   时钟同步
开源日志系统
Scribe
• Scribe是facebook开源的日志收集系统,在
  facebook内部已经得到大量的应用。 Scribe
  是基于一个使用非阻断C++服务器的thrift服
  务的实现。它能够从各种日志源上收集日
  志,存储到一个中央存储系统 (可以是NFS,
  分布式文件系统等)上,以便于进行集中
  统计分析处理。它为日志的“分布式收集,
  统一处理”提供了一个可扩展的,高容错的
  方案。
Scribe的系统架构
ChukWa
• Chukwa是Yahoo开发的Hadoop之上的数据采
  集/分析框架,主要用于日志采集/分析。该
  框架提供了采集数据的Agent,由Agent采集
  数 据通过HTTP发送数据给Cluster的Collector,
  collector把数据sink进Hadoop,然后通过定
  期运行Map reducer来分析数据,将结果呈
  现给用户。
ChukWa的系统架构
FLUME
• Flume是Cloudera提供的日志收集系统,支
  持在日志系统中定制各类数据发送方,用
  于收集数据;同时,Flume提供对数据进行简
  单处理,并写到各种数据接受方(可定制)的
  能力。是一个分布式、可靠、和高可用的
  海量日志采集、聚合和传输的系统。
FLUME的架构
其他
• Kafka
   – http://incubator.apache.org/kafka/index.html
   – 是Linkedin于2010年12月份开源的消息系统,它主要用
     于处理活跃的流式数据。活跃的流式数据在web网站应
     用中非常常见,这 些数据包括网站的pv、用户访问了
     什么内容,搜索了什么内容等。 这些数据通常以日志
     的形式记录下来,然后每隔一段时间进行一次统计处
     理。
• Rsyslog
   – http://www.rsyslog.com/
• Splunk
   – http://www.splunk.com/product
方案
方案一(日志集中化)
• 应用系统将日志写入网络文件系统
• 通过目录及命名区分不同的写入点
• 建立日志分析系统,分析日志格式,建立
  日志关联及提供日志查询界面
方案一结构

            NFS
APP
 APP                LAS
  APP
    APP
            NOSQL
LAS模块
•   离线文件分析
•   日志格式转换
•   日志查询
•   日志关联
方案二(分布式系统日志收集)
•   应用系统通过消息代理存储日志
•   建立消息服务转换及存储日志消息
•   建立NOSQL数据库存储日志
•   建立基于NOSQL的日志分析系统,分析日志,
    建立关联,提供日志查询
方案二结构
APP
      Agent

APP

                MBR   NOSQL

APP
      Agent

APP



                       LAS
方案三(开源日志系统实施)
• 调研及搭建开源日志系统
  (ChukWa/FLUME/Scribe)
• 改造现有系统以支持日志收集及分析
方案三分析
        Scribe             ChukWa         Flume
贡献公司    Facebook           Apache/yahoo   Cloudera
开源时间    2008               2009           2009
实现语言    c/c++              Java           Java
Agent   Thrift Client      自带             自带
存储      支持HDFS             支持HDFS         支持HDFS
负载均衡    无                  无              Zookeeper
容错性     Collector和store间   Agent记录偏移量, Agent到Collector,
        有容错机制,但            一旦发生故障,可 Collector到存储均
        Agent和Collector间   以根据偏移量继续 有容错机制
        需自己实现              发送
三种方案比对
           日志集中方案   分布式系统日志   开源日志系统
开发工作量      小        大         中
维护工作量      高        低         低
扩展         低        高         高
性能         低        高         高
对现有系统的影响   小        小         大
对将来的积累     低        高         中
可管理性       低        高         中
建议         低        高         中
总结
• 需要解决两个问题
 – 是否需要分布式应用日志收集
 – 是否需要处理海量数据
• 当前工作建议分三个部分开展
 – 日志分析(Logging Analysis System)
 – 消息系统(Message Queue)
 – HDFS存储(NOSQL)
• 不同实现方式,代价差异很大,可以做一天,
  可以做一个月,也可以做一年,建议先明确预
  算及阶段目标

More Related Content

What's hot

Hadoop作业调度研究V0.1
Hadoop作业调度研究V0.1Hadoop作业调度研究V0.1
Hadoop作业调度研究V0.1YongqiangHe
 
大规模数据处理
大规模数据处理大规模数据处理
大规模数据处理Kay Yan
 
淘宝Java中间件之路 it168
淘宝Java中间件之路 it168淘宝Java中间件之路 it168
淘宝Java中间件之路 it168vanadies10
 
110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercuryZoom Quiet
 
大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京vanadies10
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统reinhardx
 
Oracle 高可用概述
Oracle 高可用概述Oracle 高可用概述
Oracle 高可用概述xlight
 
Spark sql培训
Spark sql培训Spark sql培训
Spark sql培训Jiang Yu
 
基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展Sky Jian
 
构建高可用数据库监控系统
构建高可用数据库监控系统构建高可用数据库监控系统
构建高可用数据库监控系统haiyuan ning
 
2006-11-16 RFID and OSS for Agriculture
2006-11-16 RFID and OSS for Agriculture2006-11-16 RFID and OSS for Agriculture
2006-11-16 RFID and OSS for AgricultureJazz Yao-Tsung Wang
 
唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pubChao Zhu
 
金山云查询系统改进之路1
金山云查询系统改进之路1金山云查询系统改进之路1
金山云查询系统改进之路1Zoom Quiet
 
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構Etu Solution
 
110823 kn-cachemana-wengjun
110823 kn-cachemana-wengjun110823 kn-cachemana-wengjun
110823 kn-cachemana-wengjunZoom Quiet
 
中大型规模的网站架构运维 Saac
中大型规模的网站架构运维 Saac中大型规模的网站架构运维 Saac
中大型规模的网站架构运维 SaacChao Zhu
 

What's hot (17)

Hadoop作业调度研究V0.1
Hadoop作业调度研究V0.1Hadoop作业调度研究V0.1
Hadoop作业调度研究V0.1
 
大规模数据处理
大规模数据处理大规模数据处理
大规模数据处理
 
淘宝Java中间件之路 it168
淘宝Java中间件之路 it168淘宝Java中间件之路 it168
淘宝Java中间件之路 it168
 
110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury
 
大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统
 
Oracle 高可用概述
Oracle 高可用概述Oracle 高可用概述
Oracle 高可用概述
 
Spark sql培训
Spark sql培训Spark sql培训
Spark sql培训
 
基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展
 
构建高可用数据库监控系统
构建高可用数据库监控系统构建高可用数据库监控系统
构建高可用数据库监控系统
 
2006-11-16 RFID and OSS for Agriculture
2006-11-16 RFID and OSS for Agriculture2006-11-16 RFID and OSS for Agriculture
2006-11-16 RFID and OSS for Agriculture
 
开源介绍
开源介绍开源介绍
开源介绍
 
唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub
 
金山云查询系统改进之路1
金山云查询系统改进之路1金山云查询系统改进之路1
金山云查询系统改进之路1
 
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
 
110823 kn-cachemana-wengjun
110823 kn-cachemana-wengjun110823 kn-cachemana-wengjun
110823 kn-cachemana-wengjun
 
中大型规模的网站架构运维 Saac
中大型规模的网站架构运维 Saac中大型规模的网站架构运维 Saac
中大型规模的网站架构运维 Saac
 

Similar to 分布式系统日志处理调研

大众点评网的技术变迁之路
大众点评网的技术变迁之路大众点评网的技术变迁之路
大众点评网的技术变迁之路jeffz
 
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)Shanda innovation institute
 
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构Sky Jian
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲84zhu
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统klandor
 
RockStor - A Cloud Object System based on Hadoop
RockStor -  A Cloud Object System based on HadoopRockStor -  A Cloud Object System based on Hadoop
RockStor - A Cloud Object System based on HadoopSchubert Zhang
 
Mr&ueh数据库方面
Mr&ueh数据库方面Mr&ueh数据库方面
Mr&ueh数据库方面Tianwei Liu
 
1, OCP - architecture intro
1, OCP - architecture intro1, OCP - architecture intro
1, OCP - architecture introted-xu
 
Couchbase introduction - Chinese
Couchbase introduction - Chinese Couchbase introduction - Chinese
Couchbase introduction - Chinese Vickie Zeng
 
Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用iammutex
 
Tup2 人人网张铁安
Tup2 人人网张铁安Tup2 人人网张铁安
Tup2 人人网张铁安yongboy
 
人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析isnull
 
张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析Leechael
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华zhuozhe
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at TaobaoJoshua Zhu
 
2016-12-15 NewSQL資料庫在IoT的應用 - iServDB
2016-12-15 NewSQL資料庫在IoT的應用 - iServDB2016-12-15 NewSQL資料庫在IoT的應用 - iServDB
2016-12-15 NewSQL資料庫在IoT的應用 - iServDBJosé Lin
 
Azure Data Lake 簡介
Azure Data Lake 簡介Azure Data Lake 簡介
Azure Data Lake 簡介Herman Wu
 
阿里云技术实践
阿里云技术实践阿里云技术实践
阿里云技术实践drewz lin
 
Accelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud eraAccelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud eraJunchi Zhang
 

Similar to 分布式系统日志处理调研 (20)

大众点评网的技术变迁之路
大众点评网的技术变迁之路大众点评网的技术变迁之路
大众点评网的技术变迁之路
 
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
 
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统
 
RockStor - A Cloud Object System based on Hadoop
RockStor -  A Cloud Object System based on HadoopRockStor -  A Cloud Object System based on Hadoop
RockStor - A Cloud Object System based on Hadoop
 
Mr&ueh数据库方面
Mr&ueh数据库方面Mr&ueh数据库方面
Mr&ueh数据库方面
 
1, OCP - architecture intro
1, OCP - architecture intro1, OCP - architecture intro
1, OCP - architecture intro
 
Couchbase introduction - Chinese
Couchbase introduction - Chinese Couchbase introduction - Chinese
Couchbase introduction - Chinese
 
Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用
 
Tup2 人人网张铁安
Tup2 人人网张铁安Tup2 人人网张铁安
Tup2 人人网张铁安
 
人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析
 
张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
 
Mesos intro
Mesos introMesos intro
Mesos intro
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 
2016-12-15 NewSQL資料庫在IoT的應用 - iServDB
2016-12-15 NewSQL資料庫在IoT的應用 - iServDB2016-12-15 NewSQL資料庫在IoT的應用 - iServDB
2016-12-15 NewSQL資料庫在IoT的應用 - iServDB
 
Azure Data Lake 簡介
Azure Data Lake 簡介Azure Data Lake 簡介
Azure Data Lake 簡介
 
阿里云技术实践
阿里云技术实践阿里云技术实践
阿里云技术实践
 
Accelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud eraAccelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud era
 

分布式系统日志处理调研

  • 4. 背景 • 随着分布式系统规模扩大以及模块化程度 越来越高,各组件关联性越来越强,使得 调试变得很复杂 • 服务器上存放多样化的日志数据(访问日 志,错误日志,程序跟踪日志,中间件平 台日志等),需要集中汇总分析 • 日志的数据量越来越大 • 日志的管理困难
  • 6. 日志系统模块划分 • 日志收集 – 多样化的日志收集方式,一般采用适配器或依赖于操作系统的流处理,通过传输模块将 数据传输到日志服务。 – 对应用的性能影响最小 – 允许一定范围的异常 • 日志处理 – 接收数据,并进行存储 – 性能高,吞吐量大 – 方便扩展 – 存储量大 – 可用性高 • 日志分析 – 离线、在线日志分析 – 模式匹配 – 并行计算,提升性能 – 关联分析 • 日志监控及报警 – 异常监控 – 提示
  • 7. 日志处理流程 • 应用请求本地的日志代理服务,进行日志本地 记录 • 日志传输服务,将本地日志向远端日志服务请 求存储 • 日志存储服务根据配置,将日志文件存储到文 件或数据库 • 日志监控服务根据规则配置,进行报警及处理 • 日志管理平台,对各个代理进行配置,对日志 进行查询,查看
  • 8. 技术点 • 多样化的前端适配器 • 日志格式的处理 • 分布式日志传输,缓冲 • 日志存储方式 • 日志查询,模式匹配,并行任务 • 日志关联 • 时钟同步
  • 10. Scribe • Scribe是facebook开源的日志收集系统,在 facebook内部已经得到大量的应用。 Scribe 是基于一个使用非阻断C++服务器的thrift服 务的实现。它能够从各种日志源上收集日 志,存储到一个中央存储系统 (可以是NFS, 分布式文件系统等)上,以便于进行集中 统计分析处理。它为日志的“分布式收集, 统一处理”提供了一个可扩展的,高容错的 方案。
  • 12. ChukWa • Chukwa是Yahoo开发的Hadoop之上的数据采 集/分析框架,主要用于日志采集/分析。该 框架提供了采集数据的Agent,由Agent采集 数 据通过HTTP发送数据给Cluster的Collector, collector把数据sink进Hadoop,然后通过定 期运行Map reducer来分析数据,将结果呈 现给用户。
  • 14. FLUME • Flume是Cloudera提供的日志收集系统,支 持在日志系统中定制各类数据发送方,用 于收集数据;同时,Flume提供对数据进行简 单处理,并写到各种数据接受方(可定制)的 能力。是一个分布式、可靠、和高可用的 海量日志采集、聚合和传输的系统。
  • 16. 其他 • Kafka – http://incubator.apache.org/kafka/index.html – 是Linkedin于2010年12月份开源的消息系统,它主要用 于处理活跃的流式数据。活跃的流式数据在web网站应 用中非常常见,这 些数据包括网站的pv、用户访问了 什么内容,搜索了什么内容等。 这些数据通常以日志 的形式记录下来,然后每隔一段时间进行一次统计处 理。 • Rsyslog – http://www.rsyslog.com/ • Splunk – http://www.splunk.com/product
  • 18. 方案一(日志集中化) • 应用系统将日志写入网络文件系统 • 通过目录及命名区分不同的写入点 • 建立日志分析系统,分析日志格式,建立 日志关联及提供日志查询界面
  • 19. 方案一结构 NFS APP APP LAS APP APP NOSQL
  • 20. LAS模块 • 离线文件分析 • 日志格式转换 • 日志查询 • 日志关联
  • 21. 方案二(分布式系统日志收集) • 应用系统通过消息代理存储日志 • 建立消息服务转换及存储日志消息 • 建立NOSQL数据库存储日志 • 建立基于NOSQL的日志分析系统,分析日志, 建立关联,提供日志查询
  • 22. 方案二结构 APP Agent APP MBR NOSQL APP Agent APP LAS
  • 23. 方案三(开源日志系统实施) • 调研及搭建开源日志系统 (ChukWa/FLUME/Scribe) • 改造现有系统以支持日志收集及分析
  • 24. 方案三分析 Scribe ChukWa Flume 贡献公司 Facebook Apache/yahoo Cloudera 开源时间 2008 2009 2009 实现语言 c/c++ Java Java Agent Thrift Client 自带 自带 存储 支持HDFS 支持HDFS 支持HDFS 负载均衡 无 无 Zookeeper 容错性 Collector和store间 Agent记录偏移量, Agent到Collector, 有容错机制,但 一旦发生故障,可 Collector到存储均 Agent和Collector间 以根据偏移量继续 有容错机制 需自己实现 发送
  • 25. 三种方案比对 日志集中方案 分布式系统日志 开源日志系统 开发工作量 小 大 中 维护工作量 高 低 低 扩展 低 高 高 性能 低 高 高 对现有系统的影响 小 小 大 对将来的积累 低 高 中 可管理性 低 高 中 建议 低 高 中
  • 26. 总结 • 需要解决两个问题 – 是否需要分布式应用日志收集 – 是否需要处理海量数据 • 当前工作建议分三个部分开展 – 日志分析(Logging Analysis System) – 消息系统(Message Queue) – HDFS存储(NOSQL) • 不同实现方式,代价差异很大,可以做一天, 可以做一个月,也可以做一年,建议先明确预 算及阶段目标