溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

監(jiān)控K8S和Docker的開源工具有哪些

發(fā)布時(shí)間:2021-12-13 14:08:42 來源:億速云 閱讀:117 作者:iii 欄目:互聯(lián)網(wǎng)科技

本篇內(nèi)容主要講解“監(jiān)控K8S和Docker的開源工具有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“監(jiān)控K8S和Docker的開源工具有哪些”吧!

Kubernetes和Docker是在DevOps圈中最常聽到的兩個(gè)詞。Docker是一個(gè)工具,它使你能夠以容器化的方式運(yùn)行應(yīng)用程序,Kubernetes是一個(gè)用于編排、管理容器的平臺——如果你想使用Docker CLI去手動(dòng)地管理數(shù)千個(gè)容器,這是不切實(shí)際的。

然而,僅僅通過Kubernetes管理并運(yùn)行數(shù)千個(gè)容器是不夠的,你還需要監(jiān)控這些容器,以確保服務(wù)處于最佳運(yùn)行狀態(tài)。這一過程被稱為網(wǎng)站可靠性工程(Site Reliability Engineering),是由谷歌提出并推廣的一個(gè)術(shù)語??捎^測性和分析性是SRE的重要組成部分。它可細(xì)分為以下三個(gè)部分:

  •  監(jiān)蹤:從應(yīng)用程序和宿主機(jī)中提取數(shù)值指標(biāo),這些指標(biāo)可以被可視化和分析,以顯示資源的當(dāng)前狀態(tài)。一旦提取到了數(shù)值指標(biāo),就可以使用它們來設(shè)置告警規(guī)則、促進(jìn)分析和調(diào)試,并更好的做出決策;

  •  日志:幫助開發(fā)人員在容器發(fā)生故障時(shí),排除出錯(cuò)原因。容器日志隨著容器生命周期的結(jié)束也就消失了。Kubernetes和Docker確實(shí)提供了一種瀏覽容器日志的方式,但是它的功能非常有限。因此,在任何以容器構(gòu)成的環(huán)境中,集中式的管理日志是必須的;

  •  跟蹤:幫助你調(diào)試在網(wǎng)絡(luò)上運(yùn)行的服務(wù),并跟蹤請求鏈路,直到找到問題的根源。在微服務(wù)體系結(jié)構(gòu)中,當(dāng)多個(gè)服務(wù)/容器相互發(fā)送請求以完成一個(gè)業(yè)務(wù)任務(wù)時(shí),需要一個(gè)適當(dāng)?shù)母櫧鉀Q方案。

本文將詳細(xì)講解六個(gè)最熱門的開源工具,專門用于容器化服務(wù)的監(jiān)控和分析。

Prometheus

當(dāng)討論開源監(jiān)控解決方案時(shí),首先想到的就是Prometheus。它在開發(fā)社區(qū)中非常流行,是CNCF的畢業(yè)項(xiàng)目。Prometheus最初由SoundCloud創(chuàng)建并開放源代碼。Prometheus簡化了提取數(shù)值指標(biāo)的過程,直接從一個(gè)基于時(shí)間序列的監(jiān)控端點(diǎn)中提取。適用于監(jiān)視高度動(dòng)態(tài)變化的容器環(huán)境。

Prometheus由三個(gè)部分組成:Prometheus server、Alertmanager和exporters。exporters以獨(dú)立進(jìn)程或容器的方式運(yùn)行在目標(biāo)機(jī)器上,生成各種指標(biāo)數(shù)據(jù),通過API的方式發(fā)送給Prometheus server。Prometheus server負(fù)責(zé)服務(wù)發(fā)現(xiàn),也可以從exporters直接拉取指標(biāo)數(shù)據(jù),然后將數(shù)據(jù)存儲在Prometheus的數(shù)據(jù)庫中,用于可視化或告警服務(wù)。Alertmanager用于設(shè)置告警規(guī)則,分析Prometheus數(shù)據(jù)庫中的數(shù)據(jù),當(dāng)觸發(fā)某個(gè)規(guī)則時(shí),向接收者發(fā)送警報(bào)。在這里可以找到大量的exporters,它們都得到了Prometheus的官方支持和社區(qū)的維護(hù)。

