Ubuntu12.04.5 Scribe 日誌系統安裝
很久都沒來寫自己的博客了,最近有時間寫下這篇文章分享給大家。提供幫助和參考。
最近項目中使用scribe來採集應用程序日誌,起初安裝的時候,到處都是折騰,網上這方面的資料又比較不靠譜,現在記錄下來,有這方面需要的童鞋,可以看看。
軟件包下載地址:http://down.51cto.com/data/1902192
第一步,修改鏡像源、安裝必要的軟件包、依賴包等。
root@vmware:~# mv /etc/apt/sources.list /etc/apt/sources.list.bak
root@vmware:~# vim /etc/apt/sources.list
deb http://mirrors.sohu.com/ubuntu/ precise main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ precise-security main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise-backports main restricted universe multiverse
root@vmware:~# apt-get update
root@vmware:~# apt-get upgrade
root@vmware:~# reboot
root@vmware:~# apt-get install -y gcc make g++ automake libssl-dev pkg-config libncurses5-dev heirloom-mailx lrzsz multitail nmon htop unzip
第二步,採用apt-get方法安裝 boost,避免編譯thrift時,出現莫名其妙的錯誤。
root@vmware:~# apt-get install -y build-essential bison flex libboost-all-dev libevent-dev libglib2.0-dev \
libboost-dev libssl-dev python-dev \
libboost-system-dev libboost-filesystem-dev libtool git automake gawk
第三步,下載thrift安裝包 http://down.51cto.com/data/1902192、編譯安裝 thrift。
root@vmware:~# cd /usr/local/
root@vmware:/usr/local# mkdir software
\\將下載的軟件包拷貝到/usr/local/software目錄下,
root@vmware:/usr/local/software# tar zxvf thrift-0.9.1.tar.gz
root@vmware:/usr/local/software#cd thrift-0.9.1/
root@vmware:/usr/local/software/thrift-0.9.1#./configure CPPFLAGS="-DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H"
root@vmware:/usr/local/software/thrift-0.9.1# make
make後會出現如下圖錯誤信息:
處理方法:
root@vmware:/usr/local/software/thrift-0.9.1# cp test/cpp/*.o test/cpp/.libs/
root@vmware:/usr/local/software/thrift-0.9.1# make
root@vmware:/usr/local/software/thrift-0.9.1# make install
##接着安裝下fb303
root@vmware:/usr/local/software/thrift-0.9.1# cd contrib/fb303/
root@vmware:/usr/local/software/thrift-0.9.1/contrib/fb303# ./bootstrap.sh
root@vmware:/usr/local/software/thrift-0.9.1/contrib/fb303# make
root@vmware:/usr/local/software/thrift-0.9.1/contrib/fb303# make install
##安裝完成,檢查下版本。
root@vmware:~# thrift -version
Thrift version 0.9.1
第三步,編譯安裝scribe
root@vmware:~# cd /usr/local/software/
root@vmware:/usr/local/software# tar zxvf scribe.tar.gz
root@vmware:/usr/local/software# cd scribe
root@vmware:/usr/local/software/scribe# ./bootstrap.sh
root@vmware:/usr/local/software/scribe# ./configure CPPFLAGS="-DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H -DBOOST_FILESYSTEM_VERSION=2" --prefix=/usr/local/scribe
root@vmware:/usr/local/software/scribe# make
make後會出現如下圖錯誤信息:
處理方法:
root@vmware:/usr/local/software/scribe# cd src/
root@vmware:/usr/local/software/scribe/src# g++ -Wall -O3 -L/usr/lib -o scribed store.o store_queue.o conf.o file.o conn_pool.o scribe_server.o network_dynamic_config.o dynamic_bucket_updater.o env_default.o -L/usr/local/lib -L/usr/local/lib -L/usr/local/lib -lfb303 -lthrift -lthriftnb -levent -lpthread libscribe.a libdynamicbucketupdater.a -lboost_system-mt -lboost_filesystem-mt
## 再次編譯下:
root@vmware:/usr/local/software/scribe/src# cd ..
root@vmware:/usr/local/software/scribe# make
root@vmware:/usr/local/software/scribe# make install
第四步,配置scribe
root@vmware:/usr/local/software/scribe# cd /usr/local/scribe/
root@vmware:/usr/local/scribe# mkdir etc logs
root@vmware:/usr/local/scribe# cd etc
root@vmware:/usr/local/scribe/etc# vim scribe.conf
port=1463
max_msg_per_second=2000000
check_interval=3
<store>
category=default
type=file
fs_type=std
file_path=./logs/
base_filename=tmpdata
max_size=1000000000
</store>
##啓動scribe
root@vmware:/usr/local/scribe/bin# ldconfig
root@vmware:/usr/local/scribe/bin#nohup /usr/local/scribe/bin/scribed /usr/local/scribe/etc/scribe.conf &
root@vmware:/usr/local/scribe# netstat -ntpl |grep 1463
tcp 0 0 0.0.0.0:1463 0.0.0.0:* LISTEN 59125/scribed
## 測試 scribe
測試時錯誤:
root@vmware:/usr/local/scribe# cd /usr/local/software/scribe/examples/
root@vmware:/usr/local/software/scribe/examples# echo "hello world"|./scribe_cat testecho "hello world"|./scribe_cat test
Traceback (most recent call last):
File "./scribe_cat", line 24, in <module>
from scribe import scribe
ImportError: No module named scribe
解決辦法
在debian/ubuntu系列安裝完畢後,python的scribe模塊並沒有在默認搜索路徑中,所以:
cp -a /usr/lib/python2.7/site-packages/* /usr/lib/python2.7/dist-packages/
測試結果如下
到這裏,scribe已經安裝完成。安裝流程本人親自安裝測試過,如有問題可以發表評論。
李惟忠
寫於 2014.12.20 晚