如何从自建开源 Prometheus 迁移到阿里云托管 Prometheus 服务
作者:颍川
引言
Prometheus[1]已成为可观测指标领域的事实标准。由于各方面因素,当前还有部分用户的部分场景仍使用“自建开源 Prometheus+自建开源 Thanos+自建 Grafana”来实现基础设施和业务应用的指标监控和告警。阿里云可观测监控 Prometheus 版[2]全面对接开源 Prometheus 生态,支持类型丰富的组件观测,提供高性能、高可用、高扩展、低成本、易维护的指标可观察能力。为了便于用户从自建开源 Prometheus 迁移到阿里云 Prometheus,本文讨论在各个典型场景下的迁移方案。
自建开源 Prometheus +Thanos 的典型部署场景
![](https://static001.geekbang.org/infoq/cb/cbf10e9f8f2f526e4c504c1e040d00a4.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
目前典型自建开源 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 数据源和统一告警。
![](https://static001.geekbang.org/infoq/bd/bd0bc4c9ad3dcd923a767d55bea2f80a.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
自建开源 Prometheus 与阿里云可观测监控 Prometheus 版对比
![](https://static001.geekbang.org/infoq/95/9579dc66a34bb4b3d393883209e7b828.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
自建开源 Prometheus 迁移到阿里云可观测监控 Prometheus 版 技术方案
从自建开源 Prometheus 迁移到阿里云可观测监控 Prometheus 版包含指标采集、可视化分析、告警配置等三个阶段步骤,下面分别对这三个阶段在不同自建 Prometheus 部署场景下的方案进行讨论。
步骤一:指标采集迁移
指标采集是指 Prometheus 根据采集 Job 配置,定时从目标监控组件或其对应的 Exporter 拉取和保存指标数据。
阿里云容器服务场景:容器集群监控[4]
![](https://static001.geekbang.org/infoq/0f/0f7e348cbe38e7092befa28480e65bb3.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
迁移要求
阿里云 Prometheus 配置、验证完,需要 n 天(现有自建开源 Prometheus 数据保存天数)后,才能完成迁移,以便阿里云 Prometheus 采集到完整监控数据。
迁移步骤
在阿里云 Prometheus 控制台的“接入中心[5]”,选择“容器集群监控”接入,完成“容器环境”实例创建。
![](https://static001.geekbang.org/infoq/1f/1fe65337c7ebda1c3a298fbccfac71a1.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
在阿里云 Prometheus 控制台的“接入管理[6]”,配置容器集群内各个监控组件的接入[7],以便阿里云 Prometheus 生成采集 Job、抓取监控数据、生成默认大盘和默认告警规则。
![](https://static001.geekbang.org/infoq/cc/cc66770fdd8b715294cfd45e276e89fd.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
【可选】对于用户自定义的采集任务(ServiceMonitor、PodMonitor 和自定义 Job),可在“接入管理”的对应环境实例进行自定义采集规则配置[8]。
![](https://static001.geekbang.org/infoq/27/27a24be83b43cc89c4efb6c1d90b36d4.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
验证阿里云 Prometheus 上容器集群的容器集群大盘和各组件的默认大盘是否正常。
![](https://static001.geekbang.org/infoq/a1/a131da8fdf3e18d31d86ad299d7e4c43.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
自建 Kubernetes 场景:容器集群监控
![](https://static001.geekbang.org/infoq/ae/aec5246b1903afcad16725480c87a4f4.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
此场景与“自建 Kubernetes 场景:容器集群监控”一样,只是需要先将自建 Kubernets 集群注册为阿里云容器服务的“注册集群[9]”即可。
阿里云 ECS 场景:ECS 监控[10]
![](https://static001.geekbang.org/infoq/4f/4f2066376d6f971d9fed04bef1589f81.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
迁移要求
阿里云 Prometheus 配置、验证完,需要 n 天(现有自建开源 Prometheus 数据保存天数)后,才能完成迁移,以便阿里云 Prometheus 采集到完整监控数据。
迁移步骤
在阿里云 Prometheus 控制台的“接入中心”,选择“主机监控”,并按界面向导接入后,创建出“ECS 环境”实例,同时部署 ECS 主机监控的 Exporter 和采集配置。
![](https://static001.geekbang.org/infoq/74/7450f6babace03d2865c6f25cfd04092.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
在阿里云 Prometheus 控制台的“接入管理”,配置 VPC 内各个要监控组件的接入,以便阿里云 Prometheus 生成采集 Job、抓取监控数据、生成默认大盘和默认告警规则。
【可选】对于用户自定义的采集任务,可在“接入管理”的对应环境实例进行自定义采集规则配置。
验证阿里云 Prometheus 上各组件的默认大盘是否正常。
自建 IDC 场景:ECS 监控
![](https://static001.geekbang.org/infoq/d7/d7e4af91ac821f88c106d531570398ac.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
迁移要求
阿里云 Prometheus 配置、验证完,需要 n 天(现有自建开源 Prometheus 数据保存天数)后,才能完成迁移,以便阿里云 Prometheus 采集到完整监控数据。
需要将自建 IDC 通过 VPC 专线等[11]方式与用户的某个阿里云 VPC 打通。
需要用户自行在自建 IDC 的各个 VM 上安装 Node/Process Exporter。
迁移步骤
在阿里云 Prometheus 控制台的“接入中心”,选择“主机监控(自助安装+IP 域选择)”,并按界面向导接入后,创建出“ECS 环境”实例,同时生成主机监控的采集配置。
在阿里云 Prometheus 控制台的“接入管理”,配置 VPC 内各个要监控组件的接入,以便阿里云 Prometheus 生成采集 Job、抓取监控数据、生成默认大盘和默认告警规则。
【可选】对于用户自定义的采集任务,可在“接入管理”的对应环境实例进行自定义采集规则配置。
验证阿里云 Prometheus 上各组件的默认大盘是否正常。
通用 RemoteWrite 场景:通用实例
![](https://static001.geekbang.org/infoq/98/9829a1252b4d752c21abd5675a76952f.png)
迁移要求
阿里云 Prometheus 配置、验证完,需要 n 天(现有自建开源 Prometheus 数据保存天数)后,才能完成迁移,以便阿里云 Prometheus 采集到完整数据。
迁移步骤
在阿里云 Prometheus 控制台的“实例列表[12]”,点击“新建 Prometheus 实例”,选择“通用实例”后创建出实例。
![](https://static001.geekbang.org/infoq/27/27201c84b28ae068fc35756fe7dbe8bb.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
修改自建开源 Prometheus 配置,将监控数据 Remote Write 到阿里云 Prometheus[13]。
在阿里云 Prometheus 控制台的“指标中心[14]”,查询并验证自建开源 Prometheus Remote Write 上来的指标数据。
步骤二:可视化分析迁移
在上述指标采集迁移过程中,涉及到的容器集群和各个常用组件(如 Mysql、Redis 等),阿里云 Prometheus 都已内置默认的、专业的、开箱即用的大盘。
对于容器/Kubernetes 和 ECS 监控场景:
在阿里云 Prometheus 控制台的“接入管理”的“大盘查询[15]”界面,即可查看各组件的默认大盘。
对于用户的自定义大盘,需要用户新建专家版 Grafana[16],然后自建 Grafana 迁移[17]或导入指定大盘[18]即可。
![](https://static001.geekbang.org/infoq/43/4385eebbac291859ea62538aacaba51e.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
对于 RemoteWrite 场景的通用实例:用户继续使用已有的自建 Grafana,只需要将 grafana 的数据源改为阿里云 Prometheus 对应实例数据源[19]即可。
对于期望将多个容器/Kubernetes/ECS/IDC 的监控数据进行聚合展示的场景,使用阿里云 Prometheus 的全局聚合实例[20]能力即可轻松实现。
![](https://static001.geekbang.org/infoq/d7/d75bd17917944ed5ad47d93e8436437b.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
![](https://static001.geekbang.org/infoq/6f/6f90b5a867cf0157e5834dab8fdca0f5.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
步骤三:告警配置迁移
与可视化分析迁移一样,在指标采集迁移过程中,涉及到的容器集群和各个常用组件(如 Mysql、Redis 等),阿里云 Prometheus 也已创建了专业的、开箱即用的告警规则。
对于容器/Kubernetes 和 ECS 接入场景,在阿里云 Prometheus 控制台的“接入管理”的“已接入组件”界面,点击对应组件的“告警列表”即可查看该组件默认生成的告警规则。
![](https://static001.geekbang.org/infoq/3a/3affc7398f0a8892b34c1a214ee3c328.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
对于用户自定义告警规则,可在阿里云 Prometheus 控制台的“Prometheus 监控”的“Prometheus 告警规则[21]”菜单创建和管理,或通过“Prometheus 告警规则模板[22]”导入已有的 Prometheus 告警规则。
![](https://static001.geekbang.org/infoq/fc/fc7ec5f04ceceb27225a12830d6af94f.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
对于期望将多个容器/Kubernetes/ECS/IDC 的监控数据进行聚合告警的场景,使用阿里云 Prometheus 的全局聚合实例能力即可方便快捷地实现。
![](https://static001.geekbang.org/infoq/b2/b297bbfa4741c939ff812ade0dffdaab.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
关于阿里云可观测监控 Prometheus 版
阿里云可观测监控 Prometheus 版是基于云原生可观测事实标准 - Prometheus 开源项目构建的全托管观测服务。默认集成常见云服务,兼容主流开源组件,全面覆盖业务观测/应用层观测/中间件观测/系统层观测。通过开箱即用的 Grafana 看板与智能告警功能,全面优化探针性能与系统可用性,帮助企业快速搭建一站式指标可观测体系。帮助业务快速发现和定位问题,减轻故障给业务带来的影响,并免去系统搭建与日常维护工作量,有效提升运维观测效率。
与此同时,阿里云可观测监控 Prometheus 作为阿里云可观测套件的重要组成部分,与 Grafana 服务、链路追踪服务,形成指标存储分析、链路存储分析、异构构数据源集成的可观测数据层,同时通过标准的 PromQL 和 SQL,提供数据大盘展示,告警和数据探索能力。为 IT 成本管理、企业风险治理、智能运维、业务连续性保障等不同场景赋予数据价值,让可观测数据真正做到不止于观测。
![](https://static001.geekbang.org/infoq/fc/fc98f8a5f3492d3a2d41225027b70462.webp?x-oss-process=image%2Fresize%2Cp_80%2Fformat%2Cpng)
点击此处立即开通阿里云可观测监控 Prometheus 版,领取每月 50GB 免费额度试用!加入钉钉群(群号:34590319)获得在线技术支持。
相关链接:
[1] Prometheus
[2] 阿里云可观测监控 Prometheus 版
https://help.aliyun.com/zh/prometheus/product-overview/product-introduction/
[3] 全局聚合实例
[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-component-management
[8] 自定义采集规则配置
[9] 注册集群
[10] ECS 监控
https://help.aliyun.com/zh/prometheus/host-observable
[11] VPC 专线等
https://help.aliyun.com/zh/vpc/user-guide/connect-a-data-center-to-a-vpc
[12] 实例列表
https://help.aliyun.com/zh/prometheus/user-guide/instance-management
[13] Remote Write 到阿里云 Prometheus
[14] 指标中心
https://help.aliyun.com/zh/prometheus/user-guide/metrics-center/
[15] 大盘查询
https://help.aliyun.com/zh/prometheus/user-guide/search-out-of-the-box-with-a-large-tray
[16] 新建专家版 Grafana
https://help.aliyun.com/zh/arms/observable-visualization-grafana-edition/manage-workspaces
[17] 自建 Grafana 迁移
[18] 导入指定大盘
[19] 阿里云 Prometheus 对应实例数据源
https://help.aliyun.com/zh/prometheus/user-guide/data-query-and-grafana-data-source-settings
[20] 全局聚合实例
[21] Prometheus 告警规则
https://help.aliyun.com/zh/prometheus/user-guide/create-an-alert-rule-for-a-prometheus-instance
[22] Prometheus 告警规则模板
版权声明: 本文为 InfoQ 作者【阿里巴巴云原生】的原创文章。
原文链接:【http://xie.infoq.cn/article/fb2a12b0dd00bfd4b47e3b128】。文章转载请联系作者。
评论