filebeat 插件開發



  filebeat是一個輕量的日志收集工具,全套使用go語言開發。

  我目前遇到的問題是,在收集的時候需要對數據進行采樣,采樣比和采樣形式要靈活,因為可能在多個項目會使用到這個日志收集功能。剛開始我仔細研究filebeat的配置,我感覺他自身應該帶有采集需求,然而並沒有。於是我想着去修改他的源碼,這樣也很方便。然而這個方案不可行,因為這是一個開源項目,后期如果版本更新,那還得繼續修改,這個不靈活。於是我想着用插件的方式,看了下filebeat是支持插件的,但是網上很難找到資料。

  我最終在官網找到了資料,所以我自己按照他的模式寫了我自己的采樣插件和一個我們業務用的query解析插件。

  filebeat采取的是多個線程同時去讀多個文件,每個文件讀到數據會被封裝為一個event,event經過一系列的processors處理,最終會放在一個隊列,這個隊列在發送到輸出(kafka,es等)
filebeat原理

下面直接給大家上我寫的插件源碼:filebeat 插件源碼 附加 filebeat源碼

插件使用方法:

  1. 下載filebeat的源碼
  2. 在beats/libbeat/processors目錄下進行插件開發
  3. 在你需要使用的的平台打包 打包命令:go build -buildmode=plugin
  4. 啟動filebeat filebeat ---plugin ./myplugin.so,多個插件用多個--plugin
    插件必須在beats/libbeat/processors目錄下編譯打包,打包和平台有關,mac下打的包,在linux上不能使用

插件目錄
我用的整套日志收集方案是:
filebeat+kafka+elastis+kibana

  • filebeat負責收集
  • kafka負責做個緩存;在kafka出來還可以做一些過濾
  • elastic負責存儲和搜索
  • kibana負責展示


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM