Scribe應用例項

2021-09-08 02:15:19 字數 3628 閱讀 9783

源**裡所給的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」

$source /etc/profile

或 找到系統安裝python的路徑(如我的是/usr/local/python2.6),將/usr/lib/python2.6/site-packages下內容拷貝到/usr/local/lib/python2.6/site-packages下即可。 #verify that the message got logged:

$cat /tmp/scribetest/test/test_current

#檢查scribe狀態(requires root):

$./scribe_ctrl status

#檢查scribe連線數 (you should see 1 message 'received good'):

$./scribe_ctrl counters

#關閉scribe服務:

$./scribe_ctrl stop

2) example2:啟動中心伺服器和客戶端伺服器,然後開啟乙個終端並輸入三條命令,並檢視結果: 示意圖如下 

執行如下命令:

#

啟動**伺服器

$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,分布式檔案系統等 上,以便於進行集中統計分析處理。它為日誌的 分布式收集,統一處理 提供了乙個可擴充套件的,高容錯的方案。當 儲存系...