# 1. 环境
- centos7 ip:106.15.195.75
- docker 19.03.12
- elasticsearch 7.8.1
# 2. 镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.8.1
1
# 3. 目录结构
es01
├── config
│ ├── elasticsearch.yml
├── data
├── logs
es02
├── config
│ ├── elasticsearch.yml
├── data
├── logs
es03
├── config
│ ├── elasticsearch.yml
├── data
├── logs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
分别给每一个 config
目录下创建一个 elasticsearch.yml
文件,进行配置。
# es01/elasticsearch.yml
cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: es-node1
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
# discovery.zen.ping.unicast.hosts: ["106.15.195.75:9300","106.15.195.75:9301","106.15.195.75:9302"]
# discovery.zen.minimum_master_nodes: 2
discovery.seed_hosts: ["es-node1:9300","es-node2:9300","es-node3:9300"]
cluster.initial_master_nodes:
- es-node1
- es-node2
- es-node3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# es02/elasticsearch.yml
cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: es-node2
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
# discovery.zen.ping.unicast.hosts: ["106.15.195.75:9300","106.15.195.75:9301","106.15.195.75:9302"]
# discovery.zen.minimum_master_nodes: 2
discovery.seed_hosts: ["es-node1:9300","es-node2:9300","es-node3:9300"]
cluster.initial_master_nodes:
- es-node1
- es-node2
- es-node3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# es03/elasticsearch.yml
cluster.name: elasticsearch-cluster
node.name: es-node3
network.bind_host: 0.0.0.0
network.publish_host: es-node3
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
# discovery.zen.ping.unicast.hosts: ["106.15.195.75:9300","106.15.195.75:9301","106.15.195.75:9302"]
# discovery.zen.minimum_master_nodes: 2
discovery.seed_hosts: ["es-node1:9300","es-node2:9300","es-node3:9300"]
cluster.initial_master_nodes:
- es-node1
- es-node2
- es-node3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 4. JVM调优
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p
1
2
2
# 5. 单个启动集群
# es-node1
docker run -itd -p 9200:9200 -p 9300:9300 -e ES_JAVA_POTS="-Xms128m -Xmx128m" -e "discovery.type=single-node" -v /Users/ligan/docker/elasticsearch/es01/plugins:/usr/share/elasticsearch/plugins -v /Users/ligan/docker/elasticsearch/es01/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /Users/ligan/docker/elasticsearch/es01/logs:/usr/share/elasticsearch/logs -v /Users/ligan/docker/elasticsearch/es01/data:/usr/share/elasticsearch/data --name es-node1 elasticsearch:7.8.1
# es-node2
docker run -itd -p 9201:9200 -p 9301:9300 -e ES_JAVA_POTS="-Xms128m -Xmx128m" -e "discovery.type=single-node" -v /Users/ligan/docker/elasticsearch/es02/plugins:/usr/share/elasticsearch/plugins -v /Users/ligan/docker/elasticsearch/es02/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /Users/ligan/docker/elasticsearch/es02/logs:/usr/share/elasticsearch/logs -v /Users/ligan/docker/elasticsearch/es02/data:/usr/share/elasticsearch/data --name es-node2 elasticsearch:7.8.1
# es-node3
docker run -itd -p 9202:9200 -p 9302:9300 -e ES_JAVA_POTS="-Xms128m -Xmx128m" -e "discovery.type=single-node" -v /Users/ligan/docker/elasticsearch/es03/plugins:/usr/share/elasticsearch/plugins -v /Users/ligan/docker/elasticsearch/es03/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /Users/ligan/docker/elasticsearch/es03/logs:/usr/share/elasticsearch/logs -v /Users/ligan/docker/elasticsearch/es03/data:/usr/share/elasticsearch/data --name es-node3 elasticsearch:7.8.1
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 6. 查看节点
curl http://106.15.195.75:9200/_cat/nodes
106.15.195.75 43 99 0 0.00 0.04 0.08 dilmrt - es-node2
106.15.195.75 35 99 0 0.00 0.04 0.08 dilmrt * es-node1
106.15.195.75 28 99 0 0.00 0.04 0.08 dilmrt - es-node3
1
2
3
4
2
3
4
# 7.可视化后台
# 7.1 dejavu
docker pull appbaseio/dejavu
docker run -p 1358:1358 -d appbaseio/dejavu
1
2
2
然后访问http://106.15.195.75:1358/,在输入框中输入http://106.15.195.75:9200/和索引再点连接,即可进行操作了。
# 7.2 elasticsearch-head
docker pull mobz/elasticsearch-head:5
docker run -p 9100:9100 mobz/elasticsearch-head:5
1
2
2
# 8. docker-compose.yml
version: '2'
services:
es-node1:
image: docker.elastic.co/elasticsearch/elasticsearch:7.8.1
container_name: es-node1
restart: always
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./es01/data:/usr/share/elasticsearch/data
- ./es01/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./es01/logs:/usr/share/elasticsearch/logs
ports:
- 9200:9200
- 9300:9300
networks:
- elasticsearch-network
es-node2:
image: docker.elastic.co/elasticsearch/elasticsearch:7.8.1
container_name: es-node2
restart: always
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./es02/data:/usr/share/elasticsearch/data
- ./es02/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./es02/logs:/usr/share/elasticsearch/logs
ports:
- 9201:9200
- 9301:9300
depends_on:
- es-node1
networks:
- elasticsearch-network
es-node3:
image: docker.elastic.co/elasticsearch/elasticsearch:7.8.1
container_name: es-node3
restart: always
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./es03/data/:/usr/share/elasticsearch/data
- ./es03/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./es03/logs/:/usr/share/elasticsearch/logs
ports:
- 9202:9200
- 9302:9300
depends_on:
- es-node1
networks:
- elasticsearch-network
networks:
elasticsearch-network:
driver: bridge
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
构建
docker-compoe up -d
1