除了Prometheus,監(jiān)控K8S還有六種開源工具可選
監(jiān)控可幫助您確保Kubernetes應(yīng)用程序平穩(wěn)運(yùn)行并排除可能出現(xiàn)的任何問(wèn)題。Prometheus是一種流行的開源監(jiān)視工具,許多公司都使用它來(lái)監(jiān)視其IT基礎(chǔ)結(jié)構(gòu)。但是,還有許多其他監(jiān)視工具可用。本文介紹了6種可以替代Prometheus監(jiān)視Kubernetes的方法。
什么是Prometheus?
Prometheus是最初在SoundCloud上構(gòu)建的開源監(jiān)視系統(tǒng)。它旨在監(jiān)視多維數(shù)據(jù)收集和查詢。Prometheus服務(wù)器具有自己的獨(dú)立單元,該獨(dú)立單元不依賴網(wǎng)絡(luò)存儲(chǔ)或外部服務(wù)。因此,Prometheus不需要大量其他基礎(chǔ)架構(gòu)或軟件。
Prometheus的主要優(yōu)勢(shì)包括與Kubernetes的緊密集成,許多可用的導(dǎo)出器和庫(kù)以及快速的查詢語(yǔ)言和API。Prometheus的主要缺點(diǎn)包括簡(jiǎn)化的、受約束的數(shù)據(jù)模型,基于拉取的模型的有限粒度以及缺乏加密。
以下列出了除Prometheus外監(jiān)視Kubernetes的6種方法。每種工具都有其自身的優(yōu)點(diǎn)和缺點(diǎn),讓我們一起看看每個(gè)工具的主要功能。
1、Grafana
Grafana是一個(gè)開源平臺(tái),用于可視化,監(jiān)視和分析指標(biāo)。Grafana的主要重點(diǎn)是時(shí)間序列分析。Grafana可以通過(guò)多種圖形選項(xiàng)(包括折線圖、熱圖和條形圖)顯示分析的數(shù)據(jù)。當(dāng)監(jiān)視的指標(biāo)超過(guò)預(yù)定義的閾值時(shí),您會(huì)收到警報(bào)。
主要功能包括:
- 警報(bào) - 您可以通過(guò)不同的渠道(包括SMS,電子郵件,Slack或PagerDuty)獲取警報(bào)。如果您更喜歡其他交流渠道,則可以使用一些代碼來(lái)創(chuàng)建自己的通知程序。
- 儀表板模板 - 通過(guò)模板化,您可以創(chuàng)建可重復(fù)用于多個(gè)用例的儀表板。例如,您可以為生產(chǎn)服務(wù)器和測(cè)試服務(wù)器使用相同的儀表板。
- 供應(yīng) - 您可以使用腳本自動(dòng)化Grafana中的所有內(nèi)容。例如,您可以使用包含IP地址,服務(wù)器和數(shù)據(jù)源預(yù)設(shè)的腳本自動(dòng)啟動(dòng)Grafana和新的Kubernetes群集。
- 注釋 - 在發(fā)生錯(cuò)誤時(shí)用于數(shù)據(jù)關(guān)聯(lián)。您可以通過(guò)在圖形中添加文本來(lái)手動(dòng)創(chuàng)建注釋,也可以從任何數(shù)據(jù)源獲取數(shù)據(jù)。
2、cAdvisor
cAdvisor可以收集、處理和導(dǎo)出有關(guān)正在運(yùn)行的容器的性能和資源使用情況信息。cAdvisor具有對(duì)Kubernetes的本地支持,因?yàn)樗鸭傻終ubelet二進(jìn)制文件中。
主要功能包括:
- 自動(dòng)發(fā)現(xiàn) - 自動(dòng)發(fā)現(xiàn)給定節(jié)點(diǎn)中的所有容器并收集統(tǒng)計(jì)信息,包括內(nèi)存,CPU,網(wǎng)絡(luò)和文件系統(tǒng)使用情況。
- 存儲(chǔ)插件 - 將統(tǒng)計(jì)信息導(dǎo)出到不同的存儲(chǔ)插件,例如Elasticsearch和InfluxDB。
- 整體計(jì)算機(jī)使用率 - 通過(guò)分析計(jì)算機(jī)上的“根”容器來(lái)提供整體計(jì)算機(jī)使用率。
- Web-UI - 您可以在Web-UI上查看指標(biāo),該指標(biāo)顯示有關(guān)計(jì)算機(jī)上所有容器的實(shí)時(shí)信息。
3、Fluentd Fluentd
Fluentd Fluentd通過(guò)在兩者之間提供統(tǒng)一的日志記錄層,將數(shù)據(jù)源與后端系統(tǒng)分離。日志記錄層使您可以收集生成的多種類型的日志。
主要功能包括:
- JSON數(shù)據(jù)結(jié)構(gòu) - 使您能夠統(tǒng)一所有日志數(shù)據(jù)處理方面,例如跨不同源緩沖,過(guò)濾和輸出日志。
- 可插拔的體系結(jié)構(gòu) - 靈活的插件系統(tǒng)使您可以通過(guò)連接多個(gè)數(shù)據(jù)源和輸出來(lái)擴(kuò)展Fluentd的功能。
- 系統(tǒng)資源 - 實(shí)例運(yùn)行在30MB到40MB的內(nèi)存上,每秒可以處理13,000個(gè)事件。如果需要更多內(nèi)存,則可以使用Fluent Bit輕型轉(zhuǎn)發(fā)器。
- 可靠性 - 支持基于文件的緩沖和內(nèi)存緩沖,以防止節(jié)點(diǎn)上的數(shù)據(jù)丟失。此外,您可以設(shè)置Fluentd以支持高可用性和強(qiáng)大的故障轉(zhuǎn)移。
4、Jaeger
Jaeger是一個(gè)開源工具,用于監(jiān)視Kubernetes等分布式服務(wù)之間的流量。Jaeger使用分布式跟蹤來(lái)跟蹤通過(guò)不同微服務(wù)的服務(wù)請(qǐng)求的路徑。然后,您可以直觀地看到請(qǐng)求流。分布式跟蹤是一種管理和觀察微服務(wù)的方法,它作為服務(wù)網(wǎng)格的一部分運(yùn)行。
主要功能包括:
- 高可擴(kuò)展性 - 設(shè)計(jì)為無(wú)單點(diǎn)故障(SPOF),可根據(jù)業(yè)務(wù)需求進(jìn)行擴(kuò)展。
- 多種存儲(chǔ)選項(xiàng) - 支持兩個(gè)開源NoSQL數(shù)據(jù)庫(kù),Elasticsearch和Cassandra。Jaeger還提供了簡(jiǎn)單的內(nèi)存存儲(chǔ)用于測(cè)試。
- 云原生部署 - 支持不同的配置方法,包括環(huán)境變量,命令行選項(xiàng)和配置文件。Kubernetes模板,Kubernetes運(yùn)算符和Helm圖表支持Kubernetes部署。
- 監(jiān)視 - Jaeger后端組件默認(rèn)情況下公開Prometheus指標(biāo)和日志。
5、Telepresence
Telepresence是一個(gè)開源工具,可以在本地運(yùn)行單個(gè)服務(wù),同時(shí)將該服務(wù)連接到遠(yuǎn)程Kubernetes集群。網(wǎng)真在Pod中部署了雙向網(wǎng)絡(luò)代理,該代理可為Kubernetes環(huán)境收集數(shù)據(jù),包括TCP連接,環(huán)境變量和卷。
主要功能包括:
- 兼容性 - 帶有OS原生軟件包的Linux和Mac OS均可使用。
- 開發(fā)工作流程 - 為您提供在Kubernetes上開發(fā)的多容器應(yīng)用程序的快速開發(fā)工作流程。您可以在將本地Docker容器代理到集群時(shí)運(yùn)行它。
- 在本地調(diào)試Kubernetes服務(wù) - 當(dāng)臨時(shí)群集中有bug時(shí),您想在本地運(yùn)行服務(wù)。網(wǎng)真使您可以在本地調(diào)試服務(wù)。
- 連接到遠(yuǎn)程Kubernetes群集 - 您可以從本地進(jìn)程訪問(wèn)遠(yuǎn)程群集。通過(guò)此訪問(wèn)權(quán)限,您可以使用筆記本電腦上的本地工具與群集內(nèi)的進(jìn)程進(jìn)行通信。
6、Zabbix
Zabbix旨在監(jiān)視大量網(wǎng)絡(luò)參數(shù)和服務(wù)器的運(yùn)行狀況,并基于存儲(chǔ)的數(shù)據(jù)提供許多數(shù)據(jù)可視化和報(bào)告功能。具有少量服務(wù)器的小型組織和具有多個(gè)服務(wù)器的大型企業(yè)可以使用Zabbix監(jiān)視IT基礎(chǔ)結(jié)構(gòu)。
主要功能包括:
- 彈性閾值 - 您可以定義彈性問(wèn)題閾值,也稱為觸發(fā)器。這些觸發(fā)器基于后端數(shù)據(jù)庫(kù)中的值。
- 實(shí)時(shí)可視化 - 您可以使用內(nèi)置的繪圖功能立即查看受監(jiān)視的項(xiàng)目。
- 自動(dòng)發(fā)現(xiàn) - 提供多種自動(dòng)化大型環(huán)境(如Kubernetes)管理的方法。您可以在組織中自動(dòng)添加和刪除文件系統(tǒng)和網(wǎng)絡(luò)接口。
- 網(wǎng)絡(luò)發(fā)現(xiàn) - 使您能夠定期掃描網(wǎng)絡(luò)中的外部服務(wù)或Zabbix代理,并在發(fā)現(xiàn)時(shí)采取預(yù)定義的措施。
- 分布式監(jiān)視 - 提供使用Zabbix代理監(jiān)視分布式基礎(chǔ)結(jié)構(gòu)的有效方法。您可以使用代理在本地收集數(shù)據(jù),然后將數(shù)據(jù)報(bào)告給服務(wù)器。
結(jié)論
Prometheus是用于監(jiān)視Kubernetes工作負(fù)載的開源工具。它被本地集成為Kubernetes中的默認(rèn)監(jiān)視工具,包括內(nèi)置的警報(bào)管理器。但是,您還應(yīng)該考慮針對(duì)您的Kubernetes環(huán)境使用其他監(jiān)視選項(xiàng),以補(bǔ)充和改進(jìn)Kubernetes功能體驗(yàn)。