开源 syslog 日志系统 scribe
scribe 官网
https://github.com/facebookarchive/scribe
简介
Scribe 是 facebook 开源的日志收集系统,在 facebook 内部已经得到大量的应用,目前在各大互联网公司内部已经得到大量的应用。
它能够从各种日志源上收集日志,存储到一个中央存储系统 (可以是 NFS,分布式文件系统等)上,以便于进行集中统计分析处理。它为日志的“分布式收集,统一处理”提供了一个可扩展的,高容错的方案。
它最重要的特点是容错性好。当中央存储系统的网络或者机器出现故障时,scribe 会将日志转存到本地或者另一个位置,当中央存储系统恢复后,scribe 会将转存的日志重新传输给中央存储系统。
其通常与 Hadoop 结合使用,scribe 用于向 HDFS 中 push 日志,而 Hadoop 通过 MapReduce 作业进行定期处理。
架构:
scribe 的架构比较简单,主要包括三部分,分别为 scribe agent, scribe 和 存储系统。
(1) scribe agent
scribe agent 实际上是一个 thrift client。 向 scribe 发送数据的唯一方法是使用 thrift client, scribe 内部定义了一个 thrift 接口,用户使用该接口将数据发送给 server。
(2) scribe
scribe 接收到 thrift client 发送过来的数据,根据配置文件,将不同 topic 的数据发送给不同的对象。scribe 提供了各种各样的 store,如 file, HDFS 等,scribe 可将数据加载到这些 store 中。
(3) 存储系统
存储系统实际上就是 scribe 中的 store,当前 scribe 支持非常多的 store,包括 file(文件),buffer(双层存储,一个主储存,一个副存储),network(另一个scribe服务器),bucket(包含多个 store,通过 hash 的将数据存到不同 store 中),null (忽略数据),thriftfile(写到一个 Thrift TFileTransport 文件中)和 multi(把数据同时存放到不同 store 中)。
【CentOS-7】
安装环境软件
sudo yum install git make bison libtool automake openssl-devel gcc-c++ python-devel
# libevent,是一个用 C 语言编写的、轻量级的开源高性能事件通知库
# 安装 libevent libevent-devel
yum install libevent libevent-devel
# flex,是一个生成词法分析器的工具,它可以利用正则表达式来生成匹配相应