在集群化環(huán)境里萬能文章采集 ,日志采集是重要基礎設施互動式宣講。
開源主流解決方案是基于flume-ng效高性,但在實際使用中發(fā)現(xiàn)flume-ng存在諸多問題,比如flume-ng的spoolDir采集器只能對文件名轉檔后的大小不能變化的最終日志文件進行采集自動化,不能滿足采集時效性要求提升,如果要采集正在被不斷追加的日志文件,只能用exec采集器搭配tail -F命令落地生根,但tail -F命令又不能通配目標目錄中將來新增的未知文件名的特點。其它解決方案如logstash由于是JAVA開發(fā),內存占用和性能都不能達到最優(yōu)有效保障。
作為一個日志采集的本地代理大數據,內存占用應該小而受控,性能應該高效講實踐,耗費CPU低對應用影響盡可能小數字技術,要能異步實時追蹤日志文件增長,某些應用會在目標目錄下產生多個日志文件甚至現(xiàn)在不能確定將來的日志文件名市場開拓,架構上要支持多輸入多輸出流式日志采集傳輸措施,為了達成以上需求,我研究了所需技術要落實好,評估實現(xiàn)難度并不高緊密相關,就自研了logpipe。
logpipe是一個分布式先進技術、高可用的用于采集培訓、傳輸、對接落地的日志工具,采用了插件風格的框架結構設計重要工具,支持多輸入多輸出按需配置組件用于流式日志收集架構積極拓展新的領域,無第三方依賴。
logpipe的一種用法是能異步實時監(jiān)控集群里的所有日志目錄非常激烈,一旦有文件新增或追加寫競爭力所在,立即采集并傳輸?shù)酱蟠鎯ι弦韵嗤罩疚募喜⒙涞兀蛘邔懭際DFS領域。異步意味著不影響應用輸出日志的性能溝通機製,實時意味著一有日志立即采集,很多日志采集工具如flume-ng帶來全新智能、logstash介紹文檔通篇不提采集方式是否實時還是周期性的實現了超越,這很關鍵。
logpipe概念樸實去完善、使用方便橋梁作用、配置簡練,沒有如sink等一大堆新名詞求索。
一鍵文章采集logpipe由若干個input讓人糾結、事件總線和若干個output組成。啟動logpipe管理進程(monitor)穩定發展,派生一個工作進程(worker)基石之一,監(jiān)控工作進程崩潰則重啟工作進程。工作進程裝載配置加載若干個input插件和若干個output插件增持能力,進入事件循環(huán)共同努力,任一input插件產生消息后輸出給所有output插件。
logpipe自帶了5個插件(今后將開發(fā)更多插件)追求卓越,分別是:
* logpipe-input-file 用inotify異步實時監(jiān)控日志目錄逐漸完善,一旦有文件新建或文件增長事件發(fā)生(注意:不是周期性輪詢文件修改時間和大小)合理需求,立即捕獲文件名和讀取文件追加數(shù)據(jù)文章采集程序插件是目前主流。該插件擁有文件大小轉檔功能,用以替代應用日志庫對應功能高質量,提高應用日志庫寫日志性能文章采集助手充分發揮。該插件支持數(shù)據(jù)壓縮文章采集助手。
* logpipe-output-file 一旦輸入插件有消息產生后用相同的文件名落地文件數(shù)據(jù)管理。該插件支持數(shù)據(jù)解壓設計。
* logpipe-input-tcp 創(chuàng)建TCP服務偵聽端,接收客戶端連接改進措施,一旦客戶端連接上有新消息到來提供堅實支撐,立即讀取形勢。
* logpipe-output-tcp 創(chuàng)建TCP客戶端,連接服務端取得明顯成效,一旦輸入插件有消息產生后輸出到該連接。
* logpipe-input-exec 執(zhí)行長命令并捕獲輸出
* logpipe-output-hdfs 一旦輸入插件有消息產生后用相同的文件名落地到HDFS中數據。該插件支持數(shù)據(jù)解壓創新的技術。
使用者可根據(jù)自身需求,按照插件開發(fā)規(guī)范顯著,開發(fā)定制插件文章采集程序插件快速增長,如IBMMQ輸入插件、HDFS輸出插件等占。
文章地址:http://www.61py.com/article/other/zjqhhjlrzcjszyjcss.html