• consul备份还原导入导出


    工作中要保证生产环境部署的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

    OVER

    参考

    1. https://www.consul.io/docs/commands/snapshot.html
    2. https://www.consul.io/docs/commands/kv/import.html
    3. https://www.consul.io/docs/commands/kv/export.html
  • 相关阅读:
    jmeter获取上一个接口的返回值作为下一个接口的传入参数
    浅析Android 消息机制
    【性能测试】针对部分接口进行压力测试
    TPS及计算方法
    Python+selenium鼠标、键盘事件
    Python+selenium下拉菜单选项
    Webdriver元素定位3(CSS)
    Webdriver元素定位2(XPath)
    Webdriver元素定位1
    Webdriver测试脚本2(控制浏览器)
  • 原文地址:https://www.cnblogs.com/lvcisco/p/10728247.html
Copyright © 2020-2023  润新知