Dcoker安装配置ElasticSearch集群(7版本)

前言

接着之前安装的ES、head等操作。

如果之前的安装你没有操作,去安装一遍。Docker安装ES、Kibana、head、IK 

如果安装过了并且之前启动过ES,执行下下面这个命令,删除nodes文件夹,否则会导致ES各节点的UUID不一致。

# 我的data挂载文件夹是这个目录 /elasticsearch/data
rm -rf /elasticsearch/data/nodes/

前期准备

服务器 主机名称
192.168.206.212 node1
192.168.206.213 node2
192.168.206.214 node3

1、操作系统限制修改

vim /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p

2、配置elasticsearch.yml

之前我们配置的elasticsearch.yml内容是针对单节点的,下面是三台机子的elasticsearch.yml内容

三台主机内容只有两处不一样:node.name 和 network.host

node1主机

# 设置集群名称,集群内所有节点的名称必须一致。
cluster.name: kont
# 设置节点名称,集群内节点名称必须唯一。
node.name: node1
# 表示该节点会不会作为主节点,true表示会;false表示不会
node.master: true
# 当前节点是否用于存储数据,是:true、否:false
node.data: true
# 索引数据存放的位置
#path.data: /usr/share/elasticsearch/data
# 日志文件存放的位置
#path.logs: /usr/share/elasticsearch/logs
# 需求锁住物理内存,是:true、否:false
#bootstrap.memory_lock: true
# 监听地址,用于访问该es
network.host: 192.168.206.212
# es对外提供的http端口,默认 9200
http.port: 9200
# TCP的默认监听端口,默认 9300
transport.tcp.port: 9300
# 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
discovery.zen.minimum_master_nodes: 1
# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["192.168.206.212:9300", "192.168.206.213:9300","192.168.206.214:9300"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["192.168.206.212:9300", "192.168.206.213:9300","192.168.206.214:9300"]
# 是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.enabled: true
# “*” 表示支持所有域名
http.cors.allow-origin: "*"

node2主机

# 设置集群名称,集群内所有节点的名称必须一致。
cluster.name: kont
# 设置节点名称,集群内节点名称必须唯一。
node.name: node2
# 表示该节点会不会作为主节点,true表示会;false表示不会
node.master: true
# 当前节点是否用于存储数据,是:true、否:false
node.data: true
# 索引数据存放的位置
#path.data: /usr/share/elasticsearch/data
# 日志文件存放的位置
#path.logs: /usr/share/elasticsearch/logs
# 需求锁住物理内存,是:true、否:false
#bootstrap.memory_lock: true
# 监听地址,用于访问该es
network.host: 192.168.206.213
# es对外提供的http端口,默认 9200
http.port: 9200
# TCP的默认监听端口,默认 9300
transport.tcp.port: 9300
# 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
discovery.zen.minimum_master_nodes: 1
# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["192.168.206.212:9300", "192.168.206.213:9300","192.168.206.214:9300"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["192.168.206.212:9300", "192.168.206.213:9300","192.168.206.214:9300"]
# 是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.enabled: true
# “*” 表示支持所有域名
http.cors.allow-origin: "*"

node3主机

# 设置集群名称,集群内所有节点的名称必须一致。
cluster.name: kont
# 设置节点名称,集群内节点名称必须唯一。
node.name: node2
# 表示该节点会不会作为主节点,true表示会;false表示不会
node.master: true
# 当前节点是否用于存储数据,是:true、否:false
node.data: true
# 索引数据存放的位置
#path.data: /usr/share/elasticsearch/data
# 日志文件存放的位置
#path.logs: /usr/share/elasticsearch/logs
# 需求锁住物理内存,是:true、否:false
#bootstrap.memory_lock: true
# 监听地址,用于访问该es
network.host: 192.168.206.213
# es对外提供的http端口,默认 9200
http.port: 9200
# TCP的默认监听端口,默认 9300
transport.tcp.port: 9300
# 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
discovery.zen.minimum_master_nodes: 1
# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["192.168.206.212:9300", "192.168.206.213:9300","192.168.206.214:9300"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["192.168.206.212:9300", "192.168.206.213:9300","192.168.206.214:9300"]
# 是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.enabled: true
# “*” 表示支持所有域名
http.cors.allow-origin: "*"

3、启动ES

# node1主机
docker run  -d  --network=host --privileged=true  \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m"  \
-e TAKE_FILE_OWNERSHIP=true --name es-node1 \
-v /elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /elasticsearch/data:/usr/share/elasticsearch/data \
-v /elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /elasticsearch/plugins:/usr/share/elasticsearch/plugins \
elasticsearch:7.4.2

# node2主机
docker run  -d  --network=host --privileged=true  \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m"  \
-e TAKE_FILE_OWNERSHIP=true --name es-node2 \
-v /elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /elasticsearch/data:/usr/share/elasticsearch/data \
-v /elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /elasticsearch/plugins:/usr/share/elasticsearch/plugins \
elasticsearch:7.4.2

# node3主机
docker run  -d  --network=host --privileged=true  \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m"  \
-e TAKE_FILE_OWNERSHIP=true --name es-node3 \
-v /elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /elasticsearch/data:/usr/share/elasticsearch/data \
-v /elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /elasticsearch/plugins:/usr/share/elasticsearch/plugins \
elasticsearch:7.4.2

4、测试

打开浏览器,检查集群是否正常

192.168.206.212:9200/_cat/nodes?pretty

 192.168.206.212:9100

posted @ 2022-07-28 16:57  云村的王子  阅读(59)  评论(0编辑  收藏  举报