可觀測(cè)性體系概述
可觀測(cè)性是一種通過(guò)分析系統(tǒng)外部輸出結(jié)果推斷及衡量系統(tǒng)內(nèi)部狀態(tài)的能力。Kubernetes可觀測(cè)性體系包含監(jiān)控和日志兩部分,監(jiān)控可以幫助開(kāi)發(fā)者查看系統(tǒng)的運(yùn)行狀態(tài),而日志可以協(xié)助問(wèn)題的排查和診斷。本文介紹阿里云容器服務(wù)ACK可觀測(cè)性生態(tài)分層和各層的可觀測(cè)能力,以幫助您對(duì)容器服務(wù)可觀測(cè)性生態(tài)有一個(gè)全面的認(rèn)識(shí)。
容器服務(wù)可觀測(cè)生態(tài)概述
從可觀測(cè)性的角度,以ACK為基礎(chǔ)的系統(tǒng)架構(gòu)可以粗略分為4個(gè)層次。自下而上分別是:基礎(chǔ)設(shè)施層、容器性能層、應(yīng)用性能層、用戶業(yè)務(wù)層。
以下分別是基礎(chǔ)設(shè)施層、容器性能層、應(yīng)用性能層、用戶業(yè)務(wù)層的可觀測(cè)性介紹。
基礎(chǔ)設(shè)施層可觀測(cè)性
指容器服務(wù)ACK所依賴的底層資源的可觀測(cè)場(chǎng)景:定位Pod與節(jié)點(diǎn)組成的資源池的調(diào)用鏈路,可視化拓?fù)潢P(guān)系,以及基礎(chǔ)設(shè)施監(jiān)控,例如宿主機(jī)節(jié)點(diǎn)、網(wǎng)絡(luò)基礎(chǔ)組件的性能監(jiān)控等。
解決方案 | 方案介紹 | 適用場(chǎng)景 | 參考文檔 |
架構(gòu)可視化感知方案 | Kubernetes集群中的業(yè)務(wù)是運(yùn)行在節(jié)點(diǎn)組成的資源池上,使得定位Pod的調(diào)用鏈路以及拓?fù)潢P(guān)系非常復(fù)雜。如何以可視化的方式監(jiān)控Kubernetes中的負(fù)載狀態(tài),以及更好地可視化集群中流量的吞吐是非常重要的問(wèn)題。 阿里云Kubernetes監(jiān)控基于eBPF技術(shù),結(jié)合阿里云Prometheus容器監(jiān)控,最終整合了指標(biāo)監(jiān)控、應(yīng)用鏈路追蹤、日志分析和事件監(jiān)控等多種功能,提供Kubernetes集群一站式可觀測(cè)性產(chǎn)品。使ACK集群具備網(wǎng)絡(luò)監(jiān)控、架構(gòu)可視化感知等能力。為IT開(kāi)發(fā)和運(yùn)維人員提供無(wú)代碼侵入、整體的可觀測(cè)性方案。 | 適用于全部場(chǎng)景。
| 更多信息,請(qǐng)參見(jiàn)集群拓?fù)浔O(jiān)控。 |
內(nèi)核層容器監(jiān)控能力 | 容器服務(wù) Kubernetes 版 ACK(Container Service for Kubernetes)提供獨(dú)特的操作系統(tǒng)內(nèi)核層的容器監(jiān)控可觀測(cè)能力SysOM(System Observer Monitoring)。該能力可以幫助您更好地進(jìn)行容器化部署和遷移,同時(shí)也可以提供更好的容器監(jiān)控和可觀測(cè)能力。 | 適用于全部場(chǎng)景。 | 更多信息,請(qǐng)參見(jiàn)SysOM內(nèi)核層容器監(jiān)控。 |
基礎(chǔ)設(shè)施指標(biāo)監(jiān)控方案 | 資源監(jiān)控是Kubernetes中最常見(jiàn)的底層資源監(jiān)控方式,通過(guò)資源監(jiān)控可以快速查看負(fù)載的CPU、內(nèi)存、網(wǎng)絡(luò)等指標(biāo)的使用率。在阿里云容器服務(wù)中,資源監(jiān)控已經(jīng)與云監(jiān)控互通,新建的集群默認(rèn)安裝并集成云監(jiān)控(Cloud Monitor)。 | 適用于全部場(chǎng)景。 | 更多信息,請(qǐng)參見(jiàn)相關(guān)文檔中的基礎(chǔ)資源監(jiān)控。 |
容器性能層可觀測(cè)性
指基于容器服務(wù)ACK構(gòu)建系統(tǒng)的容器抽象層的可觀測(cè)場(chǎng)景,包括集群的性能、事件等監(jiān)控,容器的性能,以及容器組件等監(jiān)控。
集群、容器的性能指標(biāo)監(jiān)控
解決方案 | 方案介紹 | 適用場(chǎng)景 | 參考文檔 |
云監(jiān)控容器服務(wù)ACK的監(jiān)控方案 | 容器服務(wù) Kubernetes 版 ACK(Container Service for Kubernetes)新建的集群默認(rèn)安裝與集成云監(jiān)控(Cloud Monitor),提供集群、容器的部分性能指標(biāo)監(jiān)控,并集成在容器服務(wù)控制臺(tái)中展示。 | 適用于部分場(chǎng)景。 定制化提供基礎(chǔ)的容器層性能指標(biāo)和可觀測(cè)能力。 | 更多信息,請(qǐng)參見(jiàn)基礎(chǔ)資源監(jiān)控。 |
阿里云托管版Prometheus的監(jiān)控方案 | Prometheus也是社區(qū)官方的容器場(chǎng)景云原生指標(biāo)可觀測(cè)方案。阿里云Prometheus監(jiān)控全面對(duì)接開(kāi)源Prometheus生態(tài),支持類型豐富的組件監(jiān)控,提供多種開(kāi)箱即用的預(yù)置監(jiān)控大盤,且提供全面托管的Prometheus服務(wù)。借助阿里云Prometheus監(jiān)控,您無(wú)需自行搭建Prometheus監(jiān)控系統(tǒng),因此無(wú)需關(guān)心底層數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)展示、系統(tǒng)運(yùn)維等問(wèn)題。推薦使用阿里云托管版Prometheus(ARMS Prometheus)云產(chǎn)品。 | 適用于所有場(chǎng)景,包括微服務(wù)(ServiceMesh)場(chǎng)景、集群自身組件指標(biāo),以及定制監(jiān)控能力等高級(jí)可觀測(cè)能力。 | 更多信息,請(qǐng)參見(jiàn)阿里云Prometheus監(jiān)控。 |
開(kāi)源Prometheus監(jiān)控方案 | 阿里云容器服務(wù)在應(yīng)用市場(chǎng)中提供了開(kāi)源Prometheus監(jiān)控方案的集成。 | 適用于所有場(chǎng)景,包括微服務(wù)(ServiceMesh)場(chǎng)景、集群自身組件指標(biāo)以及定制監(jiān)控能力等高級(jí)可觀測(cè)能力。 | 更多信息,請(qǐng)參見(jiàn)開(kāi)源Prometheus監(jiān)控。 |
集群、容器事件監(jiān)控
解決方案 | 方案介紹 | 適用場(chǎng)景 | 參考文檔 |
事件的監(jiān)控方案 | 事件監(jiān)控是Kubernetes站在事件角度的另一種監(jiān)控方式,可以彌補(bǔ)資源監(jiān)控在實(shí)時(shí)性、準(zhǔn)確性和場(chǎng)景上的缺陷。開(kāi)發(fā)者可以通過(guò)獲取事件,實(shí)時(shí)診斷集群的異常與問(wèn)題。推薦使用阿里云日志服務(wù) SLS(Log Service)產(chǎn)品提供的事件中心監(jiān)控能力。 | 適用于全部場(chǎng)景。 | 更多信息,請(qǐng)參見(jiàn)事件監(jiān)控。 |
應(yīng)用性能層可觀測(cè)性
指基于容器服務(wù)ACK構(gòu)建系統(tǒng)的具體應(yīng)用場(chǎng)景,包括應(yīng)用指標(biāo)性能(Metric)、系統(tǒng)調(diào)用鏈(Tracing)、日志監(jiān)控(Logging)等,例如基于容器服務(wù)構(gòu)建一個(gè)Java應(yīng)用,Java應(yīng)用的線程數(shù)指標(biāo)等。
解決方案 | 方案介紹 | 適用場(chǎng)景 | 參考文檔 |
無(wú)侵入Java應(yīng)用監(jiān)控APM監(jiān)控方案 | 推薦使用阿里云應(yīng)用性能監(jiān)控ARMS(Application Realtime Monitor Service)作為應(yīng)用性能層監(jiān)控方案,ARMS是一款阿里云應(yīng)用性能管理(APM)類監(jiān)控產(chǎn)品。只要為部署在容器服務(wù)Kubernetes版中的Java應(yīng)用安裝ARMS應(yīng)用監(jiān)控組件,您無(wú)需修改任何代碼,就能借助ARMS對(duì)Java應(yīng)用進(jìn)行全方位監(jiān)控,以便您更快速地定位出錯(cuò)接口和慢接口、重新調(diào)用參數(shù)、檢測(cè)內(nèi)存泄漏、發(fā)現(xiàn)系統(tǒng)瓶頸,從而大幅提升線上問(wèn)題診斷的效率。 | 適用于部分場(chǎng)景,包括Java應(yīng)用的應(yīng)用監(jiān)控,方案接入支持無(wú)侵入方式,無(wú)需進(jìn)行代碼改造。 | 更多信息,請(qǐng)參見(jiàn)應(yīng)用監(jiān)控。 |
侵入式應(yīng)用監(jiān)控APM監(jiān)控方案 | 鏈路追蹤Tracing Analysis為分布式應(yīng)用的開(kāi)發(fā)者提供了完整的調(diào)用鏈路還原、調(diào)用請(qǐng)求量統(tǒng)計(jì)、鏈路拓?fù)洹?yīng)用依賴分析等工具,可以幫助開(kāi)發(fā)者快速分析和診斷分布式應(yīng)用架構(gòu)下的性能瓶頸,提高微服務(wù)時(shí)代下的開(kāi)發(fā)診斷效率。鏈路追蹤支持多種開(kāi)源社區(qū)的SDK,且支持OpenTracing、OpenTelemetry生態(tài)標(biāo)準(zhǔn)。 | 適用于所有場(chǎng)景,包括微服務(wù)(ServiceMesh)以及多種開(kāi)發(fā)語(yǔ)言的應(yīng)用。支持OpenTelemetry生態(tài)標(biāo)準(zhǔn)。方案接入需要侵入式代碼引入改造。 | 更多信息,請(qǐng)參見(jiàn)在ASM中實(shí)現(xiàn)分布式跟蹤。 |
可觀測(cè)鏈路 OpenTelemetry 版為分布式應(yīng)用的開(kāi)發(fā)者提供了完整的調(diào)用鏈路還原、調(diào)用請(qǐng)求量統(tǒng)計(jì)、鏈路拓?fù)洹?yīng)用依賴分析等工具,可以幫助開(kāi)發(fā)者快速分析和診斷分布式應(yīng)用架構(gòu)下的性能瓶頸,提高微服務(wù)時(shí)代下的開(kāi)發(fā)診斷效率。 | 基于OpenTracing標(biāo)準(zhǔn),兼容開(kāi)源社區(qū),例如Jaeger、Zipkin。支持多語(yǔ)言開(kāi)發(fā)程序接入,包括Java、PHP、Go、Python、Node.js、.NET、C++、Ruby、Swift等。 | 更多信息,請(qǐng)參見(jiàn)什么是可觀測(cè)鏈路 OpenTelemetry 版及接入指南。 |
用戶業(yè)務(wù)層可觀測(cè)性
基于容器服務(wù)ACK構(gòu)建的業(yè)務(wù)系統(tǒng)的具體業(yè)務(wù)場(chǎng)景,例如基于容器服務(wù)構(gòu)建一套高可用可擴(kuò)展的網(wǎng)站,網(wǎng)站的業(yè)務(wù)運(yùn)營(yíng)數(shù)據(jù)PV、UV等,例如應(yīng)用的成本審計(jì)場(chǎng)景等。
解決方案 | 方案介紹 | 適用場(chǎng)景 | 參考文檔 |
自定義日志監(jiān)控方案 | 推薦使用阿里云日志服務(wù)SLS(Log Service)作為自定義指標(biāo)的觀測(cè)方案。您可以通過(guò)自定義應(yīng)用系統(tǒng)的內(nèi)容、格式,并通過(guò)日志服務(wù)收集,并在日志服務(wù)中配置業(yè)務(wù)大盤,觀測(cè)自己的業(yè)務(wù)情況,或做系統(tǒng)審計(jì)。 | 適用于全部場(chǎng)景,如流量監(jiān)控、成本審計(jì)統(tǒng)計(jì)、業(yè)務(wù)訂單走勢(shì)統(tǒng)計(jì)等。 | 更多信息,請(qǐng)參見(jiàn)通過(guò)日志服務(wù)采集Kubernetes容器日志。 |
通過(guò)可觀測(cè)可視化Grafana版自定義業(yè)務(wù)大盤 | 阿里云可觀測(cè)可視化Grafana版是云原生的運(yùn)維數(shù)據(jù)可視化平臺(tái),面向用戶提供免運(yùn)維和快速啟動(dòng)Grafana運(yùn)行環(huán)境的能力,默認(rèn)集成如數(shù)據(jù)庫(kù)、消息隊(duì)列、Prometheus監(jiān)控、日志服務(wù)等各類阿里云服務(wù)數(shù)據(jù)源,并提供豐富的數(shù)據(jù)看板,讓運(yùn)維監(jiān)控更加精細(xì)。 可觀測(cè)可視化 Grafana 版可以幫助您在高效分析與查看指標(biāo)、日志和跟蹤的同時(shí),無(wú)需關(guān)注服務(wù)器配置、軟件更新等繁雜工作,有效降低運(yùn)維復(fù)雜性與工作量,并借助阿里云強(qiáng)大的云原生能力,全面提升Grafana的安全性與可用性。 | 適用于全部場(chǎng)景。 用戶可根據(jù)自身業(yè)務(wù)場(chǎng)景,直接使用Grafana配置業(yè)務(wù)大盤,如PV、UV等實(shí)時(shí)業(yè)務(wù)監(jiān)控大盤。 | 更多信息,請(qǐng)參見(jiàn)什么是可觀測(cè)可視化 Grafana 版。 |
通過(guò)ARMS前端監(jiān)控從網(wǎng)頁(yè)前端感知業(yè)務(wù)流量、業(yè)務(wù)服務(wù)的健康狀況。 | ARMS前端監(jiān)控專注于對(duì)Web場(chǎng)景、Weex場(chǎng)景和小程序場(chǎng)景的監(jiān)控,從頁(yè)面打開(kāi)速度(測(cè)速)、頁(yè)面穩(wěn)定性(JS診斷錯(cuò)誤)和外部服務(wù)調(diào)用成功率(API)這三個(gè)方面監(jiān)測(cè)Web和小程序頁(yè)面的健康狀況。 | 適用JavaScript的前端應(yīng)用場(chǎng)景。 | 更多信息,請(qǐng)參見(jiàn) |
相關(guān)文檔
關(guān)于日志監(jiān)控的更多信息,請(qǐng)參見(jiàn)日志概述、通過(guò)日志服務(wù)采集Kubernetes容器日志、為Kubernetes和日志服務(wù)配置Log4JAppender。
關(guān)于監(jiān)控指標(biāo)的更多信息,請(qǐng)參見(jiàn)基礎(chǔ)資源監(jiān)控、應(yīng)用監(jiān)控、集群拓?fù)浔O(jiān)控、事件監(jiān)控。
關(guān)于如何使用監(jiān)控和配置監(jiān)控大盤,請(qǐng)參見(jiàn)阿里云Prometheus監(jiān)控、Ingress Dashboard監(jiān)控、CoreDNS組件監(jiān)控、通過(guò)PromQL查詢Prometheus監(jiān)控?cái)?shù)據(jù)、SysOM內(nèi)核層容器監(jiān)控。