您好,登錄后才能下訂單哦!
本篇內容主要講解“監控K8S和Docker的開源工具有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“監控K8S和Docker的開源工具有哪些”吧!
Kubernetes和Docker是在DevOps圈中最常聽到的兩個詞。Docker是一個工具,它使你能夠以容器化的方式運行應用程序,Kubernetes是一個用于編排、管理容器的平臺——如果你想使用Docker CLI去手動地管理數千個容器,這是不切實際的。
然而,僅僅通過Kubernetes管理并運行數千個容器是不夠的,你還需要監控這些容器,以確保服務處于最佳運行狀態。這一過程被稱為網站可靠性工程(Site Reliability Engineering),是由谷歌提出并推廣的一個術語。可觀測性和分析性是SRE的重要組成部分。它可細分為以下三個部分:
監蹤:從應用程序和宿主機中提取數值指標,這些指標可以被可視化和分析,以顯示資源的當前狀態。一旦提取到了數值指標,就可以使用它們來設置告警規則、促進分析和調試,并更好的做出決策;
日志:幫助開發人員在容器發生故障時,排除出錯原因。容器日志隨著容器生命周期的結束也就消失了。Kubernetes和Docker確實提供了一種瀏覽容器日志的方式,但是它的功能非常有限。因此,在任何以容器構成的環境中,集中式的管理日志是必須的;
跟蹤:幫助你調試在網絡上運行的服務,并跟蹤請求鏈路,直到找到問題的根源。在微服務體系結構中,當多個服務/容器相互發送請求以完成一個業務任務時,需要一個適當的跟蹤解決方案。
本文將詳細講解六個最熱門的開源工具,專門用于容器化服務的監控和分析。
Prometheus
當討論開源監控解決方案時,首先想到的就是Prometheus。它在開發社區中非常流行,是CNCF的畢業項目。Prometheus最初由SoundCloud創建并開放源代碼。Prometheus簡化了提取數值指標的過程,直接從一個基于時間序列的監控端點中提取。適用于監視高度動態變化的容器環境。
Prometheus由三個部分組成:Prometheus server、Alertmanager和exporters。exporters以獨立進程或容器的方式運行在目標機器上,生成各種指標數據,通過API的方式發送給Prometheus server。Prometheus server負責服務發現,也可以從exporters直接拉取指標數據,然后將數據存儲在Prometheus的數據庫中,用于可視化或告警服務。Alertmanager用于設置告警規則,分析Prometheus數據庫中的數據,當觸發某個規則時,向接收者發送警報。在這里可以找到大量的exporters,它們都得到了Prometheus的官方支持和社區的維護。
Prometheus已經成為監控云原生應用的行業標準。盡管它以服務發現的簡單性、易用性、告警服務和與Kubernetes的集成而聞名,但指標數據只能被Prometheus server拉取的方式并不理想。這意味著exporters必須能夠被Prometheus server訪問。然而,在Prometheus中實現了一個pushgateway,它支持將數據直接推送給Prometheus server,而不是由Prometheus server主動拉取。Prometheus的另一個缺點是它不能很好地水平擴展。這個問題可以在Thanos adaptation of Prometheus(https://improbable.io/blog/thanos-prometheus-at-scale)找到解決方案。
相關工具和技術:Grafana、Cortex、Thanos、Prometheus Exporters、Alert Manager、Istio、Prometheus Operator。
圖1:Prometheus圖表
Grafana
Grafana是一款開源的指標分析和可視化套件。它允許你使用來自多個數據源(如Prometheus、Elasticsearch、MySQL、Postgres和Redis)的數據創建自定義儀表板。此外,Grafana有自己的告警系統和基于角色的訪問控制(RBAC)系統。Grafana作為一種數據可視化工具,在Prometheus的用戶中非常出名,它可以有效地可視化存儲在Prometheus中的指標數據。Grafana為來自各種數據源的數據提供了大量官方和社區構建的定制化儀表板,允許用戶輕松地設置儀表板并監控數據。Grafana提供另一種相關產品Loki,它將Kubernetes中的日志聚集起來,并與Grafana UI很好地集成在一起。
相關工具和技術:Loki、Prometheus。
圖2:Grafana中Kubernetes資源儀表板
Elastic Stack
Elastic Stack是一組來自Elastic的開源產品,旨在幫助用戶實時搜索、分析和可視化來自任何類型的數據源的任何格式的數據。該產品之前被稱為ELK,每個字母代表公司的一款主要產品:Elasticsearch、Logstash和Kibana。Elastic Stack利用Elasticsearch提供監測和日志解決方案。
為了聚合日志,人們傾向于使用Elasticsearch進行存儲,使用Logstash或Fluentd發送日志,使用Kibana進行可視化。Fluentd不是Elastic Stack的一部分,但它廣泛地應用于Kubernetes環境中,用以代替Logstash。類似地,Metricbeat用于獲取指標數據并在Kibana上進行可視化。Elastic Stack企業版附帶了X-Pack,X-Pack是一組支持報表、警報和基于角色的訪問控制(RBAC)等功能的附加工具。默認情況下,Elastic Stack GUI(Kibana)不支持RBAC。你必須使用Elastic Stack企業版本來啟用RBAC。
相關工具和技術:X-pack、Metricbeat、Logstash、Kibana。
圖3:Elasticsearch中的發現視圖。
Sensu Go
Sensu Go是一款用于多云監控的遙測和服務健康檢測解決方案。幫助你查看服務器、容器、服務、應用程序、功能和跨任何公有或私有云的連接設備。Sensu可以和Prometheus一起運行,以獲得兩種解決方案的最佳效果,也可以在沒有Prometheus的情況下自己運行。因為將應用程序級別的指標數據導出到Prometheus需要將Prometheus SDK加載到應用程序的代碼庫中,并暴露一個端口,所以Sensu與Prometheus一起工作是最好的。然后,該端口負責收集數據并存儲在Prometheus server中。這聽起來好像有很多工作要做——有時確實如此。Sensu通過使用sidecar的方式來避免這種復雜性。在應用程序旁部署了一個Sensu代理。Sensu代理不斷地收集數據并發送給Prometheus server,這樣就不需要更改應用程序代碼了。
Sensu也可以脫離Prometheus工作,獨自在Kubernetes中運行,在Kubernetes中,Sensu有自己的服務器來存儲和可視化由Sensu代理收集的數據。
相關工具和技術:Prometheus。
圖4:Sensu中的事件
Sysdig Inspect
Sysdig公司有兩款開源產品:Sysdig Inspect和Falco。在這里,我們將重點討論Inspect,Sysdig Inspect用于監視和捕獲系統中運行的容器進程,并允許深入這些進程以進行事后取證,幫助分析應用程序性能、排查錯誤并監視任何可能出現錯誤的處理器。此外,如果你的系統遭到了破壞,Sysdig幫助你了解破壞是如何發生的,以及在這個過程中丟失了哪些數據。Sysdig Inspect是一個非常強大的工具,它關注于系統的性能調優和安全性調查。
相關工具和技術:Grafana、Sysdig、Sysdig Falco。
圖5:Sysdig檢查概述
Jaeger
Jaeger是一種端到端的分布式跟蹤解決方案,由Uber Engineering開源。幫助你在復雜的分布式系統中監視和排查事務故障。在現代微服務體系結構中,大多數操作問題都屬于網絡和可觀察性的范疇。當發生服務故障時,你不知道請求是如何通過網絡從一個服務轉到另一個服務來完成單個業務請求的。調試變得異常困難。Jaeger目前在CNCF下孵化,Jaeger使用跟蹤技術來尋找出錯原因、性能和延遲優化,以及分布式事務監控。Jaeger可以與Istio一起使用,Istio是由谷歌開源的一款流行的服務網格實現。
相關工具和技術:Prometheus、Jaeger、Zipkin、Istio。
圖6:Jaeger軌跡追蹤圖
到此,相信大家對“監控K8S和Docker的開源工具有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。