• ES集群7.3.0设置快照,存储库进行索引备份和恢复等


    说明:三台ES节点组成ES集群,一台kibana主机,版本均是7.3.0,白金试用版

    官方地址:https://www.elastic.co/guide/en/elasticsearch/reference/7.3/modules-snapshots.html

    1.在kibana所在主机搭建NFS服务器
    具体操作详看:https://www.cnblogs.com/sanduzxcvbnm/p/11780926.html

    2.在ES集群的三台节点上均创建相同的目录,并挂载NFS服务器地址

    # 我这边的挂载命令,具体ip和路径根据个人情况而定
    mount -t nfs -o nolock,vers=4 192.168.75.20:/opt/elk_backups /opt/elk_backups
    

    3.在ES集群的所有主节点和数据节点配置文件中添加如下参数:

    path.repo: ["/opt/elk_backups"]
    

    重启es集群

    4.在kibana界面创建快照存储库
    Elasticsearch,快照存储库,注册快照存储库,输入”存储库名称“,存储库类型选择”共享文件系统“,下一步
    文件系统位置填写上一步共享的那个路径,我这里填写的是”文件系统位置“,快照压缩开启,快大小,每秒最大快照字节数和每秒最大还原字节数我这边都填写的10mb,根据具体情况而定,保存

    右边出现如下界面,点击”验证存储库“

    验证结果出现如下类似情况说明成功了

    报错情况分析:
    1.access_denied_exception
    /opt/elk_backups目录权限问题导致的,es集群启动所用用户没有权限访问该目录
    解决办法:chmod -R 777 /opt/elk_backups 最大该目录权限

    2.repository_verification_exception
    共享目录/opt/elk_backups权限导致的,

    说一下我这边成功的情况
    kibana主机上:

    drwxr-xr-x.   3 root root   25 Dec 11 15:45 opt
    drwxrwxrwx. 2 root root 32 Dec 11 16:27 elk_backups
    

    es主机上:

    drwxr-xr-x.   3 root root   25 Dec 11 15:45 opt
    drwxrwxrwx. 2 root root 32 Dec 11 16:27 elk_backups
    

    验证快照存储库,除了kibana提供的web界面,命令行界面:POST /_snapshot/测试快照存储库/_verify

    说明:为了后续创建快照,这次使用英文的快照名:back_ups

    1. 创建快照

    现在有个test索引,文档如下

    GET /test/_doc/1
    
    {
      "_index" : "test",
      "_type" : "_doc",
      "_id" : "1",
      "_version" : 1,
      "_seq_no" : 0,
      "_primary_term" : 1,
      "found" : true,
      "_source" : {
        "name" : "haha"
      }
    }
    
    

    就利用这个索引,先创建一个快照,然后添加一些数据,再创建一个快照,然后还原快照1进行查看,还原快照2进行查看
    或者可以创建不同的索引来进行验证

    # back_ups为注册的快照存储库,snapshot_1为创建的快照名,wait_for_completion参数指定是在初始化快照(默认)后立即返回请求还是等待快照完成
    PUT /_snapshot/back_ups/snapshot_1?wait_for_completion=true
    

    查看创建的快照

    GET /_snapshot/back_ups/snapshot_1

    快照详细信息

    服务器上保存的快照文件

    添加数据

    POST /test/_doc/2
    {
      "name":"1234"
    }
    
    POST /test/_doc/3
    {
      "name":"3333"
    }
    

    查看数据

    创建快照2

    PUT /_snapshot/back_ups/snapshot_2
    
    {
      "accepted" : true
    }
    
    

    还原快照1

    不还原系统索引,只还原test索引

    现有test索引还原后重命名为一个新的索引,否则的话会无法进行还原

    这几个都不开启,讲的是还原快照的话,索引配置是否要发生变更,比如副本数等

    确认还原选项

    还原成功

    查看还原情况
    恢复快照,是把快照中的指定索引还原到现在并形成一个新索引,旧索引仍然存在,通过查看文档数可以知道

    还原到快照2就不操作了,大体类似。。。

    总结:(重要)
    0.以下所说的均只针对自己创建的索引,系统索引不恢复快照
    1.假设test索引没有删除,还在集群中,则恢复快照时,需要指定其他索引名才能进行还原。也即是从快照中提取出该快照并重命名保存到集群中,上述步骤说的就是这个
    2.假设test索引已经删除了,没有在集群中,则恢复快照时,不用指定新索引名,直接还原快照,则就直接把test索引还原到创建快照时的情况
    3.在恢复快照的过程中,可以进行若干调整,比如,现有索引不删除,把快照中的索引还原成新索引;还原过程中之地那个索引的副本数,以及其他待验证的步骤

    后续扩展:
    可以写个shell脚本,设置每天的零点自动创建快照,下述待完善,等需要用的时候再说

    #!/bin/bash
    
    NUMBER="根据当前时间生成"
    curl -XPUT "http://192.168.75.21:9200/_snapshot/back_ups/snapshot_${NUMBER}"
    
  • 相关阅读:
    类似jq的即点即改
    负载均衡
    设置session的过期时间
    php连接池 php–cp
    正则表达式之我见—平衡组/递归匹配
    正则表达式之我见—处理模式
    正则表达式之我见—注释
    正则表达式之我见—零宽断言 与 负向零宽断言
    正则表达式之我见—后向引用
    正则表达式之我见—反义
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/12023214.html
Copyright © 2020-2023  润新知