Configuring Kibana on Dockeredit

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 configurationedit

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.2.1
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml

Environment variable configurationedit

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_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.2.1
    environment:
      SERVER_NAME: kibana.example.org
      ELASTICSEARCH_URL: http://elasticsearch.example.org

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

Docker defaultsedit

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