You can run dedicated Elasticsearch clusters to meet your business needs using Appbase.io clusters. Clusters offer fully managed Elasticsearch hosting that's powered via Kubernetes and available in over 16+ global geographic regions. You can visualize your Elasticsearch data with either Kibana or Grafana and choose from any of the plugins available as part of the Elasticsearch ecosystem. You also get the following Appbase.io features out of the box:
- Realtime Search,
- Data Browser,
- Search Relevancy,
- Actionable Analytics,
- Editable Mappings,
- Enhanced Security.
Getting started
Following are the steps that you can follow, to create a new cluster:
-
Login to appbase.io dashboard
-
Go to cluster pages and click Create New Cluster. Enter the following details for cluster creation:
-
Select a plan. You can check out the pricing plan details over here.
-
Input the desired name for cluster.
-
Select Elasticsearch flavour, i.e. Open Source Elasticsearch Distribution or Open Distro for Elasticsearch.
-
Select addons to be deployed. Example Kibana/Grafana, Appbase.io's GUI dashboard, Elasticsearch HQ for browsing data + analytics + security features.
-
Note - You can also install any other custom plugins after the cluster is created. For more details on how to update plugins via Elasticsearch configurations you can check here
Tracking Deployment Status
Once the cluster creation starts, it takes around 5-10 minutes for a cluster to be up and running. There is a status tag next to cluster name on your cluster dashboard, which will help you know the status of deployment.
Once the cluster is created and Elasticsearch is deployed successfully, you will be able to View Details of the cluster.
There you might come across messages which specifies that other addon deployments are still in progress. For accessing all the features, you can wait till all the deployment in progress messages disappear.
Managing A Deployed Elasticsearch Cluster
Once the cluster is deployed, you can maintain cluster by
- Managing addons
- Scaling cluster based on traffic
- Managing security via Appbase.io GUI Dashboard
- Viewing analytics for various indexes
- Browsing data
- Monitoring resources used by cluster via Kubernetes Dashboard.
Managing addons
Once the cluster is deployed you can enable / disable the addons from Cluster details page.
Accessing Appbase.io GUI Dashboard
In order to access and manage cluster data, you can click on Explore Cluster from cluster details page.
Using this Dashboard you can create/delete indexes or you can explore and manage their individual data. Appbase.io GUI Dashboard also allows you to manage API credentials and Role Based Access, hence adding more layers of security to your application.
Note: For more details on how analytics and security works please check their individual documentation.
Scaling Cluster
At any given point you can scale the cluster by adding/removing Elasticsearch nodes.
Sharing Cluster
With the help of Sharing feature you can share cluster access with your team and can also restrict the access by specifying the viewer
role to that team member.
Accessing Elasticsearch Logs, Metrics and Advanced Editing
As we deploy Elasticsearch using a Kubernetes orchestration, it allows user to access Kubernetes dashboard and monitor various resource deployed on the cluster.
You can open kubernetes dashboard by click on the link available in Dashboard section of your cluster details page.
Benefits of using Kubernetes
Kubernetes orchestration guarantees a higher reliability for your cluster and it comes with a built-in mechanism to restart a node on failure, allows inspecting and safe editing of your underlying resources.
Monitoring the resource usage
For information on how kubernetes system works and how resources are managed you can check kubernetes Documentation
Accessing Elasticsearch logs
Elasticsearch logs can be really helpful from debugging point of view. They can also help us know the deployment status of various plugins and various operations performed on the clusters.
You can follow this steps to access the logs
- Open kubernetes dashboard
- Navigate to Workloads > Stateful Set
- Select elasticsearch from the Stateful Sets
- Open Elasticsearch Logs by clicking on Logs option in top right menu
Advanced Editing
You have no restrictions with respect to editing any part of the Elasticsearch configuration. For example, you can install a custom plugin or updated your Elasticsearch cluster's version. You can also deploy your own docker image to run alongside Elasticsearch.
For example in order to limit access of cluster on limited sites you can edit CORS configuration for Elasticsearch cluster.
-
Open kubernetes dashboard
-
Navigate to Workloads > Stateful Sets
-
Select elasticsearch from the Stateful Sets
-
Open the Stateful Set configuration by clicking Edit option in the top right menu
-
In the
spec.containers[0].args
option of file, you can change value of-Ehttp.cors.allow-origin
. Instead of*
we can specify actual sites that are going to access data of this cluster, example-Ehttp.cors.allow-origin https://appbase.io
Note: Editing Stateful Sets will automatically restart pods and will apply configuration to all the Elasticsearch pods in the cluster.