您當前的位置:首頁 > 攝影

可觀測監控方案大全-SLS全棧監控

作者:由 阿里雲日誌服務 發表于 攝影時間:2022-12-15

前言

監控作為每個公司IT系統中必備的功能,伴隨著計算機的誕生就已經開始出現,經過幾十年的發展,現在的IT技術和架構已經出現了非常大的變化。開發模式、系統架構、部署模式、基礎設施都已經經歷過多次的架構變遷,目前主流以微服務、容器化、雲、DevOps這些技術為主。

可觀測監控方案大全-SLS全棧監控

伴隨著這些架構的變遷,帶來的影響是整個的系統也更加的複雜、開發依賴更多的人和部門、部署模式和執行環境也更加動態和不確定,因此IT行業也已經到了需要更加系統化、體系化進行觀測的這一過程。對於監控系統,也在經歷著巨大的變革,朝向雲原生、資料融合、智慧等方向演進。

監控系統發展歷程

可觀測監控方案大全-SLS全棧監控

回顧整個IT監控的發展過程,我個人認為可分為4個階段,分別是Unix時代、資料中心時代、分散式時代以及雲原生時代:

Unix時代:隨著Unix、Linux的流行,我們才有了真正意義上的IT系統,在80、90年代的時候,應用通常都是單機部署,而且很簡單。為了能夠定位單機應用的一些問題,Unix中增加了很多Metrics,例如CPU、記憶體、IO的使用情況。同時為了更快速的獲取這些指標,Unix/Linux中提供了很多命令列工具,例如top、vmstat、iostat等,同時為使用桌面系統的人提供了很多圖形化的工具來看問題,這也是IT監控中最早的折線圖應用。在這一階段,大家對於效能、使用者體驗等關注不是高,基本上只在乎可用性,也就是服務是否能夠Work。

資料中心時代:在90年代,越來越多的公司開始搭建自己的資料中心,少到幾臺,多到成百上千臺。這個時候出現了專門的IT運維人員,為了更好的管理這些機器,開發了SNMP(Simple Network Management Protocol)協議,用於管理和監控資料中心中每臺機器的狀態。這個時候的監控架構主要還是單機的方式來實現,透過SNMP協議,來監控各個主機的網路和硬體資訊。這一階段也出現了跨主機的應用以及提供對外服務的Web類應用,監控系統也會部分關注網路延遲,但並不是實際的使用者請求延遲。

分散式時代:在21世紀後,網際網路開始流行,應用場景也越來越廣,單機已經逐漸承受不住日益上漲的請求量,因此分層式的分散式架構開始逐漸流行。而監控系統的分層模式也劃分的逐漸明顯,例如主機監控、網路監控、中介軟體監控、應用監控等,其中應用監控是新出現的範疇,對於應用監控要求不僅關注應用可用性問題,也要監控和解決效能問題。這一階段監控系統的架構也變為分散式,後端會有多臺機器多個模組組成,例如資料處理、儲存、告警等,其中每個模組也可能是分散式的,例如分散式的流式處理、分散式的資料庫等。

雲原生時代:隨著雲計算、容器化技術的成熟,很多公司開始採用容器化、微服務的技術來開發應用,應用的部署環境也會選擇公有云或者私有云的方式。在雲原生的場景下,虛擬化會更加徹底、環境動態性更強,傳統的一些監控方式將不再適合,因此需要有能夠對接Kubernetes、微服務、雲上資源的監控系統。而監控目的也更加向上,關注使用者實際的體驗和問題排查的效率,因此除了採集更多的監控資訊外,也需要能夠和其他的可觀測資料(例如Logs/Traces)進行關聯分析來快速定位問題,同時也引入AI的技術來進行自動化的異常發現、定位與修復。

雲原生時代的監控方案

雲原生時代的監控方案,除了監控方案本身需要的進步外,監控的能力和效果也必須提升一個階層,這裡我們總結起來,需要以下幾個特性:

