版本历史 
2011-02-12 17:36:57 完成文章
2011-02-23 10:49:12 更新,修正部分文字

目前web访问日志为crontab定时清空,而且负载均衡后,访问随机分配到一台服务器。程序出错后需要分析日志时,需要登录几台机器查看,于是想用一台主机作日志主机,负责收集(按时间顺序而不用sort?)、分析日志。下面的是年前安装scribe日志系统的记录。

一、软件下载 
wget http://www.monkey.org/~provos/libevent-1.3.tar.gz
wget https://download.github.com/facebook-scribe-2ee14d3.tar.gz
wget http://nchc.dl.sourceforge.net/project/boost/boost/1.45.0/boost_1_45_0.tar.bz2
wget http://apache.etoak.com//incubator/thrift/0.5.0-incubating/thrift-0.5.0.tar.gz
注:facebook-scribe-2ee14d3.tar.gz为https://github.com/facebook/scribe右上角downloads选择download .tar.gz

二、安装步骤 
1~4系统会自带或已安装,未安装的可类似yum install libevent*进行安装。
1、gcc> 3.3.5 
gcc -v
which gcc
2、安装ruby 
3、安装python
4、安装libevent
5、安装 boost 
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
6、安装facebook 服务 
安装thrift 
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
make
make install
安装fb303 
cd contrib/fb303
./bootstrap.sh
./configure --with-boost=/usr/local/boost
make
make install
7、安装scribe 
环境变量
export BOOST_ROOT=/usr/local/boost
export LD_LIBRARY_PATH=/usr/local/boost/lib::/usr/lob:/usr/local/lib
ldconfig -v
tar zxvf facebook-scribe-2ee14d3.tar.gz
cd facebook-scribe-2ee14d3
./bootstrap.sh
./configure --with-boost=/usr/local/boost --prefix=/usr/local/scribe
make
make install

8、配置测试 
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

测试程序:
mkdir  /tmp/scribetest
测试写入:
echo  "hello world"| /usr/local/soft/facebook-scribe-2ee14d3/examples/scribe_cat test
查看结果:
cat  /tmp/scribetest/test/test_current

9、php接口 
cd /usr/local/scribe
/usr/local/bin/thrift -o . -I /usr/local/share/ --gen php /usr/local/share/fb303/if/fb303.thrift
/usr/local/bin/thrift -o . -I /usr/local/share/ --gen php /usr/local/soft/facebook-scribe-2ee14d3/if/scribe.thrift
cp /usr/local/soft/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
<?php
//参考http://www.ruturaj.net/scribe-php-logging
$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();
?>
执行程序:
/usr/local/php5/bin/php test.php
查看结果:
cat /tmp/scribetest/keyword/keyword_current

三、相关文章 
多个服务器日志的排序合并
http://www.chedong.com/blog/archives/001280.html
海量日志分析系统实践
http://wenku.baidu.com/view/a0811f94dd88d0d233d46a6f.html
scribe的安装与使用 
http://blogold.chinaunix.net/u3/111447/showart_2164542.html
scribe日志收集器分析
http://blog.csdn.net/kohaku/archive/2010/12/02/6049183.aspx
使用Scribe来监控大型网络系统
http://blog.csdn.net/liuzhongbing/archive/2010/06/17/5676096.aspx
nginx-scribe-log
https://github.com/jmj/nginx-scribe-log
Scribe PHP logging
http://www.ruturaj.net/scribe-php-logging
Pipe Apache Logs to Scribe
http://www.silassewell.com/blog/2009/05/12/pipe-apache-or-any-logs-to-scribe

