Elastic官网:https://www.elastic.co/cn/
官网Docker安装文档:https://www.elastic.co/cn/downloads/enterprise-search
可以查看个版本的兼容性:
操作系统兼容性:https://www.elastic.co/cn/support/matrix
JVM兼容性:https://www.elastic.co/cn/support/matrix#matrix_jvm
自身兼容性:https://www.elastic.co/cn/support/matrix#matrix_compatibility
准备好Docker环境,本文搭建的ES主要使用7.10.1的版本。
安装Elasticsearch
Docker拉取ES镜像
docker pull elasticsearch:7.10.1
创建ES挂载目录和配置文件
# 创建配置文件目录,数据目录,日志目录,插件目录
mkdir -p /home/elasticsearch/{config,data,logs,plugins}
# 将文件夹中文件都可读可写
chmod -R 777 /home/elasticsearch/
# 在/home/elasticsearch/config配置es的配置文件
vi /home/elasticsearch/config/elasticsearch.yml
# 加入以下内容
cluster.name: elasticsearch
node.name: es-node
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
运行ES容器,注意内存分配
docker run -d --name ES-7.10.1 \
-p 9200:9200 \
-p 9300:9300 \
--privileged=true \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-v /home/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /home/elasticsearch/data:/usr/share/elasticsearch/data \
-v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
elasticsearch:7.10.1
最后访问实际搭建的ip:port,如127.0.0.1:9200,并返回包含ES信息的Json数据即为成功。
安装Kibana
Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。
创建Kibana挂载目录和配置文件
# 创建配置文件目录,数据目录,插件目录
mkdir -p /home/kibana/{config,data,plugins}
# 将文件夹中文件都可读可写
chmod -R 777 /home/kibana/
# 在/home/kibana/config配置kibana的配置文件
vi /home/kibana/config/kibana.yml
配置文件加入以下内容,添加Elasticsearch安装的IP。
#
# ** THIS IS AN AUTO-GENERATED FILE **
#
# Default Kibana configuration for docker target
server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: [ "http://ES安装的IP:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"
如果过程中先查询到ES容器内部的IP,并记录下来
# 查询ES容器内部的ip
docker inspect --format '{{ .NetworkSettings.IPAddress }}' ES容器的ID
启动Kibana
# 启动kibana
docker run --name kibana \
-v /home/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
-v /home/kibana/data:/usr/share/kibana/data \
-v /home/kibana/plugins:/usr/share/kibana/plugins \
-p 5601:5601 \
-d kibana:7.10.1
访问127.0.0.1:5601可看到kibana首页,并可发送请求,验证是否可以与ES连接。
安装Elasticsearch-head
拉取elasticsearch-head镜像
docker pull mobz/elasticsearch-head:5
启动elasticsearch-head
docker run -d \
--name=elasticsearch-head \
-p 9100:9100 \
mobz/elasticsearch-head:5
最后访问ip:port,如127.0.0.1:9100端口,并输入elasticsearch服务的地址进行连接即可,连接成功后的集群健康值一般为绿色。
若访问es-head无法添加索引出现如下问题时
error: "Content-Type header[application/x-www-form-urlencoded] is not supported"
status: 406
需要进入该容器中修改一些内容,或者在启动的时候就把对应文件挂载出来即可。
进入容器所需要修改的文件目录,一般在以下目录中:
cd /usr/src/app/_site
若没有vi/vim命令,则通过docker cp操作
docker cp 容器id:/usr/src/app/_site/vendor.js /home
进行以下的编辑操作后再执行下面的命令复制回去即可,最后可以重启一下。
docker cp /home/vendor.js容器id:/usr/src/app/_site/
或者容器中直接编辑vendor.js
vi vendor.js
将6886行和7573行的application/x-www-form-urlencoded替换为application/json;charset=UTF-8
contentType:"application/x-www-form-urlencoded => contentType:"application/json;charset=UTF-8"
var inspectData = s.contentType ==="application/x-www-form-urlencoded" && => var inspectData = s.contentType ==="application/json;charset=UTF-8" &&