---
title: Install Kibana with RPM
description: The RPM for Kibana can be downloaded from our website or from our RPM repository. It can be used to install Kibana on any RPM-based system such as OpenSuSE,...
url: https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/5399/deploy-manage/deploy/self-managed/install-kibana-with-rpm
products:
  - Kibana
---

# Install Kibana with RPM
The RPM for Kibana can be [downloaded from our website](#install-rpm) or from our [RPM repository](#rpm-repo). It can be used to install Kibana on any RPM-based system such as OpenSuSE, SLES, Red Hat, and Oracle Enterprise.
<note>
  RPM install is not supported on distributions with old versions of RPM, such as SLES 11. Refer to [Install from archive on Linux or macOS](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/5399/deploy-manage/deploy/self-managed/install-kibana-from-archive-on-linux-macos) instead.
</note>

This package contains both free and subscription features. [Start a 30-day trial](https://docs-v3-preview.elastic.dev/elastic/elasticsearch/tree/main/reference/elasticsearch/configuration-reference/license-settings) to try out all of the features.
The latest stable version of Kibana can be found on the [Download Kibana](https://elastic.co/downloads/kibana) page. Other versions can be found on the [Past Releases page](https://elastic.co/downloads/past-releases).

## Step 1: Import the Elastic PGP key

We sign all of our packages with the Elasticsearch signing key (PGP key [D88E42B4](https://pgp.mit.edu/pks/lookup?op=vindex&search=0xD27D666CD88E42B4), available from [[https://pgp.mit.edu](https://pgp.mit.edu)](https://pgp.mit.edu)) with fingerprint:
```
4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4
```

Download and install the public signing key:
```sh
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
```


## Step 2: Install Kibana

You have the following options for installing the Elasticsearch RPM package:
- [From the RPM repository](#rpm-repo)
- [Manually](#install-rpm)


### Install from the RPM repository

Create a file called `kibana.repo` in the `/etc/yum.repos.d/` directory for RedHat based distributions, or in the `/etc/zypp/repos.d/` directory for OpenSuSE based distributions, containing:
```sh
[kibana-9.X]
name=Kibana repository for 9.x packages
baseurl=https://artifacts.elastic.co/packages/9.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
```

And your repository is ready for use. You can now install Kibana with one of the following commands:
```sh
sudo yum install kibana 
sudo dnf install kibana 
sudo zypper install kibana 
```


### Download and install the RPM manually

The RPM for Kibana 9.3.1 can be downloaded from the website and installed as follows:
<tab-set>
  <tab-item title="Latest">
    To download and install the Kibana 9.3.1 RPM, enter:
    ```sh
    wget https://artifacts.elastic.co/downloads/kibana/kibana-9.3.1-x86_64.rpm
    wget https://artifacts.elastic.co/downloads/kibana/kibana-9.3.1-x86_64.rpm.sha512
    shasum -a 512 -c kibana-9.3.1-x86_64.rpm.sha512 
    sudo rpm --install kibana-9.3.1-x86_64.rpm
    ```
  </tab-item>

  <tab-item title="Specific version">
    Because Kibana is an Elastic Stack product, you must install the same version number as the rest of your Elastic Stack components. Replace `<SPECIFIC.VERSION.NUMBER>` with the version that's used across your entire stack. For example, you can use 9.0.0.
    ```sh
    wget https://artifacts.elastic.co/downloads/kibana/kibana-<SPECIFIC.VERSION.NUMBER>-x86_64.rpm
    wget https://artifacts.elastic.co/downloads/kibana/kibana-<SPECIFIC.VERSION.NUMBER>-x86_64.rpm.sha512
    shasum -a 512 -c kibana-<SPECIFIC.VERSION.NUMBER>-x86_64.rpm.sha512 
    sudo rpm --install kibana-<SPECIFIC.VERSION.NUMBER>-x86_64.rpm
    ```
  </tab-item>
</tab-set>


## Step 3: Start Elasticsearch and generate an enrollment token for Kibana

[Start Elasticsearch](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/5399/deploy-manage/maintenance/start-stop-services/start-stop-elasticsearch).
When you start your first Elasticsearch node for the first time, it automatically performs the following security setup:
- Generates [TLS certificates](#stack-security-certificates) for the [transport and HTTP layers](/elastic/docs-content/pull/5399/deploy-manage/security/secure-cluster-communications#communication-channels)
- Applies TLS configuration settings to [`elasticsearch.yml`](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/5399/deploy-manage/stack-settings)
- Sets a password for the `elastic` superuser
- Creates an enrollment token to securely connect Kibana to Elasticsearch

You can then start Kibana and enter the enrollment token, which is valid for 30 minutes. This token automatically applies the security settings from your Elasticsearch cluster, authenticates to Elasticsearch with the built-in `kibana` service account, and writes the security configuration to [`kibana.yml`](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/5399/deploy-manage/stack-settings).
<note>
  There are [some cases](/elastic/docs-content/pull/5399/deploy-manage/security/self-auto-setup#stack-skip-auto-configuration) where security can’t be configured automatically because the node startup process detects that the node is already part of a cluster, or that security is already configured or explicitly disabled.
</note>

If your enrollment token has expired, then you can generate a new enrollment token for Kibana with the [`elasticsearch-create-enrollment-token`](https://docs-v3-preview.elastic.dev/elastic/elasticsearch/tree/main/reference/elasticsearch/command-line-tools/create-enrollment-token) tool:
```sh
bin/elasticsearch-create-enrollment-token -s kibana
```


## Step 4 (Optional): Make Kibana externally accessible

The default host and port settings configure Kibana to run on localhost:5601. To change this behavior and allow remote users to connect, you need to set up Kibana to run on a routable, external IP address. You can do this by editing the settings in [`kibana.yml`](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/5399/deploy-manage/deploy/self-managed/configure-kibana):
1. Open `kibana.yml` in a text editor.
2. Uncomment the line `#server.host: localhost` and replace the default address with `0.0.0.0`. The `0.0.0.0` setting enables Kibana to listen for connections on all available network interfaces. In a production environment, you might want to [use a different value](https://docs-v3-preview.elastic.dev/elastic/kibana/tree/main/reference/configuration-reference/general-settings#server-host), such as a static IP address.
   ```yaml
   server.host: 0.0.0.0
   ```
3. Save your changes and close the editor.


## Step 5: Run Kibana with `systemd`

To configure Kibana to start automatically when the system starts, run the following commands:
```sh
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable kibana.service
```

Kibana can be started and stopped as follows:
```sh
sudo systemctl start kibana.service
sudo systemctl stop kibana.service
```

These commands provide no feedback as to whether Kibana was started successfully or not. Log information can be accessed using `journalctl -u kibana.service`.

## Step 6: Enroll Kibana with Elasticsearch

1. Run the `status` command to get details about the Kibana service.
   ```sh
   sudo systemctl status kibana
   ```
   In the `status` command output, a URL is shown with:
   - A host address to access Kibana
- A six digit verification code
   For example:
   ```sh
   Kibana has not been configured.
   Go to http://<host>:5601/?code=<code> to get started.
   ```
   Make a note of the verification code.
2. Go to the host address.
   It can take a minute or two for Kibana to start up, so refresh the page if you don’t see a prompt right away.
3. When Kibana starts, you’re prompted to provide an enrollment token. Paste in the Kibana enrollment token that you generated earlier.
4. Click **Configure Elastic**.
5. If you’re prompted to provide a verification code, copy and paste in the six digit code that was returned by the `status` command. Then, wait for the setup to complete.
6. When you see the **Welcome to Elastic** page, provide the `elastic` as the username and provide the password that you copied from the install command output when you set up your first Elasticsearch node.
7. Click **Log in**.


## Step 7: Configure Kibana using the config file

Kibana loads its configuration from the `/etc/kibana/kibana.yml` file by default.  The format of this config file is explained in [Configure Kibana](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/5399/deploy-manage/deploy/self-managed/configure-kibana).

## Directory layout of RPM

The RPM places config files, logs, and the data directory in the appropriate locations for an RPM-based system:

| Type    | Description                                                                                            | Default Location            | Setting                                                                          |
|---------|--------------------------------------------------------------------------------------------------------|-----------------------------|----------------------------------------------------------------------------------|
| home    | Kibana home directory or `$KIBANA_HOME`                                                                | `/usr/share/kibana`         |                                                                                  |
| bin     | Binary scripts including `kibana` to start the Kibana server    and `kibana-plugin` to install plugins | `/usr/share/kibana/bin`     |                                                                                  |
| config  | Configuration files including `kibana.yml`                                                             | `/etc/kibana`               | `[KBN_PATH_CONF](configure-kibana.md)`                                           |
| data    | The location of the data files written to disk by Kibana and its plugins                               | `/var/lib/kibana`           | `path.data`                                                                      |
| logs    | Logs files location                                                                                    | `/var/log/kibana`           | `[Logging configuration](../../monitor/logging-configuration/kibana-logging.md)` |
| plugins | Plugin files location. Each plugin will be contained in a subdirectory.                                | `/usr/share/kibana/plugins` |                                                                                  |


## Next steps

You now have a basic Kibana instance set up. Consider the following next steps:
- Learn how to [configure Kibana](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/5399/deploy-manage/deploy/self-managed/configure-kibana).
- Learn how to [access Kibana](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/5399/deploy-manage/deploy/self-managed/access-kibana).
- Explore [key configuration topics](/elastic/docs-content/pull/5399/deploy-manage/deploy/self-managed/configure-kibana#additional-topics) to learn how to secure and manage Kibana.