scribe日志系统安装笔记的更多相关文章

  1. Scribe日志收集工具

    Scribe日志收集工具 概述 Scribe是facebook开源的日志收集系统,在facebook内部已经得到大量的应用.它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,分布式文 ...

  2. 天兔(Lepus)数据库监控系统安装笔记

    天兔(Lepus)数据库监控系统安装笔记 一.部署:本次操作系统:centos6.9 IP:192.168.153.145Lepus_v3.8_beta MySQL-python-1.2.5xampp ...

  3. python日志模块笔记

    前言 在应用中记录日志是程序开发的重要一环,也是调试的重要工具.但却很容易让人忽略.之前用flask写的一个服务就因为没有处理好日志的问题导致线上的错误难以察觉,修复错误的定位也很困难.最近恰好有时间 ...

  4. java日志学习笔记

    一.日志家族 Log4j一开始就很强大,在jdk自带日志系统之前,apache就曾经尝试把log4j划为java的一部分,不知为何没能成功,sun还是用了自己很弱的日志系统.为了兼容各个日志系统,ap ...

  5. scribe日志分析工具安装

    系统CentOS6.2 x86_64 1.yum安装gcc,flex,m4,python/python-devel,ruby,libevent/libevent-devel,openssl/opens ...

  6. mariadb日志学习笔记

    MySQL日志: 查询日志:query log 慢查询日志: 查询执行时长超过指定时长的查询操作所记录的日志 slow query log 错误日志:包含了服务器启动和关闭的正常信息 二进制日志:包含 ...

  7. oracle DML错误日志(笔记)

    DML错误日志是oracle10gR2引入的一个类似于SQL*Loader的错误日志功能.它的基本原理是把任何可能导致语句失败的记录转移,放到一张错误日志表中. 具体使用如下: 1.使用DBMS_ER ...

  8. log4net基本日志使用笔记[windows application]

    Ref: http://www.cnblogs.com/wangsaiming/archive/2013/01/11/2856253.html http://www.cnblogs.com/zhouf ...

  9. Linux系统安装笔记

    1.下载CentOS系统镜像: 很多资料都是CentOS6的,7的比较少,所以我决定还是用CentOS6来学习. 地址:http://vault.centos.org/6.8/isos/x86_64/ ...

随机推荐

  1. Linux服务器安装redis数据库教程

    前面小Alan给大家说了jdk的安装,这篇跟大家聊聊redis非关系型数据库在Linux服务器的安装. redis简单介绍 REmote DIctionary Server(Redis) 是一个由Sa ...

  2. linux之redis

    配置环境变量的命令: 修改环境变量: vim /root/.bash_profile 添加以下配置: export PATH=/server/tools/redis/src:$PATH 激活环境变量 ...

  3. 监控SQLServer 数据库表每天的空间变化情况

    阅读完桦仔的<分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)>后,我想使用文中提供的代码做一个统计表每天的新增行数及新增存储空间的功能 实现步骤如下: 1 ...

  4. mongodb存储引擎

    存储引擎(Storage Engine)是MongoDB的核心组件,负责管理数据如何存储在硬盘(Disk)和内存(Memory)上.从MongoDB 3.2 版本开始,MongoDB 支持多数据存储引 ...

  5. 如何利用RMAN Debug和10046 Trace来诊断RMAN问题?

         在做Support的这些年,我很大的收获是掌握了许多troubleshooting问题的方法和工具,对于每一类问题,都可以大体归类出一些诊断方法.无论问题多么复杂,像扒洋葱一样,一层层去掉无 ...

  6. [翻译] BTSimpleRippleButton

    BTSimpleRippleButton https://github.com/balram3429/btSimpleRippleButton This is a custom button for ...

  7. [UI] MFD UI kit

    MFD UI kit https://dribbble.com/whaledesigned

  8. Ogre学习教程:Ogre1.8.1+VS2010环境配置(转)

    http://blog.csdn.net/yangtrees/article/details/8724120 http://blog.csdn.net/cll611/article/details/8 ...

  9. Mycat问题总结

    Mycat问题总结 一丶自增主键设置 Mycat提供了几种设置自增主键的方式 本地文件方式 数据库方式 服务器时间戳方式 分布式ZK-ID生成器 第一种和第二种只适合单点设置,对于集群不适用.第四种方 ...

  10. Programming Assignment 5: Burrows–Wheeler Data Compression

    编程作业五 作业链接:Burrows-Wheeler Data Compression & Checklist 我的代码:MoveToFront.java & CircularSuff ...