使用docker安装es集群

本文主要记录的是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

如果看到如下输出结果,则表示安装成功了,而且可以使用了。
在这里插入图片描述

六、告一段落

到此为止,关于其他的安全方面的认证的安装,后续会继续补充本博客。由于安全验证方面的安装比较麻烦,
所以如果一般是自己学习使用的话,本博客可以满足了。但是如果生产环境的话,那肯定是需要安全验证方面的的安
装的。后面我会编写安装安全认证的博客的。
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面是安装 elasticsearch 集群的步骤: 1. 安装 Docker 如果你已经安装Docker,可以跳过这一步。如果没有安装 Docker,请先按照官方文档安装 Docker。 2. 创建网络 在 Docker 中创建一个网络,以便于容器之间的通信。可以使用以下命令创建一个名为 es_network 的网络: ``` docker network create es_network ``` 3. 创建 elasticsearch 节点 在 Docker 中创建 elasticsearch 容器。可以使用以下命令创建一个名为 es01 的 elasticsearch 节点: ``` docker run -d --name es01 --net es_network -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.5.2 ``` 这个命令会创建一个名为 es01 的容器,并且将容器的 9200 和 9300 端口映射到主机的 9200 和 9300 端口。同时,设置了环境变量 discovery.type=single-node,表示这个节点是一个单节点的集群。 4. 创建其他节点 可以使用类似的命令创建其他节点。例如,可以使用以下命令创建一个名为 es02 的节点: ``` docker run -d --name es02 --net es_network -e "discovery.seed_hosts=es01" elasticsearch:7.5.2 ``` 这个命令会创建一个名为 es02 的容器,并且设置了环境变量 discovery.seed_hosts=es01,表示这个节点的种子节点是 es01。 可以根据需要创建更多的节点。 5. 验证集群 可以使用以下命令验证 elasticsearch 集群是否正常: ``` curl -XGET http://localhost:9200/_cat/nodes?v ``` 这个命令会输出集群中的节点信息。如果正常工作,应该能够看到所有节点的信息。 好了,以上就是安装 elasticsearch 集群的步骤。希望对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泛舟五湖之间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值