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:
- 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.
- 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.
- 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.
- 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.
- Reload firewalld to apply the new rule.
$ sudo firewall-cmd --reload success
- 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).
- 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.
- 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.
- 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 ##### - Open the Kibana web UI in a browser.
http://<kibana-host>:5601
Sign in using an Elasticsearch user with Kibana access.
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.
