﻿---
title: Configure Kibana
description: The Kibana server reads properties from the kibana.yml file on startup. The location of this file differs depending on how you installed Kibana: Archive...
url: https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8436/deploy-manage/deploy/self-managed/configure-kibana
products:
  - Elastic Documentation
  - Kibana
applies_to:
  - Self-managed Elastic deployments: Generally available
---

# Configure Kibana
The Kibana server reads properties from the `kibana.yml` file on startup.
The location of this file differs depending on how you installed Kibana:
- **Archive distributions (`.tar.gz` or `.zip`)**: Default location is `$KIBANA_HOME/config`
- **Package distributions (Debian or RPM)**: Default location is `/etc/kibana`

The config directory can be changed using the `KBN_PATH_CONF` environment variable:
```text
KBN_PATH_CONF=/home/kibana/config ./bin/kibana
```

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 update your [`server.host`](https://docs-v3-preview.elastic.dev/elastic/kibana/tree/main/reference/configuration-reference/general-settings#server-host) and [`server.port`](https://docs-v3-preview.elastic.dev/elastic/kibana/tree/main/reference/configuration-reference/general-settings#server-port) settings in the `kibana.yml` file.
In this file, you can also enable SSL and set a variety of other options.
Environment variables can be injected into configuration using `${MY_ENV_VAR}` syntax. By default, configuration validation will fail if an environment variable used in the config file is not present when Kibana starts. This behavior can be changed by using a default value for the environment variable, using the `${MY_ENV_VAR:defaultValue}` syntax.

## Reload the logging configuration without restarting

Most Kibana settings are read only at startup, so changing them requires a restart. The **logging** configuration is an exception: Kibana re-reads `kibana.yml` and re-applies its logging settings when the process receives a `SIGHUP` signal, without restarting.
This is useful to temporarily raise verbosity while troubleshooting: adjust [`logging.root.level`](https://docs-v3-preview.elastic.dev/elastic/kibana/tree/main/reference/configuration-reference/logging-settings), a specific [dedicated logger](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8436/deploy-manage/monitor/logging-configuration/kib-advanced-logging), or [meta filters](https://docs-v3-preview.elastic.dev/elastic/kibana/tree/main/reference/configuration-reference/logging-settings) in `kibana.yml`, reload, capture the logs you need, then revert and reload again.
To reload the logging configuration:
1. Edit the `logging` settings in `kibana.yml`.
2. Send `SIGHUP` to the Kibana process:
   ```sh
   kill -HUP <kibana_pid>
   ```
   On [Docker](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8436/deploy-manage/deploy/self-managed/install-kibana-with-docker), signal the container instead:
   ```sh
   docker kill --signal=HUP <container_id>
   ```
   If you run Kibana with multiple worker processes, send the signal to each process.
3. Confirm the reload in the Kibana logs. You should see a message such as `Reloaded logging configuration due to SIGHUP`.

<note>
  `SIGHUP` is not available on Windows. On Windows, restart Kibana to apply logging configuration changes.
</note>


## Available settings

For a complete list of settings that you can apply to Kibana, refer to [Kibana configuration reference](https://docs-v3-preview.elastic.dev/elastic/kibana/tree/main/reference/configuration-reference).

## Additional topics

Refer to the following documentation to learn how to perform key configuration tasks for Kibana:
- [Configure SSL certificates](/elastic/docs-content/pull/8436/deploy-manage/security/set-up-basic-security-plus-https#encrypt-kibana-browser) to encrypt traffic between client browsers and Kibana
- [Enable authentication providers](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8436/deploy-manage/users-roles/cluster-or-deployment-auth/kibana-authentication) for Kibana
- Configure the Kibana [reporting feature](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8436/deploy-manage/kibana-reporting-configuration)
- Use [Spaces](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8436/deploy-manage/manage-spaces) to organize content in Kibana, and restrict access to this content to specific users
- Use [Connectors](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8436/deploy-manage/manage-connectors) to manage connection information between Elasticsearch, Kibana, and third-party systems
- Present a [user access agreement](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8436/deploy-manage/users-roles/cluster-or-deployment-auth/access-agreement) when logging on to Kibana
- Review [considerations for using Kibana in production](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8436/deploy-manage/production-guidance/kibana-in-production-environments), including using load balancers
- [Monitor events inside and outside of Kibana](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8436/deploy-manage/monitor)
- [Configure logging](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8436/deploy-manage/monitor/logging-configuration)
- [Secure](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8436/deploy-manage/security) Kibana communications and resources