Installing Kibana on Ubuntu or Debian adds a browser-based interface for exploring Elasticsearch data, building visualizations and dashboards, and working with the Elastic Stack apps for logs and metrics.

The kibana package deploys the application under /usr/share/kibana, stores settings in /etc/kibana/kibana.yml, and runs as a systemd service that serves the web UI and API on port 5601.

Kibana requires a reachable Elasticsearch endpoint to become ready, and remote access is disabled by default because server.host binds to localhost. Exposing Kibana to other networks should be paired with access controls (firewall, reverse proxy, and TLS) to avoid unintended exposure of the UI.

Steps to install Kibana on Ubuntu or Debian:

  1. Add the Elastic signing key.
    $ curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg

    Install curl and gpg if the command fails with command not found errors.

  2. Add the Elastic APT repository.
    $ echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
    deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main
  3. Refresh package metadata.
    $ sudo apt update
    Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
    Get:2 https://artifacts.elastic.co/packages/8.x/apt stable InRelease [1,580 B]
  4. Install the Kibana package.
    $ sudo apt install --assume-yes kibana
    Setting up kibana (8.12.2)
  5. Set server.host in /etc/kibana/kibana.yml for remote access.
    server.host: "0.0.0.0"

    Binding to 0.0.0.0 exposes port 5601 to the network; restrict access with a firewall or reverse proxy before allowing untrusted networks.

  6. Enable and start the Kibana service.
    $ sudo systemctl enable --now kibana
    Created symlink /etc/systemd/system/multi-user.target.wants/kibana.service -> /lib/systemd/system/kibana.service.
  7. Verify the service is running.
    $ sudo systemctl status kibana --no-pager
    ● kibana.service - Kibana
         Loaded: loaded (/lib/systemd/system/kibana.service; enabled; vendor preset: enabled)
         Active: active (running)
    ##### snipped #####

    Use journalctl for startup errors when the service fails to start.

    $ sudo journalctl -u kibana --no-pager -n 50
  8. Open the Kibana web UI in a browser.
    http://<kibana-host>:5601

    First-time access commonly shows a setup or login screen before dashboards are available.