範圍廣:從基礎設施、容器/K8s、雲廠商、中介軟體、資料庫等都能夠支援

統一檢視:各種不同層級的資料都能有統一的入口和檢視來檢視

統一告警:告警是監控的重要組成部分,告警也必須能夠實現統一的管理,並且具備智慧降噪、動態值班表、告警合併/路由等一些高階特性,降低管理和使用成本

智慧:企業的IT系統中所涉及的元件數量龐大,靜態的規則告警很難適用,因此必須要有一些啟發式的AIOps時序異常檢測方式,能夠自動發現異常的曲線並告警

資料融合分析:可以便捷的和Trace、Log、Event等其他可觀測資料有效的進行關聯分析,便於快速定位和解決問題

SLS全棧監控

可觀測監控方案大全-SLS全棧監控

SLS作為阿里可觀測性資料引擎,具備可觀測資料日誌、指標、分散式鏈路追蹤、事件等的一站式採集和儲存。為了便於使用者快速接入和監控業務系統,SLS提供了全棧監控的APP,將各類監控資料彙總到一個例項中進行統一的管理和監控。全棧監控基於SLS的監控資料採集、儲存、分析、視覺化、告警、AIOps等能力構建,詳細功能如下:

可觀測監控方案大全-SLS全棧監控

實時監控各類系統,包括主機監控、Kubernetes監控、資料庫監控、中介軟體監控等。

支援ECS、K8s一鍵安裝,支援圖形化的監控配置管理,無需登入主機配置採集監控項。

運維老司機多年經驗的報表總結,包括資源總覽、水位監控、熱點分析、詳細指標等數十個報表。

支援自定義的分析,支援包括PromQL、SQL92等多種分析語法。

支援對接AIOps指標巡檢,利用機器學習技術自動發現異常指標。

支援自定義告警配置,告警通知直接對接訊息中心、簡訊、郵件、語音(電話)、釘釘,並支援對接自定義WebHook。

全棧監控功能概覽

可觀測監控方案大全-SLS全棧監控

主機監控

儀表盤

說明

資源總覽

用於實時視覺化展示主機配置資訊和指標資訊的總體情況,包括CPU核數、磁碟總空間、CPU平均使用率、記憶體平均使用率等。

主機列表

用於實時視覺化展示每臺主機的配置資訊和指標資訊,包括CPU核數、記憶體、CPU使用率、記憶體使用率等。

熱點分析

用於實時視覺化熱點機器的CPU、記憶體等資源使用情況,包括CPU熱點指標分佈、記憶體熱點指標分佈、Top CPU使用率、Top 記憶體使用率等。

單機指標-簡

用於實時視覺化展示主機的CPU、記憶體等資源的使用趨勢,包括CPU使用率、磁碟空間使用率、記憶體使用率等。

單機指標-詳

用於實時視覺化展示主機的CPU、記憶體等資源處於不同狀態的使用趨勢,包括CPU(處於Total、System、User、IOWait狀態的CPU使用趨勢)、記憶體(處於Total、Availableused、Used狀態的記憶體使用趨勢)等。

可觀測監控方案大全-SLS全棧監控

可觀測監控方案大全-SLS全棧監控

Kubernetes監控

儀表盤

說明

資源總覽

用於實時視覺化展示Kubernetes中資源的使用情況,包括Pod、Host、Service、Deployment等。

水位監控

用於實時視覺化展示Kubernetes中資源的水位情況,包括Pod執行數、CPU總數、檔案系統使用量等。

執行時監控

用於實時視覺化展示Kubernetes中處於執行狀態的資源資訊,包括Deployment執行數量、Daemonset執行數量等。

核心元件監控

用於實時視覺化展示Kubernetes中核心元件的相關資料,包括ETCD物件數、ETCD請求QPS等。

Node列表

用於實時視覺化展示Node的整體情況以及每個Node的配置資訊和指標資訊,包括Node總數、執行中的Pod總數等。

Node指標

用於實時視覺化展示Node的指標資訊,包括可申請Pod數量、CPU使用率等。

