2020年Kubernetes的7種最佳日誌管理工具

本文列舉了2020年最佳的7種日誌管理工具:Zebrium,Sematext,Loki by Grafana,ELK堆棧,Google Operations,CloudWatch,Fluentd,分別描述了各自的優缺點,並推薦了它們的最佳使用場景。

你可能想知道爲什麼要費心使用Kubernetes的日誌管理工具?

Kubernetes主導着容器編排市場,通常用於託管微服務。微服務的每個實例都會生成大量的日誌事件,這些事件很快就會變得難以管理。但更糟糕的是,當出現問題時,由於服務之間的複雜交互和幾乎無限個可能的故障模式,很難找到根本原因。這種潛在的麻煩推動了Kubernetes日誌管理工具的流行。

但是爲什麼我們有這麼多工具呢?是否有一個完美的工具可以滿足所有的需求,並使監視、日誌記錄和根本原因分析儘可能高效和快速?你可能已經猜到了,沒有。

大多數Kubernetes日誌管理工具都是ELK的變體,它們做着類似的事情,也有類似的侷限性。這些工具幫助你訪問日誌和搜索信息,但問題是,你需要知道要查找什麼。這些工具中的大多數還需要解析規則和警報規則才能正確工作。但是我遇到了一個例外,它不需要手動創建規則來自動檢測問題。

繼續閱讀我的Kubernetes 2020年最佳日誌管理工具列表。

1. Zebrium

https://www.zebrium.com/

你是否以爲另一個工具會先出現?Prometheus或者ELK?不,我把Zebrium放在第一位是因爲我看到這個工具有潛力成爲Kubernetes日誌管理中的下一個大熱門。

這家新創業公司最近被列入了“Gartner 2020年最值得關注的25家企業軟件初創公司”和“福布斯人工智能50強:美國最有前途的人工智能公司”。

說到成功,Zebrium最近還幫助Sweetwater公司將事件追蹤時間從3小時減少到僅幾分鐘。Zebrium甚至可以發現以前沒有注意到的隱藏問題。這是一個很好的特性,因爲它可以幫助客戶提前發現問題。

那麼是什麼讓Zebrium的方法在競爭中脫穎而出呢?它們使用人工智能(AI)來發現問題,並自動發現根本原因,而所有其他工具都依賴於用戶手動添加規則。Zebrium還可以作爲一個獨立的日誌管理平臺使用,也可以與ELK堆棧(他們稱之爲ZELK堆棧)或其他日誌管理器集成。

這聽起來像是夢想成真了,所以我在一個非常簡單的項目上測試了它。在這個測試中,Zebrium自動檢測到一個網絡調用超時的問題。我沒有爲此構建任何規則,也沒有手動監視系統。Zebrium剛剛通過其基於ML的算法發現了這個問題,並立即讓我知道。

有必要提一下,我不是專業的DevOps工程師,我還沒有在更大的項目中測試過Zebrium。

優點:

  • 上手容易;只需複製/粘貼定製helm或kubectl命令。

  • 自動檢測問題和根本原因,而不需要手動規則。

  • 可以作爲獨立的日誌管理工具使用,也可以作爲現有日誌管理工具(如ELK Stack)的ML插件。

缺點:

  • 不如競爭對手出名。

  • 免費計劃限制爲每天500mb,保留3天。

  • 支持Kubernetes,Docker和大多數常見的平臺,但還沒有對Windows的本地支持。

2. Sematext

https://sematext.com/

這是一個日誌管理和應用性能監視的解決方案。Sematex提供了系統狀態的全棧可見性。

Sematext不僅限於Kubernetes日誌,還對Kubernetes進行監視和警報(關於度量和日誌)。收集到的日誌會根據幾種不同的已知日誌格式自動進行解析/結構化,用戶還可以爲自定義日誌提供模式。它還公開了Elasticsearch API,因此你也可以使用任何與Elasticsearch一起工作的工具,比如Filebeat和Logstash。你可以將其作爲ELK的變體使用,也可以將其與本地的Sematext生態系統一起使用。該工具有助於創建特定的規則來監視特定的情況並捕獲異常。由於Sematex全面的實時儀表板,客戶可以控制和監控所有服務。

