Local Kibana Installation

In some scenarios, it may be preferable to run your own local instance of Kibana, instead of using the ObjectRocket-hosted instance. For example, if you wanted to install kibana plugins that only you have access to, or if you wanted to create a completely different set of Kibana visualizations that only show up in your local Kibana.

Installation

Our recommended setup uses docker containers to run locally, so docker and docker-compose are required on your local machine. You must have the following versions installed:

  • docker 1.10.0+
  • docker-compose 1.6.0+

Next, clone the objectrocket/local-kibana GitHub repo to a directory on your local machine

$ git clone https://github.com/objectrocket/local-kibana.git

An alternative approach would be to just run Kibana on your local system without using containers; It removes the requirement for docker, but adds different requirements, like Java on your local machine. For more information on that approach, please consult elastic’s documentation .

Configuration

Kibana Version

The default version of Kibana used in the repo is 5.4.3 (latest at time of writing). If you’re using a different/non-compatible version, you can change to the appropriate version by editing the Dockerfile in local-kibana/kibana.

# https://github.com/elastic/kibana-docker
FROM docker.elastic.co/kibana/kibana:5.4.3

# Remove X-Pack
RUN kibana-plugin remove x-pack

# Install other plugins with
# RUN kibana-plugin install <name|url>

Change the number at the end of the line FROM docker.elastic.co/kibana/kibana:5.4.3 to match the version of Kibana you’d like to use. You can see which versions of Kibana are compatible with your version of Elasticsearch in the official Elastic support matrix .

kibana.yml

In the newly cloned repo, the Kibana configuration file is local-kibana/kibana/config/kibana.yml. You’ll need to update the included file with one of the https connection strings from the ObjectRocket UI/API (NOT the Kibana string) and users with password as configured in the ObjectRocket UI.

---
## Default Kibana configuration from kibana-docker.
## from https://github.com/elastic/kibana-docker/blob/master/build/kibana/config/kibana-oss.yml
#
server.name: kibana
server.host: "0"
elasticsearch.url: "https://your-host.es.objectrocket.com:your-port"
elasticsearch.username: "your-user"
elasticsearch.password: "your-password"

Note

Kibana can only accept a single host for the elasticsearch url. It is not able to round-robin, like other elasticsearch clients, so you’ll need to take the list of hosts provided in the ObjectRocket UI and select only one host to use for the local Kibana instance.

ObjectRocket ACLs

You will also need to make sure that you have an elasticsearch ACL set up to allow you to connect from your local machine. From the ObjectRocket UI:

  1. Click on the instance that you’d like to connect to
  2. Click the “+ Add ACL” button
  3. Select “Elasticsearch” for ACL Role, then select the “MyIP” button and then “Add ACL Entry”

This will ensure that a local install of Kibana can connect to your ObjectRocket Elasticsearch cluster.

Launching Kibana

Now that you have your Kibana configuration file and access from your local machine setup, you can launch Kibana. From a terminal in the newly cloned ‘local-kibana’ directory run:

$ docker-compose build --no-cache
$ docker-compose up

This will launch the Kibana docker container and you will start to see status information from Kibana printed to your terminal. Once Kibana has finished loading up, you should see something like:

kibana_1  | {"type":"log","@timestamp":"2017-06-29T21:34:36Z","tags":["status","ui settings","info"],"pid":1,"state":"green","message":"Status changed from yellow to green - Ready","prevState":"yellow","prevMsg":"Elasticsearch plugin is yellow"}

Connecting to Kibana

In a browser, you can now navigate to localhost:5601.

Kibana will start loading and you will need to enter your Elasticsearch username and password one more time.

At this point you are now connecting to your ObjectRocket Elasticsearch cluster with a local Kibana install. Since it’s still using the same index for kibana visualizations and dashboards, you can see the same dashboards as the hosted version.

Using the non-default Kibana index

By default, and on the ObjectRocket service, Kibana stores all of its data in an Elasticsearch index called “.kibana”. If you’d like to create your own set of Kibana items that won’t show up in the hosted ObjectRocket Kibana, you must add the following setting to your kibana.yml file:

kibana.index: "yourkibanaindexname"

When using a different Kibana index name, remember that you’ll need to configure all of your Kibana index patterns again for the new index.

Shutting down Kibana

To shut down the Dockerized Kibana, use a terminal to navigate to the local-kibana directory and run the docker-compose down command:

$ cd /some/directory/local-kibana
$ docker-compose down