作者陳凱燁,騰訊云前端開發工程師,負責 TKE 集群,彈性集群和云原生監控等模塊控制臺開發,
概述
Prometheus 是一套開源的系統監控報警框架,2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,成為受歡迎度僅次于 Kubernetes 的專案,
2020年11月20日,騰訊云云原生 Prometheus 服務正式開始免費公測,針對容器集群監控場景,提供了一整套包括監控、采集、存盤、告警、圖表等能力的監控服務,通過獨立部署與被監控物件解耦合,使得不受監控物件性能、穩定性、可靠性等因素的影響,托管模式使得用戶無需部署運維 Prometheus 監控實體,解放了運維人力,而新推出的模板功能可以解決在多個集群之間粘貼復制配置的重復性作業問題,實作一鍵同步多個集群配置,使得整個流程更專業、更可靠,本文會詳細介紹云原生監控服務的基本功能以及使用方式,
騰訊云容器團隊的云原生監控服務,產品目前已正式公測,歡迎讀者試用(傳送門:https://console.cloud.tencent.com/tke2/prometheus ),
基本功能
實體管理
創建實體
- 登錄容器服務控制臺,選擇左側導航欄中的【云原?監控】
- 點擊??上?的【新建】按鈕,進?【創建監控實體】??,如下圖所示:

- 在【創建監控實體??】,根據提示設定集群資訊,如下圖所示:

-
地域: 選擇您希望部署該實體的地域,實體創建后 地域?法修改,建議您根據所在地理位置選擇靠近業務的地域,可降低訪問延遲,提高資料上報速度,
-
?絡:需選擇當前地域下已有的私有網路和子網,創建后不可修改,若在該地域下沒有 vpc 資源可跳轉到私有?絡控制臺新建 vpc,實體默認情況下只能監控本 vpc 網路的集群,若您希望監控其他 vpc 集群,您需要使?云聯?等服務進? vpc ?絡打通,
-
資料存盤時間:選擇資料存盤時間,可選 15天/ 3個?/ 6個?/?年,實體創建成功后將?動為您創建物件存盤 COS 存盤桶并按照實際資源使?情況計費,詳情請參見物件存盤計費概述,
-
Grafana組件:此處需要設定登錄用戶名和密碼用于 Grafana 登陸,Grafana 默認只支持 vpc 內訪問,實體創建后,您可以根據業務需要開通 Grafana 外網訪問,
-
AlertManger:您可通過添加?定義的 AlertManger 地址,將實體產?的告警發往自建的 AlertManger,
基礎資訊
實體創建完成后,將處于運行中狀態,您可點擊實體查看其基本資訊,除了創建時指定的?些資訊外,還包含?些創建完成后提供的資訊:

-
物件存盤桶:云原?監控使?物件存盤在進?資料持久化存盤,實體將在您賬號下創建?個物件存盤的桶?于存盤資料,
-
Prometheus 資料查詢地址:該接??于提供資料查詢,targets 查詢,rules 查詢等,您可以使?該地址對接?建的 Grafana
-
Grafana:默認為您提供了內?地址,您可以選擇性開啟外?訪問,開啟后將?成固定的外?域名,
Prometheus資料查詢介面
Prometheus 資料查詢地址目前可支持以下幾個 path,
-
/api/v1/query:查詢最近?次抓取的資料,
-
/api/v1/query_range:查詢?段時間的資料,
-
/api/v1/targets:查詢監控目標的資訊,
由于實體可能關聯了多個集群,您需要添加 cluster=[集群型別]-[集群id]引數,用于指定目標集群:
TKE 集群:/api/v1/targets?cluster=tke-cls-xxx
彈性集群:/api/v1/targets?cluster=eks-cls-xxx
邊緣集群:/api/v1/targets?cluster=tkeedge-cls-xxx
-
/api/v1/alerts:查詢告警狀態,
-
/api/v1/rules:查詢聚合和告警規則,
默認監控面板
實體創建的 Grafana 會提供?些常用的監控面板,包含了集群綜合資訊,節點,作業負載,Pod 等,當您后續進行了集群關聯后,被關聯集群的資料就可以在默認監控面板中查看,


多集群管理
關聯集群
實體創建完成后,您需要需要監控的集群進行關聯,關聯之后,您就可以在集群中通過創建 SerivceMonitor,PodMonitor 等進行采集配置,


TKE 的標準集群以及彈性集群需要與該實體 Prometheus 所屬同一個 VPC 網路,邊緣集群則不受這個限制,
采集配置
Prometheus Operator
云原生監控為用戶提供了與 Prometheus Operator 兼容的能力,您可以修改 Prometheus Operator 所定義的采集相關的 CRD,例如 Prometheus CRD,ServiceMonitor,PodMonitor 等,具體可以參考【prometheus operator】
修改采集周期和額外 labels
當成功關聯集群后,會在被關聯集群的 prom-xxx 命名空間下創建?個名如【tke-cls-xxx】的 Prometheus CRD 資源,可以通過修改此資源來修改全域采集配置,額外的 labels 等等,

ServiceMonitor
云原?監控?持創建【ServiceMonitor】,您可以通過控制臺創建,也可以直接在集群?創建 ServiceMonitor,


選擇該集群中的任意 service 自動聚和成 Yaml,
PodMonitor
云原監控支持創建【PodMonitor】,您可以通過控制臺創建,也可以直接在集群?創建 PodMonitor,


Rawjob
云原?監控?持直接創建 Prometheus 原?的 job,您可以通過控制臺創建,也可以通過修改集群中 prom-xxx 命名空間下的 promtheus-config secret 來達到同樣效果

最終配置
您可以在控制臺的集群資料采集配置右上?看到最終?成的 Prometheus 配置?件

您也可以在被關聯集群的 prom-xxx 命名空間下,通過查看 prometheus-tke-cls-xxx 的 secret 來查看最終配置

掛載?件到采集器
在配置采集項的時候,您可能需要為配置提供?些?件,例如證書,您可以通過以下?式向采集器掛載?件,?件的更新會實時同步到采集器內:
-
prom-xxx 命名空間下的 configmap 打上以下的 label:
prometheus.tke.tencent.cloud.com/scrape-mount = "true",其中所有的 key 就會被掛載到采集器的路徑
/etc/prometheus/configmaps/[configmap-name]/, -
prom-xxx 命名空間下的 secret 打上以下的 label:
prometheus.tke.tencent.cloud.com/scrape-mount = "true"其中所有的 key 就會被掛載到采集器的路徑
/etc/prometheus/secret/[secret-name]/
默認采集配置
集群被關聯后,云原?監控會在被關聯集群內創建默認的采集配置,將安裝以下兩個組件
-
kube-state-metrics:在 kube-system 下將安裝【kube-state-metrics】組件,
-
node exporter: 在 kube-system 下將安裝【node exporter】組件,
將添加以下采集項:


將添加以下聚合規則:

查看 targets
您可以通過控制臺【查看 targets ?標】來查看當前所有被監控的物件的狀態,


聚合規則
簡介
聚合規則?于使? PromQL 來?成新的指標,聚合規則將以 30 秒為周期進?計算,
創建聚合規則

告警
簡介
告警規則?于定義告警,告警規則將以 30 秒為周期進?計算,
創建告警規則
您可以通過控制臺來創建告警規則,?個告警可以配置多條規則:

-
名稱:為?戶?定義告警名稱
-
規則名稱:?于識別規則,可通過該名稱在 Grafana 中查看其告警狀態
-
PromQL:規則陳述句
-
Labels:在發送告警時將額外帶上,這?的 Labels ?法在告警內容中引?
-
告警內容:?于?成告警內容的模板,您可以使? {{$value}} 來引?告警觸發時的值,也可以使? {{$labels.label-name}} 來引?某個 label 的值
-
持續時間:當規則處于告警狀態時間?于該值時才會觸發告警,配置告警規則時,您還需要配置對應的告警渠道資訊
查看告警歷史
您可以在告警歷史界?查詢告警歷史記錄,默認查詢近 24 ?時的告警記錄,您可以通過時間篩選來查詢?標范圍內的記錄,您可以通過通過右邊搜索欄進?模糊過濾,

在集群內創建聚合或告警規則
您可以通過在集群內直接創建【PrometheusRule】來創建告警和聚合規則
-
默認會?動在規則的 PromQL 中注? Prometheus CRD 中的 externalLables,從?使得該規則只對本集群?效,關閉 externalLabels 注?可以通過在【PrometheusRule】中打上以下 annottation 來關閉注?:
prometheus.tke.tencent.cloud.com/disable-labels-inject="" -
若您創建的是告警規則,可通過添加以下 annotation 來指定告警渠道:
prometheus.tke.tencent.cloud.com/notification-inject="渠道id"
其中,渠道 id 即為控制臺創建告警規則時所?成的告警 id,

因此,若您想使?集群內告警規則,您需要在控制臺?少創建?起告警,
模板功能
簡介
模板一共分成兩種型別,聚合規則和告警策略模板、資料采集模板,用于管理多集群 prometheus 配置,并支持一鍵同步升級等功能,
創建模板
您可以通過控制臺來創建模板,既可以復制已有模板,也可以創建一個空模板,然后添加自定義配置,


其中聚合規則和告警策略模板、資料采集等配置寫法保持一致,
-
名稱:模板名稱,
-
型別:默認模板只允許進行復制,不允許編輯和洗掉,
-
關聯 Prometheus 實體數目:模板系結了 Prometheus 實體的數目,
-
關聯 Prometheus Agent 數目:模板系結了 Prometheus 實體的數目,
-
版本:代表當前模板的版本,
關聯實體串列

告警和聚合模板的關聯實體串列,在這個串列中,能夠對系結的多個 Prometheus 實體進行同步告警策略和聚合規則,
關聯實體


支持同時關聯多個地域的 Prometheus 實體或者多個地域的集群,從而達到一鍵同步,管理多個集群的效果,

如果對模板解除關聯則所有模板相關配置被清除且不可恢復,
總結
本文詳細介紹了云原生監控服務的基本功能和使用方式,在原有監控、采集、存盤、告警、圖表等能力的基礎上再增加了模板功能,使得支持對多集群架構服務進行監控,
【騰訊云原生】云說新品、云研新術、云游新活、云賞資訊,掃碼關注同名公眾號,及時獲取更多干貨!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/238975.html
標籤:其他