優點:

  • 與其他Sematext雲工具集成,如Experience和Infrastructure Monitoring。

  • 可通過停止接受日誌來配置超額成本控制。

  • ELK的靈活性。

缺點:

  • Sematext widget和Kibana不能混合在一個儀表板上。

  • 需要在日誌傳遞器中進行自定義解析,Sematext只在服務器端解析Syslog和JSON。

  • 薄弱的跟蹤功能,儘管他們計劃改進它。

3. Loki by Grafana

https://grafana.com/oss/loki

在Kubernetes日誌監控工具列表中排名第三的不是ELK,而是Loki。Loki是一個受Prometheus啓發的多租戶和高可用性日誌聚合工具。這個工具有助於收集日誌,但是用戶需要爲它構建手動規則。Loki與Grafana、Prometheus和Kubernetes一起工作。Loki可以讓你的內部流程更有效率。例如,它爲Paytm Insider節省了75%的日誌和監控成本。Loki的效率很高,因爲它不爲日誌內容建立索引,而是爲每個事件流的一組標籤建立索引。

優點:

  • 大的生態系統。

  • 豐富的可視化功能。

  • 由於沒有索引日誌內容而提高了效率。

缺點:

  • 未針對Kubernetes日誌管理進行優化。

  • 建立規則需要大量的手工工作。

  • 缺少內容索引可能會限制搜索性能。

4. ELK 堆棧

https://www.elastic.co/what-is/elk-stack

最後,ELK排名第四。ELK可能是最著名的日誌管理開源工具。ELK是Elasticsearch、Logstash和Kibana的首字母縮寫;每個組件負責日誌記錄過程的不同部分。Elasticsearch是一個強大的、可擴展的搜索系統,Logstash聚合和處理日誌,Kibana提供了一個分析和可視化界面,幫助用戶理解數據。它們共同爲Kubernetes提供了一個綜合的日誌解決方案。注意,ELK堆棧還有許多其他變體(如EFK堆棧——Elasticsearch、Fluentd和Kibana)。

很多大公司都在使用ELK,比如Adobe、T-Mobile和沃爾瑪,所以你可以肯定它的健壯性。一般來說,這是一個可靠且經過良好驗證的工具。我把它放在第四位是因爲它的複雜性和它工作所需的大量資源。

優點:

  • 這個工具很有名,並且有一個龐大的社區。

  • 非常廣泛的平臺支持。

  • Kibana有豐富的分析和可視化能力。

  • 需要對日誌和手動定義的警報規則進行復雜的解析。

缺點:

  • 難以維持規模。

  • 進行大量的調優,特別是針對大型環境。

  • 沉重的資源需求。

  • 有些功能需要付費許可。

5. Google Operations(以前的Stackdriver)

https://cloud.google.com/products/operations

谷歌Operations,也就是你可能知道的Stackdriver,是在技術巨頭谷歌的環境中監視、故障排除和改進應用性能的本機工具。它通過谷歌雲和你的應用程序收集指標、日誌和跟蹤。谷歌Operations相當於AWS上的CloudWatch,與CloudWatch一樣,它也有日誌記錄和監控解決方案。

雲日誌記錄與GKE深度集成,並默認添加到你創建的每個GKE集羣中。你的日誌存儲在日誌的數據存儲中,併爲搜索和可視化建立索引。雲日誌支持靈活的查詢(可以保存)、簡單的字段探索器和直方圖可視化,並可以與谷歌基礎設施中的其他工具無縫集成。

優點:

  • 實時日誌管理和分析。

  • 尺度上度量的內置可觀察性。

  • 大量的集成。

缺點:

  • 很難追蹤真正的延遲,因爲請求要經過谷歌雲平臺(GCP)的各個級別。

  • 僅適用於GCP環境。

  • 複雜的定價體系。事先很難估計某件東西要花多少錢。

