Chinaunix首页 | 论坛 | 博客
  • 博客访问: 431742
  • 博文数量: 75
  • 博客积分: 2780
  • 博客等级: 少校
  • 技术积分: 789
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-23 20:38
文章分类

全部博文(75)

文章存档

2012年(1)

2011年(11)

2010年(12)

2009年(39)

2008年(12)

我的朋友

分类: LINUX

2011-03-16 16:50:06

安装scribe
wget 
elinks 

yum install gcc ruby python ruby-devel
 
tar zxvf libevent-1.3.tar.gz
cd libevent-1.3
./configure --prefix=/usr/local/libevent
make
make install
cd ..
tar jxvf boost_1_45_0.tar.bz2
cd boost_1_45_0
./bootstrap.sh
./bjam -s HAVE_ICU=1 --prefix=/usr/local/boost --includedir=/usr/local/boost/include --libdir=/usr/local/boost/lib
./bjam install --prefix=/usr/local/boost
cd ..
tar zxvf thrift-0.5.0.tar.gz
cd thrift-0.5.0
./configure --with-boost=/usr/local/boost --with-php-config=/usr/local/php5/bin/php-config --with-libevent=/usr/local/libevent/
make
make install
cd contrib/fb303
./bootstrap.sh
./configure --with-boost=/usr/local/boost
make
make install
cd ../../../

export BOOST_ROOT=/usr/local/boost
export LD_LIBRARY_PATH=/usr/local/boost/lib::/usr/lob:/usr/local/lib:/usr/local/libevent/lib/
tar xzvf facebook-scribe-2ee14d3.tar.gz
cd facebook-scribe-2ee14d3
./bootstrap.sh --with-boost=/usr/local/boost/
./configure --with-boost=/usr/local/boost/ --prefix=/usr/local/scribe/
ln -s /usr/local/libevent/include/* /usr/local/include/
ln -s /usr/local/libevent/lib/* /usr/local/lib/
make
make install

测试
mkdir /usr/local/scribe/conf
cp /usr/local/soft/facebook-scribe-2ee14d3/examples/example1.conf /usr/local/scribe/conf
/usr/local/scribe/bin/scribed -c /usr/local/scribe/conf/example1.conf
[Wed Mar 16 16:50:44 2011] "STATUS: STARTING" 
[Wed Mar 16 16:50:44 2011] "STATUS: configuring" 
[Wed Mar 16 16:50:44 2011] "got configuration data from file " 
[Wed Mar 16 16:50:44 2011] "CATEGORY : default" 
[Wed Mar 16 16:50:44 2011] "Creating default store" 
[Wed Mar 16 16:50:44 2011] "configured <1> stores" 
[Wed Mar 16 16:50:44 2011] "STATUS: " 
[Wed Mar 16 16:50:44 2011] "STATUS: ALIVE" 
[Wed Mar 16 16:50:44 2011] "Starting scribe server on port 1463" 
Thrift: Wed Mar 16 16:50:44 2011 libevent 1.3 method epoll

echo "hello world"| /usr/local/src/a/facebook-scribe-2ee14d3/examples/scribe_cat test

php接口
cd /usr/local/scribe
/usr/local/bin/thrift -o . -I /usr/local/share/ --gen php /usr/local/share/fb303/if/fb303.thrift
cp /usr/local/src/a/thrift-0.5.0/lib/php/src includes -r
mkdir -p includes/packages/fb303
mkdir -p includes/packages/scribe
mv gen-php/fb303/FacebookService.php gen-php/fb303/fb303_types.php includes/packages/fb303/
mv gen-php/scribe/scribe_types.php includes/packages/scribe/
mv gen-php/scribe/scribe.php includes/
rm -rf gen-php

测试程序:
vi test.php
//参考
$GLOBALS['THRIFT_ROOT'] = './includes';
include_once $GLOBALS['THRIFT_ROOT'] . '/scribe.php';
include_once $GLOBALS['THRIFT_ROOT'] . '/transport/TSocket.php';
include_once $GLOBALS['THRIFT_ROOT'] . '/transport/TFramedTransport.php';
include_once $GLOBALS['THRIFT_ROOT'] . '/protocol/TBinaryProtocol.php';
$msg1['category'] = 'keyword';
$msg1['message'] = "This is some message for the category\n";
$msg2['category'] = 'keyword';
$msg2['message'] = "Some other message for the category\n";
//$log_entry = new LogEntry( array('category'=>$category, 'category'=>$category) )
$entry1 = new LogEntry($msg1);
$entry2 = new LogEntry($msg2);
$messages = array($entry1, $entry2);
$socket = new TSocket('localhost', 1463, true);
$transport = new TFramedTransport($socket);
//$protocol = new TBinaryProtocol($trans, $strictRead=false,$strictWrite=true)
$protocol = new TBinaryProtocol($transport, false, false);
//$scribe_client = new scribeClient($iprot=$protocol, $oprot=$protocol)
$scribe_client = new scribeClient($protocol, $protocol);
$transport->open();
$scribe_client->Log($messages);
$transport->close();
?>

cd /usr/local/scribe/;/usr/local/php5/bin/php test.php;cd ~


监控apache日志
下载scribe_log
elinks 
tar zxvf silas-scribe_log-c2d401f.tar.gz
cp silas-scribe_log-c2d401f/scribe_log /usr/local/sbin/scribe_log
安装
参考另一篇日记《离线安装supervisord
vi /etc/supervisord.conf
添加
[program:scribe.apache.access]
command=/usr/local/sbin/scribe_log --category apache.access --file /var/log/httpd/access_log 
以下为发送到远程scribe日志主机
command=/usr/local/sbin/scribe_log --host=scribe.example.com --port=1463 --category apache.access --file /var/log/httpd/access_log 

阅读(1332) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~