大数跨境
0
0

蓝鲸Influxdb节点迁移

蓝鲸Influxdb节点迁移 嘉为蓝鲸
2019-10-11
0
导读:蓝鲸模块迁移是蓝鲸运维必不可少的技能,理解蓝鲸架构和安装脚本原理才能更好掌握模块迁移的方法,一定要在测试环境先验证自己的方法步骤,才能避免正式环境迁移出错

Influxdb是一个开源分布式时序、事件和指标数据库,使用 Go 语言编写,无需外部依赖。该组件在蓝鲸的功能定位是存储蓝鲸监控处理后的时序指标数据,在社区版属于单节点,在企业版属于双节点,由etcd+tsdbproxy+influxdb组成双写的架构。


在某企业的生产环境上,由于监控纳管的节点比较多,influxdb读写数据频繁,造成influxdb运行节点的机器内存不足,经常造成服务异常,因此,决定将influxdb节点迁移到内存充足的机器上,保证蓝鲸平台稳定运行。


Step1:前期准备

  1. 迁移方案的确定与测试,通过测试验证整理出升级步骤详情;

  2. 评估迁移的影响范围和风险,建立应对措施和回退方案;

  3. 申请变更窗口,安排相关人员,保证迁移后验证蓝鲸功能正常;


Step2:迁移方案

模块迁移属于蓝鲸运维工程师的必备技能之一,这里先讲解一下模块迁移的一般方法和思路:


  1. 若是迁移模块至新机器,需先初始化新机器环境,配置中控机到新机器免密,在新机器安装并启动consul服务


  2. 停止旧机器模块服务,删除$INSTALL_PATH/.intall_module的模块标签,停止相关计划任务


  3. 修改install.config模块定义文件,同步脚本和src文件


  4. 在目标迁移机器安装相应的模块,这里可以参考蓝鲸集成安装服务的脚本$CTRL_DIR/bk_install逻辑判断安装和初始化的步骤本$CTRL_DIR/bk_install逻辑判断安装和初始化的步骤


  5. 判断其它服务对迁移模块的依赖,这里可以参考架构图模块之间的依赖关系或查找其它模块的配置文件依赖,如这里以匹配job模块为例:grep -i job /data/src/*/support-files/templates/*,重新渲染依赖的模块配置文件,重启依赖的服务


  6. 若是迁移至新机器,判断迁移的模块是否需要连接mysql,判断方法同上,若有则initdata mysql授权


这里我需要迁移的目标机器已是蓝鲸原有的服务器,且迁移的是数据库,所以实际的迁移步骤会稍有不同,以下是迁移步骤详情:


1

1

1

备份需要迁移节点的数据库,并将备份目录拷贝至新节点,备份命令如下:


   for i in `ls /data/bkee/public/influxdb/data`;do influxd backup -host 127.0.0.1:8088 -database $i  /data/backup/influxdb_$(date +%Y-%m-%d);done

   influxd backup -host 127.0.0.1:8088 /data/backup/influxdb_meta


1

2

1

迁移influxdb角色


停止需要迁移的influxdb节点; 

      systemctl stop influxdb 

      systemctl disable influxdb  

      清理crontab(influxdb tsdbproxy)


修改中控机install.config(删除旧节点,在新节点添加influxdb),在新节点安装influxdb服务;

      cd /data/install

       ./bkeec stop bkdata #停止监控数据写入

      ./bkeec sync common 

      ./bkeec sync influxdb

      直接ssh新节点直接安装influxdb

      . /data/install/control.rc

      . /data/install/install.rc

      install_influxdb (如没计划任务手动添加crontab)

       start_influxdb 

      start_tsdbproxy


检查influxdb服务解析是否正常

先删除旧机器/data/bkee/etc/consul.d/influxdb.json

      中控机./bkeec update consul 

      dig influxdb.service.consul是否正常


1

3

1

还原数据到迁移后的数据库

   进入新节点同步过去的influxdb备份文件目录

   for db in $(ls *.rp_* | sed 's/\.rp_.*//' | sort -u); do influxd restore -database $db -datadir /data/bkee/public/influxdb/data /data/backup/influxdb_$(date +%Y-%m-%d); done

   influxd restore -metadir /data/bkee/public/influxdb/meta  /data/backup/influxdb_meta


