将 kibana 与 elasticsearch 连接起来
linking kibana with 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 link 进入我的 elasticsearch 容器,但是当我点击 kibana 时,它告诉我我没有任何文档存储。我知道这是不对的,因为我在 elasticsearch 中肯定有文档。我猜我的 link 命令是错误的。
这是我用来启动 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
您可以使用 telnet
或 curl
从 kibana 容器验证 kibana->elasticsearch 连接。
p.s 我最近使用 official (library)
docker ELK 图像和用户定义的网络,效果非常好。
您可以在构建 kibana 之前将 ENV ELASTICSEARCH_URL=elasticsearch:9200
添加到您的 Dockerfile,然后使用 docker-compose 到 运行 elasticsearch with kibana,如下所示:
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
我的盒子上有以下 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 link 进入我的 elasticsearch 容器,但是当我点击 kibana 时,它告诉我我没有任何文档存储。我知道这是不对的,因为我在 elasticsearch 中肯定有文档。我猜我的 link 命令是错误的。
这是我用来启动 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
您可以使用 telnet
或 curl
从 kibana 容器验证 kibana->elasticsearch 连接。
p.s 我最近使用 official (library)
docker ELK 图像和用户定义的网络,效果非常好。
您可以在构建 kibana 之前将 ENV ELASTICSEARCH_URL=elasticsearch:9200
添加到您的 Dockerfile,然后使用 docker-compose 到 运行 elasticsearch with kibana,如下所示:
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