通过Docker进行Elasticsearch环境搭建

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进行Elasticsearch环境搭建_第1张图片
  1. 准备好Docker环境,本文搭建的ES主要使用7.10.1的版本。

安装Elasticsearch

  1. Docker拉取ES镜像

docker pull elasticsearch:7.10.1
  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: "*"
  1. 运行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数据即为成功。

通过Docker进行Elasticsearch环境搭建_第2张图片

安装Kibana

Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。

  1. 创建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
  1. 启动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连接。

通过Docker进行Elasticsearch环境搭建_第3张图片

安装Elasticsearch-head

  1. 拉取elasticsearch-head镜像

docker pull mobz/elasticsearch-head:5
  1. 启动elasticsearch-head

docker run -d \
  --name=elasticsearch-head \
  -p 9100:9100 \
  mobz/elasticsearch-head:5

最后访问ip:port,如127.0.0.1:9100端口,并输入elasticsearch服务的地址进行连接即可,连接成功后的集群健康值一般为绿色。

  1. 若访问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" &&

你可能感兴趣的:(elasticsearch)