Kibana

Kibana  managed service

Kibana is a popular open-source visualization tool that is often used in conjunction with Elasticsearch, a powerful search and analytics engine. Kibana allows you to easily create and share dynamic dashboards that visualize your Elasticsearch data and help you to understand and explore that data in real time. This can be especially useful for monitoring and analyzing log data, as well as for identifying trends and detecting anomalies. Additionally, Kibana’s intuitive visual interface makes it easy for users to create and customize their own dashboards, so you can tailor the tool to your specific needs and use cases.

Kibana is a powerful tool for visualizing and exploring data stored in Elasticsearch. It allows you to create dashboards and visualize the data in a variety of ways, like pie charts, line graphs, and maps. This can help you to quickly identify trends and patterns in your data and make more informed decisions based on that information.

Additionally, Kibana offers a range of powerful features for querying and filtering your data, so you can easily find the specific information you’re looking for. Overall, Kibana can be a valuable tool for anyone working with large datasets and looking to gain insights from their data.

Add Kibana to your app

To run Kibana on Doprax, you will first need to add it to as a service to your app. You need to specify additional configuration options for Kibana, such as the Elasticsearch host to connect to, by adding necessary environment variables or configuring it by mounting a kibana.yml file.

Configuring Kibana

To run Kibana on Docker, you will need to make the following configurations in the kibana.yml file:

  • server.host: This setting specifies the hostname or IP address that Kibana should bind to. By default, this is set to "0.0.0.0", which means that Kibana will bind to all available network interfaces. If you want to restrict Kibana to bind to a specific interface, you can specify its hostname or IP address here.
  • server.port: This setting specifies the port that Kibana should listen on. By default, this is set to 5601, which is the default port for Kibana. If you want to use a different port, you can specify it here.
  • elasticsearch.hosts: This setting specifies the URL of the Elasticsearch host that Kibana should connect to. This is required in order for Kibana to function properly. In Doprax, by default the hostname and port of elasticsearch within an app is “http://elasticsearch:9200”
  • elasticsearch.username: This setting specifies the username that Kibana should use when authenticating with the Elasticsearch host. This is optional and only needs to be set if your Elasticsearch host is protected by basic authentication.
  • elasticsearch.password: This setting specifies the password that Kibana should use when authenticating with the Elasticsearch host. This is optional and only needs to be set if your Elasticsearch host is protected by basic authentication.
  • xpack.security.enabled: This setting specifies whether to enable security features in Kibana, such as authentication and access control. This is optional and is disabled by default.

Here is an example kibana.yml file that configures Kibana to run on Docker:

server.host: "0.0.0.0"
server.port: 5601

elasticsearch.hosts: ["http://elasticsearch:9200"]
elasticsearch.username: "kibana"
elasticsearch.password: "password"

xpack.security.enabled: false

For more information about the available configurations for Kibana on Docker, you can refer to the Kibana Docker documentation.

Access Kibana dashboard

To be able to see the Kibana dashboard, you need to have also Nginx as one of your services in your app. Nginx to Kibana on Doprax both of which are on the same private network, you will first need to ensure that your Kibana container is running. In the deploy page, you can check if you can open a shell connection to the Kibana container.

Next, you will need to add the Nginx service to your app. The Nginx is going to be on the same private network as your Kibana container. The hostname of Kibana is kibana and it is accessible using http://kibana:5601 from your Nginx container. 

Once your Nginx container is running, you can add a new server block to the Nginx configuration file (usually located at /etc/nginx/nginx.conf) that listens on the desired address and port within the private network (for example, http://nginx) and proxies traffic to your Kibana container. From services page, find your Nginx service and add a new mounted config file. You need to mount a config file to this /etc/nginx/nginx.conf path. The config file should have a server block that routes traffic to your kibana container.

Here is an example server block that listens on http://nginx and proxies traffic to a Kibana container running on http://kibana:5601 when both of them are on the same app (same private network automatically created for each app).

server {
    listen       80;
    server_name  nginx;

    location / {
        proxy_pass http://kibana:5601;
    }
}

Once you have added the server block to the nginx configuration file, you can restart nginx to apply the changes from the ‘deploy’ page.

Please do tell us, did you find the content above helpful?