环境:
Centos 7.4 X64
ElasticSearch 7.1
Kibana7.1
ElasticeSearch备份支持很多种备份方式,限于条件我们在本地只能使用fs备份方式 备份目的地为 宿主机win10上的一个目录 。
第一步: 配置备份目录,每一个节点需要mount目录。
- 1在宿主机上配置一个目录并设置用户名密码形式的共享 此步简单就不再截图
- 在es所有节点上mount此目录 并配置权限给es用户(启动elasticsearch使用的是此用户,不要用root用户)
mount -t cifs -o username="username",password="passowrd",uid=1002,gid=1002,file_mode=0660,dir_mode=0775 //IP/backup /mnt
3、挂载成功后可以试着在此目录下面写入文件,测试能否正常创建写入。必须成功用文件的属组和属主是Es用户才可以
4、修改每一个节点的 elasticsearch.yml 文件, 在文件尾部添加 备份文件存放路径
path.repo: ["/mnt/backup-data"]
5、依次按master>>data node的顺序启动节点
第二步、在kibana中配置repo
PUT /_snapshot/my_fs_backup { "type": "fs", "settings": { "location": "/mnt/backup-data", "compress": true } }
第三步、创建一个所有index的备份
PUT /_snapshot/my_fs_backup/snapshot_20200311?wait_for_completion=true
第四步、删除其中一个索引
DELETE mysql_asks
再次插叙时提示 已经找不到该索引了
GET mysql_asks/_search
{
"error" : {
"root_cause" : [
{
"type" : "index_not_found_exception",
"reason" : "no such index [mysql_asks]",
"resource.type" : "index_or_alias",
"resource.id" : "mysql_asks",
"index_uuid" : "_na_",
"index" : "mysql_asks"
}
],
"type" : "index_not_found_exception",
"reason" : "no such index [mysql_asks]",
"resource.type" : "index_or_alias",
"resource.id" : "mysql_asks",
"index_uuid" : "_na_",
"index" : "mysql_asks"
},
"status" : 404
}
第五步、恢复索引
POST /_snapshot/my_fs_backup/snapshot_20200311/_restore { "indices": "mysql_asks", "index_settings": { "index.number_of_replicas": 5 }, "ignore_index_settings": [ "index.refresh.interval" ] }
第六步、验证索引是否已经恢复 ,现在已经恢复索引
GET mysql_asks/_search // { "took" : 4, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 7, "relation" : "eq" }, "max_score" : 1.0, "hits" : [ { "_index" : "mysql_asks",
测试成功