五款值得關注的Kubernetes日志監(jiān)控工具
Kubernetes在容器編排市場中占主導地位,推動企業(yè)向微服務演進。微服務的每個實例都會生成大量日志事件,這些事件很快就變得難以管理。但更復雜的是當出現(xiàn)問題時,由于服務之間復雜的交互作用,以及可能的故障模式,導致很難找到根本原因。潛在的問題使得Kubernetes日志管理工具變得十分重要。
企業(yè)總是設法尋找適用的工具滿足需求,并讓監(jiān)控,日志記錄和故障分析盡可能高效和快速。
Zebrium
你可能會優(yōu)先考慮Prometheus(普羅米修斯)或ELK?但Zebrium卻也能作為優(yōu)先選項。
這家新成立的初創(chuàng)公司最近入選了“Gartner 2020年值得關注的25家企業(yè)軟件初創(chuàng)企業(yè)”。

談到優(yōu)秀實踐,Zebrium最近還幫助Sweetwater將事件跟蹤時間從3小時減少到只有幾分鐘。Zebrium甚至可以發(fā)現(xiàn)以前未發(fā)現(xiàn)的隱藏問題。這是一項出色的功能,因為它可以幫助在問題影響客戶之前發(fā)現(xiàn)問題。
那么,什么使Zebrium在競爭中脫穎而出?Zebrium使用人工智能來發(fā)現(xiàn)問題以及自動發(fā)現(xiàn)根本原因,而所有其他工具都依賴于用戶手動添加規(guī)則。Zebrium也可以用作獨立的日志管理平臺,也可以與ELK Stack或其他日志管理器集成。
優(yōu)點:易于啟動;只需復制/粘貼自定義的HELM或kubectl命令;自動檢測問題和根本原因,無需手動規(guī)則;可以用作獨立的日志管理工具,也可以用作現(xiàn)有日志管理工具(例如ELK Stack)的機器學習附件。
缺點:免費計劃限制為每天500 MB,保留3天;支持Kubernetes,Docker和大多數(shù)常見平臺,但不支持Windows。
Sematext
用于日志管理和應用程序性能監(jiān)控的解決方案。Sematex提供了系統(tǒng)狀態(tài)的全??梢娦?。

Sematext不僅限于Kubernetes日志,還可以監(jiān)控和Kubernetes(基于度量標準和日志)。收集到的日志會自動針對幾種不同的已知日志格式進行解析/結構化,并且用戶還可以提供自定義日志的模式。它還公開了Elasticsearch API,因此也可以使用任何與Elasticsearch配合使用的工具,例如Filebeat和Logstash與Sematex。可以將其用作ELK的變體或與本機Sematext生態(tài)系統(tǒng)一起使用。該工具有助于創(chuàng)建特定規(guī)則,來監(jiān)控特定情況并捕獲異常。借助Sematex全面的實時儀表板,客戶可以控制和監(jiān)控所有服務。
優(yōu)點:與其他Sematext云工具集成;可配置超限來阻止日志被接受從而控制成本;具有ELK的靈活性。
缺點:
Sematext小部件和Kibana不能在一個儀表板上混合使用;自定義解析需要在日志傳送器中完成,Sematext僅在服務器端解析Syslog和JSON;跟蹤功能較弱,但已經(jīng)在計劃進行改進。
Loki
Loki是一個受Prometheus啟發(fā)的多租戶和高度可用的日志聚合工具。這款工具有助于收集日志,但是用戶將需要為其建立手動規(guī)則。Loki與Grafana,Prometheus和Kubernetes合作。Loki可以讓內(nèi)部流程更有效率。如,它節(jié)省了Paytm Insider 75%的日志記錄和監(jiān)控成本。Loki不會索引你的日志內(nèi)容,而是僅索引每個事件流的一組標簽,因此效率很高。

優(yōu)點:擁有大型的生態(tài)系統(tǒng);豐富的可視化功能;由于未索引日志內(nèi)容而提高了效率。
缺點:未針對Kubernetes日志管理進行優(yōu)化;大量的架構規(guī)則手工工作;缺少內(nèi)容索引可能會限制搜索性能。
ELK Stack
ELK是很著名的日志管理開源工具。ELK是Elasticsearch,Logstash和Kibana的首字母縮寫。每個組件負責日志記錄過程的不同部分。Elasticsearch是一個功能強大且可擴展的搜索系統(tǒng),Logstash聚合并處理日志,而Kibana提供了一個分析和可視化界面,可幫助用戶理解數(shù)據(jù)。它們共同為Kubernetes提供了全面的日志記錄解決方案。但ELK Stack還有許多其他變體,如EFK Stack,即Elasticsearch,F(xiàn)luentd和Kibana組成。

ELK被Adobe,T-Mobile和沃爾瑪?shù)仍S多大公司使用,因此可以證明它的可生產(chǎn)性。所以ELK是一個可靠且經(jīng)過驗證的工具。但他會帶來復雜性和工作所需的大量資源。
優(yōu)點:ELK是眾所周知的,并且擁有龐大的社區(qū);非常廣泛的平臺支持;Kibana中豐富的分析和可視化功能;需要對日志和手動定義的警報規(guī)則進行復雜的分析。
缺點:維持規(guī)模難度大;需要很多調(diào)整,特別是對于大型環(huán)境;大量的資源需求;某些功能需要付費許可證。
Fluentd
Fluentd是一個跨平臺的開源數(shù)據(jù)收集器,提供了統(tǒng)一的日志記錄層,但它不是獨立的日志管理器。作為頗受歡迎的工具,擁有Atlassian,微軟和亞馬遜等5000多個客戶??吹竭@些大型客戶,可印證其可靠性和性能。此外,F(xiàn)luentd還創(chuàng)建了一個統(tǒng)一的日志記錄層,可幫助更有效地使用數(shù)據(jù)并在軟件上快速迭代數(shù)據(jù)。它可以幫助你每秒處理120000條記錄。

優(yōu)點:大型社區(qū)和插件生態(tài)系統(tǒng);統(tǒng)一日志記錄層;經(jīng)過驗證的可靠性和性能。可以在不到10分鐘的時間內(nèi)安裝完畢。
缺點:難以配置;對轉換數(shù)據(jù)的支持有限;不是完整的日志記錄解決方案。
結語
你可能會問,為什么沒有將Prometheus列入名單,因為本文專注于日志監(jiān)控工具,而Prometheus處理指標不支持日志。
所以,如果你對手動搜索日志的不擅長,或者不愿意構建和管理警報規(guī)則,則應嘗試使用基于機器學習算法的Zebrium。這可能會節(jié)省大量時間,并擺脫創(chuàng)建大量規(guī)則的繁瑣任務。
如果你正在尋找更主流的東西,并且知道要創(chuàng)建哪些規(guī)則,可嘗試使用Loki或Sematext,它們將是非常適合的高效工具。
此外,你希望在公有云中使用日志監(jiān)控,則不妨使用云提供商提供的服務,比如AWS的CloudWatch,而他們僅對自家云中的業(yè)務的提供支持。
如果你的日志有多個或特殊的來源,則可嘗試使用Fluentd及其統(tǒng)一的日志記錄層,但是你仍然需要一個日志記錄工具。