Working with Elasticsearch is wonderful but it can be a challenge to lasso together a coherent set of tools with which to manage and interact with your cluster. There is no one “do-everything” utility that includes 100% of the Elasticsearch query, operations, and administrative API functionality. There are a few good tools and plugins that I use, however, that round out a complete toolbox for using Elasticsearch effectively.
The Elasticsearch head plugin is written by Ben Birch and is one of the old stalwarts that nearly everyone has used at one point to help manage an Elasticsearch cluster. It has a nice basic overview of indexes and includes some rudimentary administrative functionality like creating index aliases, running optimize, and easily viewing read-only data and cluster health. I still use this plugin pretty regularly but it has since been superseded by some more modern interfaces. It also falls down a bit, interface-wise, if you have a lot of indices in your cluster. You can install elasticsearch-head as a plugin directly from the Elasticsearch plugin command.
ElasticHQ is a newer web interface and has a much more modern experience than elasticsearch-head. It provides a few different installation options (I use the plugin method) which is handy in case you don’t have the required access to servers the Elasticsearch cluster is running on. ElasticHQ also provides some basic administrative functionality and while it looks fantastic, there are some quirks with the way it presents data that make it a little more difficult to use. The built-in query editor is also unwieldy, especially if you have index types with lots of properties. It includes a raw rest-based editor like some other tools but it’s not as good as some more dedicated query editors.
Kopf is a newer plugin and I wasn’t even aware of it until my coworker, Nick Canzoneri pointed it out to me. In short, it’s pretty fantastic. Kopf eliminates all the UI problems that elasticsearch-head has while adding additional functionality. You can quickly find an index, view relevant cluster or index information, and issue administrative commands. It also allows you to administer the Elasticsearch snapshot/restore functionality which is the first time I’ve seen this on a web interface for Elasticsearch. My only complaint about Kopf is that the ad-hoc query editor isn’t as good as some others I’ve used. Having said that, Kopf is my new go-to Elasticsearch utility for just about everything I need to do.
Postman is not actually an Elasticsearch specific utility but rather a generic API tool. Since Elasticsearch uses an http API, however, it can be effective for querying data or information out of Elasticsearch. The left-hand toolbar is handy for saving frequently used searches or commands so they can be called up easily. It’s in active development and is a free extension for Google Chrome.
Inquisitor is a handy tool for using a full gui to query your Elasticsearch index and also includes a nice area to try out different analyzers and tokens on a sample set of text. Frankly, I wish Kopf had a few tools like this hooked into the analyzer API. I wouldn’t use Inquisitor as my only query tool but it definitely is useful for having around, especially for testing the results of differently analyzers on data that you want to index. Thanks to Krishna Kumar for pointing it out to me!
Elasticsearch recently released their own management UI called Marvel which is effectively a pre-configured Kibana dashboard with some additional tools added. Marvel is a very effective way to manage an Elasticsearch cluster but the commercial license can be a bit steep. Included with the free version of Marvel, however, is the Sense query editor which is, hands down, the nicest Elasticsearch query editor you will find. Sense lets you run ad-hoc queries quickly and easily and even includes a look-ahead auto-complete feature that gives it an “intellisense” feel. It’s an absolute must for composing Elasticsearch queries by hand. I use it nearly daily at work. I even saved the direct shortcut to Sense within Marvel and created an independent Chrome application shortcut with it and I usually have it open during the day on my desktop.
If you’ve got other tools or workflows you like to use to manage Elasticsearch, please let me know!