CentOS系統下Filebeat日志傳輸原理基于核心組件協作,實現從日志采集到傳輸的全流程,具體如下:
- 輸入(Input):通過配置文件定義監控的日志路徑、文件類型等,啟動時掃描指定位置,為每個日志文件啟動Harvester。
- Harvester(收割機):逐行讀取單個日志文件的新內容,將數據發送至libbeat組件,支持斷點續傳(記錄文件偏移量)。
- libbeat:聚合Harvester傳輸的事件數據,進行緩存、壓縮等處理,然后發送至配置的輸出目標(如Elasticsearch、Logstash、Kafka等)。
- 輸出(Output):支持多種目標類型,通過配置參數(如主機、端口、協議等)實現數據轉發,例如直接發送到Elasticsearch或經Logstash處理后存儲。
- 狀態管理:通過注冊表文件記錄每個文件的讀取偏移量,確保重啟后從斷點繼續傳輸,避免重復或丟失數據。
- 容錯與可靠性:支持重試機制,未確認傳輸的事件會在恢復后繼續發送,保證“至少一次”交付。
整個過程通過輕量級組件協作,實現高效、可靠的日志采集與傳輸,滿足CentOS系統日志管理需求。