前提
安装好 docker
和 docker-compose
的环境,具体安装教程查看链接
下载镜像
docker pull elasticsearch:5.6.11
创建所需的文件和目录
mkdir -p /root/softdata/elasticsearch/config
cd /root/softdata/elasticsearch/config
touch es-node1.yml # 节点 1 配置文件
touch es-node2.yml # 节点 2 配置文件
touch es-node3.yml # 节点 3 配置文件
cd ..
touch docker-compose-yaml # docker-compose 启动文件
编写节点配置文件
es-node1.yml
配置文件
cluster.name: es-cluster
node.name: es-node1
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["es-node2","es-node3"]
http.cors.enabled: true
http.cors.allow-origin: "*"
es-node2.yml
配置文件
cluster.name: es-cluster
node.name: es-node2
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["es-node1","es-node3"]
http.cors.enabled: true
http.cors.allow-origin: "*"
es-node3.yml
配置文件
cluster.name: es-cluster
node.name: es-node3
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["es-node1","es-node2"]
http.cors.enabled: true
http.cors.allow-origin: "*"
docker-compose
配置文件
version: '3'
services:
es-node1:
image: elasticsearch:5.6.11
container_name: es-node1
restart: always
environment:
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /root/softdata/elasticsearch/data/es-node1:/usr/share/elasticsearch/data
- /root/softdata/elasticsearch/logs/es-node1:/usr/share/elasticsearch/logs
- /root/softdata/elasticsearch/plugins/es-node1:/usr/share/elasticsearch/plugins
- /root/softdata/elasticsearch/config/es-node1.yml:/usr/share/elasticsearch/config/elasticsearch.yml
ports:
- 9200:9200
es-node2:
image: elasticsearch:5.6.11
container_name: es-node2
restart: always
environment:
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /root/softdata/elasticsearch/data/es-node2:/usr/share/elasticsearch/data
- /root/softdata/elasticsearch/logs/es-node2:/usr/share/elasticsearch/logs
- /root/softdata/elasticsearch/plugins/es-node1:/usr/share/elasticsearch/plugins
- /root/softdata/elasticsearch/config/es-node2.yml:/usr/share/elasticsearch/config/elasticsearch.yml
ports:
- 9201:9200
es-node3:
image: elasticsearch:5.6.11
container_name: es-node3
restart: always
environment:
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /root/softdata/elasticsearch/data/es-node3:/usr/share/elasticsearch/data
- /root/softdata/elasticsearch/logs/es-node3:/usr/share/elasticsearch/logs
- /root/softdata/elasticsearch/plugins/es-node1:/usr/share/elasticsearch/plugins
- /root/softdata/elasticsearch/config/es-node3.yml:/usr/share/elasticsearch/config/elasticsearch.yml
ports:
- 9202:9200
启动容器
docker-compose up -d
安装 analysis-ik
中文分词器
docker exec -it es-node1 bash
cd /usr/share/elasticsearch/plugins
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.11/elasticsearch-analysis-ik-5.6.11.zip
unzip elasticsearch-analysis-ik-5.6.11.zip
mv elasticsearch/ analysis-ik/
安装完成之后我们需要重启 elasticsearch
集群,重启命令
docker-compose restart
验证集群状态
验证集群节点数,其中master
代表该节点为主节点,正常情况下为 3 个节点
curl http://<IP>:9200/_cat/nodes?v
验证集群健康状态,status
为green
表示正常
curl http://<IP>:9200/_cat/health?v