A great way to save money when sizing compute and storage for an Elasticsearch cluster is by using hot-warm architectures. Especially for time series data, hot-warm architectures allow you to allocate your most relevant data (hot data) on your fastest nodes (hot nodes) and your less relevant data (warm data) on your slower nodes (warm nodes). This allows you to scale data retention with cheaper compute and storage and only pay a premium for your hot nodes. All this is made possible in Elasticsearch through the use of node attributes and allocation filtering, which can be used in any case where you want your index allocation to meet specific requirements. In this hands-on lab, you are given the opportunity to exercise the following:
* Apply node attributes to each data node in a cluster
* Configure indexes to allocate to specific nodes based on their attributes
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Configure nodes data-1 and data-2 to have a “temp” node attribute of “hot”.
Using the Secure Shell (SSH), log in to the
data-1
anddata-2
nodes ascloud_user
via the public IP address.Become the
elastic
user with:sudo su - elastic
In the
/home/elastic/elasticsearch/config/elasticsearch.yml
file, change the following line:#node.attr.rack: r1
to
node.attr.temp: hot
Restart the elasticsearch node with:
pkill -F /home/elastic/elasticsearch/pid /home/elastic/elasticsearch/bin/elasticsearch -d -p pid
- Configure nodes data-3 and data-4 to have a “temp” node attribute of “warm”.
Using the Secure Shell (SSH), log in to the
data-3
anddata-4
nodes ascloud_user
via the public IP address.Become the
elastic
user with:sudo su - elastic
In the
/home/elastic/elasticsearch/config/elasticsearch.yml
file, change the following line:#node.attr.rack: r1
to
node.attr.temp: warm
Restart the elasticsearch node with:
pkill -F /home/elastic/elasticsearch/pid /home/elastic/elasticsearch/bin/elasticsearch -d -p pid
- Allocate the logs-03 index to the hot nodes.
Use the Kibana console tool to execute the following:
PUT logs-03/_settings { "index.routing.allocation.require.temp": "hot" }
- Allocate the logs-02 index to the warm nodes.
Use the Kibana console tool to execute the following:
PUT logs-02/_settings { "index.routing.allocation.require.temp": "warm" }
- Allocate the logs-01 index to the warm nodes.
Use the Kibana console tool to execute the following:
PUT logs-01/_settings { "index.routing.allocation.require.temp": "warm" }