引言
Cloud Native
自建开源 Prometheus
+ Thanos 的典型部署场景
Cloud Native
-
Kubernetes 集群内安装开源 Prometheus: -
阿里云容器服务集群内安装。 -
其他云厂商的容器服务集群内安装。 -
自建 IDC 内的自建 Kubernetes 集群内安装。 -
非 Kubernetes 集群上安装开源 Prometheus: -
阿里云 ECS 上安装。 -
其他云厂商的 ECS 上安装。 -
自建 IDC 内的 VM 上安装。
Cloud Native
对于自建开源 Prometheus+Thanos,企业通常面临如下主要问题:
-
业务系统使用到的各种组件,需要自行安装 exporter、配置大盘和告警规则,工作量大,且通常开源 Grafana 大盘和告警规则不够专业,缺少结合观测组件的原理和最佳实践进行深入优化后的大盘和告警规则。 -
由于企业部门或业务系统不同,需要在不同的容器集群或 VPC 内,安装多套自建开源 Prometheus,导致部署成本高、运维复杂等。 -
对于容器集群或 ECS 规模较大时,自建开源 Prometheus 无法承载大流量的指标处理。 -
引入自建 Thanos 进行集中、长周期存储后,增加了整个指标可观察体系复杂性。同时由于存在非 Kubernetes 场景,需要 Thanos Receiver 支持,导致整个 Thanos 部署和运维较复杂,成本高。
阿里云可观测监控 Prometheus 版的能力框架
Cloud Native
阿里云可观测监控 Prometheus 版是一款全面对接开源 Prometheus 生态,支持类型丰富的组件观测,提供多种开箱即用的预置观测大盘,且提供全托管的混合云/多云 Prometheus 服务。除了支持阿里云容器服务、自建 Kubernetes、Remote Write 外,阿里云可观测监控 Prometheus 版还提供混合云+多云 ECS 应用的 metric 观测能力;并且支持多实例聚合观测能力,实现 Prometheus 指标的统一查询,统一 Grafana 数据源和统一告警。
自建开源 Prometheus 与
阿里云可观测监控 Prometheus 版对比
Cloud Native
自建开源 Prometheus 迁移到
阿里云可观测监控 Prometheus 版 技术方案
Cloud Native
从自建开源 Prometheus 迁移到阿里云可观测监控 Prometheus 版包含指标采集、可视化分析、告警配置等三个阶段步骤,下面分别对这三个阶段在不同自建 Prometheus 部署场景下的方案进行讨论。
阿里云容器服务场景:容器集群监控 [ 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 的全局聚合实例能力即可方便快捷地实现。
Cloud Native