企業(yè)無論是已經(jīng)使用了開源日志收集工具,還是準(zhǔn)備選擇一款或多款工具,都有必要了解日志收集工具的關(guān)鍵要求。這些要求包括:高數(shù)據(jù)吞吐量、可靠性、可擴展性、靈活性、安全性以及資源(CPU和內(nèi)存)消耗等。本文討論了市面上流行的幾款日志收集工具(包括Logstash、Fluentd、Fluent Bit和Vector)及其主要特點。
1. Logstash
Logstash是最受歡迎的日志收集工具之一,它是ELK(Elasticsearch/Logstash/Kibana)架構(gòu)的一部分。
Logstash的主要優(yōu)勢:
● 處理結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。
● 支持更高的數(shù)據(jù)安全性,能夠匿名化或排除敏感字段。
● 支持?jǐn)?shù)百個插件,包括輸入、過濾和輸出等插件。過濾器插件執(zhí)行日志處理,比如聚合和解析。
雖然Logstash是一款可靠的日志收集工具,在處理日志數(shù)據(jù)方面有諸多選項,但如果內(nèi)存占用量小是個關(guān)鍵要求,本文介紹的其他日志收集工具可能更勝一籌。因為Logstash是用Java編寫的,所以需要JVM支持。如果企業(yè)打算從嵌入式設(shè)備和物聯(lián)網(wǎng)應(yīng)用程序收集日志,它不是最佳選擇。
2. Fluentd
Fluentd是一款日志收集工具,內(nèi)存占用量小,可以處理各種日志源和目的地。許多受支持的插件允許連接到多種類型的日志源和目的地。與其他日志收集工具一樣,F(xiàn)luentd的典型日志源包括應(yīng)用程序、基礎(chǔ)設(shè)施和消息隊列平臺,而通常目的地是日志管理工具和存儲歸檔系統(tǒng)。
Fluentd的主要優(yōu)勢:
● 支持許多日志源和目的地。
● 靈活、可擴展的解析選項,支持多種輸入格式。
● 擁有龐大的生態(tài)系統(tǒng),包括成百上千個插件,以及用Ruby自行編寫插件的功能。
● 支持Apache許可證,版本2.0。
● 供應(yīng)商中立(CNCF項目)。
如果企業(yè)需要中立的供應(yīng)商,F(xiàn)luentd是不錯的選擇。它還經(jīng)常與Kubernetes和容器化環(huán)境一起使用。
3. Fluent Bit
Fluent Bit不僅是一款日志收集工具,還可以用作數(shù)據(jù)流處理工具,并充當(dāng)將日志數(shù)據(jù)轉(zhuǎn)發(fā)到Fluentd的運送工具。Fluent Bit在Kubernetes集群等容器化環(huán)境中運行順暢。Fluent Bit可以擴展并仍能節(jié)省資源,因為它占用的空間很小。雖然Fluent Bit經(jīng)常用在Kubernetes環(huán)境中,但它也可以部署在裸機服務(wù)器、虛擬機和嵌入式設(shè)備上。
Fluent Bit的主要優(yōu)勢:
● 輕量級設(shè)計,內(nèi)存占用量極?。ㄍǔ2坏?MB)。
● 易于擴展的架構(gòu)。
● 可插入式架構(gòu),有許多輸入、過濾器和輸出插件。
● 支持基于指標(biāo)和基于日志的有效負(fù)載。
● 支持通過安全的連接將日志發(fā)送到存儲后端。
● 使用SQL,支持?jǐn)?shù)據(jù)流處理。
● 支持Apache許可證,版本2.0。
● 供應(yīng)商中立(CNCF項目)。
Fluent Bit從眾多日志源收集日志和指標(biāo),并將它們發(fā)送到不同的目的地。Fluent Bit真正大放異彩的地方在于嵌入式、邊緣及其他資源受限的環(huán)境,因為精簡的運行時環(huán)境結(jié)合眾多的輸入/輸出選項至關(guān)重要。
4. Vector
Vector是一款高性能的日志收集工具。與本文中的其他日志收集工具相比,這款產(chǎn)品比較新。
Vector的主要優(yōu)勢:
● 高效的內(nèi)存/CPU消耗和高數(shù)據(jù)吞吐量。
● 良好的可靠性,正確性和交付方面有保證。
● 包括自定義DSL,以一種安全、高性能的方式動態(tài)轉(zhuǎn)換數(shù)據(jù)。
● 支持基于指標(biāo)和日志的有效負(fù)載。
● 大量的輸入和輸出集成。
● 可以部署為代理或聚合器。
由于廣泛的部署選項、同時支持指標(biāo)和日志以及可用集成的數(shù)量,使Vector成為一種出色而靈活的選擇。由于Vector用Rust編寫,提供了內(nèi)存安全和效率保證,使其在其他現(xiàn)有工具中獨樹一幟。Vector引入了單元測試框架,可以更輕松地維護(hù)復(fù)雜的日志收集工具拓?fù)洹?/p>
此外,Vector的軟件組件竭力為傳送到目的地的日志和事件提供交付保證。Vector的用戶還可以獲得Vector組件的代碼總體穩(wěn)定性方面的保證。無論在新環(huán)境中還是在舊環(huán)境中工作,它都值得認(rèn)真考慮。
結(jié) 語
很難判定哪一款工具主導(dǎo)市場,企業(yè)選擇合適的日志收集工具取決于其特定需求和要求。比如說,如果企業(yè)在為需要資源消耗少的物聯(lián)網(wǎng)應(yīng)用程序?qū)ふ胰罩臼占ぞ?,那么最好使用Vector或Fluent Bit,而不是Logstash。如果企業(yè)看重供應(yīng)商的中立性,CNCF支持的項目(比如Fluentd和Fluent Bit)倒是不錯的選擇。仔細(xì)檢查性能、資源消耗、支持眾多輸入和輸出格式的靈活性、可擴展性、可靠性、供應(yīng)商鎖定和安全要求,可以幫助企業(yè)找到適合的日志收集工具。
參考鏈接: