You need to enable JavaScript to run this app.
文档中心
托管 Prometheus

托管 Prometheus

复制全文
下载 pdf
常见问题
存量标准版实例数据迁移说明
复制全文
下载 pdf
存量标准版实例数据迁移说明
背景​
托管 Prometheus 服务正式计费之前,为您提供的免费标准版实例 vmp.standard.30d 将在正式计费之后对自定义指标和云服务基础指标进行收费。​
为了满足您对云基础指标的免费使用需求,托管 Prometheus 服务新推出 vmp.standard.15d 规格实例,并为您继续提供云服务基础指标的免费策略。如果您的存量实例(vmp.standard.30d)需要继续享受此免费策略,需要将旧的 vmp.standard.30d 规格实例的数据迁移到新推出的 vmp.standard.15d 规格实例中。本文为您介绍如何完成不同规格实例间的数据迁移。​
说明​
不同实例规格的计费详情,请参考 计费概述。​
迁移方案​
方案概述​
本文提供两种迁移方案,每种方案有不同的成本和影响,您可以根据实际情况选择。​
​
迁移方案​
方案说明​
方案影响​
直接迁移​
直接将采集器的写入地址从旧工作区切换到新工作区。​
  • 旧工作区的数据无法迁移到新工作区,这会短暂影响部分查询结果,如:rate(container_cpu_usage_seconds_total[5m])​
  • 若您使用的是 VKE 集群,且使用 prometheus-agent v1.0.6 及以下版本,则您需要卸载重装 prometheus-agent 组件,以切换到新工作区,所以将损失卸载重装期间的全部指标数据。​
说明​
旧工作区写入流量停止,且 Recording Rules 不产生新结果后,如无任何数据写入,旧工作区实例将不产生费用。​
双写迁移​
在迁移阶段,同时往新旧两个工作区写入一样的指标数据(数据双写),过程通常需要至少持续两个规格最小的存储天数。迁移阶段结束后,删除旧工作区的写入配置,数据仅写入新的工作区。​
迁移阶段通常需要至少持续新旧两个规格最小的存储天数,期间会产生额外的成本,具体如下:​
  • 计费成本:迁移阶段需要同时使用新旧工作区,都会进行计费。​
  • 采集器资源用量成本:迁移阶段需要同时写入新旧工作区,导致采集器资源需求上涨,涨幅通常不超过原有用量的 50%。对于实际增长量,您可以根据监控做出调整。​
  • 若您使用的是 VKE 集群,且使用 prometheus-agent v1.0.6 及以下版本,则:​
  • 迁移期间的 APIServer,ETCD 等托管组件的指标无法迁移到新工作区。​
  • 迁移阶段结束后,您需要卸载重装 prometheus-agent 组件,以切换到新工作区,所以将损失卸载重装期间的全部指标数据。​
  • 人力成本:相比直接迁移方案,步骤更繁杂。​
​
迁移流程​
说明​
本文介绍的迁移方案,只涉及采集方案或采集器。不同的采集方案会有不同的流程:​
  1. 使用脚本安装的 VM Agent 采集器。​
  1. 使用脚本安装的 VMP Agent 采集器。​
  1. VKE prometheus-agent v1.0.6 及以下的采集器。​
如果您使用自定义的采集器进行数据采集,也可以参照本文的迁移思路进行处理。​
标准版实例迁移方案示意图,如下图所示。​
​alt​​
前提条件​
  • 在本地环境中,使用 kubectl 连接至对应集群。​
  • 已创建待迁移的新工作区,并获取如下信息,您需要在下面的步骤中,将对应的变量替换为实际的值。​
​
配置项​
说明​
$namespace​
采集器的命名空间。​
$agent_name​
采集器的名称。​
$remote_write_url​
新工作区 Remote Write URL。​
$basic_auth_username​
新工作区 Basic Auth 认证用户名。​
$basic_auth\password​
新工作区 Basic Auth 认证密码。​
$ak​
新工作区 AK。​
$sk​
新工作区 SK。​
$region​
地域。​
​
直接迁移方案​
步骤一 迁移告警规则​
将旧工作区的所有告警规则,迁移到新工作区下。步骤如下:​
  1. 登录 VMP 服务控制台。​
  1. 单击左侧导航栏的 告警中心 > 告警规则。在告警规则列表中,选择需要编辑的告警规则,在 操作 列中,单击 编辑,即可编辑当前的告警规则。​
  • ​​​
  1. 在 工作区 下拉菜单中,选择新的工作区。将该告警规则由旧工作区切换为新的工作区。​
  • ​alt​​
  1. 单击 确定,完成告警规则迁移。​
