可視化監(jiān)控大型集群,這一個工具就夠了!

許多企業(yè)使用Kubernetes來快速發(fā)布新功能并提高服務(wù)的可靠性。Rancher使團隊能夠減少管理其云原生工作負載的操作成本——但獲得這些環(huán)境的持續(xù)可見性可能是一個挑戰(zhàn)。
在這篇文章中,我們將探討如何利用Rancher內(nèi)置支持的Prometheus和Grafana快速開始監(jiān)控編排工作負載。然后,我們將向你展示如何將Datadog與Rancher集成,通過豐富的可視化、算法告警和其他功能,幫助你獲得對這些臨時環(huán)境更深入的可見性。
Kubernetes監(jiān)控所面臨的挑戰(zhàn)
Kubernetes集群本質(zhì)上是復(fù)雜和動態(tài)的。容器以極快的速度啟動和關(guān)閉:在對數(shù)千家組織的超過15億個容器進行調(diào)查時,Datadog發(fā)現(xiàn),編排容器的周轉(zhuǎn)速度(一天)是未編排容器的兩倍(兩天)。
在這種快節(jié)奏的環(huán)境中,監(jiān)控你的應(yīng)用程序和基礎(chǔ)設(shè)施比以往任何時候都重要。Rancher內(nèi)置支持開源監(jiān)控工具(如Prometheus和Grafana),允許你從Kubernetes集群中跟蹤基本的健康和資源指標(biāo)。
Prometheus按照預(yù)設(shè)的時間間隔從Kubernetes集群收集指標(biāo)。雖然Prometheus沒有可視化選項,但你可以使用Grafana內(nèi)置的儀表板來顯示健康和資源指標(biāo)的總體情況,例如你的pods的CPU使用情況。
然而,一些開源解決方案并不是為了監(jiān)控大型、動態(tài)Kubernetes集群而設(shè)計的。此外,Prometheus要求用戶學(xué)習(xí)PromQL(這是一種專門的查詢語言)以分析和匯總他們的數(shù)據(jù)。
雖然Prometheus和Grafana可以為你的集群提供一定程度的洞察力,但它們不能讓你看到全貌。例如,你需要連接到其中一個Rancher支持的日志解決方案,以訪問你環(huán)境中的日志。而為了排除代碼級問題,你還需要部署一個應(yīng)用程序性能監(jiān)控解決方案。
最終,為了充分可視化你的編排集群,你需要在一個平臺上監(jiān)控所有這些數(shù)據(jù)源——指標(biāo)、跟蹤和日志。通過向整個企業(yè)的團隊提供詳細的、可操作的數(shù)據(jù),一個全面的監(jiān)控解決方案可以幫助減少檢測和解決的平均時間(MTTD和MTTR)。
Datadog Agent:自動發(fā)現(xiàn)和自動伸縮服務(wù)
為了獲得Rancher解決方案中每一層的持續(xù)可見性,你需要一個專門用于實時跟蹤云原生環(huán)境的監(jiān)控解決方案。Datadog Agent是一款輕量級的開源軟件,它可以從你的容器和主機中收集指標(biāo)、跟蹤和日志,并將它們轉(zhuǎn)發(fā)到你的賬戶,以便進行可視化、分析和告警。
由于Kubernetes部署處于不斷變化的狀態(tài),因此無法手動跟蹤哪些工作負載在哪些節(jié)點上運行,或者你的容器在哪里運行。為此,Datadog Agent使用Autodiscovery來檢測容器何時啟動或關(guān)閉,并自動開始收集你的容器和它們正在運行的服務(wù)的數(shù)據(jù),如etcd和Consul。
Kubernetes內(nèi)置的自動彈性伸縮功能可以根據(jù)需求(如CPU使用量激增)自動增加或減少工作負載,從而幫助提高服務(wù)的可靠性。自動伸縮還可以通過調(diào)整基礎(chǔ)設(shè)施的規(guī)模來幫助管理成本。
Datadog擴展了彈性伸縮這一功能,使你能夠根據(jù)已經(jīng)在Datadog中監(jiān)控的任何指標(biāo)(包括自定義指標(biāo))自動伸縮Kubernetes工作負載。這對于根據(jù)需求的波動來擴展集群是非常有用的,特別是在“雙十一”這樣的關(guān)鍵業(yè)務(wù)時期。假設(shè)你的公司是一家零售商,擁有繁忙的在線業(yè)務(wù)。當(dāng)銷售正在起飛時,你的Kubernetes工作負載可以根據(jù)作為活動指標(biāo)的自定義指標(biāo)(如結(jié)賬數(shù)量)進行自動伸縮,以確保流暢的購物體驗。有關(guān)使用Datadog自動伸縮Kubernetes工作負載的更多細節(jié),請查看以下文章:
https://www.datadoghq.com/blog/autoscale-kubernetes-datadog/
Kubernetes特定的監(jiān)控功能
無論你的環(huán)境是多云、多集群還是兩者兼而有之,Datadog高度專業(yè)化的功能都可以幫助你實時監(jiān)控你的容器化工作負載。Datadog通過從Kubernetes、Docker、云服務(wù)和其他技術(shù)導(dǎo)入的tag自動豐富你的監(jiān)控數(shù)據(jù)。Tag為你的環(huán)境任意一層提供了持續(xù)的可見性,即使單個容器啟動、停止或在主機間移動,你都能夠獲得可視化。例如,你可以搜索所有共享一個標(biāo)簽(例如,它們正在運行的服務(wù)名稱)的容器,然后使用另一個標(biāo)簽(例如,可用性區(qū)域)來分解它們在不同區(qū)域的資源使用情況。
Datadog可以收集超過120個Kubernetes指標(biāo),幫助你從控制平面健康狀況跟蹤到pod級CPU限制的一切。所有這些監(jiān)控數(shù)據(jù)都可以直接在應(yīng)用中訪問,而無需使用查詢語言。
Datadog提供了幾個功能來幫助你探索和可視化容器基礎(chǔ)設(shè)施的數(shù)據(jù)。Container Map(datadoghq.com/blog/container-map/)提供了一個Kubernetes環(huán)境的鳥瞰圖,并允許你通過任何標(biāo)簽組合來過濾和分組容器,如docker_image、host和kube_deployment。
你還可以根據(jù)任何資源指標(biāo)的實時值對容器進行顏色編碼,如系統(tǒng)CPU或RSS內(nèi)存。這讓你可以一目了然地快速發(fā)現(xiàn)資源爭奪問題,例如,如果一個節(jié)點比其他節(jié)點消耗了更多的CPU。

