文章目录
一 搭建ElasticSearch集群+kibana
1.1 创建集群目录
mkdir -p /home/chenershuai/es/master/config &&
mkdir -p /home/chenershuai/es/master/data &&
mkdir -p /home/chenershuai/es/master/log &&
mkdir -p /home/chenershuai/es/node1/config &&
mkdir -p /home/chenershuai/es/node1/data &&
mkdir -p /home/chenershuai/es/node1/log &&
mkdir -p /home/chenershuai/es/node2/config &&
mkdir -p /home/chenershuai/es/node2/data &&
mkdir -p /home/chenershuai/es/node2/log
1.2 修改文件权限
chmod 777 -R /home/chenershuai/es/master/ &&
chmod 777 -R /home/chenershuai/es/node1 &&
chmod 777 -R /home/chenershuai/es/node2
1.3 分别在master,node1,node2的 config 目录下创建es.yml文件
master目录的 es.yml
cluster.name: es-cluster
node.name: es-master
node.master: true
node.data: true
network.host: es-master
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping.unicast.hosts: ["es-master:9300", "es-node1:9300", "es-node2:9300"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 5s
bootstrap.memory_lock: true
action.destructive_requires_name: true
cluster.initial_master_nodes: ["es-master"]
node1 目录的 es.yml
cluster.name: es-cluster
node.name: es-node1
node.master: false
node.data: true
network.host: es-node1
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping.unicast.hosts: ["es-master:9300", "es-node1:9300", "es-node2:9300"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 5s
bootstrap.memory_lock: true
action.destructive_requires_name: true
cluster.initial_master_nodes: ["es-master"]
node2 目录的 es.yml
cluster.name: es-cluster
node.name: es-node2
node.master: false
node.data: true
network.host: es-node2
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping.unicast.hosts: ["es-master:9300", "es-node1:9300", "es-node2:9300"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 5s
bootstrap.memory_lock: true
action.destructive_requires_name: true
cluster.initial_master_nodes: ["es-master"]
1.4 创建 kibana.yml
server.name: kibana
server.host: "0.0.0.0"
#此处为es的master地址
elasticsearch.hosts: "http://es-master:9200"
xpack.monitoring.ui.container.elasticsearch.enabled: true
1.5 创建 docker-compose.yml
文件
version: '3'
networks:
net-es:
driver: bridge
services:
es-master:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
container_name: es-master
environment:
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- /home/chenershuai/es/master/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
- /home/chenershuai/es/master/data:/usr/share/elasticsearch/data:rw
- /home/chenershuai/es/master/log:/usr/share/elasticsearch/log:rw
ports:
- 9200:9200
- 9300:9300
networks:
- net-es
es-node1:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
container_name: es-node1
environment:
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- /home/chenershuai/es/node1/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
- /home/chenershuai/es/node1/data:/usr/share/elasticsearch/data:rw
- /home/chenershuai/es/node1/log:/usr/share/elasticsearch/log:rw
ports:
- 9201:9200
- 9301:9300
networks:
- net-es
es-node2:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
container_name: es-node2
environment:
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- /home/chenershuai/es/node2/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
- /home/chenershuai/es/node2/data:/usr/share/elasticsearch/data:rw
- /home/chenershuai/es/node2/log:/usr/share/elasticsearch/log:rw
ports:
- 9202:9200
- 9302:9300
networks:
- net-es
kibana:
image: docker.elastic.co/kibana/kibana:7.10.0
container_name: kibana
restart: always
environment:
- TZ="Asia/Shanghai"
ports:
- 5601:5601
volumes:
- /home/chenershuai/es/kibana.yml:/usr/share/kibana/config/kibana.yml:ro
depends_on:
- es-master
networks:
- net-es
二 启动集群
2.1 启动 docker-compose
docker-compose -f /home/chenershuai/es/docker-compose.yml
2.2 验证 elasticsearch 集群
curl -X GET “localhost:9200/_cat/nodes?v&pretty”
三 安装中的问题
3.1 ERROR: Elasticsearch did not exit normally
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /chenxi/software/elasticsearch/logs/elasticsearch.log
解决:
sudo vim /etc/sysctl.conf
在文件末尾追加:vm.max_map_count=655360,保存后执行
sudo sysctl -p
[摘自: Elasticsearch启动常见问题 ]