Docker 安装 ElasticSearch ,ElasticSearch-head ,Kibana
elasticsearch 7.7.0
elasticsearch-head:5
开始前的准备工作
# 设置Linux 系统参数
# 查看max_map_count的值 默认是65530
cat /proc/sys/vm/max_map_count
# 重新设置max_map_count的值
sysctl -w vm.max_map_count=262144
1.安装 ElasticSearch
#拉取 elasticsearch镜像
docker pull elasticsearch:7.7.0
# 启动 elasticsearch
docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.7.0
参数说明
--name 表示镜像启动后的容器名称
-d: 后台运行容器,并返回容器ID
-e: 指定容器内的环境变量
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
浏览器访问 http://ip:9200 如果出现以下界面就是安装成功
2.安装 ElasticSearch-head
#拉取镜像
docker pull mobz/elasticsearch-head:5
#创建容器
docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5
# 启动容器
docker start elasticsearch-head
or
#(docker ps -a )
# 查看容器ID
docker start 容器ID
浏览器访问 http://ip:9100 如果出现以下界面就是安装成功
常见问题
a. 跨域问题
# 尝试连接easticsearch会发现无法连接上,由于是前后端分离开发,所以会存在跨域问题,需要在服务端做CORS的配置。
# 修改docker中elasticsearch的elasticsearch.yml文件
# 1. 进入容器,修改elasticsearch.yml
docker exec -it elasticsearch /bin/bash
vi config/elasticsearch.yml
# 2. 在最下面添加2行
http.cors.enabled: true
http.cors.allow-origin: "*"
# 3.退出并重启服务
exit
docker restart 容器id # 容器id 通过 docker ps -a
b.可以连接,但是无法操作,报406
修改elasticsearch-head 配置
#复制vendor.js到外部
docker cp 容器ID:/usr/src/app/_site/vendor.js /usr/local/
#修改vendor.js
vim vendor.js
# 6886行,7574行
application/x-www-from-urlencoded 改成 application/json;charset=UTF-8
#修改完成在复制回容器
docker cp /usr/local/vendor.js 容器ID:/usr/src/app/_site
# 重启elasticsearch-head
docker restart 容器id
3.安装Kibana
安装的版本要和ES 一致才行
Kibana 安装在本地机上
https://www.elastic.co/cn/kibana
解压文件(过程可能有点慢,小文件比较多)
# 1.汉化
# 修改config 目录下的 kibana.yml
i18n.locale: "zh-CN"
# 2.如果连接的远程 es 实例
#默认情况下,Kibana连接到localhost上运行的Elasticsearch实例。 要连接到其他Elasticsearch实例,请修改kibana.yml配置文件中的Elasticsearch URL并重新启动Kibana
elasticsearch.hosts: ["http://116.63.62.210:9200"]
浏览器访问 http://localhost:5601/app/kibana 如果出现以下界面就是安装成功
- 如果是使用云服务器,相关的端口需要打开;
- kibana 安装在本地机上
- 搞定收工