Utilice Docker para crear el clúster elasticsearch7

Preparación ambiental

Nombre del nodo dirección IP
nodo1 192.168.130.20
nodo2 192.168.130.19
nodo2 192.168.130.21

Instalar ventana acoplable

levemente

Modificación del límite del sistema operativo

vim /etc/sysctl.conf

Agregue lo siguiente al final

vm.max_map_count=655360

Hacer efectiva la configuración

sysctl -p

Crear configuración de es

Crear directorio (tres nodos)

# 创建主节点数据存放目录
mkdir -p /root/elasticsearch/data
# 创建主节点配置存放目录
mkdir -p /root/elasticsearch/config
# 创建主节点日志存放目录
mkdir -p /root/elasticsearch/logs
# 创建主节点插件存放目录
mkdir -p /root/elasticsearch/plugins

Editar archivo de configuración (tres nodos)

cd /root/elasticsearch/config
vi elasticsearch.yml

Escribir información de configuración (tres nodos)

configuración del nodo1

# 设置集群名称,集群内所有节点的名称必须一致。
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.130.20
# 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.130.20:9300", "192.168.130.19:9300","192.168.130.21:9300"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["192.168.130.20:9300", "192.168.130.19:9300","192.168.130.21:9300"]
# 是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.enabled: true
# “*” 表示支持所有域名
http.cors.allow-origin: "*"

configuración del nodo2

# 设置集群名称,集群内所有节点的名称必须一致。
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.130.19
# 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.130.20:9300", "192.168.130.19:9300","192.168.130.21:9300"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["192.168.130.20:9300", "192.168.130.19:9300","192.168.130.21:9300"]
# 是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.enabled: true
# “*” 表示支持所有域名
http.cors.allow-origin: "*"

configuración de node3

# 设置集群名称,集群内所有节点的名称必须一致。
cluster.name: kont
# 设置节点名称,集群内节点名称必须唯一。
node.name: node3
# 表示该节点会不会作为主节点,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.130.21
# 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.130.20:9300", "192.168.130.19:9300","192.168.130.21:9300"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["192.168.130.20:9300", "192.168.130.19:9300","192.168.130.21:9300"]
# 是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.enabled: true
# “*” 表示支持所有域名
http.cors.allow-origin: "*"

Inicio es

nodo1

docker run  -d  --network=host --privileged=true  \
-e ES_JAVA_OPTS="-Xms2048m -Xmx2048m"  \
-e TAKE_FILE_OWNERSHIP=true --name es-node1 \
-v /root/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /root/elasticsearch/data:/usr/share/elasticsearch/data \
-v /root/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /root/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
elasticsearch:7.6.1

nodo2

docker run  -d  --network=host --privileged=true  \
-e ES_JAVA_OPTS="-Xms2048m -Xmx2048m"  \
-e TAKE_FILE_OWNERSHIP=true --name es-node2 \
-v /root/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /root/elasticsearch/data:/usr/share/elasticsearch/data \
-v /root/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /root/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
elasticsearch:7.6.1

nodo3

docker run  -d  --network=host --privileged=true  \
-e ES_JAVA_OPTS="-Xms2048m -Xmx2048m"  \
-e TAKE_FILE_OWNERSHIP=true --name es-node3 \
-v /root/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /root/elasticsearch/data:/usr/share/elasticsearch/data \
-v /root/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /root/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
elasticsearch:7.6.1

Abra el navegador y compruebe si el clúster es normal
http: //xx.xx.xx.xx: 9200 / _cat / nodes? Pretty

Instalar es-head (opcional)

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

Abra http: //xx.xx.xx.xx: 9100 para conectarse a cualquier nodo de arriba

Supongo que te gusta

Origin blog.csdn.net/kk3909/article/details/111937621
Recomendado
Clasificación