docker-compose搭建elasticsearch集群,同时部署Kibana,elasticsearch-head
- docker-compose.yml 文件配置如下
version: '3'
networks:
esnet:
driver: bridge
services:
es01:
image: elasticsearch:7.2.0
container_name: es1
restart: always
environment:
- TZ="Asia/Shanghai"
- cluster.name=docker-cluster
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- node.name=node0
- node.master=true
- node.data=true
- bootstrap.memory_lock=true
- search.max_buckets=100000000
- http.cors.enabled=true
- http.cors.allow-origin=*
- cluster.initial_master_nodes=node0
- "discovery.zen.ping.unicast.hosts=es01,es02,es03"
- "discovery.zen.minimum_master_nodes=2"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./es01/data:/usr/share/elasticsearch/data
- ./es01/logs:/usr/share/elasticsearch/logs
ports:
- 9200:9200
networks:
- esnet
es02:
image: elasticsearch:7.2.0
container_name: es2
restart: always
environment:
- TZ="Asia/Shanghai"
- cluster.name=docker-cluster
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- node.name=node1
- node.master=true
- node.data=true
- bootstrap.memory_lock=true
- search.max_buckets=100000000
- http.cors.enabled=true
- http.cors.allow-origin=*
- cluster.initial_master_nodes=node0
- "discovery.zen.ping.unicast.hosts=es01,es02,es03"
- "discovery.zen.minimum_master_nodes=2"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./es02/data:/usr/share/elasticsearch/data
- ./es02/logs:/usr/share/elasticsearch/logs
ports:
- 9201:9200
- 9301:9300
networks:
- esnet
es03:
image: elasticsearch:7.2.0
container_name: es3
restart: always
environment:
- TZ="Asia/Shanghai"
- cluster.name=docker-cluster
- node.name=node2
- node.master=true
- node.data=true
- bootstrap.memory_lock=true
- search.max_buckets=100000000
- http.cors.enabled=true
- http.cors.allow-origin=*
- cluster.initial_master_nodes=node0
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "discovery.zen.ping.unicast.hosts=es01,es02,es03"
- "discovery.zen.minimum_master_nodes=2"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./es03/data:/usr/share/elasticsearch/data
- ./es03/logs:/usr/share/elasticsearch/logs
ports:
- 9202:9200
- 9302:9300
networks:
- esnet
kibana:
image: kibana:7.2.0
container_name: kibana
restart: always
environment:
- TZ="Asia/Shanghai"
ports:
- 5601:5601
volumes:
- ./kibana.yml:/usr/share/kibana/config/kibana.yml:rw
depends_on:
- es01
networks:
- esnet
eshead:
image: mobz/elasticsearch-head:5
container_name: eshead
networks:
- esnet
ports:
- 9110:9100
server.name: kibana
server.host: "0"
#此处为es的master地址
elasticsearch.hosts: [ "http://192.168.125.12:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
部署容器时可能遇到的问题
- 1.es节点挂载目录的权限不够造成容器启动失败,可以执行命令chmod 777 XXX赋予文件权限
- 2.es需要的内存不够可能造成容器未正常启动,可以编辑文件vim /etc/sysctl.conf,在末尾添加vm.max_map_count=262144,最后需要执行命令sysctl -p使配置生效