折腾了快2天,终于装上了,内流满面
scribe安装较复杂,官网无详细安装手册,所以自己装成功了还是记录下吧~
1.系统版本:基于CentOS-6.3-x86_64
2.gcc
安装版本为4.4.6 官方要求>=3.3.5,但低于4会有各种问题
g++ 如果g++的结果是no input files表示已安装,不是则安装:
yum -y install gcc+ gcc-c++
3.flex
确认是否安装,无则:
yum -y install flex
4.pkgconfig
确认是否安装,无则:
yum -y install pkgconfig
5.m4
确认是否安装,无则:
yum -y install m4
6.python
安装版本为2.6.6
yum -y install python.x86_64
yum -y install python-devel.x86_64
7.ruby
安装版本为1.8.7
yum -y install ruby.x86_64
yum -y install ruby-devel.x86_64
8.libevent
安装版本为1.4.13
yum -y install libevent.x86_64
yum -y install libevent-devel.x86_64
9.openssl-devel
安装版本为1.0.0
yum -y install openssl.x86_64
yum -y install openssl-devel.x86_64
10.bz2-devel
安装版本为1.0.5
yum -y install openssl.x86_64
yum -y install openssl-devel.x86_64
11.zlib-devel
安装版本为1.2.3
yum -y install zlib.x86_64
yum -y install zlib-devel.x86_64
12.bison
安装版本为2.4.1
yum -y install bison.x86_64
yum -y install bison-devel.x86_64
13.automake
安装版本为2.69 thrift要求>=2.65
wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
tar zxvf autoconf-2.69.tar.gz -C /usr/local/
cd /usr/local/autoconf-2.69/
./configure --prefix=/usr
make
make install
14.autoconf
安装版本为1.10 thrift安装警告,要求>=1.9
wget http://ftp.gnu.org/gnu/automake/automake-1.10.tar.gz
tar zxvf automake-1.10.tar.gz -C /usr/local/
cd /usr/local/automake-1.10
./configure --prefix=/usr
make
make install
15.libtool
安装版本为2.24
wget http://ftp.gnu.org/gnu/libtool/libtool-2.2.4.tar.gz
tar zxvf automake-1.10.tar.gz -C /usr/local/
cd /usr/local/automake-1.10
./configure --prefix=/usr
make
make install
16.安装boost
安装版本为1.45.0 官方版本要求>=1.36
确认系统中目前没有别的boost版本,有必须清楚干净,否则多boost会有各种问题。
wget http://nchc.dl.sourceforge.net/project/boost/boost/1.45.0/boost_1_45_0.tar.gz
tar zxvf boost_1_45_0.tar.gz -C /usr/local/
cd /usr/local/boost_1_45_0
./bootstrap.sh
./bjam install
在/etc/profile中加入:
export BOOST_ROOT=/usr/local
export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib
source /etc/profile
17.thrift + fb303
安装版本为0.7.0 官网要求>=0.5.0
wget http://archive.apache.org/dist/thrift/0.7.0/thrift-0.7.0.tar.gz
tar zxvf thrift-0.7.0.tar.gz -C /usr/local/
cd /usr/local/thrift-0.7.0
chmod +x configure
./configure
make
make install
开始安装fb303 cd contrib/fb303
chmod +x bootstrap.sh
./bootstrap.sh
./configure
make
make install
18.scribe
下载地址https://github.com/facebook/scribe/downloads,下载当前版本63e4824,(版本2.2安装失败)
tar zxvf facebook-scribe-63e4824.tar.gz -C /usr/local/
cd facebook-scribe-63e4824
./bootstrap.sh
./configure --prefix=/usr/local/scribe
make
make install
检验安装是否成功(纯转):
1、配置scribe
首先我的scribe装在/usr/local/scribe中,在该目录/usr/local/scribe下,
mkdir conf
然后将facebook-scribe下的examples/example1.conf拷到conf中
2、启动scribe
cd /usr/local/scribe
bin/scribed -c conf/example1.conf
出现如下提示,启动成功:
[Wed Nov 9 10:35:52 2011] "STATUS: STARTING"
[Wed Nov 9 10:35:52 2011] "STATUS: configuring"
[Wed Nov 9 10:35:52 2011] "got configuration data from file <conf/example1.conf>"
[Wed Nov 9 10:35:52 2011] "CATEGORY : default"
[Wed Nov 9 10:35:52 2011] "Creating default store"
[Wed Nov 9 10:35:52 2011] "configured <1> stores"
[Wed Nov 9 10:35:52 2011] "STATUS: "
[Wed Nov 9 10:35:52 2011] "STATUS: ALIVE"
[Wed Nov 9 10:35:52 2011] "Starting scribe server on port 1463"
Thrift: Wed Nov 9 10:35:52 2011 libevent 1.4.13-stable method epoll
3、验证scribe能正常工作
examples文件夹下有Readme,按照这个操作就行,简单来说
先启动scribe:
scribe安装路径/bin/scribed -c scribe解压路径/examples/example1.conf
出现提示信息:
[Wed Dec 21 17:12:01 2011] "STATUS: STARTING"
[Wed Dec 21 17:12:01 2011] "STATUS: configuring"
[Wed Dec 21 17:12:01 2011] "got configuration data from file <conf/example1.conf>"
[Wed Dec 21 17:12:01 2011] "CATEGORY : default"
[Wed Dec 21 17:12:01 2011] "Creating default store"
[Wed Dec 21 17:12:01 2011] "configured <1> stores"
[Wed Dec 21 17:12:01 2011] "STATUS: "
[Wed Dec 21 17:12:01 2011] "STATUS: ALIVE"
[Wed Dec 21 17:12:01 2011] "Starting scribe server on port 1463"
然后在examples目录下,发个数据给scribe
echo "hello world" | ./scribe_cat test
发现scribe出现提示信息:
[Wed Dec 21 17:14:30 2011] "[test] Creating new category store from model default"
[Wed Dec 21 17:14:30 2011] "store thread starting"
[Wed Dec 21 17:14:30 2011] "[test] Opened file </tmp/scribetest/test/test_00000> for writing"
[Wed Dec 21 17:14:30 2011] "[test] Opened file </tmp/test/test_00000> for writing"
[Wed Dec 21 17:14:30 2011] "[test] Changing state from <DISCONNECTED> to <SENDING_BUFFER>"
[Wed Dec 21 17:14:30 2011] "[test] read <0> entries of <0> bytes from file </tmp/test/test_00000>"
[Wed Dec 21 17:14:30 2011] "[test] No more buffer files to send, switching to streaming mode"
[Wed Dec 21 17:14:30 2011] "[test] Changing state from <SENDING_BUFFER> to <STREAMING>"
查看log
cat /tmp/scribetest/test/test_00000
出现:
hello world
表示安装成功。
4、用rb验证scribe能正常工作(这一步并不是必须的。3验证成功后scribe就已经正常工作了。)
cd /usr/local/scribe
mkdir testapp
cd testapp
/usr/local/bin/thrift -o . -I /usr/local/share/ --gen rb /opt/apps_install/scribe/facebook-scribe-6600084/if/scribe.thrift
/usr/local/bin/thrift -o . -I /usr/local/share/ --gen rb /usr/local/share/fb303/if/fb303.thrift
mv get_rb scribe
此时/usr/local/scribe/testapp/scribe下有6个文件
-rw-r--r-- 1 root root 15879 Nov 9 10:17 facebook_service.rb
-rw-r--r-- 1 root root 140 Nov 9 10:17 fb303_constants.rb
-rw-r--r-- 1 root root 414 Nov 9 10:17 fb303_types.rb
-rw-r--r-- 1 root root 141 Nov 9 10:17 scribe_constants.rb
-rw-r--r-- 1 root root 1943 Nov 9 10:17 scribe.rb
-rw-r--r-- 1 root root 643 Nov 9 10:17 scribe_types.rb
然后再testapp中新建一个test.rb文件,内容是
#!/usr/bin/env ruby
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/scribe')
require 'scribe'
begin
socket = Thrift::Socket.new('localhost', 1463)
transport = Thrift::FramedTransport.new(socket)
protocol = Thrift::BinaryProtocol.new(transport, false)
client = Scribe::Client.new(protocol)
transport.open()
log_entry = LogEntry.new(:category => 'test', :message => 'This is a test message')
client.Log([log_entry])
transport.close()
rescue Thrift::Exception => tx
print 'Thrift::Exception: ', tx.message, "\n"
end
修改test.rb的执行权限,chmod +x test.rb
执行test.rb,./test.rb
scribe出现提示信息:
[Wed Nov 9 10:35:58 2011] "[test] Creating new category store from model default"
[Wed Nov 9 10:35:58 2011] "store thread starting"
[Wed Nov 9 10:35:58 2011] "[test] Opened file </tmp/scribetest/test/test_00000> for writing"
[Wed Nov 9 10:35:58 2011] "[test] Opened file </tmp/test/test_00000> for writing"
[Wed Nov 9 10:35:58 2011] "[test] Changing state from <DISCONNECTED> to <SENDING_BUFFER>"
[Wed Nov 9 10:35:58 2011] "[test] read <0> entries of <0> bytes from file </tmp/test/test_00000>"
[Wed Nov 9 10:35:58 2011] "[test] No more buffer files to send, switching to streaming mode"
[Wed Nov 9 10:35:58 2011] "[test] Changing state from <SENDING_BUFFER> to <STREAMING>"
查看/tmp/scribetest/test/test_00000,它的内容是:
This is a test message
表示scribe工作正常啦~~
对这位博主表示无与伦比的感谢:
http://abentotoro.blog.sohu.com/190515962.html
分享到:
相关推荐
Scribe 是一个由 Facebook 开源的日志记录框架,它基于 Thrift 框架构建,旨在提供分布式环境下的日志收集服务。Scribe 的主要特点是其简单架构、灵活的日志格式以及支持异步消息发送和队列处理。由于它与 Thrift ...
scribe客户端是用于集成日志记录系统的一个开源库,主要针对分布式环境中的日志管理。它支持多种日志接收协议,并且可以轻松地将日志数据发送到各种后端存储,如Hadoop、Cassandra或者Elasticsearch等。在这个压缩包...
- **日志分析**:可以利用 Log4j 来记录应用程序运行时的各种日志信息,再通过 Scribe 收集这些日志到 HDFS 中。之后使用 Hive 查询这些数据,以获取关于用户行为、系统性能等方面的洞察。 - **数据持久化**:对于...
1. **日志记录接口**:允许外部系统将日志信息发送到Scribe服务端。 2. **统计查询接口**:提供查询统计数据的API,支持多种查询条件。 3. **错误查询接口**:提供查询错误数据的API,同样支持多种查询条件。 #### ...
在 Thrift+Scribe 构建的分布式日志系统中,日志的产生端(如服务器或应用)使用 log4j 或其他日志框架记录日志。这些日志可以通过 Thrift 的服务接口发送到 Scribe 客户端。Scribe 客户端将接收到的日志封装成 `Log...
node.js 的流日志记录模块 _ _ (_) | ___ ___ _ __ _| |__ ___ / __|/ __| '__| | '_ \ / _ \ \__ \ (__| | | | |_) | __/ |___/\___|_| |_|_.__/ \___| 安装 要使用 npm run 安装最新版本: npm install ...
只需单击记录,即可自动生成分步指南。 与视频和文本教程相比,每月可为您的团队节省20个小时以上的时间。 知道如何做一些很酷或有用的事情吗? 想与队友分享吗? 只需单击一下,Scribe就会看着您发挥自己的魔力,并...
更好的日志管理 像下面这样获取控制台日志: 进入Web仪表板,如下所示: 挑战 管理日志可能是一项艰巨的任务。... 注意:此记录器不会替换默认控制台(因为默认情况下Scribe-Js起作用)。 //pass redis configurati
- **Agent**:协调adaptor工作,通过HTTP将数据发送给Collector,同时记录adaptor状态以备恢复。 - **Collector**:整合多个数据源,合并数据后写入HDFS,隐藏HDFS的复杂性。 - **Demux和Achieving**:提供MapReduce...
Scribe.js 日志收集器示例 AMQP + Scribe.js 用于轻量级日志管理。 这是的一个示例,展示了如何使用为 SOA 应用程序构建日志收集器。...这是一个记录一些东西的 NodeJS 应用程序。 node client.js
用户需要了解如何在自己的系统上安装和配置scribe,包括获取源代码(如从压缩包“scribe-master”解压)、设置环境变量以及初始化和配置Git仓库。 9. **自定义与扩展**: scribe 可能允许用户自定义快捷键、配置...
在安装CRX文件时,通常需要将下载的"Personal_Finance_Scribe.crx"文件拖拽到浏览器的扩展管理页面进行安装。安装完成后,用户应根据插件的引导设置自己的财务账户,然后就可以开始享受智能财务管理带来的便利了。 ...
在描述中提到的"Bower install scribe-plugin-keyboard-shortcuts"是安装该插件的命令。Bower是前端开发中的一款包管理器,它可以帮助开发者管理和更新前端依赖库。通过运行这个命令,开发者可以在他们的项目中快速...
MIDI(Musical Instrument Digital Interface)文件并不存储实际的声音,而是记录了音乐事件的时间和性质,如音符的开始、结束、音高和力度等。这样的数据结构便于计算机处理,可以被各种音乐软件和硬件设备读取和...
3. **进度追踪**:系统记录每个学生作业的提交情况,帮助教师跟踪学习进度,及时给予反馈。 4. **互动交流**:提供评论和讨论区,促进学生间的互动和合作,增强学习效果。 5. **家长参与**:家长可以通过系统查看...
agent提供服务支持adaptor,包括数据传输和状态记录;collector则负责聚合来自多个adaptor的数据,将其写入HDFS,解决HDFS小文件处理的挑战。 3. LinkedIn的Kafka Kafka是一种分布式流处理平台,常用于日志聚合和...
它的设计灵感来源于流式架构和分布式数据处理领域中其他流行系统,如Twitter的Scribe和Facebook的Ptail。Flume的稳定版本是Flume NG,而早期版本被称作Flume OG。 在Flume系统中,数据流是由不同组件协同工作来实现...
在命令行中,你可以使用`gem install git-scribe`来安装GitScribe gem。安装完成后,你可以在一个新的目录中初始化一个GitScribe项目,使用`git-scribe init`命令。这会创建一个基本的项目结构,包括一个`content`...
Scribe并不是从头开始构建现有的日志记录框架,而是承担了它们的性能和设计缺陷,它是从头开始构建的,可以在Scala,Scala.js和Scala Native中提供快速有效的日志记录,而无需配置文件或其他依赖项。 日志的所有...