Kibana Manual Installation
This detailed guide will show you how to set up Kibana, Kibana Gateway, and ElasticSearch yourself. Alternatively, Hydrolix comes with these services pre-configured. See Kibana Automatic Installation for more details.
What is Kibana Gateway?⚓︎
Kibana Gateway is a lightweight database proxy that enables interoperability between a front end such as Kibana and multiple back end datastores such as Hydrolix and ElasticSearch. It provides this interoperability by acting as a SQL translation layer that entirely decouples your dashboarding and ingestion layers from your datastore(s). Two compelling use cases for Kibana Gateway are:
- Using it as a translation layer for queries during a datastore platform migration. Doing so can remove the need to alter application code or refactor SQL queries to maintain datastore compatibility during the migration.
- Using Kibana with Hydrolix instead of ElasticSearch
- Easy, simultaneous querying of multiple back end datastores.
Installation Guide for Existing Environments⚓︎
If you have an existing system in which you want to incorporate Kibana Gateway and Hydrolix, there are various scenarios and their instructions described in the Kibana Gateway installation guide.
Installation Guide from Scratch⚓︎
In the following tutorial, we will be standing up a Kibana front end, a Kibana Gateway query and ingest routing and translation layer, and an ElasticSearch back end datastore. This setup will be integrated with your existing Hydrolix cluster and can be used to simulate a multi-datastore architecture. Ingest will be routed to ElasticSearch, while queries are routed to both Hydrolix and ElasticSearch.
Before You Begin⚓︎
You will need:
- A running Hydrolix deployment. Follow the instructions for your preferred cloud vendor if you have yet to deploy Hydrolix. From your running Hydrolix cluster, you will need the following information:
| Item | Description | Example values |
|---|---|---|
| Hydrolix URL + ClickHouse port | This is the URL of your Hydrolix cluster appended with the ClickHouse Native protocol SSL/TLS port. | https://{myhostname}.hydrolix.live:9440 |
| Project name | The project name in Hydrolix which will correspond to the database name configured for Kibana Gateway. It is the logical namespace for your tables. Instructions for creating a project can be followed here. | Name: project_name |
| Table name(s) | You will need the names of the tables you want to expose within the Kibana interface via Kibana Gateway configuration. Instructions for creating a table can be followed here . | Name:table_name0, table_name1 |
| Credentials | The username and password for your Hydrolix cluster account. | username: user@domain.compassword: correcthorsebatterystaple |
- Git. You can install the git CLI or Github Desktop.
- Docker v20.10 or higher. You can install Docker Desktop here.
Configure the Containers With Docker Compose⚓︎
The following steps are similar to Kibana Gateway quick start demo setup for deploying Kibana and ElasticSearch. You will be using the Docker Compose file from those directions but omitting the ClickHouse server and replacing it with your running Hydrolix cluster.
We will also be following the Hydrolix-specific instructions to configure Kibana Gateway to route queries to your Hydrolix cluster rather than a ClickHouse server.
Ingest Currently Not Supported
Kibana Gateway currently supports routing queries to Hydrolix. Ingest to Hydrolix using Kibana Gateway is not supported.
Open a command-line terminal and execute the following:
- Clone Kibana Gateway repository with
git clone https://github.com/QuesmaOrg/quesma.git. - Navigate to the working directory containing the Docker Compose file with
cd quesma/examples/kibana-sample-data. - Edit the
docker-compose.ymlin this directory and remove or comment out theclickhousecontainer as the following example shows:
```yaml docker-compose.yml services: {...} #clickhouse: # user: 'default', no password # image: clickhouse/clickhouse-server:23.12.2.59-alpine # ports: # - "8123:8123" # - "9000:9000" # healthcheck: # test: wget --no-verbose --tries=1 --spider http://clickhouse:8123/ping || exit 1 # interval: 1s # timeout: 1s # start_period: 1m
- Add the following to
backendConnectors:
```yaml local-dev.yaml - name: my-hydrolix-instance type: hydrolix config: url: https://{hydrolix_host}:9440 user: {username} password: {password} database: {hydrolix_project_name}
-
In the
pipelinessection, replace mentions ofmy-clickhouse-data-sourcewithmy-hydrolix-instance. This configuration change ensures that Kibana Gateway will route queries to both the Hydrolix and ElasticSearch back ends. For consistency, you can also rename the pipelines: -
my-pipeline-elasticsearch-query-clickhouse->my-pipeline-elasticsearch-query-hydrolix -
my-pipeline-elasticsearch-ingest-to-clickhouse->my-pipeline-elasticsearch-ingest-to-elastic. -
Replace all other instances of
my-clickhouse-data-sourcewithmy-minimal-elasticsearch. There should be six altogether configured for the following indices: -
kibana_sample_data_ecommerce kibana_sample_data_flightslogs-generic-default
These indices are specified for the following processors:
my-query-processormy-ingest-processor
We are modifying this configuration so Kibana Gateway knows to ingest data into and query those indices solely within ElasticSearch.
- Add your Hydrolix table(s) to
processors.my-query-processor.config.indexeswith targetmy-hydrolix-instance. If you were to use the tablestable_name0andtable_name1from above, you would configure them like so:
```yaml local-dev.yaml processors: - name: my-query-processor type: quesma-v1-processor-query config: indexes: table_name0: target: [ my-hydrolix-instance ] table_name1: target: [ my-hydrolix-instance ]
Verify Functionality⚓︎
Kibana⚓︎
The Kibana UI should be available at localhost:5601:

Kibana Gateway⚓︎
The Kibana Gateway admin panel should be accessible at localhost:9999:

Note that the admin panel does not require authentication by default and can be disabled in the docker-compose.yaml by commenting out or removing port forwarding for port 9999:
You should also be able to view your tables, including Hydrolix tables, at localhost:9999/schemas.
The quesma container logs to stderr.
If you run into problems with your quesma container and want to search its logs, be sure to combine both stderr and stdout to the stdout stream with 2>&1. For example:
quesma container.
Create a Data View in Kibana for your Hydrolix Data⚓︎
In order to view your Hydrolix tables in Kibana, you need to create Data Views for tables (indexes). Follow these directions to create one.