将kibana与elasticsearch联系起来



我有以下docker容器在我的机器上运行…

CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                              NAMES
5da7523e527b        kibana              "/docker-entrypoint.s"   About a minute ago   Up About a minute   0.0.0.0:5601->5601/tcp             elated_lovelace
20aea0e545ca        elasticsearch       "/docker-entrypoint.s"   3 hours ago          Up 3 hours          0.0.0.0:9200->9200/tcp, 9300/tcp   sad_meitner

我的目标是让kibana链接到我的elasticsearch容器,但是当我点击kibana时,它告诉我我没有任何文档存储。我知道这是不对的,因为我肯定在elasticsearch中有文档。我猜我的链接命令是错误的。

这是我用来启动kibana容器的docker命令

docker run -p 5601:5601 --link sad_meitner:elasticsearch -d kibana 
谁能告诉我我做错了什么?

谢谢

首先,链接是一个传统功能,首先创建一个用户定义的网络:

docker network create mynetwork --driver=bridge

现在将mynetwork用于您希望能够相互通信的容器。

docker run -p 5601:5601 --name kibana -d --network mynetwork kibana 
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch -d --network mynetwork elasticsearch

Docker将在用户定义的网络中运行dns server,因此您可以通过名称ping其他容器。

docker exec -it kibana /bin/bash
ping elasticsearch

您可以使用telnetcurl来验证kibana->elasticsearch在kibana容器中的连通性

p。我最近使用了official (library) docker镜像的ELK堆栈与用户自定义网络,它像一个魅力。

您可以在构建kibana之前将ENV ELASTICSEARCH_URL=elasticsearch:9200添加到Dockerfile中,然后使用docker-compose与kibana一起运行elasticsearch,如下所示:

version: '2'
services:
  elasticsearch:
   image: docker.elastic.co/elasticsearch/elasticsearch:5.3.0
   container_name: elasticsearch
   ports:
    - "9200:9200"
    - "9300:9300"
  environment:
    ES_JAVA_OPTS: "-Xmx256m -Xms256m"
 kibana:
  image: docker.elastic.co/kibana/kibana:5.3.0
  container_name: kibana
  ports:
    - "5601:5601"
  depends_on:
   - elasticsearch

最新更新