说明​
迁移告警规则后,该规则下的旧的告警事件状态将被置为 人工解除 状态。​
步骤二 迁移 Recording Rules​
将旧工作区的所有 Recording Rules,迁移到新工作区下。步骤如下:​
  1. 登录 VMP 服务控制台。​
  1. 单击左侧导航栏的 工作区,在工作区列表中选择新创建的工作区,单击 工作区名称,进入工作区配置界面。​
  1. 在左侧导航栏中选择 Recording Rule 管理。​
  1. 单击 新建规则文件,根据旧工作区的配置,完成新工作区的 Recording Rule 配置。​
  • ​​​
  1. 单击 确定,完成配置。​
步骤三 采集器切换新工作区​
使用脚本安装的 VM Agent 采集器​
  1. 在本地环境中,执行以下命令,编辑认证信息。​
​
bash -c 'kubectl apply -f - <<EOF​
apiVersion: v1​
kind: Secret​
metadata:​
name: vmagent-basic-auth-new​
namespace: $namespace​
labels:​
app: vmagent​
stringData:​
username: $basic_auth_username​
password: $basic_auth_password​
EOF'​
​
  1. 执行以下命令,打开采集器配置文件。​
​
kubectl -n $namespace edit vmagent vmagent​
​
  1. 在采集器的配置文件中,找到 spec 下面的 remoteWrite 配置,将旧工作区配置修改成新工作区配置。​
​
remoteWrite:​
- url: $remote_write_url​
basicAuth:​
username:​
name: vmagent-basic-auth-new​
key: username​
password:​
name: vmagent-basic-auth-new​
key: password​
​
使用脚本安装的 VMP Agent 采集器​
  1. 在本地环境中,执行以下命令,判断安装脚本的版本。​
​
bash -c 'if [ "$(kubectl -n $namespace get secrets $agent_name)" ]; then echo "v2"; else echo "v1"; fi'​
​
  1. 编辑采集器的配置文件。​
  • 若版本为 v1,则遵循以下配置方式。​
  1. 执行以下命令,编辑采集器的配置项。​
  • ​
    kubectl -n $namespace edit configmaps $agent_name​
    ​
  1. 在采集器配置文件中,找到 prometheus.yml 下面的 remote_write 配置,将旧工作区配置修改成新工作区配置。​
  • ​
    remote_write:​
    - url: $remote_write_url​
    basic_auth:​
    username: $basic_auth_username​
    password: $basic_auth_password​
    # 若认证方式为 AKSK,需将 basic_auth 替换成如下的 volc​
    #volc: ​
    # region: $region​
    # access_key: $ak​
    # secret_key: $sk​
    ​
  • 若版本为 v2,则遵循以下配置方式。​
  1. 执行以下名称,编辑采集器的配置项。​
  • ​
    kubectl -n $namespace edit configmaps $agent_name​
    ​
  1. 在采集器配置文件中,找到 remote_write_url 的编辑位置,找到 prometheus.yml 下面的 remote_write 配置,将旧工作区配置修改成新工作区配置。​
  • ​
    remote_write:​
    - url: $remote_write_url​
    ​
  1. 编辑采集器的保密字典。​
  • ​
    kubectl -n $namespace edit secret $agent_name​
    ​
  1. 在采集器的保密字典中,编辑采集器的认证信息。​
  • ​
    stringData:​
    remote_write.0.basic_auth.username: $basic_auth_username​
    remote_write.0.basic_auth.password: $basic_auth_password​
    # 若认证方式为 AKSK,需将上述两行替换成如下三行​
    #remote_write.0.volc.access_key: $ak ​
    #remote_write.0.volc.secret_key: $sk​
    #remote_write.0.volc.region: $region​
    ​
  1. 配置完成后,重启采集器 Pod,加载新配置。​
VKE prometheus-agent v1.0.6 及以下的采集器​
  1. 卸载 prometheus-agent 组件。​
  1. 使用新工作区信息,重新安装 prometheus-agent 组件。​
双写迁移方案​
步骤一 迁移告警规则​
将旧工作区的所有告警规则,迁移到新工作区下。步骤如下:​
  1. 登录 VMP 服务控制台。​
  1. 单击左侧导航栏的 告警中心 > 告警规则。在告警规则列表中,选择需要编辑的告警规则,在 操作 列中,单击 编辑,即可编辑当前的告警规则。​
  • ​​​
  1. 在 工作区 下拉菜单中,选择新的工作区。将该告警规则由旧工作区切换为新的工作区。​
  • ​alt​​
  1. 单击 确定,完成告警规则迁移。​