Prometheus已經(jīng)成為監(jiān)控云原生應(yīng)用的行業(yè)標(biāo)準(zhǔn)。盡管它以服務(wù)發(fā)現(xiàn)的簡單性、易用性、告警服務(wù)和與Kubernetes的集成而聞名,但指標(biāo)數(shù)據(jù)只能被Prometheus server拉取的方式并不理想。這意味著exporters必須能夠被Prometheus server訪問。然而,在Prometheus中實(shí)現(xiàn)了一個(gè)pushgateway,它支持將數(shù)據(jù)直接推送給Prometheus server,而不是由Prometheus server主動(dòng)拉取。Prometheus的另一個(gè)缺點(diǎn)是它不能很好地水平擴(kuò)展。這個(gè)問題可以在Thanos adaptation of Prometheus(https://improbable.io/blog/thanos-prometheus-at-scale)找到解決方案。

相關(guān)工具和技術(shù):Grafana、Cortex、Thanos、Prometheus Exporters、Alert Manager、Istio、Prometheus Operator。

監(jiān)控K8S和Docker的開源工具有哪些

圖1:Prometheus圖表

Grafana

Grafana是一款開源的指標(biāo)分析和可視化套件。它允許你使用來自多個(gè)數(shù)據(jù)源(如Prometheus、Elasticsearch、MySQL、Postgres和Redis)的數(shù)據(jù)創(chuàng)建自定義儀表板。此外,Grafana有自己的告警系統(tǒng)和基于角色的訪問控制(RBAC)系統(tǒng)。Grafana作為一種數(shù)據(jù)可視化工具,在Prometheus的用戶中非常出名,它可以有效地可視化存儲在Prometheus中的指標(biāo)數(shù)據(jù)。Grafana為來自各種數(shù)據(jù)源的數(shù)據(jù)提供了大量官方和社區(qū)構(gòu)建的定制化儀表板,允許用戶輕松地設(shè)置儀表板并監(jiān)控?cái)?shù)據(jù)。Grafana提供另一種相關(guān)產(chǎn)品Loki,它將Kubernetes中的日志聚集起來,并與Grafana UI很好地集成在一起。

相關(guān)工具和技術(shù):Loki、Prometheus。

監(jiān)控K8S和Docker的開源工具有哪些

圖2:Grafana中Kubernetes資源儀表板

Elastic Stack

Elastic Stack是一組來自Elastic的開源產(chǎn)品,旨在幫助用戶實(shí)時(shí)搜索、分析和可視化來自任何類型的數(shù)據(jù)源的任何格式的數(shù)據(jù)。該產(chǎn)品之前被稱為ELK,每個(gè)字母代表公司的一款主要產(chǎn)品:Elasticsearch、Logstash和Kibana。Elastic Stack利用Elasticsearch提供監(jiān)測和日志解決方案。

為了聚合日志,人們傾向于使用Elasticsearch進(jìn)行存儲,使用Logstash或Fluentd發(fā)送日志,使用Kibana進(jìn)行可視化。Fluentd不是Elastic Stack的一部分,但它廣泛地應(yīng)用于Kubernetes環(huán)境中,用以代替Logstash。類似地,Metricbeat用于獲取指標(biāo)數(shù)據(jù)并在Kibana上進(jìn)行可視化。Elastic Stack企業(yè)版附帶了X-Pack,X-Pack是一組支持報(bào)表、警報(bào)和基于角色的訪問控制(RBAC)等功能的附加工具。默認(rèn)情況下,Elastic Stack GUI(Kibana)不支持RBAC。你必須使用Elastic Stack企業(yè)版本來啟用RBAC。

相關(guān)工具和技術(shù):X-pack、Metricbeat、Logstash、Kibana。

監(jiān)控K8S和Docker的開源工具有哪些

圖3:Elasticsearch中的發(fā)現(xiàn)視圖。

