作者:潁川
引言
Prometheus [ 1] 已成為可觀測指標領域的事實標準。由於各方面因素,當前還有部分用户的部分場景仍使用“自建開源 Prometheus+自建開源 Thanos+自建 Grafana”來實現基礎設施和業務應用的指標監控和告警。阿里雲可觀測監控 Prometheus 版 [ 2] 全面對接開源 Prometheus 生態,支持類型豐富的組件觀測,提供高性能、高可用、高擴展、低成本、易維護的指標可觀察能力。為了便於用户從自建開源 Prometheus 遷移到阿里雲 Prometheus,本文討論在各個典型場景下的遷移方案。
自建開源 Prometheus + Thanos 的典型部署場景
目前典型自建開源 Prometheus+Thanos 的部署場景包括:
- Kubernetes 集羣內安裝開源 Prometheus:
-
- 阿里雲容器服務集羣內安裝。
- 其他雲廠商的容器服務集羣內安裝。
- 自建 IDC 內的自建 Kubernetes 集羣內安裝。
- 非 Kubernetes 集羣上安裝開源 Prometheus:
-
- 阿里雲 ECS 上安裝。
- 其他雲廠商的 ECS 上安裝。
- 自建 IDC 內的 VM 上安裝。
為了滿足長期監控需求,通常用户在自建開源 Prometheus 的基礎上,都會再部署一套或多套自建 Thanos,將多個自建開源 Prometheus 數據集中、長期存儲。
自建開源 Prometheus+Thanos 的痛點
對於自建開源 Prometheus+Thanos,企業通常面臨如下主要問題:
- 業務系統使用到的各種組件,需要自行安裝 exporter、配置大盤和告警規則,工作量大,且通常開源 Grafana 大盤和告警規則不夠專業,缺少結合觀測組件的原理和最佳實踐進行深入優化後的大盤和告警規則。
- 由於企業部門或業務系統不同,需要在不同的容器集羣或 VPC 內,安裝多套自建開源 Prometheus,導致部署成本高、運維複雜等。
- 對於容器集羣或 ECS 規模較大時,自建開源 Prometheus 無法承載大流量的指標處理。
- 引入自建 Thanos 進行集中、長週期存儲後,增加了整個指標可觀察體系複雜性。同時由於存在非 Kubernetes 場景,需要 Thanos Receiver 支持,導致整個 Thanos 部署和運維較複雜,成本高。
阿里雲可觀測監控 Prometheus 版的能力框架
阿里雲可觀測監控 Prometheus 版是一款全面對接開源 Prometheus 生態,支持類型豐富的組件觀測,提供多種開箱即用的預置觀測大盤,且提供全託管的混合雲/多雲 Prometheus 服務。除了支持阿里雲容器服務、自建 Kubernetes、Remote Write 外,阿里雲可觀測監控 Prometheus 版還提供混合雲+多雲 ECS 應用的 metric 觀測能力;並且支持多實例聚合觀測能力,實現 Prometheus 指標的統一查詢,統一 Grafana 數據源和統一告警。
自建開源 Prometheus 與阿里雲可觀測監控 Prometheus 版對比
自建開源 Prometheus 遷移到阿里雲可觀測監控 Prometheus 版 技術方案
從自建開源 Prometheus 遷移到阿里雲可觀測監控 Prometheus 版包含指標採集、可視化分析、告警配置等三個階段步驟,下面分別對這三個階段在不同自建 Prometheus 部署場景下的方案進行討論。
步驟一:指標採集遷移
指標採集是指 Prometheus 根據採集 Job 配置,定時從目標監控組件或其對應的 Exporter 拉取和保存指標數據。
阿里雲容器服務場景:容器集羣監控 [ 4]
遷移要求
- 阿里雲 Prometheus 配置、驗證完,需要 n 天(現有自建開源 Prometheus 數據保存天數)後,才能完成遷移,以便阿里雲 Prometheus 採集到完整監控數據。
遷移步驟
- 在阿里雲 Prometheus 控制枱的“接入中心 [ 5] ”,選擇“容器集羣監控”接入,完成“容器環境”實例創建。
- 在阿里雲 Prometheus 控制枱的“接入管理 [ 6] ”,配置容器集羣內各個監控組件的接入 [ 7] ,以便阿里雲 Prometheus 生成採集 Job、抓取監控數據、生成默認大盤和默認告警規則。
- 【可選】對於用户自定義的採集任務(ServiceMonitor、PodMonitor 和自定義 Job),可在“接入管理”的對應環境實例進行自定義採集規則配置 [ 8] 。
- 驗證阿里雲 Prometheus 上容器集羣的容器集羣大盤和各組件的默認大盤是否正常。
自建 Kubernetes 場景:容器集羣監控
此場景與“自建 Kubernetes 場景:容器集羣監控”一樣,只是需要先將自建 Kubernets 集羣註冊為阿里雲容器服務的“註冊集羣 [9 ] ”即可。
阿里雲 ECS 場景:ECS 監控 [ 10]
遷移要求
- 阿里雲 Prometheus 配置、驗證完,需要 n 天(現有自建開源 Prometheus 數據保存天數)後,才能完成遷移,以便阿里雲 Prometheus 採集到完整監控數據。
遷移步驟
- 在阿里雲 Prometheus 控制枱的“接入中心”,選擇“主機監控”,並按界面嚮導接入後,創建出“ECS 環境”實例,同時部署 ECS 主機監控的 Exporter 和採集配置。
- 在阿里雲 Prometheus 控制枱的“接入管理”,配置 VPC 內各個要監控組件的接入,以便阿里雲 Prometheus 生成採集 Job、抓取監控數據、生成默認大盤和默認告警規則。
- 【可選】對於用户自定義的採集任務,可在“接入管理”的對應環境實例進行自定義採集規則配置。
- 驗證阿里雲 Prometheus 上各組件的默認大盤是否正常。
自建 IDC 場景:ECS 監控
遷移要求
- 阿里雲 Prometheus 配置、驗證完,需要 n 天(現有自建開源 Prometheus 數據保存天數)後,才能完成遷移,以便阿里雲 Prometheus 採集到完整監控數據。
- 需要將自建 IDC 通過 VPC 專線等 [ 11] 方式與用户的某個阿里雲 VPC 打通。
- 需要用户自行在自建 IDC 的各個 VM 上安裝 Node/Process Exporter。
遷移步驟
- 在阿里雲 Prometheus 控制枱的“接入中心”,選擇“主機監控(自助安裝+IP 域選擇)”,並按界面嚮導接入後,創建出“ECS 環境”實例,同時生成主機監控的採集配置。
- 在阿里雲Prometheus控制枱的“接入管理”,配置 VPC 內各個要監控組件的接入,以便阿里雲 Prometheus 生成採集 Job、抓取監控數據、生成默認大盤和默認告警規則。
- 【可選】對於用户自定義的採集任務,可在“接入管理”的對應環境實例進行自定義採集規則配置。
- 驗證阿里雲 Prometheus 上各組件的默認大盤是否正常。
通用 RemoteWrite 場景:通用實例
遷移要求
- 阿里雲 Prometheus 配置、驗證完,需要 n 天(現有自建開源 Prometheus 數據保存天數)後,才能完成遷移,以便阿里雲 Prometheus 採集到完整數據。
遷移步驟
- 在阿里雲 Prometheus 控制枱的“實例列表 [ 12] ”,點擊“新建 Prometheus 實例”,選擇“通用實例”後創建出實例。
- 修改自建開源 Prometheus 配置,將監控數據 Remote Write 到阿里雲 Prometheus [ 13] 。
- 在阿里雲 Prometheus 控制枱的“指標中心 [ 14] ”,查詢並驗證自建開源 Prometheus Remote Write 上來的指標數據。
步驟二:可視化分析遷移
在上述指標採集遷移過程中,涉及到的容器集羣和各個常用組件(如 Mysql、Redis 等),阿里雲 Prometheus 都已內置默認的、專業的、開箱即用的大盤。
- 對於容器/Kubernetes 和 ECS 監控場景:
-
- 在阿里雲 Prometheus 控制枱的“接入管理”的“大盤查詢 [ 15] ”界面,即可查看各組件的默認大盤。
- 對於用户的自定義大盤,需要用户新建專家版 Grafana [ 16] ,然後自建 Grafana 遷移 [ 17] 或導入指定大盤 [ 18] 即可。
- 對於 RemoteWrite 場景的通用實例:用户繼續使用已有的自建 Grafana,只需要將 grafana 的數據源改為阿里雲 Prometheus 對應實例數據源 [19 ] 即可。
- 對於期望將多個容器/Kubernetes/ECS/IDC 的監控數據進行聚合展示的場景,使用阿里雲 Prometheus 的全局聚合實例 [ 20] 能力即可輕鬆實現。
步驟三:告警配置遷移
與可視化分析遷移一樣,在指標採集遷移過程中,涉及到的容器集羣和各個常用組件(如 Mysql、Redis 等),阿里雲 Prometheus 也已創建了專業的、開箱即用的告警規則。
- 對於容器/Kubernetes 和 ECS 接入場景,在阿里雲 Prometheus 控制枱的“接入管理”的“已接入組件”界面,點擊對應組件的“告警列表”即可查看該組件默認生成的告警規則。
- 對於用户自定義告警規則,可在阿里雲 Prometheus 控制枱的“Prometheus 監控”的“Prometheus 告警規則 [ 21] ”菜單創建和管理,或通過“Prometheus 告警規則模板 [ 22] ”導入已有的 Prometheus 告警規則。
- 對於期望將多個容器/Kubernetes/ECS/IDC 的監控數據進行聚合告警的場景,使用阿里雲 Prometheus 的全局聚合實例能力即可方便快捷地實現。
關於阿里雲可觀測監控 Prometheus 版
阿里雲可觀測監控 Prometheus 版是基於雲原生可觀測事實標準 - Prometheus 開源項目構建的全託管觀測服務。默認集成常見雲服務,兼容主流開源組件,全面覆蓋業務觀測/應用層觀測/中間件觀測/系統層觀測。通過開箱即用的 Grafana 看板與智能告警功能,全面優化探針性能與系統可用性,幫助企業快速搭建一站式指標可觀測體系。幫助業務快速發現和定位問題,減輕故障給業務帶來的影響,並免去系統搭建與日常維護工作量,有效提升運維觀測效率。
與此同時,阿里雲可觀測監控 Prometheus 作為阿里雲可觀測套件的重要組成部分,與 Grafana 服務、鏈路追蹤服務,形成指標存儲分析、鏈路存儲分析、異構構數據源集成的可觀測數據層,同時通過標準的 PromQL 和 SQL,提供數據大盤展示,告警和數據探索能力。為 IT 成本管理、企業風險治理、智能運維、業務連續性保障等不同場景賦予數據價值,讓可觀測數據真正做到不止於觀測。
點擊此處立即開通阿里雲可觀測監控 Prometheus 版,領取每月 50GB 免費額度試用!加入釘釘羣(羣號:34590319)獲得在線技術支持。
相關鏈接:
[1] Prometheus
https://prometheus.io/
[2] 阿里雲可觀測監控 Prometheus 版
https://help.aliyun.com/zh/prometheus/product-overview/produc...
[3] 全局聚合實例
https://help.aliyun.com/zh/prometheus/use-cases/unified-multi...
[4] 容器集羣監控
https://help.aliyun.com/zh/prometheus/container-observable
[5] 接入中心
https://arms.console.aliyun.com/?#/intgr/integrations
[6] 接入管理
https://arms.console.aliyun.com/#/intgr/integration-management
[7] 監控組件的接入
https://help.aliyun.com/zh/prometheus/user-guide/access-compo...
[8] 自定義採集規則配置
https://help.aliyun.com/zh/prometheus/user-guide/manage-conta...
[9] 註冊集羣
https://help.aliyun.com/zh/prometheus/use-cases/use-registere...
[10] ECS 監控
https://help.aliyun.com/zh/prometheus/host-observable
[11] VPC 專線等
https://help.aliyun.com/zh/vpc/user-guide/connect-a-data-cent...
[12] 實例列表
https://help.aliyun.com/zh/prometheus/user-guide/instance-man...
[13] Remote Write 到阿里雲 Prometheus
https://help.aliyun.com/zh/prometheus/user-guide/write-open-s...
[14] 指標中心
https://help.aliyun.com/zh/prometheus/user-guide/metrics-center/
[15] 大盤查詢
https://help.aliyun.com/zh/prometheus/user-guide/search-out-o...
[16] 新建專家版 Grafana
https://help.aliyun.com/zh/arms/observable-visualization-graf...
[17] 自建 Grafana 遷移
https://help.aliyun.com/zh/arms/observable-visualization-graf...
[18] 導入指定大盤
https://help.aliyun.com/zh/arms/observable-visualization-graf...
[19] 阿里雲 Prometheus 對應實例數據源
https://help.aliyun.com/zh/prometheus/user-guide/data-query-a...
[20] 全局聚合實例
https://help.aliyun.com/zh/prometheus/use-cases/use-prometheu...
[21] Prometheus 告警規則
https://help.aliyun.com/zh/prometheus/user-guide/create-an-al...
[22] Prometheus 告警規則模板
https://help.aliyun.com/zh/prometheus/use-cases/use-prometheu...