说明​
迁移告警规则后,该规则下的旧的告警事件状态将被置为 人工解除 状态。​
步骤二 迁移 Recording Rules​
将旧工作区的所有 Recording Rules,迁移到新工作区下。步骤如下:​
  1. 登录 VMP 服务控制台。​
  1. 单击左侧导航栏的 工作区,在工作区列表中选择新创建的工作区,单击 工作区名称,进入工作区配置界面。​
  1. 在左侧导航栏中选择 Recording Rule 管理。​
  • ​​​
  1. 单击 新建规则文件,根据旧工作区的配置,完成新工作区的 Recording Rule 配置。​
  • ​​​
  1. 单击 确定,完成配置。​
步骤三 配置采集器数据双写​
使用脚本安装的 VM Agent 采集器​
  1. 在本地环境中,执行以下命令,编辑认证信息。​
​
bash -c 'kubectl apply -f - <<EOF​
apiVersion: v1​
kind: Secret​
metadata:​
name: vmagent-basic-auth-new​
namespace: $namespace​
labels:​
app: vmagent​
stringData:​
username: $basic_auth_username​
password: $basic_auth_password​
EOF'​
​
  1. 执行以下命令,打开采集器配置文件。​
​
kubectl -n $namespace edit vmagent vmagent​
​
  1. 在采集器的配置文件中,找到 spec 下的 remoteWrite 配置,添加新工作区的 remote write 配置。​
​
remoteWrite:​
- url: $remote_write_url # 添加新工作区的相关配置​
basicAuth:​
username:​
name: vmagent-basic-auth-new​
key: username​
password:​
name: vmagent-basic-auth-new​
key: password​
- url: http://xxx... # 此处为旧工作区的相关配置​
basicAuth:​
username:​
name: vmagent-basic-auth​
key: username​
password:​
name: vmagent-basic-auth​
key: password​
​
使用脚本安装的 VMP Agent 采集器​
  1. 在本地环境中,执行以下命令,判断安装脚本的版本。​
​
bash -c 'if [ "$(kubectl -n $namespace get secrets $agent_name)" ]; then echo "v2"; else echo "v1"; fi'​
​
  1. 编辑采集器的配置文件。​
  • 若版本为 v1,则遵循以下配置方式。​
  1. 执行以下命令,编辑采集器的配置项。​
  • ​
    kubectl -n $namespace edit configmaps $agent_name​
    ​
  1. 在采集器配置文件中,找到 prometheus.yml 下的 remote_write 配置,添加新工作区的 remote write 配置。​
  • ​
    remote_write:​
    - url: $remote_write_url # 填写新工作区的相关信息​
    basic_auth:​
    username: $basic_auth_username​
    password: $basic_auth_password​
    # 若认证方式为 AKSK,需将 basic_auth 替换成如下的 volc​
    #volc: ​
    # region: $region​
    # access_key: $ak​
    # secret_key: $sk​
    - url: http://xxx.... # 此处为旧工作区的相关信息​
    volc:​
    region: $region​
    access_key: $ak​
    secret_key: $sk​
    ​
  • 若版本为 v2,则遵循以下配置方式。​
  1. 执行以下名称,编辑采集器的配置项。​
  • ​
    kubectl -n $namespace edit configmaps $agent_name​
    ​
  1. 在采集器配置文件中,找到 remote_write_url 的编辑位置,找到 prometheus.yml 下的 remote_write 配置,添加新工作区的 remote_write_url 配置。​
  • ​
    remote_write:​
    - url: $remote_write_url # 添加新工作区的 RemoteWrite URL 地址。​
    - url: http://xxx.... # 此处为旧工作区的配置,需要按序下移​
    ​
  1. 编辑采集器的保密字典。​
  • ​
    kubectl -n $namespace edit secret $agent_name​
    ​
  1. 在采集器的保密字典中,编辑采集器的认证信息。​
  • ​
    stringData:​
    remote_write.0.basic_auth.username: $basic_auth_username​
    remote_write.0.basic_auth.password: $basic_auth_password​
    # 若认证方式为 AKSK,需将上述两行替换成如下三行​
    #remote_write.0.volc.access_key: $ak ​
    #remote_write.0.volc.secret_key: $sk​
    #remote_write.0.volc.region: $region​
    remote_write.1.volc.access_key: ... # 需要将原有配置按序下移,需要修改 remote_write.x​
    remote_write.1.volc.secret_key: ...​
    ​
  1. 配置完成后,重启采集器 Pod,加载新配置。​
VKE prometheus-agent v1.0.6 及以下的采集器​
  1. 在本地环境中,执行以下命令,编辑采集器的配置项。​