實時容器視圖(Live Container view)可以顯示基礎(chǔ)架構(gòu)中每個容器的流程級系統(tǒng)指標(biāo)——以兩秒的粒度繪制。由于 CPU 利用率等指標(biāo)可能非常不穩(wěn)定,這種高度的顆粒度確保了重要的峰值不會在噪音中消失。

Container Map和 “實時容器 "視圖均允許你使用任意組合的標(biāo)簽(如鏡像名稱或云提供商)對容器進行過濾和排序。要了解更多細節(jié),你還可以單擊以檢查在任何單個容器上運行的進程,并查看從該容器收集的所有指標(biāo)、日志和跟蹤,獲取這些信息只需點擊幾下。這可以幫助你調(diào)試問題,并確定是否需要調(diào)整資源的配置。
通過Datadog網(wǎng)絡(luò)性能監(jiān)控(NPM),你可以跟蹤整個Kubernetes部署的實時網(wǎng)絡(luò)流量,并快速調(diào)試問題。從本質(zhì)上講,Docker容器只受制于可用的CPU和內(nèi)存量。因此,單個容器可能會使網(wǎng)絡(luò)飽和并使整個系統(tǒng)癱瘓。
Datadog可以幫助你輕松隔離消耗最多網(wǎng)絡(luò)吞吐量的容器,并通過導(dǎo)航到該服務(wù)的相關(guān)日志或請求跟蹤來確定可能的根本原因。
Datadog+Rancher協(xié)同工作
通過Rancher的Datadog Helm chart,你的團隊可以在幾分鐘內(nèi)開始監(jiān)控他們的Kubernetes環(huán)境。Datadog與Rancher協(xié)同工作,可以讓你使用Rancher管理不同的協(xié)調(diào)環(huán)境,并部署Datadog來實時監(jiān)控、排除故障和自動擴展環(huán)境。
此外,Datadog的算法監(jiān)控引擎Watchdog可以發(fā)現(xiàn)并提醒團隊成員注意性能異常(如延遲峰值或高錯誤率)。這使得團隊能夠在潛在問題(例如容器重啟率異常高)升級之前解決問題。
我們已經(jīng)向你展示了Datadog如何幫助你獲得Rancher環(huán)境的全面可見性。通過Datadog,工程師可以使用APM來識別單個請求中的瓶頸,并準確定位代碼級問題,收集和分析整個基礎(chǔ)設(shè)施中每個容器的日志等。通過在一個平臺上統(tǒng)一指標(biāo)、日志和跟蹤,Datadog消除了切換上下文或工具的需要。因此,可以加快團隊故障排除工作流程,并充分利用Rancher管理大規(guī)模動態(tài)集群的全部潛力。