logo logo
关于我们

技术分享

技术分享 consul备份还原导入导出

consul备份还原导入导出

2021-02-01

工作中要保证生产环境部署的consul的集群能够安全稳定地对外提供服务,即使出现系统故障也能快速

恢复,这里将讲述部分的备份还原操作及KV的导入导出操作。

备份与还原

需要备份的主要有两类数据:consul相关的配置文件、consul的服务器状态,采用下面的脚本备份

就可以了:

1
2
3
4
5
6
7
8
9
10
ts=$(date +%Y%m%d%H%M%S)
 
# 备份配置文件    
tar -czpf consul_config_     $ts.tar.gz /etc/consul/config.json /etc/consul/consul.d    
 

# 备份consul的服务器状态,注意由于该consul开启了ACL,执行consul snapshot save时

必须带Management Token,关于consul ACL token的说明见上一篇"consul安全加固"    

consul snapshot save --http-addr=http://10.12.142.216:8500 -token=

b3a9bca3-6e8e-9678-ea35-ccb8fb272d42 consul_state_     $ts.snap    

 
# 查看一下生成的consul服务器状态文件    
consul snapshot inspect consul_state_     $ts.snap    

最后将生成的consul_config_xxx.tar.gzconsul_state_xxx.snap拷贝到其它服务器妥善存储。

还原也比较简单,采用下面的脚本就可以了:

1
2
3
4
5
# 还原配置文件    
tar -xzpf consul_config_20180521145032.tar.gz -C /
 
# 还原consul服务器状态    

consul snapshot restore --http-addr=http://10.12.142.216:8500 -token=

b3a9bca3-6e8e-9678-ea35-ccb8fb272d42 consul_state_20180521145032.snap

KV存储的导入导出

consul直接提供命令对KV里存储的数据进行导入导出,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ ts=$(date +%Y%m%d%H%M%S)
 
# 导出所有kv键值对,注意最后一个参数是导出键值对的前缀,为空字符串说明要导出所有    

$ consul kv     export --http-addr=http://10.12.142.216:8500 -token

=b3a9bca3-6e8e-9678-ea35-ccb8fb272d42 '' > consul_kv_$ts.json    

 
# 查看下导出的json文件格式    
$ cat consul_kv_     $ts.json    
[
{
"key": "xxxxxx",    
"flags": 0,    
"value": "yyyyyy"    
},
{
"key": "xxxxxx2",    
"flags": 0,    
"value": "eyJ2ZXJzaW9uX3RpbWVzdGFtcCI6IC0xfQ=="    
},
]

发现是每个键值对都是json数值中一项,其中key为键值对Key的名称,value为键值对Value的

base64编码,使用base64 -d命令编码就可以看到原始的value值,如:

1
2
$     echo 'eyJ2ZXJzaW9uX3RpbWVzdGFtcCI6IC0xfQ==' | base64 -d    
{     "version_timestamp": -1}    

导入就更简单了:

1

consul kv import --http-addr=http://10.12.142.216:8500 -token=

b3a9bca3-6e8e-9678-ea35-ccb8fb272d42 @consul_kv_20180521150322.json


云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 网络安全

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载

请添加好友为您提供支持
jia7jia_7

请拨打电话
为您提供支持

400-9955-698