Pod列表

用於實時視覺化展示Pod的整體情況以及每個Pod的配置資訊和指標資訊,包括可申請的Pod總數等。

Pod指標

用於實時視覺化展示Pod的指標資訊,包括Pod基本資訊、容器基礎資訊等。

Deployment列表

用於實時視覺化展示每個Deployment的配置資訊和指標資訊,包括Deployment所屬名稱空間、叢集等。

Deployment指標

用於實時視覺化展示Deployment的指標資訊,包括CPU Limit使用率、記憶體Limit使用率等。

StatefulSet列表

用於實時視覺化展示每個StatefulSet的配置資訊和指標資訊,包括StatefulSet所屬名稱空間、叢集等。

StatefulSet指標

用於實時視覺化展示StatefulSet的指標資訊,包括CPU Limit使用率、記憶體Limit使用率等。

DaemonSet列表

用於實時視覺化展示每個DaemonSet的配置資訊和指標資訊,包括DaemonSet所屬名稱空間、叢集等。

DaemonSet指標

用於實時視覺化展示DaemonSet的指標資訊,包括CPU Limit使用率、記憶體Limit使用率等。

可觀測監控方案大全-SLS全棧監控

可觀測監控方案大全-SLS全棧監控

可觀測監控方案大全-SLS全棧監控

資料庫監控

儀表盤

說明

MySQL監控

用於實時視覺化展示MySQL資料庫中監控指標,包括啟動時間、Query執行次數、連線數等。

Redis監控

用於實時視覺化展示Redis資料庫中的監控指標,包括開啟叢集例項個數、Redis執行時間、連線的客戶端數量等。

Elasticsearch監控

用於實時視覺化展示Elasticsearch中的監控指標,包括Cluster health、Nodes等。

Clickhouse監控

用於實時視覺化展示Clickhouse資料庫中的監控指標,包括Query、Merge等。

MongoDB監控

用於實時視覺化展示MongoDB資料庫中的監控指標,包括Available Connections、Query Operations等。

可觀測監控方案大全-SLS全棧監控

中介軟體監控

儀表盤

說明

JVM監控

用於實時視覺化展示JVM中的監控指標,包括程序執行時長、總記憶體、堆記憶體、CPU使用率等。

Nginx監控

用於實時視覺化展示Nginx中的監控指標,包括Processed connections、QPS等。

Tomcat監控

用於實時視覺化展示Tomcat中的監控指標,包括程序執行時長、QPS、錯誤數、CPU使用率等。

Kafka監控

用於實時視覺化展示Kafka中的監控指標,包括Controller狀態、總Topic數、每秒訊息數量等。

NVIDIA GPU監控

用於實時視覺化展示NVIDIA GPU中的監控指標,包括GPU Utilization、Memory Utilization等。

可觀測監控方案大全-SLS全棧監控

Coming soon

可觀測監控方案大全-SLS全棧監控

現階段全棧監控提供了主機監控、K8s監控、資料庫監控、中介軟體監控,後續橫向和縱向的功能擴充套件也即將和大家見面,例如:

雲資源監控,包括阿里雲上各類監控以及AWS、Azure等其他雲上的監控指標

主機增加更多的功能,例如程序級別監控、核心的監控、程序/核心Profile能力等

K8s增加效能、變更以及服務拓撲等監控能力;資料庫增加診斷、Plan監控等;中介軟體支援更多的種類

增加和使用者體驗以及應用相關的監控能力,例如撥測、前端監控、移動端監控等

參考

全棧監控:

https://

sls。console。aliyun。com/

lognext/app/monitor

監控資料接入:

https://

help。aliyun。com/documen

t_detail/354229。html

大盤說明:

https://

help。aliyun。com/documen

t_detail/364237。html

智慧異常診斷:

https://

help。aliyun。com/documen

t_detail/356467。html

告警配置:

https://

help。aliyun。com/documen

t_detail/209951。html

標簽: 監控  視覺化  實時  CPU  指標