之前在CentOS环境下搭建过Elasticsearch与Kibana环境,详细过程在这里Linux(centOS 7)下elasticsearch + Kibana + ik-analysis 分词器 搭建
近来又用到Elasticsearch比较多,所以又重新搭建起来,这次使用docker环境搭建。
1.环境说明
名称 | 版本 |
---|---|
docker | 19.03 |
elasticsearch | 7.9.0 |
kibana | 7.9.0 |
注意:elasticsearch 与kibana版本要一致。
2.安装
2.1 安装ES
2.1.1 下载ES镜像
先使用
docker search elasticsearch
查看有哪些可以使用docker image,然后再下载docker image。(这里我使用的7.9.0)
docker pull elasticsearch:7.9.0
下载完成后可以通过
docker images
查看镜像。确保镜像已经下载好了之后,我们就可以通过指令安装ES了。
2.1.2 安装es
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.9.0
参数说明
参数 | 含义 |
---|---|
-d | 在后台运行,不会因为指令退出二致使容器退出 |
-p | 端口映射,这里把宿主机的9200和9300两个端口与容器内的9200、 9300做映射 |
-e | 设置es的模式 |
启动完成后,我们就可以访问www.localhost:9200,如果一切正常,应该可以看到下面这个界面:
2.2 安装kibana
2.2.1 下载Kibana
先搜索一下
docker search kibana
确认后使用
docker pull kibana:7.9.0
下载镜像。
2.2.2 配置文件
这里需要先准备配置文件kibana.yml,这样才能似的ES与Kibana相关联上。
# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://elashticseach:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
注意:这里的elasticsearch.host的值应该为ES容器所在网络的地址。如果不知道,文末有解决方法。
2.2.3 安装kibana
使用如下指令启动
docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name yy-kibana -p 5601:5601 -v /Users/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.9.0
这里的一些指令就不做过多说明了。重点说一下-v这个,这里前面的/Users/kibana/kibana.yml是配置文件所在宿主机的位置,后面的容器中文件存放的位置。
这里安装完成后访问www.localhost:5601就可以访问kibana的界面才对。但是我们去访问,会发现页面显示的却是一句:
Kibana server is not ready yet
3. Kibana server is not ready yet
出现Kibana server is not ready yet该如何处理呢?这一般是elasticsearch与kibana没有配置好。检查kibana的配置文件可以发现,elasticsearch.hosts: [ “http://elashticseach:9200” ]似乎没有办法找到es,这个IP地址是没有办法访问的。我们只要能让kibana容器访问es容器,问题就可以得到解决。
我们首先通过
docker ps -a
查看容器的id,然后根据容器Id进入容器进行操作。
首先查看es的网络地址
docker inspect es的容器ID
可以看到很多信息,在比较靠后的地方有
可以看到es所使用的ip,我们记住这个ip,然后进入kibana容器,修改配置文件。
docker exec -it kibana容器id bin/client
进入容器后,进入config目录,找到kibana.yml文件,修改es的host地址为上面得到的IP。然后退出容器,重启容器
docker restart 容器ID
然后再次访问www.localhost:5601就可以进入kibana的操作界面,可以愉快的玩耍了。
ES 7.9的操作与6.x版本还是有些区别的,下一篇我们练起来,kibana操作es走起。