Sensu Go

Sensu Go是一款用于多云監(jiān)控的遙測和服務(wù)健康檢測解決方案。幫助你查看服務(wù)器、容器、服務(wù)、應(yīng)用程序、功能和跨任何公有或私有云的連接設(shè)備。Sensu可以和Prometheus一起運(yùn)行,以獲得兩種解決方案的最佳效果,也可以在沒有Prometheus的情況下自己運(yùn)行。因?yàn)閷?yīng)用程序級別的指標(biāo)數(shù)據(jù)導(dǎo)出到Prometheus需要將Prometheus SDK加載到應(yīng)用程序的代碼庫中,并暴露一個(gè)端口,所以Sensu與Prometheus一起工作是最好的。然后,該端口負(fù)責(zé)收集數(shù)據(jù)并存儲在Prometheus server中。這聽起來好像有很多工作要做——有時(shí)確實(shí)如此。Sensu通過使用sidecar的方式來避免這種復(fù)雜性。在應(yīng)用程序旁部署了一個(gè)Sensu代理。Sensu代理不斷地收集數(shù)據(jù)并發(fā)送給Prometheus server,這樣就不需要更改應(yīng)用程序代碼了。

Sensu也可以脫離Prometheus工作,獨(dú)自在Kubernetes中運(yùn)行,在Kubernetes中,Sensu有自己的服務(wù)器來存儲和可視化由Sensu代理收集的數(shù)據(jù)。

相關(guān)工具和技術(shù):Prometheus。

監(jiān)控K8S和Docker的開源工具有哪些

圖4:Sensu中的事件

Sysdig Inspect

Sysdig公司有兩款開源產(chǎn)品:Sysdig Inspect和Falco。在這里,我們將重點(diǎn)討論Inspect,Sysdig Inspect用于監(jiān)視和捕獲系統(tǒng)中運(yùn)行的容器進(jìn)程,并允許深入這些進(jìn)程以進(jìn)行事后取證,幫助分析應(yīng)用程序性能、排查錯(cuò)誤并監(jiān)視任何可能出現(xiàn)錯(cuò)誤的處理器。此外,如果你的系統(tǒng)遭到了破壞,Sysdig幫助你了解破壞是如何發(fā)生的,以及在這個(gè)過程中丟失了哪些數(shù)據(jù)。Sysdig Inspect是一個(gè)非常強(qiáng)大的工具,它關(guān)注于系統(tǒng)的性能調(diào)優(yōu)和安全性調(diào)查。

相關(guān)工具和技術(shù):Grafana、Sysdig、Sysdig Falco。

監(jiān)控K8S和Docker的開源工具有哪些

圖5:Sysdig檢查概述

Jaeger

Jaeger是一種端到端的分布式跟蹤解決方案,由Uber Engineering開源。幫助你在復(fù)雜的分布式系統(tǒng)中監(jiān)視和排查事務(wù)故障。在現(xiàn)代微服務(wù)體系結(jié)構(gòu)中,大多數(shù)操作問題都屬于網(wǎng)絡(luò)和可觀察性的范疇。當(dāng)發(fā)生服務(wù)故障時(shí),你不知道請求是如何通過網(wǎng)絡(luò)從一個(gè)服務(wù)轉(zhuǎn)到另一個(gè)服務(wù)來完成單個(gè)業(yè)務(wù)請求的。調(diào)試變得異常困難。Jaeger目前在CNCF下孵化,Jaeger使用跟蹤技術(shù)來尋找出錯(cuò)原因、性能和延遲優(yōu)化,以及分布式事務(wù)監(jiān)控。Jaeger可以與Istio一起使用,Istio是由谷歌開源的一款流行的服務(wù)網(wǎng)格實(shí)現(xiàn)。

相關(guān)工具和技術(shù):Prometheus、Jaeger、Zipkin、Istio。

監(jiān)控K8S和Docker的開源工具有哪些

圖6:Jaeger軌跡追蹤圖

到此,相信大家對“監(jiān)控K8S和Docker的開源工具有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI