Kibana Manual Installation
Learn how to set up Kibana, Kibana Gateway, and Elasticsearch manually. Alternatively, Hydrolix provides 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 decouples your dashboarding and ingestion layers from your datastore. Key use cases for Kibana Gateway include:
- Translation layer for queries during a datastore platform migration, removing the need to alter application code or refactor SQL queries to maintain datastore compatibility
- Using Kibana with Hydrolix instead of Elasticsearch
- Simultaneous querying of multiple back end datastores
Container and pod names
Hydrolix acquired the database proxy software from Quesma. The Kubernetes pod, container, and tunable are named quesma since the cluster integration predated the software acquisition in 2025 September. The product is called Kibana Gateway.
Installation guide for existing environments⚓︎
If you have an existing system into 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⚓︎
This tutorial covers standing up a Kibana front end, a Kibana Gateway query and ingest routing and translation layer, and an Elasticsearch back end datastore. This setup integrates with your existing Hydrolix cluster and can simulate a multi-datastore architecture. Ingest is routed to Elasticsearch, while queries are routed to both Hydrolix and Elasticsearch.
Before you begin⚓︎
Ensure you have the following:
- A running Hydrolix deployment. Follow the instructions for your preferred cloud vendor if you have not deployed Hydrolix yet.
- Git. Install the git CLI or GitHub Desktop.
- Docker v20.10 or higher. Install Docker Desktop.
Gather the following information from your running Hydrolix cluster:
| Item | Description | Example values |
|---|---|---|
| Hydrolix URL + ClickHouse port | 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 corresponds to the database name configured for Kibana Gateway. It is the logical namespace for your tables. For instructions on creating a project, see Creating a project with the API. | Name: project_name |
| Table name(s) | The names of the tables you want to expose within the Kibana interface through Kibana Gateway configuration. For instructions on creating a table, see Create a table with the API. | Name:table_name0, table_name1 |
| Credentials | The username and password for your Hydrolix cluster account. | username: user@domain.compassword: correcthorsebatterystaple |
Configure containers with Docker Compose⚓︎
These steps are similar to the Kibana Gateway quick start demo setup for deploying Kibana and Elasticsearch. Use the Docker Compose file from those directions but omit the ClickHouse server and replace it with your running Hydrolix cluster.
The following also incorporates 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.
-
Clone the Kibana Gateway repository:
Clone Kibana Gateway repository -
Navigate to the working directory containing the Docker Compose file:
Navigate to Docker Compose directory -
Edit
docker-compose.ymlin this directory and remove or comment out theclickhousecontainer:Save your changes.
With these steps completed, executing this Docker Compose file locally deploys:
- A Kibana Gateway container (not yet configured to communicate with your Hydrolix cluster)
- An Elasticsearch datastore and query engine
- A Kibana data visualization interface
- Three sample data sets that load data into Elasticsearch using two containers (
log-generatorandkibana-sidecar)
Configure Kibana Gateway⚓︎
Configure Kibana Gateway to route queries to your running Hydrolix cluster and remove any references to the ClickHouse cluster. For more information about configuration, see the Configuration Primer.
-
Navigate to the directory containing the Kibana Gateway configuration:
Navigate to configuration directory -
Edit
local-dev.yamland add the following tobackendConnectors:Configure Hydrolix backend connector Replace
{hydrolix_host},{username},{password}, and{hydrolix_project_name}with your Hydrolix cluster information. This provides connection information that enables Kibana Gateway to communicate with your running Hydrolix cluster. The name you specify for the Hydrolix backend connector is for referencing it within this configuration file only. It does not have to be the name of your running Hydrolix cluster.Determining your database name
The project name in Hydrolix corresponds to the database name for Kibana Gateway.
-
Remove or comment out ClickHouse from
backendConnectors: -
In the
pipelinessection, replace mentions ofmy-clickhouse-data-sourcewithmy-hydrolix-instance. This configuration change ensures that Kibana Gateway routes 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-hydrolixmy-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_ecommercekibana_sample_data_flightslogs-generic-default
These indices are specified for the following processors:
my-query-processormy-ingest-processor
This configuration tells Kibana Gateway 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. For example, to use tablestable_name0andtable_name1:Configure Hydrolix tables This tells Kibana Gateway to query the data stored in those tables in your Hydrolix cluster.
-
Save your changes.
Deploy Kibana, Elasticsearch, and Kibana Gateway⚓︎
Deploy your containers locally:
| Deploy containers | |
|---|---|
Verify functionality⚓︎
Kibana⚓︎
Access the Kibana UI at localhost:5601:

Kibana Gateway⚓︎
Access the Kibana Gateway admin panel at localhost:9999:

The admin panel does not require authentication by default and can be disabled in docker-compose.yaml by commenting out or removing port forwarding for port 9999:
View your tables, including Hydrolix tables, at localhost:9999/schemas.
Kibana Gateway container logs to stderr
If you encounter problems with your Kibana Gateway container and want to search its logs, combine both stderr and stdout to the stdout stream with 2>&1:
| Search container logs | |
|---|---|
Otherwise, grep does not function on the logs from the Kibana Gateway container.
Create a Data View in Kibana for your Hydrolix data⚓︎
To view your Hydrolix tables in Kibana, create Data Views for tables (indexes). Follow these directions to create one.