除了Prometheus,監控K8S還有六種開源工具可選
監控可幫助您確保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
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功能體驗。