web-dev-qa-db-ja.com

DockerのKibanaはElasticsearchに接続できません

KibanaとElasticsearchを作成しようとしましたが、KibanaはElasticsearchの識別に問題があるようです。

私の手順は次のとおりです。

1)ネットワークを作成する

docker network create mynetwork --driver=bridge

2)Elasticsearch Containerの実行

docker run -d -p 9200:9200 -p 9300:9300 --name elasticsearch_2_4 --network mynetwork elasticsearch:2.4

3)Kibana Containerを実行する

docker run -i --network mynetwork -p 5601:5601 kibana:4.6

ブラウザで http:// localhost:9200 / を介してElasticsearchに接続すると、JSON出力を取得します。

しかし、 http:// localhost:5601 / を開くと、

Unable to connect to Elasticsearch at http://elasticsearch:9200.

代替アプローチ、

試しても同じようなエラーが出る

docker run -d -e ELASTICSEARCH_URL=http://127.0.0.1:9200 -p 5601:5601 kibana:4.6

エラーが発生する場所

Unable to connect to Elasticsearch at http://127.0.0.1:9200.

受け入れられた答えに基づく私のブログ投稿: https://gunith.github.io/docker-kibana-elasticsearch/

29
Gunith D

コンテナ内でコマンドを実行するときにlocalhostまたは127.0.0.1が何を意味するかについて誤解があります。すべてのコンテナには独自のネットワークがあるため、localhostは実際のホストシステムではなく、コンテナ自体です。したがって、kibanaを実行してELASTICSEARCH_URL変数をlocalhost:9200にポイントすると、kibanaプロセスは、もちろん実行されていないkibanaコンテナー内でelasticsearchを探します。

コンテナの起動時に参照したカスタムネットワークを既に導入しました。同じネットワークで実行されているすべてのコンテナは、exposedポートの名前を介して相互に参照できます(Dockerfilesを参照)。 elasticsearchコンテナにelasticsearch_2_4という名前を付けたので、elasticsearchのhttpエンドポイントをhttp://elasticsearch_2_4:9200として参照できます。

docker run -d --network mynetwork -e ELASTICSEARCH_URL=http://elasticsearch_2_4:9200 -p 5601:5601 kibana:4.6

Elasticsearchインスタンスに直接アクセスする必要がない限り、ポート9200および9300をホストにマッピングすることを省略することもできます。

すべてのコンテナを独自に起動する代わりに、docker-composeを使用してすべてのサービスとパラメーターを管理することもお勧めします。データを保持するために、ローカルフォルダーをボリュームとしてマウントすることも検討する必要があります。これが作成ファイルである可能性があります。外部ネットワークが必要な場合は、networksを追加します。追加しない場合、このセットアップは単にネットワークを作成します。

version: "2"

services:

  elasticsearch:
    image: elasticsearch:2.4
    ports:
      - "9200:9200"
    volumes:
      - ./esdata/:/usr/share/elasticsearch/data/

  kibana:
    image: kibana:4.6
    ports:
      - "5601:5601"
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200
42
Andreas Jägle

Kibanaコンテナのネットワーク構成を変更しましたが、その後は正常に機能します。

Kitematic Kibana Settings[1]

4
kogoia

テスト:

docker run -d -e ELASTICSEARCH_URL=http://yourhostip:9200 -p 5601:5601 kibana:4.6

ホストIPまたはifconfigのdocker0で識別されるIPでテストできます

よろしく