1.General description
我们知道,使用日志系统是为了使系统变得更健壮,能够应对各种错误并能从错误中较快地恢复。一个大型的分布式系统生成的日志数量是巨大的,所以需要一个有效的工具对其进行管理。Scribe就是这样一个日志收集服务器,使用它可以对大型的系统进行监控。它是Facebook的一个开源组件,使用的是Facebook另一个框架—Thrift。Thrift 在我的理解就是一个高效的跨语言 rpc 框架,所以它可以支持通过 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml 给服务器汇报。
总的来说,Scribe由两部分组成:central Scribe server 和 local Scribe server。在分布式系统中,每个结点都会有一个local Scribe server运行在上面,收集此结点的日志信息,并将其发送给central Scribe server。这里的central和local是相对的,是针对一个组内的。
2. Download and Install
Scribe并不大,但其安装是一个非常繁琐的过程。通过我不断的努力,最终还是没有安装成功(源代的example不能正常运行)。虽说没有产出的劳动是徒劳的,但这也不是绝对的,至少对其具体的安装过程倒是耳熟能详了。
Scribe运行于Linux系统下,试验中我所使用的是Ubuntu 9.10,通过虚拟机安装的。Scribe安装前需要很多Environment Dependency,具体如下所示:
(1)安装ruby:
install: sudo apt-get install ruby-full build-essential
test: ruby -v 显示 版本 号
which ruby 显示安装的位置
新建一个test.rb文件,里面输入如下内容:
#!/usr/bin/env ruby
puts "hello world!"
然后进入该目录,输入如下命令:./test.rb。如果ruby安装成功则会
输出hello world!
(2)安装python:
一般来讲,Ubuntu系统里已经安装了python。查看是否已经安装,使用如下
命令:python 显示安装的版本号
which python 显示安装的位置
系统自带的,其安装目录是在/usr/bin下。如果是自安装的,则会在
/usr/local/bin下。就如接下来要安装的Thrift和Scribe。
(3)安装libevent:
下载http://www.svn8.com/linux/accidence/20100218/22428.html
tar xzfv libevent-1.4.8-stable.tar.gz
cd libevent-1.4.8-stable
./configure