Ubuntu上Filebeat日志收集基于輕量級組件協作,核心原理如下:
- 配置驅動:通過
filebeat.yml
指定日志路徑、輸出目標(如Elasticsearch/Logstash)等參數。
- 組件協作:
- Prospector(查找器):啟動時掃描配置路徑,發現日志文件并關聯對應
Harvester
。
- Harvester(采集器):逐行讀取單個日志文件的新內容,發送至
libbeat
緩沖區。
- libbeat(核心引擎):聚合事件數據,通過配置的輸出插件(如Elasticsearch、Logstash)發送至目標系統。
- 狀態管理:
- 記錄文件讀取偏移量至注冊表文件(
data/registry
),確保重啟后斷點續傳。
- 通過文件唯一標識符(非僅路徑)檢測文件是否已處理,避免重復讀取。
- 傳輸保障:
- 支持至少一次交付,未確認的事件會在重啟后重新發送。
- 可配置緩沖區、壓縮等優化網絡傳輸。
關鍵流程:配置→啟動→Prospector監控→Harvester采集→libbeat聚合→輸出至目標系統。