日誌收集工具 logpipe 更新至 0.16.1 版本

2020-12-13 開源中國

0.16.1        2018-01-16    calvin
        * 修正了插件logpipe-input-file的轉檔時重複讀取問題

0.16.0        2018-01-15    calvin
        * 優化了插件logpipe-output-ek性能,性能提高了一倍
        * 插件logpipe-input-file新增配置參數max_append_count,均勻處理所有文件增長事件
        * 擴大了日誌緩衝區

0.15.0        2018-01-03    calvin
        * 插件logpipe-output-tcp支持輪詢算法的負載均衡輸出

0.14.2        2018-01-03    calvin
        * 插件logpipe-output-ek新增配置參數iconv_from和iconv_to用於轉換編碼
        * 插件logpipe-output-ek連接ElasticSearch改為長連接模式,以提高性能

0.14.1        2017-12-30    calvin
        * 插件logpipe-input-file配置參數file改成file
        * 插件logpipe-input-file新增配置參數exclude_files用於過濾文件名

0.14.0        2017-12-29    calvin
        * 新增插件logpipe-output-ek,自帶系統(CPU、內存、硬碟、網絡)監控示例

0.13.0        2017-12-27    calvin
        * 新增插件logpipe-output-hdfs

0.12.0        2017-12-22    calvin
        * 插件logpipe-input-file新增配置參數file,用於過濾採集文件名

0.11.0        2017-12-21    calvin
        * 新增插件logpipe-input-exec用於執行長命令捕獲輸出

0.10.1        2017-12-21    calvin
        * 修正了logpipe自身日誌轉檔後沒有清空循環日誌的問題

0.10.0        2017-12-20    calvin
        * logpipe-output-file新增配置參數rotate_size,exec_after_rotating
        * logpipe日誌大小轉檔後綴改為"-YYYYMMDD_hhmmss_06us"

-------------------------------------------------------------------------

# 1. 概述

在集群化環境裡,日誌採集是重要基礎設施。

開源主流解決方案是基於flume-ng,但在實際使用中發現flume-ng存在諸多問題,比如flume-ng的spoolDir採集器只能對文件名轉檔後的大小不能變化的最終日誌文件進行採集,不能滿足採集時效性要求,如果要採集正在被不斷追加的日誌文件,只能用exec採集器搭配tail -F命令,但tail -F命令又不能通配目標目錄中將來新增的未知文件名。其它解決方案如logstash由於是JAVA開發,內存佔用和性能都不能達到最優。

作為一個日誌採集的本地代理,內存佔用應該小而受控,性能應該高效,耗費CPU低對應用影響儘可能小,要能異步實時追蹤日誌文件增長,某些應用會在目標目錄下產生多個日誌文件甚至現在不能確定將來的日誌文件名,架構上要支持多輸入多輸出流式日誌採集傳輸,為了達成以上需求,我研究了所需技術,評估實現難度並不高,就自研了logpipe。

logpipe是一個分布式、高可用的用於採集、傳輸、對接落地的日誌工具,採用了插件風格的框架結構設計,支持多輸入多輸出按需配置組件用於流式日誌收集架構,無第三方依賴。

logpipe的一種用法是能異步實時監控集群裡的所有日誌目錄,一旦有文件新增或追加寫,立即採集並傳輸到大存儲上以相同日誌文件名合併落地,或者寫入HDFS。異步意味著不影響應用輸出日誌的性能,實時意味著一有日誌立即採集,很多日誌採集工具如flume-ng、logstash介紹文檔通篇不提採集方式是否實時還是周期性的,這很關鍵。



logpipe概念樸實、使用方便、配置簡練,沒有如sink等一大堆新名詞。

logpipe由若干個input、事件總線和若干個output組成。啟動logpipe管理進程(monitor),派生一個工作進程(worker),監控工作進程崩潰則重啟工作進程。工作進程裝載配置加載若干個input插件和若干個output插件,進入事件循環,任一input插件產生消息後輸出給所有output插件。

