logkit:七牛 Pandora 開發的通用日誌收集工具
logkit簡介
logkit是七牛Pandora開發的一個通用的日誌收集工具,可以將不同數據源的數據方便的發送到Pandora進行數據分析,除了基本的數據發送功能,logkit還有容錯、並發、監控、刪除等功能。
詳細的文檔可以參見logkit wiki
支持的數據源
文件(包括csv格式的文件,kafka-rest日誌文件,nginx日誌文件等,並支持以grok的方式解析日誌)
MySQL
Microsoft SQL Server(MSSQL)
ElasticSearch
MongoDB
工作方式
logkit本身支持多種數據源,並且可以同時發送多個數據源的數據到Pandora,每個數據源對應一個邏輯上的runner,一個runner負責一個數據源的數據推送,工作原理如下圖所示
下載
請移步至Download頁面
安裝與使用
下載&解壓logkit工具
Linux 版本wget http://op26gaeek.bkt.clouddn.com/logkit.tar.gz && tar xvf logkit.tar.gz && cd _package_linux64/MacOS 版本wget http://op26gaeek.bkt.clouddn.com/logkit_mac.tar.gz && tar xvf logkit_mac.tar.gz && cd _package_mac/Windows 版本
請下載http://op26gaeek.bkt.clouddn.com/logkit_windows.zip並解壓縮,進入目錄
修改runner的配置
打開 confs/default.conf
按照圖示進行修改
啟動logkit工具
./logkit -f logkit.conf
logkit.conf是logkit工具本身的配置文件,主要用於指定logkit運行時需要的資源和各個runner配置文件的具體路徑。
logkit運行過程中最多用到多少個核
日誌輸出級別,0為debug,數字越高級別越高
是一個列表,列表中的每一項都是一個runner的配置文件夾,如果每一項中文件夾下配置發生增加、減少或者變更,logkit會相應的增加、減少或者變更runner,配置文件夾中的每個配置文件都代表了一個runner。
典型的配置如下:
{ "max_procs": 8, "debug_level": 1, "confs_path": ["confs"] }
上面的配置指定了一個runner的配置文件夾,這個配置文件夾下面每個以.conf結尾的文件就代表了一個運行的runner,也就代表了一個logkit正在運行的推送數據的線程。
單個runner的配置詳解
典型的 csv Runner配置如下。
{ "name":"csv_runner", # 用來標識runner的名字,用以在logkit中區分不同runner的日誌 "reader":{ "mode":"dir", # 是讀取方式,支持`dir`和`file`兩種 "log_path":"/home/user/app/log/dir/", # 需要收集的日誌的文件(夾)路徑 "meta_path":"./metapath", # 是reader的讀取offset的記錄路徑,必須是文件夾 }, "parser":{ "name":"csv_parser", # parser的名字,用以在logkit中區分不同的parser "type":"csv", "csv_schema":"timestamp long, method string, path string, httpcode long" # 按照逗號分隔的字元串,每個部分格式按照`欄位名 欄位類型`構成,欄位類型現在支持`string`, `long`, `jsonmap`, `float` }, "senders":[{ # senders是 "name":"pandora_sender", "sender_type":"pandora", # 如果數據要發送到Pandora,那麼必須寫pandora "pandora_ak":"your_ak", # 賬號的ak "pandora_sk":"your_sk", # 賬號的sk "pandora_host":"https://pipeline.qiniu.com", "pandora_repo_name":"your_repo_name", # 賬號的repo name "pandora_region":"nb" }] }
對於csv文件的上傳,只需要修改上述配置文件的 , , , , 就完成了一個基本的上傳csv文件的logkit配置。
從源碼安裝與啟動
啟動服務的命令中可以指定服務的啟動配置
go get -u github.com/kardianos/govendor govendor sync go get ./... go build -o logkit logkit.go ./logkit -f logkit.conf使用logkit的docker鏡像啟動docker pull wonderflow/logkit docker run -d -p 3000:3000 -v /local/logkit/dataconf:/app/confs -v /local/log/path:/logs/path logkit
鏡像中,logkit讀取 下的配置文件,所以可以通過掛載目錄的形式,將本地的logkit配置目錄 掛載到鏡像裡面。
需要注意的是,鏡像中的logkit收集 目錄下的日誌,需要把本地的日誌目錄也掛載到鏡像裡面去才能啟動,比如本地的日誌目錄為 , 掛載到鏡像中的 目錄,那麼 目錄下的配置文件填寫的日誌路徑必須是 。
Enjoy it!
※90後正成為結婚主力,「糖生糖太」要提供高顏值、定製化的婚慶伴手禮
※let 聲明會提升嗎?
※用代碼寫靜態表格
※如何設計合理友好的錯誤提示?
※Spring boot學習
TAG:推酷 |
※Android&Linux&Windows三平台通用實用程序推薦
※對話 Geoffrey Hinton&Demis Hassabis:通用人工智慧離我們有多遠?
※iPhone、iPad和Mac的通用APP將允許研發
※Redis Keys的通用操作
※Cruise Automation聘任通用汽車總裁Dan Ammann為新任CEO
※Mobileye/Drive.ai/特斯拉/Waymo/通用 自動駕駛最新大事件
※Spotify 現已支持Linux snap 通用套件
※Calamares 3.2通用Linux安裝程序框架新版發布
※TensorLayer 2.0:保有最多官方神經網路層的通用Python庫
※Uber開源Fusion.js:一個基於插件架構的通用Web框架
※3億美元!通用型CAR-T療法火花再現,細胞療法新銳Allogene獲輝瑞、Servier、Cellectis共同支持
※再怎麼「漢語熱」,英文依舊會是堅挺的世界最通用語for a long long long long time
※省時間!定製Office右鍵菜單 Word/Excel 通用
※Kubernetes 已成為一種通用調度器
※攝影|Bruno Barbey:世界通用語言
※9月新iPhone機模曝光,保護殼與iPhone X通用
※iPhone Xs/Xs Max/XR/X通用壁紙
※斯坦福&Adobe CVPR 19 Oral:全新通用深度網路架構CPNet
※Service Mesh中的通用數據平面API設計
※彭博社:蘋果2021年將iPhone iPad Mac應用程序通用