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.
Following are the steps that you can follow, to create a new cluster:
Login to appbase.io dashboard
Select a plan. You can check out the pricing plan details over here.
Input the desired name for cluster.
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
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.
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.
Once the cluster is deployed you can enable / disable the addons from Cluster details page.
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.
At any given point you can scale the cluster by adding/removing Elasticsearch nodes.
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.
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.
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
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
spec.containers.argsoption 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
Note: Editing Stateful Sets will automatically restart pods and will apply configuration to all the Elasticsearch pods in the cluster.