源**裡所給的example很簡單,但大體上了模擬了其執行的過程,分三個部分。可參考裡面的readme檔案:configurarion(配置)、running scribe server(執行伺服器)、logging messages(記錄日誌)
先執行scribe example來看看效果。
1.example1:向已經啟動的server傳送訊息,驗證是否被記錄下來。 #建立日誌資訊存放目錄:
$mkdir /tmp/scribetest#用example1.conf配置檔案啟動scribe服務:
$scribed examples/example1.conf#開啟另乙個終端,使用scribe_cat 向scribe服務傳送資訊:
也就是說python匯入模組scribe失敗,但我們開啟/usr/lib/python2.6/site-packages,發現裡面是有scribe的模組的,所以很可能是pythonpath沒有配置正確。使用如下命令進行配置: 進入到/etc目錄,然後輸入命令gedit profile(profile檔案為系統的每個使用者設定環境資訊,當使用者第一次登入時,該檔案被執行),在此檔案中新增如下內容:
$export pythonpath= 」/usr/lib/python2.6/site-packages」或 找到系統安裝python的路徑(如我的是/usr/local/python2.6),將/usr/lib/python2.6/site-packages下內容拷貝到/usr/local/lib/python2.6/site-packages下即可。 #verify that the message got logged:$source /etc/profile
$cat /tmp/scribetest/test/test_current2) example2:啟動中心伺服器和客戶端伺服器,然後開啟乙個終端並輸入三條命令,並檢視結果: 示意圖如下#檢查scribe狀態(requires root):
$./scribe_ctrl status
#檢查scribe連線數 (you should see 1 message 'received good'):
$./scribe_ctrl counters
#關閉scribe服務:
$./scribe_ctrl stop
執行如下命令:
#檢視結果:啟動**伺服器
$scribed example2central.conf &
#啟動客戶端伺服器
$scribed example2client.conf &
$mkdir /tmp/scribetest2
$scribed examples/example2central.conf
$scribed examples/example2client.conf
$echo
"test message
" | ./scribe_cat -h localhost:1464 test2
$echo
"this message will be ignored
" | ./scribe_cat -h localhost:1464 ignore_me
$echo
"123:this message will be bucketed
" | ./scribe_cat -h localhost:1464 bucket_me
$cat /tmp/scribetest/test2/test2_current當客戶端伺服器講收到的資訊傳送給中心伺服器後,會刪除本地的儲存。 結果顯示:客戶端收到三條訊息,傳送了三條訊息;伺服器端收到三條訊息,忽略了一條訊息。$cat /tmp/scribetest/bucket*/bucket_me_current
./scribe_ctrl status 1463
./scribe_ctrl status 1464
./scribe_ctrl counters 1463 #
檢視中心伺服器的統計資料
./scribe_ctrl counters 1464 #
檢視客戶端伺服器的統計資料
3) example3:如同example2啟動中心伺服器和客戶端伺服器,但本例測試的是在中心伺服器突然down掉的情況下,客戶端伺服器的緩衝儲存功能。
$echo#結果:"test message 1
" | ./scribe_cat -h localhost:1464 test3 #
傳送訊息1
$cat /tmp/scribetest/test3/test3_current #
結果:test message 1
$./scribe_ctrl stop 1463 #
down掉中心伺服器
$./scribe_ctrl status 1463 #
結果:failed to get status
$echo
"test message 2
" | ./scribe_cat -h localhost:1464 test3 #
傳送訊息2
$./scribe_ctrl status 1464 #
結果:warning - failed to connect
$echo
"test message 3
" | ./scribe_cat -h localhost:1464 test3 #
傳送訊息3
$scribed examples/example2central.conf #
重新啟動中心伺服器
$./scribe_ctrl status 1463 #
結果:alive
$./scribe_ctrl status 1464 #
結果:alive
$cat /tmp/scribetest/test3/test3_current
test message 1全部正常接收test message 2
test message 3
大資料應用日誌採集之Scribe演示例項完全解析
引子 scribe是facebook開源的日誌收集系統,在facebook內部已經得到大量的應用。它能夠從各種日誌源上收集日誌,儲存到乙個 儲存系統 可以是nfs,分布式檔案系統等 上,以便於進行集中統計分析處理。它為日誌的 分布式收集,統一處理 提供了乙個可擴充套件的,高容錯的方案。當 儲存系統的...
Scribe核心分析
facebook scribe日誌聚合系統有三個核心內容 configurarion 配置 running scribe server 執行伺服器 logging messages 記錄日誌 scribe 執行下面thrift介面 enum resultcode struct logentry se...
scribe 架構及其store
1 概述 scribe是facebook開源的日誌收集系統,在facebook內部已經得到大量的應用。它能夠從各種日誌源上收集日誌,儲存到乙個 儲存系統 可以是nfs,分布式檔案系統等 上,以便於進行集中統計分析處理。它為日誌的 分布式收集,統一處理 提供了乙個可擴充套件的,高容錯的方案。當 儲存系...