filebeat是乙個輕量的日誌收集工具,全套使用go語言開發。
我目前遇到的問題是,在收集的時候需要對資料進行取樣,取樣比和取樣形式要靈活,因為可能在多個專案會使用到這個日誌收集功能。剛開始我仔細研究filebeat的配置,我感覺他自身應該帶有採集需求,然而並沒有。於是我想著去修改他的原始碼,這樣也很方便。然而這個方案不可行,因為這是乙個開源專案,後期如果版本更新,那還得繼續修改,這個不靈活。於是我想著用外掛程式的方式,看了下filebeat是支援外掛程式的,但是網上很難找到資料。
我最終在官網找到了資料,所以我自己按照他的模式寫了我自己的取樣外掛程式和乙個我們業務用的query解析外掛程式。
filebeat採取的是多個執行緒同時去讀多個檔案,每個檔案讀到資料會被封裝為乙個event,event經過一系列的processors處理,最終會放在乙個佇列,這個佇列在傳送到輸出(kafka,es等)
外掛程式使用方法:
在beats/libbeat/processors目錄下進行外掛程式開發
在你需要使用的的平台打包打包命令:go build -buildmode=plugin
啟動filebeatfilebeat ---plugin ./myplugin.so
,多個外掛程式用多個–plugin
外掛程式必須在beats/libbeat/processors目錄下編譯打包,打包和平台有關,mac下打的包,在linux上不能使用
我用的整套日誌收集方案是:
filebeat+kafka+elastis+kibana
filebeat外掛程式開發
filebeat是乙個輕量的日誌收集工具,全套使用go語言開發。我目前遇到的問題是,在收集的時候需要對資料進行取樣,取樣比和取樣形式要靈活,因為可能在多個專案會使用到這個日誌收集功能。剛開始我仔細研究filebeat的配置,我感覺他自身應該帶有採集需求,然而並沒有。於是我想著去修改他的原始碼,這樣也...
npm外掛程式開發 Vue外掛程式
vue init webpack npm vue ui,dependencies browserslist 1 last 2 versions not ie 8 devdependencies const path require path const webpack require webpack...
filebeat 啟動流程
因為各種各樣的原因,好久沒有寫部落格了,還是希望能夠堅持下來 講解一下filebeat的啟動流程吧,核心功能先不描述了0.0 filebeat啟動入口在main.go檔案內,cmd.rootcmd.execute 啟動filebeat func main 在filebeat cmd root.go檔...