当前位置:   article > 正文

Elasticsearch集群进行索引的备份与恢复_elasticsearch备份索引

elasticsearch备份索引

Elasticsearch集群进行索引的备份与恢复

一,进行es集群的部署与配置

准备需要三台服务器

ip如下:

10.1.40.110,10.1.40.12,10.1.40.8

我们要进行集群部署首先要进行,创建备份共享文件存储地址

由于是集群部署且服务器不同所以这边用到了NFS进行文件的共享

备份到集群共享目录

步骤:
1)、搭建集群共享目录 (这里使用NFS也可以使用其它共享目录技术)

安装NFS服务端:
a、选择集群中某一个节点,可以选择ES的Master节点,检查是否安装NFS

rpm -qa | grep nfs  
rpm -qa | grep rpcbind
  • 1
  • 2

b、如果没有安装,则安装NFS

yum install nfs-utils  rpcbind
离线环境需要自己去下载相关包安装
  • 1
  • 2

c、设置开机启动

systemctl  enable  rpcbind.service
systemctl  enable  nfs-server.service
  • 1
  • 2

d、启动NFS

systemctl  start   rpcbind.service
systemctl  start   nfs-server.service
  • 1
  • 2

e、创建共享目录

mkdir  /usr/local/backup   具体目录名可以自己设置
chown  -R  用户名  /usr/local/backup

这里的用户名必须是启动ES的用户
  • 1
  • 2
  • 3
  • 4

f、设置可以访问的地址和权限

vi  /etc/exports 添加下面内容:
/usr/local/backup  *(rw,sync,no_root_squash,no_subtree_check)

代表所有网段都可以访问,如果想配置为特定ip,可以添加为es集群中所有节点的ip
  • 1
  • 2
  • 3
  • 4

g、刷新配置并查看

exportfs  -a     刷新配置并立刻生效
showmount  -e  ip    这里ip为当前创建共享目录主机ip这里选择的是:10.1.40.8作为服务端
  • 1
  • 2

配置NFS客户端(所有除开上一步中的外的所有ES节点都需执行如下操作)

a、检查是否安装NFS

rpm -qa | grep nfs  
rpm -qa | grep rpcbind
  • 1
  • 2

b、如果没有安装,则安装NFS

b、如果没有安装,则安装NFS

yum install nfs-utils  rpcbind
离线环境需要自己去下载相关包安装
  • 1
  • 2

c、设置开机启动

systemctl  enable  rpcbind.service
systemctl  enable  nfs-server.service
  • 1
  • 2

d、启动NFS

systemctl  start   rpcbind.service
systemctl  start   nfs-server.service
  • 1
  • 2

e、创建共享目录

mkdir  /usr/local/backup  保持和NFS服务端目录一致
chmod -R  用户名  /usr/local/backup
这里的用户名必须是启动ES的用户
  • 1
  • 2
  • 3

f、挂载目录

showmount  -e   ip   ip为NFS服务端ip,这里是10.1.40.8
mount -t nfs  ip:/usr/local/backup  /usr/local/backup  ip同上
  • 1
  • 2

h、设置开机挂载

vi /etc/fstab
ip:/usr/local/backup  /usr/local/backup nfs defaults 0 0
ip为NFS服务端ip这里是10.1.40.8
  • 1
  • 2
  • 3

2)、修改es配置

修改elasticsearch.yml,配置path.repo的属性为上述共享目录,然后重启集群
这里的elasticsearch.yml如下,可以供参考

#相当于这个集群名字必须要相同
cluster.name: myes
#节点的名称必须不一样
node.name: node-2
node.master: true
node.data: true
node.max_local_storage_nodes: 3
path.data: /usr/demo/data
path.logs: /usr/demo/logs
#设置的备份仓库地址
path.repo: ["/usr/local/backup"]
bootstrap.memory_lock: true 
bootstrap.system_call_filter: false
http.port: 9200
transport.tcp.port: 9300
network.host: 0.0.0.0
discovery.seed_hosts: ["10.1.40.8","10.1.40.110","10.1.40.12"]
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]
network.publish_host: 10.1.40.110
#跨域配置
http.cors.enabled: true 
http.cors.allow-origin: "*"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

二.Kibana中的集群配置

server.port: 5601         #kibana端口
server.host: "0.0.0.0"   #所有主机都能访问,或者也可以指定一个ip
elasticsearch.hosts: ["http://10.1.40.8:9200","http://10.1.40.110:9200","http://10.1.40.12:9200"]    #配置es的访问地址     
kibana.index: ".kibana"
i18n.locale: "zh-CN"
  • 1
  • 2
  • 3
  • 4
  • 5

三.索引的备份与恢复

步骤首先是进行创建备份仓库这里选择如下:/usr/local/backup

在es的elasticsearch.yml下进行添加配置(集群环境下都要进行配置)

path.repo: ["/usr/local/backup"]
  • 1

然后在kibana中执行

PUT /_snapshot/my_fs_backup
{
    "type": "fs",
    "settings": {
        "location": "/usr/local/backup",
        "compress": true
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

创建索引写入数据(如要操作已有的索引,这个步骤可以进行省略,仅作为事例存在)

PUT test
{
    "settings" : {
        "number_of_shards" : 3,
        "number_of_replicas" : 0
    }
}
POST _bulk
{ "index" : { "_index" : "test", "_id" : "1" } }
{ "msg" : "value1" }
{ "index" : { "_index" : "test", "_id" : "2" } }
{ "msg" : "value2" }
{ "index" : { "_index" : "test", "_id" : "3" } }
{ "msg" : "value3" }
{ "index" : { "_index" : "test", "_id" : "4" } }
{ "msg" : "value4" }
{ "index" : { "_index" : "test", "_id" : "5" } }
{ "msg" : "value5" }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

为上述索引创建一个snapshot

PUT /_snapshot/my_fs_backup/snapshot_test_1?wait_for_completion=true
{
  "indices": "test",
  "ignore_unavailable": true,
  "include_global_state": false
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

如要新增snapshot可以修改快照的名字:snapshot_test_1 跟 “indices”: “test” ,的索引名称

indices写索引的名称

可以查看存储库路径,/usr/local/backup,里面有内容。

删除上述索引

DELETE test
  • 1

恢复上述索引

恢复索引主要是根据快照的名字:snapshot_test_1 ,跟索引的名称:“indices”: “test”,

POST /_snapshot/my_fs_backup/snapshot_test_1/_restore
{
  "indices": "test",
  "ignore_unavailable": true,
  "include_global_state": true
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

查看检查索引数据

GET test/_search
GET test/_settings
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/389241
推荐阅读
相关标签
  

闽ICP备14008679号