Lately we have been missing the Sense Chrome extension, basically because of the autocompletes when we are writing some Elasticsearch queries, or debugging something. It got blocked on Chrome due to a malware issue.

In that post, they mention Kibana has a console with the same functionality that we were missing from Sense extension, so I decided to give it a try.

Constraints

Before we jump in, let’s briefly discuss our setup for the project. We use:

  • Docker for local development
  • Elasticsearch 2.4

We haven’t had time to upgrade Elasticsearch yet, and I thought it was going to be a problem, but it wasn’t. Kibana has the console since version 4, and that version works fine with Elasticsearch 2.*.

Setting up

As I said, we use Docker locally. But the Sense Kibana plugin is not available in the official docker image in a pre-baked way, so I had to create our own custom image with it. Create a file under resources/docker/kibana/Dockerfile with the content:

FROM kibana:4

RUN gosu kibana kibana plugin --install elastic/sense/latest

EXPOSE 5601

ENTRYPOINT ["/docker-entrypoint.sh"]

CMD ["kibana"]

After that, I needed to change our docker-compose.ymlfile to add a new service: The key part here is that we are linking the existing Elasticsearch service, named as search, and we are aliasing it as elasticsearch inside the Kibana container.

version: '2'

services:
    # there were other services described here...

    kibana:
        image: projectname/kibana
        build:
            dockerfile: resources/docker/kibana/Dockerfile
            context: .
        ports:
            - 5601:5601
        links:
            - search:elasticsearch
        networks:
            - back

Now we can run it:

docker-compose up -d

The new Kibana service is going to boot, and when we access the address http://localhost:5601, we can see the Kibana UI

It means we have plugins installed, and that is the Sense plugin we installed in our Dockerfile. Clicking there, drives us to the Sense page, which, as you can see, is similar to the previous Sense Chrome extension. You can use the alias we defined in our docker-compose.yml file as the Elasticsearch address.

Conclusion

That’s it! You now have Kibana running locally with the Sense plugin installed. We can use it to have some insights on our running cluster, or even for local development. Important to say that we are going to leave the Kibana service commented out in our docker-compose.yml, since not everyone needs to run it every time.

Have a nice holiday, a great 2018 to all of you, and see y’all in the next post.