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