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
b、如果没有安装,则安装NFS
yum install nfs-utils rpcbind
离线环境需要自己去下载相关包安装
c、设置开机启动
systemctl enable rpcbind.service
systemctl enable nfs-server.service
d、启动NFS
systemctl start rpcbind.service
systemctl start nfs-server.service
e、创建共享目录
mkdir /usr/local/backup 具体目录名可以自己设置
chown -R 用户名 /usr/local/backup
这里的用户名必须是启动ES的用户
f、设置可以访问的地址和权限
vi /etc/exports 添加下面内容:
/usr/local/backup *(rw,sync,no_root_squash,no_subtree_check)
代表所有网段都可以访问,如果想配置为特定ip,可以添加为es集群中所有节点的ip
g、刷新配置并查看
exportfs -a 刷新配置并立刻生效
showmount -e ip 这里ip为当前创建共享目录主机ip这里选择的是:10.1.40.8作为服务端
配置NFS客户端(所有除开上一步中的外的所有ES节点都需执行如下操作)
a、检查是否安装NFS
rpm -qa | grep nfs
rpm -qa | grep rpcbind
b、如果没有安装,则安装NFS
b、如果没有安装,则安装NFS
yum install nfs-utils rpcbind
离线环境需要自己去下载相关包安装
c、设置开机启动
systemctl enable rpcbind.service
systemctl enable nfs-server.service
d、启动NFS
systemctl start rpcbind.service
systemctl start nfs-server.service
e、创建共享目录
mkdir /usr/local/backup 保持和NFS服务端目录一致
chmod -R 用户名 /usr/local/backup
这里的用户名必须是启动ES的用户
f、挂载目录
showmount -e ip ip为NFS服务端ip,这里是10.1.40.8
mount -t nfs ip:/usr/local/backup /usr/local/backup ip同上
h、设置开机挂载
vi /etc/fstab
ip:/usr/local/backup /usr/local/backup nfs defaults 0 0
ip为NFS服务端ip这里是10.1.40.8
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: "*"
二.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"
三.索引的备份与恢复
步骤首先是进行创建备份仓库这里选择如下:/usr/local/backup
在es的elasticsearch.yml下进行添加配置(集群环境下都要进行配置)
path.repo: ["/usr/local/backup"]
然后在kibana中执行
PUT /_snapshot/my_fs_backup
{
"type": "fs",
"settings": {
"location": "/usr/local/backup",
"compress": true
}
}
创建索引写入数据(如要操作已有的索引,这个步骤可以进行省略,仅作为事例存在)
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" }
为上述索引创建一个snapshot
PUT /_snapshot/my_fs_backup/snapshot_test_1?wait_for_completion=true
{
"indices": "test",
"ignore_unavailable": true,
"include_global_state": false
}
如要新增snapshot可以修改快照的名字:snapshot_test_1 跟 “indices”: “test” ,的索引名称
indices写索引的名称
可以查看存储库路径,/usr/local/backup,里面有内容。
删除上述索引
DELETE test
恢复上述索引
恢复索引主要是根据快照的名字:snapshot_test_1 ,跟索引的名称:“indices”: “test”,文章来源:https://www.toymoban.com/news/detail-774453.html
POST /_snapshot/my_fs_backup/snapshot_test_1/_restore
{
"indices": "test",
"ignore_unavailable": true,
"include_global_state": true
}
查看检查索引数据文章来源地址https://www.toymoban.com/news/detail-774453.html
GET test/_search
GET test/_settings
到了这里,关于Elasticsearch集群进行索引的备份与恢复的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!