Installing Kibana on CentOS, RHEL, or Fedora provides a browser-based UI for searching, filtering, and visualizing data stored in Elasticsearch.

The official RPM registers a systemd service, stores configuration under /etc/kibana, and serves the web interface on TCP port 5601. Most deployments keep Kibana running as a background service and manage it with systemctl.

A working Elasticsearch endpoint is required for dashboards and index patterns to load. Elastic 8.x also enables security by default, so initial setup typically involves enrolling Kibana with an enrollment token and keeping port 5601 restricted when enabling remote access.

Steps to install Kibana on CentOS, RHEL, or Fedora:

  1. Create the Elastic repository file at /etc/yum.repos.d/elastic.repo.
    [elastic-8.x]
    name=Elastic repository for 8.x packages
    baseurl=https://artifacts.elastic.co/packages/8.x/yum
    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=1
    autorefresh=1
    type=rpm-md

    Use yum instead of dnf on older CentOS releases.

  2. Install the Kibana package from the configured repository.
    $ sudo dnf install --assumeyes kibana
    Last metadata expiration check: 0:02:11 ago on Mon 05 Jan 2026 09:20:33 AM UTC.
    Dependencies resolved.
    ======================================================================
     Package       Architecture  Version             Repository      Size
    ======================================================================
    Installing:
     kibana        x86_64        8.12.2-1            elastic-8.x     312 M
    
    Transaction Summary
    ======================================================================
    Install  1 Package
    
    ##### snipped #####

    Replace dnf with yum on older CentOS systems.

  3. Set the public bind address in /etc/kibana/kibana.yml when remote browser access is required.
    server.host: "0.0.0.0"

    Binding to 0.0.0.0 exposes port 5601 to any reachable network and should be restricted by firewall rules, VPN access, or a reverse proxy.

  4. Add a permanent firewalld rule for TCP port 5601 when remote access is required.
    $ sudo firewall-cmd --permanent --add-port=5601/tcp
    success

    Skip this step when firewalld is not installed or remote access is not required.

  5. Reload firewalld to apply the new rule.
    $ sudo firewall-cmd --reload
    success
  6. Generate an enrollment token for Kibana on an Elasticsearch node when using Elastic 8.x security defaults.
    $ sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
    eyJ2ZXIiOiI4LjEyLjIiLCJhZHIiOlsiaHR0cHM6Ly9lcy5leGFtcGxlLm5ldDo5MjAwIl0sImZpZCI6Ijc2##### snipped #####

    Skip this step when Kibana is already configured to reach Elasticsearch (for example, an existing /etc/kibana/kibana.yml pointing to a managed cluster).

  7. Enroll Kibana with the enrollment token on the Kibana host.
    $ sudo /usr/share/kibana/bin/kibana-setup --enrollment-token "<enrollment-token>"
    Kibana has been configured successfully.
  8. Enable the Kibana service with --now to start it immediately.
    $ sudo systemctl enable --now kibana
    Created symlink /etc/systemd/system/multi-user.target.wants/kibana.service -> /usr/lib/systemd/system/kibana.service.
  9. Verify the Kibana service is running.
    $ sudo systemctl status kibana --no-pager
    ● kibana.service - Kibana
         Loaded: loaded (/usr/lib/systemd/system/kibana.service; enabled; vendor preset: disabled)
         Active: active (running)
    ##### snipped #####
  10. Open the Kibana web UI in a browser.
    http://<kibana-host>:5601

    Sign in using an Elasticsearch user with Kibana access.