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}"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM