分布式日志系统Scribe
scribe 是facebook 开源的分布式日志系统。其使用了thrift传输log,由于使用thrift,所以不论是什么语言的项目都可以实现日志收集,可达到远程或者是本地同步远程的分布式日志收集效果,在其示例配置中,并发量可达到max_msg_per_second=2000000,对普通的应用来说,每秒上百万的访问量可能性很小,因此基本上即使最简单的配置,远程收集所有项目的log也是可靠的,如果压力大的话,可以采取主从的配置,将日志打到本地后由scribe的主从配置来自动同步。下面讲述如何安装和使用scribe。
1 下载boost、thrift、scribe
software: boost_1_45_0.tar.gz
download: http://www.boost.org/users/history/
description: Boost库是为C++语言标准库提供扩展的一些C++程序库。
software: thrift-0.7.0.tar.gz
download: http://archive.apache.org/dist/thrift/
descriotion: thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。
software: facebook-scribe-2ee14d3.tar.gz
download: https://github.com/pcting/scribe/
descriotion: scribe 是facebook 开源的分布式日志系统。
2 安装需要的依赖
使用apt-get
sudo apt-get install libghc6-http-dev
sudo apt-get install libghc6-binary-dev
sudo apt-get install libboost-iostreams-dev
sudo apt-get install libboost-filesystem-dev
sudo apt-get install libboost-dev automake
sudo apt-get install libtool flex bison pkg-config
sudo apt-get install g++ ant ivy libslf4j-java
sudo apt-get install libcommons-lang-java
sudo apt-get install liblog4j1.2-java automake1.10
使用yum
yum install libevent libevent-devel python-devel
yum install gcc-c++
yum install automake
yum install byacc flex
3 安装boost
tar -zxvf boost_1_45_0.tar.gz
./bootstrap.sh
./bjam install --prefix=/usr/local/boost
4 安装thrift-0.7.0
tar -zxvf thrift-0.7.0.tar.gz
./configure --with-boost=/usr/local/boost/ --with-java --prefix=/usr/local/thrift
make
make install
5 安装fb303
cd contrib/fb303
./bootstrap.sh --prefix=/usr/local/thrift/fb303 --with-boost=/usr/local/boost/ --with-thriftpath=/usr/local/thrift/
make
make install
6 安装scribe
tar -zxvf facebook-scribe-2ee14d3.tar.gz
cd facebook-scribe-2ee14d3
export BOOST_ROOT=/usr/local/boost/
export LD_LIBRARY_PATH=/usr/local/thrift/lib:/usr/lib:/usr/local/lib:/usr/local/boost/lib/
./bootstrap.sh --prefix=/usr/local/scribe --with-boost=/usr/local/boost/ --with-thriftpath=/usr/local/thrift/
make
make install
7 启动scribe服务
cd facebook-scribe-2ee14d3
cp example/exmaple1.conf /usr/local/scribe/bin
cd /usr/local/scribe/bin/
export BOOST_ROOT=/usr/local/boost/
export LD_LIBRARY_PATH=/usr/local/thrift/lib:/usr/lib:/usr/local/lib:/usr/local/boost/lib/
./scibed example1.conf
8 生成客户端使用scribe
先产生java的thrift代码:
cd facebook-scribe-2ee14d3/if/
thrift -r -I http://www.cnblogs.com/thrift-0.7.0/contrib/(这里需要指到你的thrift的源码目录) -gen java scribe.thrift
9 使用
gen-java目录下有thrift的客户端,即取即用。javaeye里有一篇写配置log4j使用