Back Up and Restore Elasticsearch Indices

2 hours
  • 4 Learning Objectives

About this Hands-on Lab

Elasticsearch’s high availability and redundancy make it a stable and reliable platform for storing massive amounts of data. However, to protect yourself from human error and natural disaster, you should always back up your Elasticsearch data. Where you store your Elasticsearch data backups is entirely up to you. In this hands-on lab, we will use the local filesystem to demonstrate how to:

* Create snapshot repos
* Back up specific indexes
* Restore data from a snapshot

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Create and configure the snapshot directory.

Using the Secure Shell (SSH), log in to the node-1 node as cloud_user via the public IP address.

Become the elastic user with:

sudo su - elastic

Create the directory where snapshots will be stored with:

mkdir /home/elastic/snapshot

Add the following line to /home/elastic/elasticsearch/config/elasticsearch.yml:

path.repo: "/home/elastic/snapshots"

Restart the elasticsearch node with:

pkill -F /home/elastic/elasticsearch/pid
/home/elastic/elasticsearch/bin/elasticsearch -d -p pid
Create the “test_repo” repository.

Use the Kibana console tool to execute the following:

PUT _snapshot/test_repo
  "type": "fs",
  "settings": {
    "location": "/home/elastic/snapshots"
Back up the “bank” index.

Use the Kibana console tool to execute the following:

PUT _snapshot/test_repo/bank_1?wait_for_completion=true
  "indices": "bank", 
  "include_global_state": false
Restore the “bank” index as “bank_restored”.

Use the Kibana console tool to execute the following:

POST _snapshot/test_repo/bank_1/_restore
  "indices": "bank",
  "rename_pattern": "(.+)",
  "rename_replacement": "$1_restored"

Additional Resources

You work for an online banking company who is considering the use of Elasticsearch as a NoSQL database to store account data. Part of your company's consideration of Elasticsearch is a proof of concept effort to evaluate Elasticsearch and determine if it meets your company's strict requirements. One such requirement is the ability to back up and restore specific datasets with complete data integrity. You are tasked with testing this functionality in Elasticsearch using the snapshot and restore APIs.

You have been provided with a 2-node Elasticsearch cluster that has been pre-loaded with some bank account data. Your task is to create a snapshot repository on node-1 at /home/elastic/snapshots called test_repo before backing up the bank index to a snapshot called bank_1 in the test_repo. The snapshot should not include the global cluster state.

Next, you will need to restore the bank index from the bank_1 snapshot in the test_repo repository as the bank_restored index. You should be left with the bank and bank_restored indexes which will be used to confirm data integrity during the backup and restore process.

To use Kibana, navigate to the public IP address of the coordinator-1 node in your web browser and login with:

  • Username: elastic
  • Password: la_elastic_409

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?