前言 本文將簡單介紹兩種基於Flume的日誌收集系統可能的架構方案,可根據不同的實際場景參考使用。 方案一 示例圖如下: 說明: 每個日誌源(http上報、日誌文件等)對應一個Agent-c用於收集對應日誌, 收集來的日誌可以流到Agent-s-1或Agent-s-2; Agent-c的Sink處理 ...
前言
本文將簡單介紹兩種基於Flume的日誌收集系統可能的架構方案,可根據不同的實際場景參考使用。
方案一
示例圖如下:
說明:
每個日誌源(http上報、日誌文件等)對應一個Agent-c用於收集對應日誌, 收集來的日誌可以流到Agent-s-1或Agent-s-2;
Agent-c的Sink處理器採用輪詢負載均衡策略,一方面可以分擔壓力,另一方面可增加系統可用性,即使一個Agent-s出現故障,系統可正常運行;
最後,Agent-s-1和Agent-s-2的通道處理器配置為分流模式,將不同project的事件分流到不同Channel中,最後交由不同的Sink處理,並存入到對應存儲系統中;
以上數據採集層和數據彙總層均支持水平擴展;
方案二
示例圖如下:
說明:
與方案一不同的是,該方案支持將事件流輸出到kafka隊列中,實現方式是在Agent-c上配置通道選擇器,配置為複製模式,複製一份相同的事件流到其它通道Sink3上,最終輸出到kafka隊列。
補充
以上圖例僅供參考,參考。。。
實際上,由於Source、Channel、SInk等組件都支持自定義實現,所以方案可以非常自由,我們可以自定義Sink組件,實現事件寫入到本地存儲系統的同時,寫入到kafka隊列中,只有想不到,沒有做不到;