logpipe自帶了5個插件(今後將開發更多插件),分別是:
* logpipe-input-file 用inotify異步實時監控日誌目錄,一旦有文件新建或文件增長事件發生(注意:不是周期性輪詢文件修改時間和大小),立即捕獲文件名和讀取文件追加數據。該插件擁有文件大小轉檔功能,用以替代應用日誌庫對應功能,提高應用日誌庫寫日誌性能。該插件支持數據壓縮。
* logpipe-output-file 一旦輸入插件有消息產生後用相同的文件名落地文件數據。該插件支持數據解壓。
* logpipe-input-tcp 創建TCP服務偵聽端,接收客戶端連接,一旦客戶端連接上有新消息到來,立即讀取。
* logpipe-output-tcp 創建TCP客戶端,連接服務端,一旦輸入插件有消息產生後輸出到該連接。
* logpipe-input-exec 執行長命令並捕獲輸出
* logpipe-output-hdfs 一旦輸入插件有消息產生後用相同的文件名落地到HDFS中。該插件支持數據解壓。

使用者可根據自身需求,按照插件開發規範,開發定製插件,如IBMMQ輸入插件、HDFS輸出插件等。

logpipe配置採用JSON格式,層次分明,編寫簡潔,如示例:

{ "log" :  { "log_file" : "/tmp/logpipe_case1_collector.log" , "log_level" : "INFO" } , "inputs" :  [ { "plugin":"so/logpipe-input-file.so" , "path":"/home/calvin/log" , "compress_algorithm":"deflate" } ] , "outputs" :  [ { "plugin":"so/logpipe-output-tcp.so" , "ip":"127.0.0.1" , "port":10101 } ]}

