背景
由于规划变动,需要将tiup和prometheus移动到其他的机器上,要求平滑迁移,不丢失监控数据。
关于prometheus的数据迁移《迁移prometheus数据 》这篇专栏文章写的比较详细,但是存在一个问题:“promethues 保存了一些数据在内存里面,导致即使导入老的监控”。
经过考虑决定使用一种比较稳妥的方案:先扩容prometheus,待并行运行一段时间后再缩容掉原prometheus,这样新的prometheus就会有一份完整的数据,解决了监控数据直接迁移丢失的风险。
本文分两部分:tiup迁移和prometheus迁移。本文环境为离线部署集群。
tiup迁移
1.将当前tiup的镜像源拷贝到迁移的机器上,并安装tiup
tiup mirror show
# 查看当前镜像源
sh tidb-community-server-${version}-linux-amd64/local_install.sh && source /home/tidb/.bash_profile
#迁移节点执行
2.将tidb家目录下的.tiup包拷贝到迁移节点对应目录
这样就完成了tiup的迁移,通过查看集群配置验证tiup数据迁移成功
tiup cluster list
tiup cluster show-config ${clustera-name}
3.卸载原tiup
tiup uninstall --all
tiup uninstall --self
删除镜像包
prometheus迁移
1.查看Prometheus 监控数据保留时间
storage_retention #
默认 "30d"
tiup cluster show-config ${clustera-name} | grep storage_retention
2.编写到迁移节点的prometheus的扩容文件
vi scale-out-prometheus.toml
3.扩容prometheus
tiup cluster scale-out ${clustera-name} scale-out-prometheus.toml -uroot -p
4.等待时间达到storage_retention的保存日期后,再将原prometheus缩容
(1)使用root用户登录dashboard ---> 点击root ---> Prometheus 数据源 ---> 使用自定义地址(新的prometheus)--->查看监控数据是否完整
(2)admin用户登录grafana ---> Confguration ---> Data Sources ---> 查看数据源prometheus地址是否是当前的,如果不是则将其地址更改为新的prometheus,查看监控数据是否完整
(3)缩容原prometheus
tiup cluster scale-in ${clustera-name} -N ${原prometheus-ip:port}
总结
关于tiup和prometheus的迁移方法比较简单,本文介绍了一种比较稳妥的方案,优点是保证了数据不丢失,缺点是时间周期较长,需要根据需求等待prometheus的数据保留时长后才可以将原prometheus缩容。 大家可以根据自己的实际情况选用不同的方案。
作者介绍:Daniel-W, 来自神州数码钛合金战队,是一支致力于为企业提供分布式数据库TiDB整体解决方案的专业技术团队。团队成员拥有丰富的数据库从业背景,全部拥有TiDB高级资格证书,并活跃于TiDB开源社区,是官方认证合作伙伴。目前已为10+客户提供了专业的TiDB交付服务,涵盖金融、证券、物流、电力、政府、零售等重点行业。