facebook scribe日誌聚合系統有三個核心內容:configurarion(配置)、running scribe server(執行伺服器)、logging messages(記錄日誌)
scribe 執行下面thrift介面:
enum resultcode為了給指定主機和埠的scribe伺服器傳送一條訊息,我們需要簡單地建立乙個scribe client和呼叫log()方法,下面是使用python寫的乙個例項:struct logentry
service scribe extends fb303.facebookservice
from scribe import scribefrom thrift.transport import ttransport, tsocket
from thrift.protocol import tbinaryprotocol
category='
test
'message='
hello world
'log_entry = scribe.logentry(category, message)
#depending on thrift version
#log_entry = scribe.logentry(dict(category=category, message=message))
socket = tsocket.tsocket(host='
localhost
', port=1463)
transport = ttransport.tframedtransport(socket)
protocol = tbinaryprotocol.tbinaryprotocol(trans=transport, strictread=false, strictwrite=false)
client = scribe.client(iprot=protocol, oprot=protocol)
transport.open()
result = client.log(messages=[log_entry])
transport.close()
$scribed [ -p ] [ -c ] #scribe_ctrl 的子命令:啟動scribe伺服器
$scribe_ctrl stop [ ] #
停止scribe伺服器
$scribe_ctrl [ ] #
監控、管理scribe伺服器
status – 如果伺服器執行正常則返回'alive'scribe server是通過配置檔案啟動的。version – 返回當前scribe伺服器的版本
alive – 返回伺服器執行時間
stop – 停止scribe伺服器
counters – 返回下列統計資訊 (如果非零):
更詳細的配置資訊參見:
客戶端呼叫log(messages)函式傳送訊息,通過thrift框架的實現,遠端方法scribehandler:: log(const vector& messages)函式被呼叫,過程如下:
參考文章:
Scribe應用例項
源 裡所給的example很簡單,但大體上了模擬了其執行的過程,分三個部分。可參考裡面的readme檔案 configurarion 配置 running scribe server 執行伺服器 logging messages 記錄日誌 先執行scribe example來看看效果。1.examp...
scribe 架構及其store
1 概述 scribe是facebook開源的日誌收集系統,在facebook內部已經得到大量的應用。它能夠從各種日誌源上收集日誌,儲存到乙個 儲存系統 可以是nfs,分布式檔案系統等 上,以便於進行集中統計分析處理。它為日誌的 分布式收集,統一處理 提供了乙個可擴充套件的,高容錯的方案。當 儲存系...
mysql核心分析文件 mysql 核心分析
mysql從功能上來講,並不完善,適用於oltp,不適用於olap,在開源資料庫而言,對於重要的資料儲存的話,而是建議採用postgresql 下面把mysql和postgresql從核心級做一些對比分析,找出mysql快,但功能不足的方面.估計要很長時間才能寫完,每天看到哪寫到哪.1.mysql是...