之前自己从网上找了不少搭建的文档,但是总是有这样那样的问题,有些文档上一条命令和下一条命令定义的别名都不一致,还有漏脚本的,用起来很费劲,所以重新整理了一下发出来,避免以后忘了。docker的安装不在本文中赘述。
环境:win10系统,hyper-v虚拟机,CentOS7系统,docker,elasticsearch 7.0.0版,kibana 7.0.0版
一.安装elasticsearch
#下载elasticsearch镜像 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.0.0 # 创建并运行elasticsearch容器
# 5601是kibana的默认端口,9200是es的默认端口,discovery.type指定单节点模式
docker run -d --name es -p 5601:5601 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.0.0
# 测试
curl http://localhost:9200
二.安装kibana
# 创建并运行kibana
# -e ELASTICSEARCH_URL指定es的地址,--network指定使用es的网络,可以借用es开放的5601端口 docker run -it -d -e ELASTICSEARCH_URL=http://localhost:9200 --name kibana --network=container:es kibana:7.0.0
#修改一下kibana的配置文件,要不kibana启动会报kibana is not ready yet的错误 # 进入kibana容器/bin/bash目录 docker exec -it kibana /bin/bash # 进入config目录 cd config # 修改kibana的配置文件,启动时的配置参数都是从这儿来的 vi kibana.yml
elasticsearch.hosts默认是 ["http://elasticsearch:9200"],网上的文档没提到过要改,但是我运行kibana会报错,后来研究出来改成下图这样 ,就OK了
然后保存退出文件修改
#退出kibana容器 exit # 重启kibana docker restart kibana
#在浏览器输入虚拟机的url:5601测试一下是否连通,例如:http://172.16.205.175:5601
也许会遇到虚拟机防火墙端口未开的问题,可能会用到下面的脚本开启端口
# 开放端口 firewall-cmd --zone=public --add-port=5601/tcp --permanent firewall-cmd --zone=public --add-port=9200/tcp --permanent firewall-cmd --zone=public --add-port=9300/tcp --permanent # 重启防火墙 firewall-cmd --reload
有些安装文档写了需要配置跨域,但是我没配,在宿主机*问也正常,上面就没写
#进入es容器内部 docker exec -it es /bin/bash cd config # 修改配置文件 vi elasticsearch.yml # 加入跨域配置 http.cors.enabled: true http.cors.allow-origin: "*" # 退出es容器 exit # 重启es容器 docker restart es