
Long ago I wrote a post about Graphic management tools for Elasticsearch. A lot has changed since that post.
Elastic released numerous versions since and the management tools evolved too. Today I want to introduce one of the best monitoring and management systems for Elastic, Cerebro.
Cerebro is free and open source and you can find some information about it here.
You can download the latest release from here. I recommend installing the rpm or deb package that installs Cerebro as a service.
After installing the package, edit /etc/cerebro/application.conf. There are many configurations in the file, including the option to use LDAP authentication, but we will not deal with it now in order to keep it simple.
Scroll down to the bottom of the file until you reach the hosts configuration. Here you tell Cerebro how to connect to your Elastic cluster. It will work with only one host configured, but it’s better to configure more for redundancy.
hosts = [
{
host = "http://elastic1:9200"
name = "Node 1"
},
{
host = "http://elastic2:9200"
name = "Node 2"
}
# Example of host with authentication
#{
# host = "http://some-authenticated-host:9200"
# name = "Secured Cluster"
# auth = {
# username = "username"
# password = "secret-password"
# }
#}
]
After restarting Cerebro we can connect it by browsing http://[cerebro host]:9000 (this is the default port).
The overview page contains a lot of useful information. Along with the obvious data such as number of nodes, indices and shards you can see heap, disk, cpu and load average stats for each node.
On the upper row of the table you can see the indices.

Clicking on one of the indices opens a context menu that contains some possible actions on that index:

Most options are self explanatory and we cannot cover all of them here. The one I like most is “index settings”. Clicking it opens a form where you can make changes to the index without writing any json commands. After making changes just click save in the lower right and the changes will take effect:

The nodes tab on the upper menu shows very much the same info that is shown on the overview page, this time without any other information that may distract you:

The Rest tab enables you to send rest api requests to Elastic directly from within Cerebro:

The “more” menu offers many other useful actions:

Two interesting options are cluster settings, which like in index settings, expose cluster setting in a form you can save, without writing json, and analysis.
As you may know, Elasticsearch analyzes text before indexing it. The analyzer create an inverted index that enable efficient full text search. There are different analyzers for different languages, and also special analyzers like phrases analyzer.
The analyze option receives a text and shows you how Elasticsearch analyzes it:

Conclusion
Cerebro is a very powerful tool. It is stacked with options that makes monitoring and managing Elasticsearch much easier. It is the most mature and complete free tool for managing Elasticsearch I’ve seen so far.