docker-compose部署elasticsearch集群
一绣溜、部署思路
模擬部署了六個(gè)節(jié)點(diǎn),其中兩個(gè)master節(jié)點(diǎn)娄蔼,不做數(shù)據(jù)存儲(chǔ)怖喻,四個(gè)data節(jié)點(diǎn),用來(lái)存儲(chǔ)數(shù)據(jù)
注意:
本文使用docker-compose進(jìn)行部署贷屎,沒(méi)有安裝的先自行安裝
本文的elasticsearch集群使用docker進(jìn)行部署罢防,開(kāi)發(fā)學(xué)習(xí)環(huán)境中可以這么使用艘虎,在生產(chǎn)環(huán)境中還是不要這樣部署唉侄,熟悉elasticsearch原理的就會(huì)清楚,單機(jī)部署elasticsearch集群基本無(wú)法起到什么作用野建。
二属划、配置文件
1、目錄結(jié)構(gòu)
docker-compose.yml
data
es00
es01
es02
es03
es04
es05
config
es00
elasticsearch.yml
es01
elasticsearch.yml
es02
elasticsearch.yml
es03
elasticsearch.yml
es04
elasticsearch.yml
es05
elasticsearch.yml
logs
es00
es01
es02
es03
es04
es05
2候生、docker-compose.yml
version: '2'
services:
cerebro:
image: lmenezes/cerebro:0.8.4
container_name: cerebro
ports:
- "9000:9000"
command:
- -Dhosts.0.host=http://es01:9201
networks:
- esnet
kibana:
image: kibana:7.3.0
container_name: kibana
environment:
- ELASTICSEARCH_HOSTS=http://es01:9201
# 需要將Kibana配置文件中的小寫(xiě)轉(zhuǎn)換成大寫(xiě)同眯,然后這個(gè)才能用于變量,才能被設(shè)置到
- I18N_LOCALE=zh-CN
- xpack.monitoring.ui.container.elasticsearch.enabled=false
ports:
- 5601:5601
networks:
- esnet
es00:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.0
container_name: es00
restart: always
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "ES_JAVA_OPTS=-Des.insecure.allow.root=true"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./data/es00:/usr/share/elasticsearch/data
- ./config/es00/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./logs/es00:/usr/share/elasticsearch/logs
ports:
- 9200:9200
- 9300:9300
networks:
- esnet
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.0
container_name: es01
restart: always
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "ES_JAVA_OPTS=-Des.insecure.allow.root=true"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./data/es01:/usr/share/elasticsearch/data
- ./config/es01/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./logs/es01:/usr/share/elasticsearch/logs
ports:
- 9201:9201
- 9301:9301
networks:
- esnet
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.0
container_name: es02
restart: always
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./data/es02:/usr/share/elasticsearch/data
- ./config/es02/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./logs/es02:/usr/share/elasticsearch/logs
depends_on:
- es01
networks:
- esnet
ports:
- 9202:9202
- 9302:9302
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.0
container_name: es03
restart: always
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./data/es03:/usr/share/elasticsearch/data
- ./config/es03/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./logs/es03:/usr/share/elasticsearch/logs
depends_on:
- es01
networks:
- esnet
ports:
- 9203:9203
- 9303:9303
es04:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.0
container_name: es04
restart: always
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./data/es04:/usr/share/elasticsearch/data
- ./config/es04/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./logs/es04:/usr/share/elasticsearch/logs
depends_on:
- es01
networks:
- esnet
ports:
- 9204:9204
- 9304:9304
es05:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.0
container_name: es05
restart: always
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./data/es05:/usr/share/elasticsearch/data
- ./config/es05/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./logs/es05:/usr/share/elasticsearch/logs
depends_on:
- es01
networks:
- esnet
ports:
- 9205:9205
- 9305:9305
networks:
esnet:
3唯鸭、master 節(jié)點(diǎn)
1须蜗、es00
cluster.name: es-cluster
node.name: es00
node.master: true
node.data: false
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200
# transport.tcp.port: [9300,9302,9303,9304,9305]
# discovery.zen.ping.unicast.hosts: ["es01","es02","es03","es04","es05"]
cluster.initial_master_nodes: ["es00","es01"]
discovery.seed_hosts: ["es00","es01"]
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: false
xpack.security.transport.ssl.enabled: false
2、es01
cluster.name: es-cluster
node.name: es01
node.master: true
node.data: false
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9201
# transport.tcp.port: [9300,9302,9303,9304,9305]
# discovery.zen.ping.unicast.hosts: ["es01","es02","es03","es04","es05"]
cluster.initial_master_nodes: ["es00","es01"]
discovery.seed_hosts: ["es00","es01"]
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: false
xpack.security.transport.ssl.enabled: false
4、data節(jié)點(diǎn)
1明肮、es02
cluster.name: es-cluster
node.name: es02
node.master: false
node.data: true
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9202
# transport.tcp.port: [9300,9302,9303,9304,9305]
# discovery.zen.ping.unicast.hosts: ["es01","es02","es03","es04","es05"]
cluster.initial_master_nodes: ["es00","es01"]
discovery.seed_hosts: ["es00","es01"]
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: false
xpack.security.transport.ssl.enabled: false
2菱农、es03
cluster.name: es-cluster
node.name: es03
node.master: false
node.data: true
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9203
# transport.tcp.port: [9300,9302,9303,9304,9305]
# discovery.zen.ping.unicast.hosts: ["es01","es02","es03","es04","es05"]
cluster.initial_master_nodes: ["es00","es01"]
discovery.seed_hosts: ["es00","es01"]
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: false
xpack.security.transport.ssl.enabled: false
1、es04
cluster.name: es-cluster
node.name: es04
node.master: false
node.data: true
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9204
# transport.tcp.port: [9300,9302,9303,9304,9305]
# discovery.zen.ping.unicast.hosts: ["es01","es02","es03","es04","es05"]
cluster.initial_master_nodes: ["es00","es01"]
discovery.seed_hosts: ["es00","es01"]
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: false
xpack.security.transport.ssl.enabled: false
1柿估、es05
cluster.name: es-cluster
node.name: es05
node.master: false
node.data: true
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9205
# transport.tcp.port: [9300,9302,9303,9304,9305]
# discovery.zen.ping.unicast.hosts: ["es01","es02","es03","es04","es05"]
cluster.initial_master_nodes: ["es00","es01"]
discovery.seed_hosts: ["es00","es01"]
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: false
xpack.security.transport.ssl.enabled: false
cluster.name: es-cluster
node.name: es02
node.master: false
node.data: true
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9202
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["es01","es02","es03"]
cluster.initial_master_nodes: ["es01"]
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: false
xpack.security.transport.ssl.enabled: false
三循未、集群?jiǎn)?dòng)
1、啟動(dòng)
在docker-compose.yml文件目錄下
docker-compose up -d
2秫舌、停止
docker-compose stop
3的妖、如果啟動(dòng)后無(wú)法訪(fǎng)問(wèn),查看日志排查問(wèn)題(會(huì)有使用root用戶(hù)無(wú)法啟動(dòng)es的問(wèn)題足陨,需要排查)
docker logs -f -t --tail=500 es01
無(wú)法啟動(dòng)的原因:
1嫂粟、會(huì)有使用root用戶(hù)無(wú)法啟動(dòng)es的問(wèn)題,需要排查(新建系統(tǒng)用戶(hù)啟動(dòng)es集群)
2墨缘、需要修改文件夾權(quán)限 chmod 777 -R [文件夾] (data赋元、log、config 幾個(gè)文件夾改權(quán)限)
三飒房、集群安裝分詞器
6.1 進(jìn)入docker容器
docker exec -it es01/bin/bash
6.2 下載安裝分詞器
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.3.0/elasticsearch-analysis-ik-7.3.0.zip
文件地址:https://download.csdn.net/download/iampatrick_star/87131975?spm=1001.2014.3001.5503