​
kubectl -n kube-system edit configmaps prometheus-agent​
​
  1. 在采集器的配置文件中,找到 prometheus.yml 下的 remote_write 配置,添加新工作区的 remote write 配置。​
​
remote_write:​
- url: $remote_write_url # 添加新工作区的相关配置​
basic_auth:​
username: $basic_auth_username​
password: $basic_auth_password​
# 若认证方式为 AKSK,需将 basic_auth 替换成如下的 volc​
#volc: ​
# region: $region​
# access_key: $ak​
# secret_key: $sk​
- url: http://xxx.... # 此处为旧工作区的相关配置​
volc:​
region: $region​
access_key: $ak​
secret_key: $sk​
​
  1. 配置完成后,重启采集器 Pod,加载新配置。​
步骤四 迁移完成后,删除采集器旧工作区写入配置​
说明​
双写持续新旧两个规格工作区的最小存储天数后,即可开始删除采集器旧工作区写入配置。​
使用脚本安装的 VM Agent 采集器​
  1. 在本地环境中,执行以下命令,打开采集器配置文件。​
​
kubectl -n $namespace edit vmagent vmagent​
​
  1. 在采集器的配置文件中,找到 spec 下的 remoteWrite 配置,删除旧工作区的配置。​
​
remoteWrite:​
- url: $remote_write_url​
basicAuth:​
username:​
name: vmagent-basic-auth-new​
key: username​
password:​
name: vmagent-basic-auth-new​
key: password​
- url: http://xxx... # 删除旧工作区配置​
basicAuth:​
username:​
name: vmagent-basic-auth​
key: username​
password:​
name: vmagent-basic-auth​
key: password​
​
使用脚本安装的 VMP Agent 采集器​
  1. 在本地环境中,执行以下命令,判断安装脚本的版本。​
​
bash -c 'if [ "$(kubectl -n $namespace get secrets $agent_name)" ]; then echo "v2"; else echo "v1"; fi'​
​
  1. 编辑采集器的配置文件。​
  • 若版本为 v1,则遵循以下配置方式。​
  1. 执行以下命令,编辑采集器的配置项。​
  • ​
    kubectl -n $namespace edit configmaps $agent_name​
    ​
  1. 在采集器配置文件中,找到 prometheus.yml 下的 remote_write 配置,删除旧工作区配置。​
  • ​
    remote_write:​
    - url: $remote_write_url​
    basic_auth:​
    username: $basic_auth_username​
    password: $basic_auth_password​
    # 若认证方式为 AKSK,需将 basic_auth 替换成如下的 volc​
    #volc: ​
    # region: $region​
    # access_key: $ak​
    # secret_key: $sk​
    - url: http://.... # 删除旧工作区的配置​
    volc:​
    region: $region​
    access_key: $ak​
    secret_key: $sk​
    ​
  • 若版本为 v2,则遵循以下配置方式。​
  1. 执行以下名称,编辑采集器的配置项。​
  • ​
    kubectl -n $namespace edit configmaps $agent_name​
    ​
  1. 在采集器配置文件中,找到 remote_write_url 的编辑位置,找到 prometheus.yml 下的 remote_write 配置,删除旧工作区的配置。​
  • ​
    - url: $remote_write_url​
    - url: http://.... # 删除旧工作区的配置​
    ​
  1. 编辑采集器的保密字典。​
  • ​
    kubectl -n $namespace edit secret $agent_name​
    ​
  1. 在采集器的保密字典中,删除旧工作区的认证信息。​
  • ​
    stringData:​
    remote_write.0.basic_auth.username: $basic_auth_username​
    remote_write.0.basic_auth.password: $basic_auth_password​
    # 若认证方式为 AKSK,需将上述两行替换成如下三行​
    #remote_write.0.volc.access_key: $ak​
    #remote_write.0.volc.secret_key: $sk​
    #remote_write.0.volc.region: $region​
    remote_write.1.volc.access_key: ... # 需要将原有配置按序提前,需要修改 remote_write.x​
    remote_write.1.volc.secret_key: ...​
    ​
  1. 配置完成后,重启采集器 Pod,加载新配置。​
VKE prometheus-agent v1.0.6 及以下的采集器​
  1. 卸载 prometheus-agent 组件。​
  1. 使用新工作区信息,重新安装 prometheus-agent 组件。​
后续任务​
(可选)删除旧工作区​
迁移完成后,您可以根据需求,删除旧工作区。具体操作,请参见 管理工作区。​
警告​
删除旧工作区后,您的历史数据将会被完全清除,无法恢复,请谨慎操作!​
​
最近更新时间:2025.02.20 15:57:52
这个页面对您有帮助吗?
有用
有用
无用
无用