相關焦點

  • 日誌收集工具 logpipe 更新至 0.9.0 版本
    日誌收集工具 logpipe 0.9.0 已發布。
  • logpipe日誌採集工具
    是一個分布式、高可用的用於採集、傳輸、對接落地的日誌工具,採用了插件風格的框架結構設計,支持多輸入多輸出按需配置組件用於流式日誌收集架構,無第三方依賴。logpipe自帶了4個插件(今後將開發更多插件),分別是: logpipe-input-file 用inotify異步實時監控日誌目錄,一旦有文件新建或文件增長事件發生(注意:不是周期性輪詢文件修改時間和大小),立即捕獲文件名和讀取文件追加數據。該插件擁有文件大小轉檔功能,用以替代應用日誌庫對應功能,提高應用日誌庫寫日誌性能。該插件支持數據壓縮。
  • 網絡管理員必備的10個優秀日誌分析工具
    這些工具很有用,因為它們提供了對用戶本來不具備的數據的訪問權限。日誌分析工具從設備的日誌文件中收集數據,並將其轉換為易於閱讀的格式。在日誌分析工具中,以圖形將性能的相關數據顯示到儀錶盤。以這種集中格式,讀取性能數據要比嘗試直接讀取日誌文件作為文本文件容易得多。1.
  • ThinkPHP V5.0.11 暨 5.1.0 RC1 版本發布: 包含安全更新
    V5.1.0RC1版本是繼5.0版本之後又一個重大版本,ThinkPHP5.1在5.0的基礎上對底層架構做了進一步的改進,引入新特性,並提升版本要求。
  • 微軟遠程桌面iOS版10.0.1重新上架App Store 更新日誌沒有變化
    微軟遠程桌面iOS版10.0.1重新上架App Store 更新日誌沒有變化時間:2019-12-04 11:28   來源:IT之家   責任編輯:凌君 川北在線核心提示:原標題:微軟遠程桌面iOS版10.0.1重新上架App Store 更新日誌沒有變化 11月27日,微軟遠程桌面iOS版迎來了10.0.0
  • Docker Desktop 3.0.0 正式版發布:開始支持補丁增量更新和為 Mac...
    Docker Desktop 3.0.0 正式版發布:開始支持補丁增量更新和為 Mac 的 M1 設備引入支持 近期 Docker 發布了全新的 Docker Desktop 3.0.0 版本,這個版本採用補丁形式進行增量更新,減少了每次更新的容量。
  • 微軟已將3D畫圖程序更新至4.1805.15037.0版本
    作為 Windows 10 中自帶的一款「重量級」應用,「3D 畫圖」已於今日迎來了 4.1805.15037.0 版本。 本次更新主要帶來了一些改進,包括一種視覺上的絲帶效果,用戶會發現應用內顯示的圖標變得更加養眼(滑鼠懸停時在圖標下彈出文字)。
  • Kubernetes ELK 日誌收集
    Kubernetes EFK日誌收集Kubernetes日誌收集架構Kubernetes集群本身不提供收集日誌的解決方案,目前基於ELK日誌收集的方案主要有三種在節點運行一個agent收集日誌在Pod中包含一個sidecar容器來收集日誌直接通過應用程式將日誌信息推送到採集後端 (例kafka,es等)節點級別的日誌記錄節點日誌採集 通過在每個節點上運行一個日誌收集的Agent來採集數據,日誌採集agent是一種專用工具,用於將日誌數據推送到統一的後端
  • 燒機神器FurMark 1.16.0:顯卡功耗就靠它了
    FurMark是測試顯卡滿載功耗的最常用工具,今天它放出了最新的1.16.0版本,加入了對一大批新顯卡的支持,並增加了2K、4K解析度設置,可以更殘酷地壓榨顯卡了。更新日誌:1、增加新的解析度:P1440 UHQ、P2160 4K/UHD。
  • jSqlBox 2.0.0 版本更新,全棧資料庫持久層工具
    jSqlBox2.0.0已發布,V2.0.0版本更新添加了分庫分表等多處更新,並提供了Java8版本。
  • xJavaFxTool-spring 0.1.4 發布 基於 JavaFx 搭建的實用小工具集
    基於JavaFx和SpringBoot搭建的實用小工具集合xJavaFxTool-spring 更新至0.1.4版本,階段性版本完成,後續繼續添加小工具。
  • DOTA2大型更新7.20更新內容匯總 7.20版本更新日誌
    DOTA2大型更新7.20更新內容匯總 7.20版本更新日誌 就在最近DOTA2進行了一次大型更新,這次的新版本是7.20,想必很多玩家還不了解這次更新的內容是什麼,有什麼樣比較特殊的改動
  • CAT 0.1.0 版本發布,密碼算法調用工具包
    CAT,全稱Cryptographic Algorithm Tool,是一款小巧的Java加密與解密算法調用工具包。
  • DoraCMS V1.0.7 版本更新,內容管理系統
    DoraCMS版本更新 2015年11月12日11:04:04 DoraCMS版本號v1.0.7 DoraCMS更新內容: - 1、優化了相關字體圖標
  • NumPy 1.16.0 是最後一個支持 Python 2.7 的版本
    現在它發布了最後一個支持 Python 2.7 的版本 1.16.0,它將一直支持到 2020 年。開源科學計算包 NumPy 系統是 Python 的一種開源的數值計算擴展,該工具可用來存儲和處理大型矩陣。NumPy 1.16.0 支持 Python 2.7 和 3.5-3.7,不再支持 3.4。
  • Eruda 2.0 發布:移動端調試工具
    Eruda 移動端調試工具在 1.5.4 版本發布後有長達半年多的時間暫停了更新,於今年下半年重新投入精力開發,主要針對之前被詬病較多的 console 性能進行了優化,同時也對工具的整體外觀做了一定調整
  • Cacti 1.0.1 bug 修復版本,網絡流量圖形監測分析工具
    Cacti 1.0.1 發布了,該版本是 bug 修復版本,詳細更新日誌如下:feature
  • MobileMate-0.1b1 發布,音頻視頻轉換工具
    在 MobileMate-0.1a42.1 的基礎上,MobileMate 主要有如下改變: 1, 代碼、注釋和格式優化: 遵循 「Google Shell Style Guide Revision 1.25」 (http://google-styleguide.googlecode.com/svn/trunk/shell.xml?
  • Windows 8 Codecs更新至1.0.5 升級 LAV 濾鏡
    近日,作者低調發布了其最新版本 1.0.5,還是升級 LAV 濾鏡。  這是一套免費的解決方案,安裝完成之後你將可以使用任何媒體播放器來播放多媒體文件,包括 Windows Media Center 在內。它在安裝時會自動卸載系統上其它的解碼器。
  • 《塵埃拉力賽2.0》1.7版本更新:支持OpenVR,新賽道上線
    《塵埃拉力賽2.0》(Dirt Rally 2.0)在近日推出了1.7的版本更新,在提供了修復了一些問題和提供了一些新賽道和飾品外,最關鍵的一個點是對OpenVR的支持,但僅限於Steam版本。《塵埃拉力賽2.0》是由Codemasters製作的《塵埃》系列新作,本作帶來位於全球各處的特選經典拉力賽事地點,駕駛世界上最好的越野車輛。拉力賽地點分別在紐西蘭、阿根廷、西班牙、波蘭、澳大利亞和美國,包含8條FIA認證的拉力賽道。Codemasters今年早些時候宣布塵埃拉力賽2.0將獲得VR支持。