使用docker安装es集群

  • Post author:
  • Post category:其他


本文主要记录的是docker搭建es集群的过程,总体参考的是
https://blog.csdn.net/frrree/article/details/120453668这篇博客,但是完全参考这篇博客是行不通的,
所以想着自己也在学习es,所以就将搭建过程记录下来。不过还是感谢那位博主的,整体的安装过程
也和那边博客差不多。只是其中的配置文件和创建目录等方面可能不太一致。
不过如果完全按照那边博客来安装,可能无法使用



一、环境准备

首先我这边使用的vmware15搭建的centos7版本的linux虚拟机,
安装的docker的版本是Docker version 19.03.13, build 4484c46d9d
关于docker设置为国内镜像源的问题,自行百度即可。
到此环境基本准备完毕。接下来我们开始安装es。
后面用的ip:
es1:192.168.47.210:9300
es2:192.168.47.210:9301
es3:192.168.47.210:9302



二、安装es

首先拉取es的镜像
docker pull elasticsearch:7.9.3

配置es并且启动(主要是配置数据卷和配置文件)

mkdir -p /data/es/config
cd /data/es
mkdir -p node1/data
mkdir -p node1/plugins
chmod 777 data
chmod 777 plugins
mkdir node2/data
mkdir node2/plugins
chmod 777 data
chmod 777 plugins
mkdir node3/data
mkdir node3/plugins
chmod 777 plugins
chmod 777 data


cd config
vim es1.yml

es1.yml的配置如下:

cluster.name: elasticsearch-cluster
node.name: es1
network.bind_host: 0.0.0.0
network.publish_host: 192.168.47.210
http.port: 9200
transport.tcp.port: 9300
node.master: true
node.data: true
discovery.seed_hosts: ["192.168.47.210:9301","192.168.47.210:9302"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: ["es1"]
http.cors.enabled: true
http.cors.allow-origin: "*"

这里并没有安装xpack插件,因为我们这里仅仅是先学习es的常用功能,所以暂时是没有配置xpack。

同样的es2.yml,es3.yml如下

es2.yml

cluster.name: elasticsearch-cluster
node.name: es2
network.bind_host: 0.0.0.0
network.publish_host: 192.168.47.210
http.port: 9201
transport.tcp.port: 9301
node.master: true
node.data: true
discovery.seed_hosts: ["192.168.47.210:9300","192.168.47.210:9302"]
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.initial_master_nodes: ["es1"]

es3.yml

cluster.name: elasticsearch-cluster
node.name: es3
network.bind_host: 0.0.0.0
network.publish_host: 192.168.47.210
http.port: 9202
transport.tcp.port: 9302
node.master: true
node.data: true
discovery.seed_hosts: ["192.168.47.210:9300","192.168.47.210:9301"]
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.initial_master_nodes: ["es1"]

调整jvm限制

vim /etc/sysctl.conf
vm.max_map_count=262144
启用配置
sysctl -p

启动es
docker run -d --restart=always -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -p 9200:9200 -p 9300:9300 -v /data/es/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /data/es/node1/data:/usr/share/elasticsearch/data -v /data/es/node1/plugins:/usr/share/elasticsearch/plugins --name ES01 elasticsearch:7.9.3

docker run -d --restart=always -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -p 9201:9201 -p 9301:9301 -v /data/es/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /data/es/node2/data:/usr/share/elasticsearch/data -v /data/es/node2/plugins:/usr/share/elasticsearch/plugins --name ES02 elasticsearch:7.9.3

docker run -d --restart=always -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -p 9202:9202 -p 9302:9302 -v /data/es/config/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /data/es/node3/data:/usr/share/elasticsearch/data -v /data/es/node3/plugins:/usr/share/elasticsearch/plugins --name ES03 elasticsearch:7.9.3

开启端口

firewall-cmd --add-port=9300/tcp
firewall-cmd --add-port=9301/tcp
firewall-cmd --add-port=9302/tcp

验证

http://ip:9200/_cat/health?v

结果如图所示:

在这里插入图片描述



三、安装elasticsearch-head:5

docker pull mobz/elasticsearch-head:5
docker run -d --restart=always -p 9100:9100 --name head5  mobz/elasticsearch-head:5

访问页面

http://ip:9100/

如图所示:

在这里插入图片描述

表示安装成功了。



四、安装ik分词器

这里由于我的网络不是很好,所以从github上下载ik分析器的包时,非常的慢,所以我这里就使用ik安装包的方式在es中安装ik分词器功能。
首先当然是获取ik分词器的包,然后传输到宿主机上。接着我们解压包到ik目录下。
unzip elasticsearch-analysis-ik-7.9.3.zip -d ik

解压成功后,我们将ik目录复制到前面创建的插件数据卷里,

cp -r ik/ /data/es/node1/plugins
cp -r ik/ /data/es/node2/plugins
cp -r ik/ /data/es/node3/plugins

接着我们进入到ES01容器里,输入命令,查看安装的插件:

docker exec -it ES01 bash
elasticsearch-plugin list

显示如下:

在这里插入图片描述

表示ik分词器安装成功了



五、安装kibana

docker pull kibana:7.9.3
cd /data
mkdir -p kibana/config
cd kibana/config
vim kibana.yml
server.name: kibana
server.host: "0"
elasticsearch.hosts: ["http://192.168.47.210:9200","http://192.168.47.210:9201","http://192.168.47.210:9202"]
xpack.monitoring.ui.container.elasticsearch.enabled: true
elasticsearch.username: elastic
elasticsearch.password: ""
xpack.security.enabled: true
xpack.security.encryptionKey: "c77effba756146d382ebc79b279fd694"
i18n.locale: "zh-CN"

这里的密码填写自己的,

启动
docker run -d --name=kibana --restart=always -p 5601:5601 -v /data/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml -e ELASTICSEARCH_HOSTS=http://192.168.47.210:9200 kibana:7.9.3

因为我们这里没有安装安全认证的插件,所以启动的时候,直接进入到首页界面:

在这里插入图片描述

接着我们进入点击控制台,然后输入命令,查看每个节点的状态:

在这里插入图片描述

GET /_cat/nodes?v&pretty

如果看到如下输出结果,则表示安装成功了,而且可以使用了。

在这里插入图片描述



六、告一段落

到此为止,关于其他的安全方面的认证的安装,后续会继续补充本博客。由于安全验证方面的安装比较麻烦,
所以如果一般是自己学习使用的话,本博客可以满足了。但是如果生产环境的话,那肯定是需要安全验证方面的的安
装的。后面我会编写安装安全认证的博客的。



版权声明:本文为xiezuozhen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。