Kibana is considered the “window” to Elasticsearch and indeed it’s a powerful UI for searching, filtering, analyzing, and visualizing Elasticsearch data, but Kibana settings are also used to configure, administer and monitor the Elasticsearch cluster. In this lesson, we’re going to explore how Kibana settings can be tweaked for collaborative teamwork.
We’re going to be exploring the following Kibana management features in this lesson:
Without further ado let’s jump right into spaces!
Let’s start by navigating to the Management app in Kibana → and from there, head over to the Spaces configuration in the Kibana section. It can be found here running on the default port and localhost: http://localhost:5601/app/kibana#/management/spaces/list?_g=()
As you can see right away, there’s already one space created for us by default (named Default). It’s always present if you haven’t explicitly disabled spaces. All objects that are contained inside the default space are shared between all users.
Let’s create a new space by clicking on Create a space. We’ll add the name “DevOps” and you can optionally provide a description. Lastly, we have the option to choose a color for space. This is helpful to visually differentiate spaces for users who have access to multiple spaces.
Then, scroll down to the Filters section where we can also filter out any sections that are not relevant for the specific target group. Our DevOps example would likely need access to most or all of these, but if you would be preparing a space for marketing, for example, you’d probably want to hide most of these and just enable access to the Dashboard menu option.
Bear in mind that this only hides or displays the menu options in the Kibana UI, but users would still be able to reach those areas via a direct URL. In other words, these Filters are not a replacement for access control features which would need to be handled separately.
Now let’s go ahead and click Create space.
Well done, your first custom space is ready! Now we can see the new space in the top left menu by clicking on the Spaces icon next to the Kibana logo. This menu is great for quickly jumping between different spaces.
Note: The next time you or other users log into Kibana, you will be prompted with selection boxes to pick from the existing spaces on your Kibana instance.
Perfect! Now just to complete the picture for you, there is also an API to perform these administration tasks of Spaces. For example, you can get a space by its id like this:
… and receive basic information on that Space.
And just to give you a sense of what’s possible with the API, we can create, update, and delete Spaces, as well as copy Saved Objects between Spaces.
Next, let’s take a look at how to migrate Kibana objects.
The primary function of the spaces is to separate Saved Objects between various user groups. So to see it in action we need to have some Saved Objects created first. Let’s import a premade dashboard and a couple of related objects so that we don’t have to create them manually :). Download this dashboard for Heartbeat to your host machine where you access Kibana. Wget can do it or just right-click it in your browser and use Save as.
Now let’s make sure we’re in our DevOps space and head to the Management app → and then we’ll go to the Saved Objects section. Click Import in the right corner and pick the http_dashboard.json file that we just downloaded as the imported resource. Then, click Import.
This should import eight Saved Objects (the dashboard, a couple of visualizations, an index pattern, and one saved search). We don’t have any data for these so we can’t actually visualize anything with them, but for our demonstration, we only need them to be present in our DevOps space.
Now, just to reinforce the concept of Spaces that we touched on earlier, let’s switch to the Default space and head over to the Saved Objects section. Notice that we don’t find any of the imported objects. Neither will we see them in the Dashboard or Visualize sections. This is a great demonstration of how Kibana Spaces allow you to organize your data according to user needs.
But now, let’s jump back to our DevOps space and then navigate to the Saved Objects section. We’ll simulate what it would be like to transfer objects between different Spaces. We have two options here:
For our last expedition, let’s head over to the Advanced Settings section in the Management app where many settings are concentrated.
First of all, bear in mind the warning box that is displayed on top of the page saying “Caution: You can break stuff here”. This is true. All sorts of settings, both “high” and “low” level, are found here in one place, so always double-check what you’re about to tweak. Secondly, these settings are mostly applied to the active space (i.e. not globally), which is useful for our case.
You can change the default landing page to which the users are redirected when they switch to a given space. Do so with the Default route setting. Here we have switched the default landing page to the Monitoring app which aggregates information about our Elastic Stack components. For example, our Operations team can go straight to the overview of the cluster, similarly, you can guide marketing users to their main dashboard.
Next, if you prefer, you can change your Kibana UI to Dark mode with black and gray as the base colors. This could help reduce eye strain in low-light.
Lastly, we’ll take a quick look at various time-related settings that are available. These settings only affect how the dates are displayed in Kibana and not their persisted form which is stored in Elasticsearch.
In this section we can change:
That about sums up the more common management tasks that you’ll be performing in Kibana.