Elasticsearch is a Lucene-based search engine developed by the open-source vendor, elastic. With principal features like scalability, resiliency, and top-notch performance, it has overtaken Apache Solr, one of its closest competitors. Nowadays, Elasticsearch is almost everywhere where a search engine is involved: it’s the E of the well-known ELK stack, which makes it straightforward for your project to process analytics (the L stands for Logstash which is used to process data like logs, streams, metrics; K stands for Kibana, a data visualization platform – projects also managed by elastic).
Installing Elasticsearch from the Rancher Catalog
Before we get started, let me tell you a bit about the Rancher catalog. The Rancher catalog uses rancher-compose and docker-compose to ease the installation of whatever tool you need. Using the Rancher catalog, you can deploy everything from a simple app like ghost (blogging platform) to a full CI/CD stack like GoCD.
I’ll assume here that you have a fully working Rancher platform (a server and several nodes). If not, then head over to the Rancher documentation here, before going any further in this article and set up your environment. My environment looks like this (Figure 1, built using docker-machine on my laptop):
Figure 1: Elasticsearch Environment
Accessing the Rancher catalog is simple:
On the top menu bar of your Rancher UI, click onCatalog, then All.
Using the search box on the upper right, search forElasticsearch.
You’ll see two versions of Elasticsearch are available (Figure 2). Both work fine, but for this article, we’ll stick to version on the left.
Click on View Details. You will need to fill in some simple information (Figure 3).
To fire up the installation, click Launch.
Figure 2: Elasticsearch Options in the Rancher Catalog
Figure 3: Elasticsearch Data Form
You should now see something similar to the image below (Figure 4). You can find more details about what Rancher is doing by clicking on the name of your stack (in my case, I’ve installed Elasticsearch, and named my stack LocalEs).
Figure 4: LocalEs app Naming Convention
Expanding our view of the stack (Figure 5), we can see that deploying an Elasticsearch cluster using the Rancher catalog template has included:
a Master node
a Data node
a Client node
kopf, an Elasticsearch management web app
Figure 5: Elasticsearch Cluster Stack View
Each of these nodes (except for kopf) comes with sidekick containers, which in this case are configuration and data volume containers.
Your Elasticsearch cluster will be fully functional when all the entries are “active”. If you want to see how they are all connected to each other, take a look at the graph view(available from the drop-down menu on the right hand corner in Figure 6).
Figure 6: Elasticsearch Cluster Graph View
Now, we can visualize how all these containers as they are mapped within the Rancher platform (Figure 7).