現主流的日誌分析系統有 logstash 和 flume,結合好多網上前輩的說法,彙總了一下,但願和你們分享與探討,有不一樣的想法歡迎留言。java
Flume
ruby
Cloudera提供的一個高可用的,高可靠的,分佈式的海量日誌採集、聚合和傳輸的系統;elasticsearch
支持定製各種數據發送方,便於收集數據,通常和 kafka 訂閱消息系統搭配較多;分佈式
目前有兩個版本,OG和NG,區別很大,感興趣的能夠去研究一下;ide
特色:工具
一、側重數據傳輸,有內部機制確保不會丟數據,用於重要日誌場景;spa
二、由java開發,沒有豐富的插件,主要靠二次開發;插件
三、配置繁瑣,對外暴露監控端口有數據。設計
logstash
日誌
elastic.co的一個開源的數據收集引擎,可動態的統一不一樣的數據源的數據至目的地;
目的處理並收集日誌格式,搭配elasticsearch進行分析,kibana進行頁面展現;
目前最新版本5.3,集成了上述兩個搭檔,參考官網詳解。
特色:
一、內部沒有一個persist queue,異常狀況可能會丟失部分數據;
二、由ruby編寫,須要ruby環境,插件不少;
三、偏重數據前期處理,分析方便。
flume |
logstash |
|
結構上 |
Source、Channel、Sink | Shipper、Broker、Indexer |
簡易程度 |
很繁瑣,要分別做source、channel、sink的手工配置,並且涉及到複雜的數據採集環境 | 簡潔清晰,三個部分的屬性都定義好了,只需選擇就好,並且能夠自行開發插件 |
歷史背景 |
最初設計的目的是爲了把數據傳入HDFS中,側重傳輸(多路由),重穩定性 | 側重對數據的預處理,由於日誌的字段須要大量的預處理,爲解析作鋪墊 |
對比 |
像是散裝的臺式機,使用較麻煩,工具繁多,須要根據業務選擇 | 更像是組裝好的臺式機,使用簡單方便,搭配ELK更高效 |