设为首页 收藏本站
查看: 1523|回复: 0

[经验分享] 大数据应用日志采集之Scribe演示实例完全解析

[复制链接]

尚未签到

发表于 2015-11-28 16:01:43 | 显示全部楼层 |阅读模式
  引子:
  Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用。它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,分布式文件系统等)上,以便于进行集中统计分析处理。它为日志的“分布式收集,统一处理”提供了一个可扩展的,高容错的方案。当中央存储系统的网络或者机器出现故障时,scribe会将日志转存到本地或者另一个位置,当中央存储系统恢复后,scribe会将转存的日志重新传输给中央存储系统。其通常与Hadoop结合使用,scribe用于向HDFS中push日志,而Hadoop通过MapReduce作业进行定期处理。
  Scribe从各种数据源上收集数据,放到一个共享队列上,然后push到后端的中央存储系统上。当中央存储系统出现故障时,scribe可以暂时把日志写到本地文件中,待中央存储系统恢复性能后,scribe把本地日志续传到中央存储系统上。需要注意的是,各个数据源须通过thrift(由于采用了thrift,客户端可以采用各种语言编写向scribe传输数据(每条数据记录包含一个category和一个message)。可以在scribe配置用于监听端口的thrift线程数(默认为3)。在后端,scribe可以将不同category的数据存放到不同目录中,以便于进行分别处理。后端的日志存储方式可以是各种各样的store,包括file(文件),buffer(双层存储,一个主储存,一个副存储),network(另一个scribe服务 器),bucket(包含多个store,通过hash的将数据存到不同store中),null(忽略数据),thriftfile(写到一个 Thrift TFileTransport文件中)和multi(把数据同时存放到不同store中)。
  本文通过3个实例程序,分别演示scribe后端存储为file、network和buffer时的操作方法和流程,演示示例程序位于scribe/examples目录,目录结构如下所示:[hadoop@hadoop1 examples]$ ls
example1.conf         example2client.conf  hdfs_example.conf  scribe_cat
example2central.conf  hdfs_example2.conf   README             scribe_ctrl
  一、Example1:file
  #step_01:创建消息文件存放目录
    mkdir /tmp/scribetest
  #step_02:启动Scribe
    src/scribed examples/example1.conf
  #step_03:发送消息到scribe
    echo "hello world" | ./scribe_cat test
  #step_04:  验证消息记录
    cat /tmp/scribetest/test/test_current
  #step_05:  检查scribe状态
    ./scribe_ctrl status
  #step_06:  查看scribe计数
    ./scribe_ctrl counters
  #step_07:  停止scribe运行
    ./scribe_ctrl stop
  二、Example2:Network

  #step_01:创建工作目录
  mkdir /tmp/scribetest2
  #step_02:启动中心scribe程序,服务端口1463,记录方式为file
  src/scribed examples/example2central.conf
  #step_03:启动中心client程序,服务端口1464,存储模式为Network,写入消息到中心scribe
  src/scribed examples/example2client.conf
  #step_04:发送消息到client scribe
  echo "test message" | ./scribe_cat -h localhost:1464 test2
  echo "this message will be ignored" | ./scribe_cat -h localhost:1464 ignore_me
  echo "123:this message will be bucketed" | ./scribe_cat -h localhost:1464 bucket_me
  #step_05:验证消息被中心scribe接收和记录到文件
  cat /tmp/scribetest/test2/test2_current
  #step_06:验证消息分组,不同category的数据存放到不同目录中
  cat /tmp/scribetest/bucket*/bucket_me_current
  #step_07:状态检查消息计数检查,如果管理命令不加参数默认为1643
  ./scribe_ctrl status 1463
  ./scribe_ctrl status 1464
  ./scribe_ctrl counters 1463
  ./scribe_ctrl counters 1464  
  #step_08:关闭服务进程
  ./scribe_ctrl stop 1463
  ./scribe_ctrl stop 1464
  三、Example3:buffer

  #step_01:启动中心scribe,服务端口1463
  src/scribed examples/example2central.conf
  #step_02:启动客户端scribe,服务端口1464
  src/scribed examples/example2client.conf
  #step_03:发送消息到客户端scribe
  echo "test message 1" | ./scribe_cat -h localhost:1464 test3
  #step_04:验证消息是否接受,在中心scribe消息存储目录查找
  cat /tmp/scribetest/test3/test3_current
  #step_05:停止中心scribe服务,我们期待看到结果是缓存
  ./scribe_ctrl stop 1463
  #step_06:验证中心scribe运行状态
  ./scribe_ctrl status 1463

  #step_07:发送消息到客户端-此时消息期待结果是缓存
  echo "test message 2" | ./scribe_cat -h localhost:1464 test3
  #step_08:超时客户端scribe会有报警信息
  ./scribe_ctrl status 1464
  #step_09:重启中心scribe
  src/scribed examples/example2central.conf
  #step_10:验证scribe状态
  ./scribe_ctrl status 1463
  ./scribe_ctrl status 1464
  #step_10:验证中心scribe是否接收到缓存的消息
  cat /tmp/scribetest/test3/test3_current
  #step_11:关闭服务进程
  ./scribe_ctrl stop 1463
  ./scribe_ctrl stop 1464

四、工作流程

  通过以上实例,我们可以看到scribe核心的工作原理和处理流程,具体流程如下图所示:
DSC0000.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-144414-1-1.html 上篇帖子: 写入日志到Scribe的解决方案 下篇帖子: Scribe Insight 安装的一些问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表