1

4

1

重新渲染依赖模块、重启服务

   在中控机下执行:

   source /data/install/utils.fc

   ./bkeec render bkdata

   ./bkeec render tsdbproxy

   ./bkeec stop bkdata

   ./bkeec start bkdata

   ./bkeec stop tsdbproxy

   ./bkeec start tsdbproxy


另外,还需要验证注册在etcd集群的influxdb节点

   ssh $ETCD_IP

endpoint=http://192.168.102.171:2379,http://192.168.102.173:2379,http://192.168.102.174:2379  #这里是三如ETCD的IP

   查看注册的两个节点

   etcdctl --endpoints $endpoint get /backends/local/url

   etcdctl --endpoints $endpoint get /backends/local1/url

   如果是错误节点URL,配置指向新节点的URL

   etcdctl --endpoints $endpoint set /backends/local1/url  http://192.168.102.175:5260  #新节点influxdb的IP


1

5

1

验证数据写入

   influx -host influxdb.service.consul -port 5260 -precision rfc3339  #在influxdb新节点执行

   select * from "_internal"."monitor"."write" order by "time" desc limit 2


Step3:检查

针对于蓝鲸平台的变更操作,需要在变更后仔细检查平台每项功能,保证平台服务正常,按照整理的checklist逐项检查,如平台后台服务、SaaS基本功能等。


Step4:总结

蓝鲸模块迁移是蓝鲸运维必不可少的技能,理解蓝鲸架构和安装脚本原理才能更好掌握模块迁移的方法,一定要在测试环境先验证自己的方法步骤,才能避免正式环境迁移出错。


﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

今天的文章到此结束了

如果您喜欢别忘了关注+分享哟~

好文推荐

Oracle数据迁移后归档文件暴增怎么办?

给客户做了单机到集群的数据迁移后,发现集群的在线重做日志切换频繁,进而产生了大量的归档日志,对服务器造成了不小的压力...

Docker的操作详解

先从docker的命令开始介绍,再说明Docker run命令关键参数...

Docker的安装及架构介绍

Docker的版本分为社区版(CE)和企业版(EE)。企业版会提供额外的收费服务...

什么是容器的本质?

本文结合理论与实战,先是从进程隔离、文件隔离、namespace、cgroups、libcontainer展开介绍容器的本质与概念...

使用sqlplus进行Oracle数据库批量自动发布

介绍如何通过一台装有sqlplus工具的中转机对不同应用的Oracle数据库进行自动化发布..


蓝鲸智云平台试用Tips

蓝鲸社区版

如果您想先简单了解蓝鲸研发运营一体化平台,推荐您先试用蓝鲸社区版。

蓝鲸社区版已经开源,您可以登录蓝鲸智云官网免费下载。网址:

http://bk.tencent.com/download


蓝鲸企业版

当然,蓝鲸企业版拥有更为丰富的功能,更适合企业级客户使用。如您有需要试用或者测试,联系嘉为吧!

关注嘉为科技,获取运维新知

申请测试/联系我们

邮箱

Devops@canway.net

电话地址

广州1020-38851616

天河区天河路365号天俊国际大厦7楼、20楼、21楼

深圳:0755-83668518

福田区深南大道6019号金润大厦22楼

上海1021-61269880

徐汇区虹梅路1801号A区凯科国际大厦8楼

北京1010-51705705

海淀区中关村南大街2号数码大厦B座21层2101室

【声明】内容源于网络
0
0
嘉为蓝鲸
嘉为蓝鲸服务中心,为用户提供最新服务。
内容 758
粉丝 0
嘉为蓝鲸 嘉为蓝鲸服务中心,为用户提供最新服务。
总阅读57
粉丝0
内容758