Elasticsearch Kibana ELK stack

ELK進階實務

蕭宇翔 Rickey Xiao 2025/09/24 23:43:41
13

主題:ELK進階實務

 

作者:Rickey

內容:備份及還原

*備註:適合閱讀過ELK基礎實務、ELK基礎實務 2、ELK基礎實務 3的讀者

 

1. 前言

在ELK基礎實務的文章中

讀者們已經可以在單機設備上架設Elasticsearch cluster、Kibana以及Filebeat了

在前三篇文章,我們介紹Elasticsearch的HA架構以及監控手法

那實務上,我們也會經常用到一個很重要的工具,那就是「備份」及「還原」

接下來,讓我們一步步實現Elasticsearch的還原架設以及步驟

 

2. 前置動作

請參照ELK基礎實務的文章內容,架設Elasticsearch以及Kibana

這邊我們啟動(node1)Elasticsearch即可。(使用『單節點架構』)

若要啟動多節點的集群,要記得所有Elasticsearch的yml都須更動,「每個節點」都要改

 

3. 關於repo以及snapshot

在elasticsearch的備份中,我們要建立一個「儲存用」的倉庫

以此來將備份的檔案存入

因此我們可以創建一個資料夾的來儲存我們的快照(snapshot)

確認elasticsearch可以有寫入權限!

 

4. 設定elasticsearch.yml

加入一條

path.repo: <你的路徑>/<資料夾名稱>

接下來儲存並重新啟動Elasticsearch!

 

5. 註冊倉庫

當我們的elasticsearch看到這個路徑後

我們要讓elasticsearch知道要把snapshot寫到這個倉庫中

接下來到Kibana的Dev Tools

PUT _snapshot/<倉庫的名字>

{

  "type": "fs",

  "settings": {

    "location": "<你的路徑>/<資料夾名稱>"

  }

}

到這邊elasticsearch就會認識這個倉庫了(這邊他是用倉庫的名字去認識的唷)

 

6. 建立測試資料

接下來我們保持在Dev Tools並且創建測試用index

建立一個名稱為『my-index』的index:

PUT /my-index

新增一筆資料:

POST /my-index/_doc

{

  "title": "Hello",

  "message": "你好"

}

 

7. 設定Policy

第一步我們設定這次規則的名稱,並設定我們要使用的<倉庫的名子>,就可以到按Next第二步

第二步時我們『只選擇』我們測試的index,接著一路按Next下去

完成後可以看到這邊我建立一個Policy叫做sample的規則,存在一個倉庫名字叫做test2的地方,按下右邊的RUN

然後我們就可以在snapshot看到sample開頭的快照嘍

8. 刪掉並還原

我們手動刪除『my-index』

接著我們回到剛剛那個snapshot的畫面進行還原

這樣就成功還原了!!

可以回到index的頁面看看自己刪掉的index是否有還原嘍

 

9. 結語&Recap

這次帶領讀者實踐了ES的備份及還原

在應用場景中,這非常的重要,透過與客戶的討論,決定每個index需要備份的頻率

當故障來臨時,我們也要及時的對資料進行還原

希望透過這篇文章,可以讓各位對設定快照有更近一步的認識

蕭宇翔 Rickey Xiao