Docker搭建Elasticsearch(ES)集群
1关闭防火墙
安装软件成功后要做端口映射,为了防止访问不到所以要关闭防火墙
关闭防火墙
systemctl stop firewalld.service
禁用防火墙
systemctl disable firewalld.service
2下载ElasticSearch镜像
使用docker下载ElasticSearch镜像的前提是安装docker。
docker的安装https://blog.csdn.net/chaochao2113/article/details/117967355
下载 Elastic Search 镜像
docker pull elasticsearch:7.9.3
集群部署结构

在一台服务器上,使用Docker部署三个ES容器组成的集群
3准备虚拟网络和挂载目录
创建虚拟网络
docker network create es-net
如果出现下面情况

重启docker
sudo systemctl restart docker
node1 的挂载目录
mkdir -p -m 777 /var/lib/es/node1/plugins
mkdir -p -m 777 /var/lib/es/node1/data
node2 的挂载目录
mkdir -p -m 777 /var/lib/es/node2/plugins
mkdir -p -m 777 /var/lib/es/node2/data
node3 的挂载目录
mkdir -p -m 777 /var/lib/es/node3/plugins
mkdir -p -m 777 /var/lib/es/node3/data
4设置 max_map_count
必须修改系统参数 max_map_count ,否则 Elasticsearch 无法启动:
在 /etc/sysctl.conf文件中添加 vm.max_map_count=262144
echo 'vm.max_map_count=262144' >>/etc/sysctl.conf
需要重启服务器!
5启动 Elasticsearch 集群
node1:
docker run -d \
--name=node1 \
--restart=always \
--net es-net \
-p 9200:9200 \
-p 9300:9300 \
-v /var/lib/es/node1/plugins:/usr/share/elasticsearch/plugins \
-v /var/lib/es/node1/data:/usr/share/elasticsearch/data \
-e node.name=node1 \
-e node.master=true \
-e network.host=node1 \
-e discovery.seed_hosts=node1,node2,node3 \
-e cluster.initial_master_nodes=node1 \
-e cluster.name=es-cluster \
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
elasticsearch:7.9.3
环境变量说明:
环境变量 | 说明 |
---|
node.name | 节点在集群中的唯一名称 | node.master | 可已被选举为主节点 | network.host | 当前节点的地址 | discovery.seed_hosts | 集群中其他节点的地址列表 | cluster.initial_master_nodes | 候选的主节点地址列表 | cluster.name | 集群名 | ES_JAVA_OPTS | java虚拟机参数 |
参考 https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html
node2:
docker run -d \
--name=node2 \
--restart=always \
--net es-net \
-p 9201:9200 \
-p 9301:9300 \
-v /var/lib/es/node2/plugins:/usr/share/elasticsearch/plugins \
-v /var/lib/es/node2/data:/usr/share/elasticsearch/data \
-e node.name=node2 \
-e node.master=true \
-e network.host=node2 \
-e discovery.seed_hosts=node1,node2,node3 \
-e cluster.initial_master_nodes=node1 \
-e cluster.name=es-cluster \
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
elasticsearch:7.9.3
node3:
docker run -d \
--name=node3 \
--restart=always \
--net es-net \
-p 9202:9200 \
-p 9302:9300 \
-v /var/lib/es/node3/plugins:/usr/share/elasticsearch/plugins \
-v /var/lib/es/node3/data:/usr/share/elasticsearch/data \
-e node.name=node3 \
-e node.master=true \
-e network.host=node3 \
-e discovery.seed_hosts=node1,node2,node3 \
-e cluster.initial_master_nodes=node1 \
-e cluster.name=es-cluster \
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
elasticsearch:7.9.3
6查看启动结果结果
Elasticsearch的启动速度比较慢,要稍微等一会才能访问成功!
访问地址:http://192.168.126.22:9200/

http://192.168.64.181:9200/_cat/nodes

7chrome浏览器安装插件:elasticsearch-head
elasticsearch-head 项目提供了一个直观的界面,可以很方便地查看集群、分片、数据等等。elasticsearch-head最简单的安装方式是作为 chrome 浏览器插件进行安装。
(1)在 elasticsearch-head 项目仓库中下载 chrome 浏览器插件
https://github.com/mobz/elasticsearch-head/raw/master/crx/es-head.crx
(2)将文件后缀改为 zip

解压缩

(3)在 chrome 浏览器中选择“更多工具”–“扩展程序”

(4)在“扩展程序”中确认开启了“开发者模式”

(5)点击“加载已解压的扩展程序”(直接拖进来也可以)

(6)选择前面解压的插件目录
在浏览器中点击 elasticsearch-head 插件打开 head 界面,并连接 http://192.168.64.181:9200/ 

|