監(jiān)控和測(cè)試工具分為實(shí)時(shí)數(shù)據(jù)庫(kù)饺蔑、數(shù)據(jù)采集工具巍耗、可視化工具秋麸、意見(jiàn)反饋工具、日志記錄器等等炬太。在過(guò)去的幾年里灸蟆,開(kāi)源產(chǎn)品和商業(yè)監(jiān)控應(yīng)用程序發(fā)生了爆炸式增長(zhǎng),下面是其中10個(gè)最受歡迎的開(kāi)源云監(jiān)控工具亲族。
Prometheus
Prometheus是一個(gè)開(kāi)源云監(jiān)控解決方案炒考,它可以處理時(shí)間序列監(jiān)控等問(wèn)題。它是CNCF支持的9個(gè)項(xiàng)目之一霎迫,也是繼Kubernetes之后由CNCF主辦的第二個(gè)項(xiàng)目斋枢。因?yàn)楣雀琛oreOS知给、RedHat瓤帚、IBM等廠商的支持描姚,使得Prometheus成為監(jiān)控云應(yīng)用程序的首選。Prometheus最初是由音樂(lè)網(wǎng)站SoundCloud開(kāi)發(fā)的戈次,現(xiàn)在已經(jīng)成為Docker生態(tài)系統(tǒng)中不可或缺的方案CoreOS團(tuán)隊(duì)也在積極使用Prometheus來(lái)改進(jìn)Kubernetes的性能轩勘。
Prometheus已經(jīng)發(fā)展成為一種先進(jìn)的系統(tǒng)警報(bào)和監(jiān)視工具包,能夠監(jiān)視包括系統(tǒng)怯邪、Hadoop集群绊寻、語(yǔ)言運(yùn)行,以及Python擎颖、Go等應(yīng)用程序堆棧。很多人將它與Graphite(見(jiàn)下文)進(jìn)行比較观游。簡(jiǎn)而言之搂捧,Prometheus是一個(gè)開(kāi)源監(jiān)控系統(tǒng)、時(shí)間序列數(shù)據(jù)庫(kù)和實(shí)現(xiàn)代碼的框架懂缕。 但是Prometheus不會(huì)生成指標(biāo)允跑,企業(yè)必須讓它能夠通過(guò)http以一種能夠理解的語(yǔ)言使指標(biāo)可用。
Graphite
Graphite是一種流行的開(kāi)源工具搪柑,可以構(gòu)建基于web的用于監(jiān)視和分析的儀表板聋丝。它最初是由Orbitz的Chris Davis在十多年前創(chuàng)建和設(shè)計(jì),用于監(jiān)視和繪制計(jì)算機(jī)系統(tǒng)的性能工碾。目前被許多大型企業(yè)如GitHub弱睦、Salesforce和Reddit等用于企業(yè)系統(tǒng)。雖然Graphite不能收集指標(biāo)或與指標(biāo)收集器捆綁在一起渊额,但要找到一個(gè)通用指標(biāo)收集器來(lái)將指標(biāo)提供給Graphite并不難况木。Graphite由三部分組成:監(jiān)聽(tīng)時(shí)間序列數(shù)據(jù)的Carbon,簡(jiǎn)單數(shù)據(jù)庫(kù)Whisper(類(lèi)似于RRDtool)以及名為Graphite-web的webapp旬迹,它可根據(jù)需要呈現(xiàn)圖表火惊。Graphite在企業(yè)中仍然非常流行,其中一個(gè)原因可能是自動(dòng)化水平較高奔垦,Graphite中所有新數(shù)據(jù)點(diǎn)都在數(shù)據(jù)庫(kù)中自動(dòng)創(chuàng)建屹耐。
由于圍繞生態(tài)系統(tǒng)開(kāi)發(fā)了太多工具,開(kāi)源工具的目前狀態(tài)并不明朗椿猎。因?yàn)橄馟raphite這樣的工具既可以獨(dú)立運(yùn)行惶岭,也可以與其他工具集成。
應(yīng)用監(jiān)控工具
Riemann
您可以使用Graphite webapp來(lái)繪制圖表犯眠,但是如果您想使用另一個(gè)工具呢?盡管Carbon會(huì)監(jiān)聽(tīng)指標(biāo)并將其寫(xiě)入存儲(chǔ)數(shù)據(jù)庫(kù)俗他,但它確實(shí)在規(guī)模方面有短板,許多用戶(hù)喜歡用Riemann代替它阔逼。 然而兆衅,Riemann并不是一個(gè)度量收集器,而是一個(gè)流處理器。 Riemann用于聚合和處理事件流羡亩,同時(shí)還添加了警報(bào)功能摩疑。作為流處理系統(tǒng),它可用于將事件提供給Prometheus數(shù)據(jù)庫(kù)畏铆。 Riemann在Clojure開(kāi)發(fā)人員中特別受歡迎雷袋,因?yàn)樗呐渲梦募?shí)際上是可以高度定制和構(gòu)建的Clojure代碼。 Riemann主要通過(guò)從事件流(如度量標(biāo)準(zhǔn)辞居、日志楷怒、事件、主機(jī)和服務(wù))收集數(shù)據(jù)瓦灶,然后根據(jù)需要存儲(chǔ)鸠删、圖表或警報(bào)來(lái)工作。
Elasticsearch
Elasticsearch是ELK堆棧的一部分贼陶,它還具有Kibana刃泡、Beats和Logstash功能。雖然ELK堆棧被設(shè)計(jì)成一個(gè)集成的解決方案碉怔,但是Elasticsearch經(jīng)常被用作支持工具烘贴,并且其補(bǔ)充功能非常強(qiáng)大。Elasticsearch是能夠通過(guò)廣泛而復(fù)雜的API訪問(wèn)的搜索引擎撮胧,該API支持快速搜索桨踪,以支持?jǐn)?shù)據(jù)發(fā)現(xiàn)應(yīng)用程序。它幾乎兼容所有數(shù)據(jù)芹啥,并與其他查詢(xún)數(shù)據(jù)庫(kù)的工具廣泛集成馒闷。
Kibana
Kibana是一個(gè)分析和可視化平臺(tái),它建立在Elasticsearch的基礎(chǔ)上叁征,讓人可以直觀地瀏覽彈性堆棧纳账。由于Kibana只是堆棧的可視化部分,所以它經(jīng)常被替換為Grafana捺疼、Graphite或其他可視化工具疏虫。
Logstash
Logstash是另一個(gè)與Riemann類(lèi)似的流處理系統(tǒng),可以從日志啤呼、指標(biāo)卧秘、web應(yīng)用程序、數(shù)據(jù)存儲(chǔ)和各種AWS服務(wù)中攝取流數(shù)據(jù)官扣。Logstash還有一個(gè)輸出插件翅敌,企業(yè)可以通過(guò)它向Riemann發(fā)送特定的事件,比如可警報(bào)的事件或需要Riemann操作的事件惕蹄。同時(shí)它也是受歡迎的獨(dú)立工具蚯涮,經(jīng)常與其他工具一起使用治专。
將這些工具結(jié)合起來(lái)使用看起來(lái)就像是晚間肥皂劇一樣復(fù)雜,表面上看他們好像是其他工具的替代品遭顶,但實(shí)際上這些工具都是交叉兼容的张峰,可以協(xié)作處理很多問(wèn)題。
Grafana
Grafana是一個(gè)開(kāi)源的棒旗、功能豐富的度量?jī)x表板和圖形編輯器喘批,用于Graphite、ElasticSearch铣揉、OpenTSDB饶深、Prometheus和流數(shù)據(jù)庫(kù)。Grafana允許用戶(hù)輕松創(chuàng)建和編輯儀表板逛拱,同時(shí)允許查詢(xún)和可視化指標(biāo)敌厘,無(wú)論數(shù)據(jù)存儲(chǔ)在哪里。Grafana同時(shí)支持高質(zhì)量的交互式和可視化圖表橘券,這使它變得非常受歡迎额湘。
Grafana
Kafka
Kafka是另一個(gè)有趣的流處理系統(tǒng)卿吐,它的流是無(wú)限制的旁舰、不斷更新的數(shù)據(jù)集。雖然它最初是由LinkedIn開(kāi)發(fā)來(lái)作為一個(gè)可擴(kuò)展的公共子消息傳遞系統(tǒng)嗡官,但是現(xiàn)在它已經(jīng)發(fā)展成為實(shí)時(shí)數(shù)據(jù)管道箭窜、分布式和復(fù)制日志分析器以及統(tǒng)一的數(shù)據(jù)集成堆棧。Kafka通常安裝在每個(gè)需要在其他地方生成或轉(zhuǎn)發(fā)數(shù)據(jù)的主機(jī)上衍腥,這些主機(jī)的集合形成一個(gè)Kafka集群磺樱。
FluentD
FluentD這是CNCF主持的另一個(gè)項(xiàng)目,是用C語(yǔ)言編寫(xiě)的婆咸。FluentD是一個(gè)開(kāi)源的解決方案竹捉,旨在統(tǒng)一數(shù)據(jù)收集和使用。它聲稱(chēng)“快速啟動(dòng)”菜單可以使用戶(hù)實(shí)時(shí)擁有超過(guò)125種系統(tǒng)類(lèi)型的“l(fā)og-everything”體系結(jié)構(gòu)尚骄。該聲明得到了CNCF的支持块差,而FluentD的最大用戶(hù)目前從50,000多臺(tái)服務(wù)器收集信息。
Weave Scope
Weave Scope的功能包括監(jiān)視倔丈、可視化憨闰、管理和故障排除。它還可以自動(dòng)創(chuàng)建應(yīng)用程序的“地圖”需五,而不需要任何編碼或設(shè)置鹉动。這允許您在系統(tǒng)級(jí)別監(jiān)視和控制堆棧,并實(shí)時(shí)查看系統(tǒng)正在執(zhí)行的操作以及原因宏邮。通過(guò)零配置和對(duì)所有進(jìn)程泽示、系統(tǒng)和主機(jī)的自動(dòng)檢測(cè)缸血,Weave Scope可以檢查速度框,可以大幅度節(jié)省開(kāi)發(fā)人員的時(shí)間边琉。