五款值得關(guān)注的Kubernetes日志監(jiān)控工具
Kubernetes在容器編排市場(chǎng)中占主導(dǎo)地位,推動(dòng)企業(yè)向微服務(wù)演進(jìn)。微服務(wù)的每個(gè)實(shí)例都會(huì)生成大量日志事件,這些事件很快就變得難以管理。但更復(fù)雜的是當(dāng)出現(xiàn)問題時(shí),由于服務(wù)之間復(fù)雜的交互作用,以及可能的故障模式,導(dǎo)致很難找到根本原因。潛在的問題使得Kubernetes日志管理工具變得十分重要。
企業(yè)總是設(shè)法尋找適用的工具滿足需求,并讓監(jiān)控,日志記錄和故障分析盡可能高效和快速。
Zebrium
你可能會(huì)優(yōu)先考慮Prometheus(普羅米修斯)或ELK?但Zebrium卻也能作為優(yōu)先選項(xiàng)。
這家新成立的初創(chuàng)公司最近入選了“Gartner 2020年值得關(guān)注的25家企業(yè)軟件初創(chuàng)企業(yè)”。
談到優(yōu)秀實(shí)踐,Zebrium最近還幫助Sweetwater將事件跟蹤時(shí)間從3小時(shí)減少到只有幾分鐘。Zebrium甚至可以發(fā)現(xiàn)以前未發(fā)現(xiàn)的隱藏問題。這是一項(xiàng)出色的功能,因?yàn)樗梢詭椭趩栴}影響客戶之前發(fā)現(xiàn)問題。
那么,什么使Zebrium在競(jìng)爭(zhēng)中脫穎而出?Zebrium使用人工智能來發(fā)現(xiàn)問題以及自動(dòng)發(fā)現(xiàn)根本原因,而所有其他工具都依賴于用戶手動(dòng)添加規(guī)則。Zebrium也可以用作獨(dú)立的日志管理平臺(tái),也可以與ELK Stack或其他日志管理器集成。
優(yōu)點(diǎn):易于啟動(dòng);只需復(fù)制/粘貼自定義的HELM或kubectl命令;自動(dòng)檢測(cè)問題和根本原因,無需手動(dòng)規(guī)則;可以用作獨(dú)立的日志管理工具,也可以用作現(xiàn)有日志管理工具(例如ELK Stack)的機(jī)器學(xué)習(xí)附件。
缺點(diǎn):免費(fèi)計(jì)劃限制為每天500 MB,保留3天;支持Kubernetes,Docker和大多數(shù)常見平臺(tái),但不支持Windows。
Sematext
用于日志管理和應(yīng)用程序性能監(jiān)控的解決方案。Sematex提供了系統(tǒng)狀態(tài)的全棧可見性。
Sematext不僅限于Kubernetes日志,還可以監(jiān)控和Kubernetes(基于度量標(biāo)準(zhǔn)和日志)。收集到的日志會(huì)自動(dòng)針對(duì)幾種不同的已知日志格式進(jìn)行解析/結(jié)構(gòu)化,并且用戶還可以提供自定義日志的模式。它還公開了Elasticsearch API,因此也可以使用任何與Elasticsearch配合使用的工具,例如Filebeat和Logstash與Sematex??梢詫⑵溆米鱁LK的變體或與本機(jī)Sematext生態(tài)系統(tǒng)一起使用。該工具有助于創(chuàng)建特定規(guī)則,來監(jiān)控特定情況并捕獲異常。借助Sematex全面的實(shí)時(shí)儀表板,客戶可以控制和監(jiān)控所有服務(wù)。
優(yōu)點(diǎn):與其他Sematext云工具集成;可配置超限來阻止日志被接受從而控制成本;具有ELK的靈活性。
缺點(diǎn):
Sematext小部件和Kibana不能在一個(gè)儀表板上混合使用;自定義解析需要在日志傳送器中完成,Sematext僅在服務(wù)器端解析Syslog和JSON;跟蹤功能較弱,但已經(jīng)在計(jì)劃進(jìn)行改進(jìn)。
Loki
Loki是一個(gè)受Prometheus啟發(fā)的多租戶和高度可用的日志聚合工具。這款工具有助于收集日志,但是用戶將需要為其建立手動(dòng)規(guī)則。Loki與Grafana,Prometheus和Kubernetes合作。Loki可以讓內(nèi)部流程更有效率。如,它節(jié)省了Paytm Insider 75%的日志記錄和監(jiān)控成本。Loki不會(huì)索引你的日志內(nèi)容,而是僅索引每個(gè)事件流的一組標(biāo)簽,因此效率很高。
優(yōu)點(diǎn):擁有大型的生態(tài)系統(tǒng);豐富的可視化功能;由于未索引日志內(nèi)容而提高了效率。
缺點(diǎn):未針對(duì)Kubernetes日志管理進(jìn)行優(yōu)化;大量的架構(gòu)規(guī)則手工工作;缺少內(nèi)容索引可能會(huì)限制搜索性能。
ELK Stack
ELK是很著名的日志管理開源工具。ELK是Elasticsearch,Logstash和Kibana的首字母縮寫。每個(gè)組件負(fù)責(zé)日志記錄過程的不同部分。Elasticsearch是一個(gè)功能強(qiáng)大且可擴(kuò)展的搜索系統(tǒng),Logstash聚合并處理日志,而Kibana提供了一個(gè)分析和可視化界面,可幫助用戶理解數(shù)據(jù)。它們共同為Kubernetes提供了全面的日志記錄解決方案。但ELK Stack還有許多其他變體,如EFK Stack,即Elasticsearch,F(xiàn)luentd和Kibana組成。
ELK被Adobe,T-Mobile和沃爾瑪?shù)仍S多大公司使用,因此可以證明它的可生產(chǎn)性。所以ELK是一個(gè)可靠且經(jīng)過驗(yàn)證的工具。但他會(huì)帶來復(fù)雜性和工作所需的大量資源。
優(yōu)點(diǎn):ELK是眾所周知的,并且擁有龐大的社區(qū);非常廣泛的平臺(tái)支持;Kibana中豐富的分析和可視化功能;需要對(duì)日志和手動(dòng)定義的警報(bào)規(guī)則進(jìn)行復(fù)雜的分析。
缺點(diǎn):維持規(guī)模難度大;需要很多調(diào)整,特別是對(duì)于大型環(huán)境;大量的資源需求;某些功能需要付費(fèi)許可證。
Fluentd
Fluentd是一個(gè)跨平臺(tái)的開源數(shù)據(jù)收集器,提供了統(tǒng)一的日志記錄層,但它不是獨(dú)立的日志管理器。作為頗受歡迎的工具,擁有Atlassian,微軟和亞馬遜等5000多個(gè)客戶??吹竭@些大型客戶,可印證其可靠性和性能。此外,F(xiàn)luentd還創(chuàng)建了一個(gè)統(tǒng)一的日志記錄層,可幫助更有效地使用數(shù)據(jù)并在軟件上快速迭代數(shù)據(jù)。它可以幫助你每秒處理120000條記錄。
優(yōu)點(diǎn):大型社區(qū)和插件生態(tài)系統(tǒng);統(tǒng)一日志記錄層;經(jīng)過驗(yàn)證的可靠性和性能??梢栽诓坏?0分鐘的時(shí)間內(nèi)安裝完畢。
缺點(diǎn):難以配置;對(duì)轉(zhuǎn)換數(shù)據(jù)的支持有限;不是完整的日志記錄解決方案。
結(jié)語
你可能會(huì)問,為什么沒有將Prometheus列入名單,因?yàn)楸疚膶W⒂谌罩颈O(jiān)控工具,而Prometheus處理指標(biāo)不支持日志。
所以,如果你對(duì)手動(dòng)搜索日志的不擅長(zhǎng),或者不愿意構(gòu)建和管理警報(bào)規(guī)則,則應(yīng)嘗試使用基于機(jī)器學(xué)習(xí)算法的Zebrium。這可能會(huì)節(jié)省大量時(shí)間,并擺脫創(chuàng)建大量規(guī)則的繁瑣任務(wù)。
如果你正在尋找更主流的東西,并且知道要?jiǎng)?chuàng)建哪些規(guī)則,可嘗試使用Loki或Sematext,它們將是非常適合的高效工具。
此外,你希望在公有云中使用日志監(jiān)控,則不妨使用云提供商提供的服務(wù),比如AWS的CloudWatch,而他們僅對(duì)自家云中的業(yè)務(wù)的提供支持。
如果你的日志有多個(gè)或特殊的來源,則可嘗試使用Fluentd及其統(tǒng)一的日志記錄層,但是你仍然需要一個(gè)日志記錄工具。