6. CloudWatch

https://aws.amazon.com/cn/cloudwatch/

CloudWatch是Amazon Web Services提供的原生AWS服務。它從AWS收集監控和操作數據,並將其可視化到一個自動儀表板中。這允許你查看並關聯日誌和度量,以理解問題的根本原因。可以使用CloudWatch自己專門構建的查詢語言來分析日誌,該語言支持聚合、過濾器和正則表達式。你還可以通過Lambda將日誌發送到Elasticsearch。

總的來說,如果你已經在使用亞馬遜服務,CloudWatch是一個很好的選擇。它還可以在混合雲架構中使用,並使用代理或API來監控本地資源。CloudWatch被Airbnb、Deliveroo、9GAG等很多知名公司使用。由於DynamoDB TTL,它還可以每年爲公司節省數百萬美元。

優點:

  • 用於監控AWS資源。

  • 具有突發實例度量(t2 CPU信用平衡)。

  • 詳細的監視和自動伸縮組。

缺點:

  • 它只能用於AWS服務。

  • 儀表板沒有很多自定義選項。

  • 不支持事務跟蹤。

7. Fluentd

https://www.fluentd.org/

Fluentd是一個跨平臺的開源數據收集器,提供了一個統一的日誌層(但它不是一個獨立的日誌管理器)。這是一個非常流行的工具,擁有超過5000名用戶,包括Atlassian、Microsoft和Amazon。看看客戶,我們可以得出一個高水平的可靠性和性能。此外,Fluentd創建了一個統一的日誌記錄層,幫助你更有效地使用數據,並在軟件上快速迭代數據。這個工具可以幫助你每秒處理120,000條記錄,就像他們爲LINE所做的那樣。

優點:

  • 大型社區和插件生態系統。

  • 統一的日誌記錄層。

  • 經過驗證的可靠性和性能。

  • 上手容易;可在10分鐘內安裝完畢。

缺點:

  • 困難的配置。

  • 對數據轉換的支持有限。

  • 不是一個完整的日誌解決方案。

結論:如何選擇合適的工具?

首先,我應該解釋一下爲什麼我沒有把Prometheus列入名單,因爲我相信你會希望看到它。原因在於,本文主要關注日誌監控工具,而Prometheus只處理度量,不支持日誌。

所以,如果你厭倦了手工搜索日誌尋找根本原因,或者厭倦了構建和管理警報規則,那麼你應該嘗試一下Zebrium的AI和ML算法。它可能會節省大量時間,並將你從創建大量規則的繁重任務中解放出來。它看起來是一種非常有趣的日誌記錄方法。

但如果你正在尋找更主流的工具,並且知道要創建哪些警報規則——或者你不相信人工智能——試試Loki或Sematext,如果你以前沒有使用過日誌監控工具,它們是適合你的高效工具。如果你已經在使用Grafana或Sematext Cloud/Enterprise的產品,它們將特別有用。

如果你在你的項目中使用谷歌的GCP產品,那麼谷歌Operations可能是一個很好的、相當明顯的變體。

如果你的日誌有多個或外來的源,請嘗試使用統一的日誌記錄層Fluentd,但你仍然需要日誌記錄工具。當然,如果你是AWS用戶,CloudWatch將是你的自然選擇。

無論如何,我希望你喜歡這篇文章。如果你知道Kubernetes的其他日誌管理工具,請在評論中與我分享。我計劃在未來更新這篇文章。

原文鏈接:https://dzone.com/articles/7-best-log-management-tools-for-kubernetes-2020

Kubernetes管理員認證(CKA)培訓

本次CKA培訓課程,基於最新考綱,通過線下授課、考題解讀、模擬演練等方式,幫助學員快速掌握Kubernetes的理論知識和專業技能,並針對考試做特別強化訓練,讓學員能從容面對CKA認證考試,使學員既能掌握Kubernetes相關知識,又能通過CKA認證考試,學員可多次參加培訓,直到通過認證。點擊下方圖片或者閱讀原文鏈接查看詳情。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章