IMPORTANT: This documentation is no longer updated. Refer to Elastic's version policy and the latest documentation.

Configuring Kibana on Docker

edit

The Docker image provides several methods for configuring Kibana. The conventional approach is to provide a kibana.yml file as described in Configuring Kibana, but it’s also possible to use environment variables to define settings.

Bind-mounted configuration

edit

One way to configure Kibana on Docker is to provide kibana.yml via bind-mounting. With docker-compose, the bind-mount can be specified like this:

services:
  kibana:
    image: docker.elastic.co/kibana/kibana:5.1.2
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml

Environment variable configuration

edit

Under Docker, Kibana can be configured via environment variables. The following mappings are available:

Table 2. Docker Environment Variables

Environment Variable

Kibana Setting

ELASTICSEARCH_CUSTOMHEADERS

elasticsearch.customHeaders

ELASTICSEARCH_PASSWORD

elasticsearch.password

ELASTICSEARCH_PINGTIMEOUT

elasticsearch.pingTimeout

ELASTICSEARCH_PRESERVEHOST

elasticsearch.preserveHost

ELASTICSEARCH_REQUESTHEADERSWHITELIST

elasticsearch.requestHeadersWhitelist

ELASTICSEARCH_REQUESTTIMEOUT

elasticsearch.requestTimeout

ELASTICSEARCH_SHARDTIMEOUT

elasticsearch.shardTimeout

ELASTICSEARCH_SSL_CA

elasticsearch.ssl.ca

ELASTICSEARCH_SSL_CERT

elasticsearch.ssl.cert

ELASTICSEARCH_SSL_KEY

elasticsearch.ssl.key

ELASTICSEARCH_SSL_VERIFY

elasticsearch.ssl.verify

ELASTICSEARCH_STARTUPTIMEOUT

elasticsearch.startupTimeout

ELASTICSEARCH_URL

elasticsearch.url

ELASTICSEARCH_USERNAME

elasticsearch.username

KIBANA_DEFAULTAPPID

kibana.defaultAppId

KIBANA_INDEX

kibana.index

LOGGING_DEST

logging.dest

LOGGING_QUIET

logging.quiet

LOGGING_SILENT

logging.silent

LOGGING_VERBOSE

logging.verbose

OPS_INTERVAL

ops.interval

PID_FILE

pid.file

SERVER_BASEPATH

server.basePath

SERVER_HOST

server.host

SERVER_MAXPAYLOADBYTES

server.maxPayloadBytes

SERVER_NAME

server.name

SERVER_PORT

server.port

SERVER_SSL_CERT

server.ssl.cert

SERVER_SSL_KEY

server.ssl.key

XPACK_MONITORING_ELASTICSEARCH_URL

xpack.monitoring.elasticsearch.url

XPACK_MONITORING_ELASTICSEARCH_USERNAME

xpack.monitoring.elasticsearch.username

XPACK_MONITORING_ELASTICSEARCH_PASSWORD

xpack.monitoring.elasticsearch.password

XPACK_MONITORING_ENABLED

xpack.monitoring.enabled

XPACK_MONITORING_MAX_BUCKET_SIZE

xpack.monitoring.max_bucket_size

XPACK_MONITORING_MIN_INTERVAL_SECONDS

xpack.monitoring.min_interval_seconds

XPACK_MONITORING_NODE_RESOLVER

xpack.monitoring.node_resolver

XPACK_MONITORING_REPORT_STATS

xpack.monitoring.report_stats

XPACK_MONITORING_KIBANA_COLLECTION_ENABLED

xpack.monitoring.kibana.collection.enabled

XPACK_MONITORING_KIBANA_COLLECTION_INTERVAL

xpack.monitoring.kibana.collection.interval

XPACK_SECURITY_ENABLED

xpack.security.enabled

XPACK_SECURITY_COOKIENAME

xpack.security.cookieName

XPACK_SECURITY_ENCRYPTIONKEY

xpack.security.encryptionKey

XPACK_SECURITY_SECURECOOKIES

xpack.security.secureCookies

XPACK_SECURITY_SESSIONTIMEOUT

xpack.security.sessionTimeout

These variables can be set with docker-compose like this:

services:
  kibana:
    image: docker.elastic.co/kibana/kibana:5.1.2
    environment:
      SERVER_NAME: kibana.example.org
      ELASTICSEARCH_URL: http://elasticsearch.example.org

Environment variables take precedence over settings configured in kibana.yml.

Docker defaults

edit

The following settings have different default values when using the Docker image:

server.host

"0"

elasticsearch.url

http://elasticsearch:9200

elasticsearch.username

elastic

elasticsearch.password

changeme