Kibana の Docker イメージは、Elastic Docker レジストリから入手できます。基本イメージはubuntu:20.04です。公開されているすべての Docker イメージとタグのリストは、www.docker.elastic.coで入手できます。ソースコードはGitHubにあります。
これらのイメージには、無料およびサブスクリプション機能が含まれています。30 日間のトライアルを開始して、すべての機能を試してください。
独自の Elasticsearch をインストールしていない場合は、以前の記事「Elasticsearch: Elasticsearch Docker イメージの確認と Elasticsearch のインストール」を参照してください。
開発のために Docker 上で Kibana を実行する
1) 開発またはテストのために Elasticsearch コンテナを開始します。
注: Elasticsearch をすでにインストールしている場合は、以下のこの手順を無視できます。
- Elasticsearch と Kibana 用の新しい Docker ネットワークを作成します。
docker network create elastic
- Elasticsearch Docker イメージをプルします。
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.8.0
- オプション: Elasticsearch Docker イメージの署名を確認します。
wget https://artifacts.elastic.co/cosign.pub
cosign verify --key cosign.pub docker.elastic.co/kibana/kibana:8.8.0
このステップの詳細については、「Elasticsearch」を参照してください 。 Elasticsearch Docker イメージを確認し、Elasticsearch をインストールする
- Docker で Elasticsearch を開始します。
docker run --name es-node01 --net elastic -p 9200:9200 -p 9300:9300 -t docker.elastic.co/elasticsearch/elasticsearch:8.8.0
Elasticsearch を初めて起動すると、次のセキュリティ設定が自動的に行われます。
- トランスポート層と HTTP 層の証明書とキーを生成します。
- Transport Layer Security (TLS) 構成設定は elasticsearch.yml に書き込まれます。
- Elastic ユーザーのパスワードを生成します。
- Kibana の登録トークンを生成します。
注: パスワードと登録トークンを表示するには、ターミナル内を少しスクロールして戻す必要がある場合があります。
2) 生成されたパスワードと登録トークンをコピーし、安全な場所に保存します。これらの値は、Elasticsearch を初めて起動するときにのみ表示されます。これらを使用して、Kibana を Elasticsearch クラスターに登録し、ログインします。
3) 新しいターミナル セッションで Kibana を起動し、Elasticsearch コンテナに接続します。
docker pull docker.elastic.co/kibana/kibana:8.8.0
docker run --name kib-01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.8.0
- Kibana Docker イメージをプルします。
docker pull docker.elastic.co/kibana/kibana:8.8.0
- オプション: Kibana Docker イメージの署名を確認します。
wget https://artifacts.elastic.co/cosign.pub
cosign verify --key cosign.pub docker.elastic.co/kibana/kibana:8.8.0
このステップの詳細については、「Elasticsearch」を参照してください 。 Elasticsearch Docker イメージを確認し、Elasticsearch をインストールする
- Docker で Kibana を開始します。
docker run --name kib-01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.8.0
Kibana を起動すると、一意のリンクがターミナルに出力されます。
パスワードと登録トークンを生成する
Elastic ユーザーまたは他の組み込みユーザーのパスワードをリセットする必要がある場合は、elasticsearch-reset-passwordツールを実行します。このツールは、Docker コンテナーの Elasticsearch bin ディレクトリにあります。
たとえば、エラスティック ユーザーのパスワードをリセットするには、次のようにします。
docker exec -it es-node01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
Kibana または Elasticsearch ノードの新しい登録トークンを生成する必要がある場合は、elasticsearch-create-enrollment-tokenツールを実行します。このツールは、Docker コンテナーの Elasticsearch bin ディレクトリにあります。
たとえば、Kibana の新しい登録トークンを生成するには、次のようにします。
docker exec -it es-node01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
Dockerコンテナを削除する
コンテナとそのネットワークを削除するには、次のコマンドを実行します。
docker network rm elastic
docker rm es-node01
docker rm kib-01
Docker で Kibana を構成する
Docker イメージは、Kibana を構成するさまざまな方法を提供します。従来のアプローチは、 「 Kibana の構成 」で説明されているように、 kibana.yml ファイルを提供することですが、環境変数を使用して設定を定義することもできます。
バインドマウント構成
Docker 上で Kibana を構成する 1 つの方法は、バインド マウント経由で kibana.yml を提供することです。docker-compose を使用すると、バインド マウントを次のように指定できます。
version: '2'
services:
kibana:
image: docker.elastic.co/kibana/kibana:8.8.0
volumes:
- ./kibana.yml:/usr/share/kibana/config/kibana.yml
Kibana キーストアを保持する
デフォルトでは、Kibana は起動時にセキュリティ設定用のキーストア ファイルを自動的に生成します。セキュリティ設定を保持するには、kibana-keystore ユーティリティを使用して、キーストアの親ディレクトリをコンテナにバインドマウントします。例えば:
docker run -it --rm -v full_path_to/config:/usr/share/kibana/config -v full_path_to/data:/usr/share/kibana/data docker.elastic.co/kibana/kibana:8.8.0 bin/kibana-keystore create
docker run -it --rm -v full_path_to/config:/usr/share/kibana/config -v full_path_to/data:/usr/share/kibana/data docker.elastic.co/kibana/kibana:8.8.0 bin/kibana-keystore add test_keystore_setting
環境変数の設定
Docker では、環境変数を使用して Kibana を構成できます。コンテナーが起動すると、ワーカー プロセスは、Kibana コマンドライン引数にマップできる変数がないか環境をチェックします。
コンテナ オーケストレーション システムとの互換性を保つため、これらの環境変数はすべて大文字で表記され、単語の区切り文字としてアンダースコアが使用されます。ヘルパーは、これらの名前を有効な Kibana 設定名に変換します。
注: ps コマンドを使用すると、機密情報を含む環境変数に含めたすべての情報を確認できます。
いくつかの翻訳例を以下に示します。
環境変数 | キバナの設定 |
---|---|
サーバーの名前 | サーバーの名前 |
サーバー_ベースパス | サーバー.ベースパス |
ELASTICSEARCH_HOSTS | elasticsearch.hosts |
一般に、「Kibana の構成」にリストされている設定はどれも、この手法を使用して構成できます。
配列オプションを指定するのは難しい場合があります。次の例は、ELASTICSEARCH_HOSTS の配列を提供する構文を示しています。
これらの変数は、次のように docker-compose で設定できます。
version: '2'
services:
kibana:
image: docker.elastic.co/kibana/kibana:8.8.0
environment:
SERVER_NAME: kibana.example.org
ELASTICSEARCH_HOSTS: '["http://es01:9200","http://es02:9200","http://es03:9200"]'
環境変数は CLI 引数に変換されるため、kibana.yml で構成された設定よりも優先されます。
Docker のデフォルト
Docker イメージを使用する場合、次の設定には異なるデフォルトがあります。
サーバー.ホスト | 「0.0.0.0」 |
サーバーのシャットダウンタイムアウト | 「5秒」 |
elasticsearch.hosts | http://elasticsearch:9200 |
モニタリング.ui.container.elasticsearch.enabled | 真実 |
これらの設定は、デフォルトの kibana.yml で定義されます。これらは、カスタム kibana.yml または環境変数を使用してオーバーライドできます。
重要: kibana.yml をカスタム バージョンに置き換える場合、デフォルト値を保持したい場合は、必ずデフォルト値をカスタム ファイルにコピーしてください。そうしないと、新しいファイルによって「マスク」されます。