你還在用 Prometheus 監控 K8S?快試試這 6 個更牛逼的替代方案

民工哥發表於2022-01-05

監控可幫助您確保Kubernetes應用程式平穩執行並排除可能出現的任何問題。Prometheus是一種流行的開源監視工具,許多公司都使用它來監視其IT基礎結構。但是,還有許多其他監視工具可用。本文介紹了6種可以替代Prometheus監視Kubernetes的方法。

什麼是Prometheus?

Prometheus是最初在SoundCloud上構建的開源監視系統。它旨在監視多維資料收集和查詢。Prometheus伺服器具有自己的獨立單元,該獨立單元不依賴網路儲存或外部服務。因此,Prometheus不需要大量其他基礎架構或軟體。

圖片

Prometheus的主要優勢包括與Kubernetes的緊密整合,許多可用的匯出器和庫以及快速的查詢語言和API。Prometheus的主要缺點包括簡化的、受約束的資料模型,基於拉取的模型的有限粒度以及缺乏加密。

以下列出了除Prometheus外監視Kubernetes的6種方法。每種工具都有其自身的優點和缺點,讓我們一起看看每個工具的主要功能。

1、Grafana

Grafana是一個開源平臺,用於視覺化,監視和分析指標。Grafana的主要重點是時間序列分析。Grafana可以通過多種圖形選項(包括折線圖、熱圖和條形圖)顯示分析的資料。當監視的指標超過預定義的閾值時,您會收到警報。

圖片

主要功能包括:
  • 警報 - 您可以通過不同的渠道(包括SMS,電子郵件,Slack或PagerDuty)獲取警報。如果您更喜歡其他交流渠道,則可以使用一些程式碼來建立自己的通知程式。
  • 儀表板模板 - 通過模板化,您可以建立可重複用於多個用例的儀表板。例如,您可以為生產伺服器和測試伺服器使用相同的儀表板。
  • 供應 - 您可以使用指令碼自動化Grafana中的所有內容。例如,您可以使用包含IP地址,伺服器和資料來源預設的指令碼自動啟動Grafana和新的Kubernetes群集。
  • 註釋 - 在發生錯誤時用於資料關聯。您可以通過在圖形中新增文字來手動建立註釋,也可以從任何資料來源獲取資料。

2、cAdvisor

cAdvisor可以收集、處理和匯出有關正在執行的容器的效能和資源使用情況資訊。cAdvisor具有對Kubernetes的本地支援,因為它已整合到Kubelet二進位制檔案中。

圖片

主要功能包括:
  • 自動發現 - 自動發現給定節點中的所有容器並收集統計資訊,包括記憶體,CPU,網路和檔案系統使用情況。
  • 儲存外掛 - 將統計資訊匯出到不同的儲存外掛,例如Elasticsearch和InfluxDB。
  • 整體計算機使用率 - 通過分析計算機上的“根”容器來提供整體計算機使用率。
  • Web-UI - 您可以在Web-UI上檢視指標,該指標顯示有關計算機上所有容器的實時資訊。

3、Fluentd

Fluentd 通過在兩者之間提供統一的日誌記錄層,將資料來源與後端系統分離。日誌記錄層使您可以收集生成的多種型別的日誌。

圖片

主要功能包括:
  • JSON資料結構 - 使您能夠統一所有日誌資料處理方面,例如跨不同源緩衝,過濾和輸出日誌。
  • 可插拔的體系結構 - 靈活的外掛系統使您可以通過連線多個資料來源和輸出來擴充套件Fluentd的功能。
  • 系統資源 - 例項執行在30MB到40MB的記憶體上,每秒可以處理13,000個事件。如果需要更多記憶體,則可以使用Fluent Bit輕型轉發器。
  • 可靠性 - 支援基於檔案的緩衝和記憶體緩衝,以防止節點上的資料丟失。此外,您可以設定Fluentd以支援高可用性和強大的故障轉移。

4、Jaeger

Jaeger是一個開源工具,用於監視Kubernetes等分散式服務之間的流量。Jaeger使用分散式跟蹤來跟蹤通過不同微服務的服務請求的路徑。然後,您可以直觀地看到請求流。分散式跟蹤是一種管理和觀察微服務的方法,它作為服務網格的一部分執行。

圖片

主要功能包括:
  • 高可擴充套件性 - 設計為無單點故障(SPOF),可根據業務需求進行擴充套件。
  • 多種儲存選項 - 支援兩個開源NoSQL資料庫,Elasticsearch和Cassandra。Jaeger還提供了簡單的記憶體儲存用於測試。
  • 雲原生部署 - 支援不同的配置方法,包括環境變數,命令列選項和配置檔案。Kubernetes模板,Kubernetes運算子和Helm圖表支援Kubernetes部署。
  • 監視 - Jaeger後端元件預設情況下公開Prometheus指標和日誌。

5、Telepresence

Telepresence是一個開源工具,可以在本地執行單個服務,同時將該服務連線到遠端Kubernetes叢集。網真在Pod中部署了雙向網路代理,該代理可為Kubernetes環境收集資料,包括TCP連線,環境變數和卷。

圖片

主要功能包括:
  • 相容性 - 帶有OS原生軟體包的Linux和Mac OS均可使用。
  • 開發工作流程 - 為您提供在Kubernetes上開發的多容器應用程式的快速開發工作流程。您可以在將本地Docker容器代理到叢集時執行它。
  • 在本地除錯Kubernetes服務 - 當臨時群集中有bug時,您想在本地執行服務。網真使您可以在本地除錯服務。

連線到遠端Kubernetes群集 - 您可以從本地程式訪問遠端群集。通過此訪問許可權,您可以使用膝上型電腦上的本地工具與群集內的程式進行通訊。

6、Zabbix

Zabbix旨在監視大量網路引數和伺服器的執行狀況,並基於儲存的資料提供許多資料視覺化和報告功能。具有少量伺服器的小型組織和具有多個伺服器的大型企業可以使用Zabbix監視IT基礎結構。

圖片

主要功能包括:
  • 彈性閾值 - 您可以定義彈性問題閾值,也稱為觸發器。這些觸發器基於後端資料庫中的值。
  • 實時視覺化 - 您可以使用內建的繪圖功能立即檢視受監視的專案。
  • 自動發現 - 提供多種自動化大型環境(如Kubernetes)管理的方法。您可以在組織中自動新增和刪除檔案系統和網路介面。
  • 網路發現 - 使您能夠定期掃描網路中的外部服務或Zabbix代理,並在發現時採取預定義的措施。
  • 分散式監視 - 提供使用Zabbix代理監視分散式基礎結構的有效方法。您可以使用代理在本地收集資料,然後將資料包告給伺服器。

結論

Prometheus是用於監視Kubernetes工作負載的開源工具。它被本地整合為Kubernetes中的預設監視工具,包括內建的警報管理器。但是,您還應該考慮針對您的Kubernetes環境使用其他監視選項,以補充和改進Kubernetes功能體驗。

作者丨by Limor Wainstein 來源丨https://containerjournal.com/...

圖片

圖片

圖片

相關文章