前提
安装好 docker 和 docker-compose 的环境,具体安装教程查看链接
下载镜像
docker pull elasticsearch:5.6.11
创建所需的文件和目录
mkdir -p /root/softdata/elasticsearch/configcd /root/softdata/elasticsearch/configtouch 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-clusternode.name: es-node1path.data: /usr/share/elasticsearch/datapath.logs: /usr/share/elasticsearch/logsbootstrap.memory_lock: falsebootstrap.system_call_filter: falsenetwork.host: 0.0.0.0http.port: 9200discovery.zen.ping.unicast.hosts: ["es-node2","es-node3"]http.cors.enabled: truehttp.cors.allow-origin: "*"
es-node2.yml 配置文件
cluster.name: es-clusternode.name: es-node2path.data: /usr/share/elasticsearch/datapath.logs: /usr/share/elasticsearch/logsbootstrap.memory_lock: falsebootstrap.system_call_filter: falsenetwork.host: 0.0.0.0http.port: 9200discovery.zen.ping.unicast.hosts: ["es-node1","es-node3"]http.cors.enabled: truehttp.cors.allow-origin: "*"
es-node3.yml 配置文件
cluster.name: es-clusternode.name: es-node3path.data: /usr/share/elasticsearch/datapath.logs: /usr/share/elasticsearch/logsbootstrap.memory_lock: falsebootstrap.system_call_filter: falsenetwork.host: 0.0.0.0http.port: 9200discovery.zen.ping.unicast.hosts: ["es-node1","es-node2"]http.cors.enabled: truehttp.cors.allow-origin: "*"
docker-compose 配置文件
version: '3'services:es-node1:image: elasticsearch:5.6.11container_name: es-node1restart: alwaysenvironment:- "ES_JAVA_OPTS=-Xms256m -Xmx256m"ulimits:memlock:soft: -1hard: -1volumes:- /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.ymlports:- 9200:9200es-node2:image: elasticsearch:5.6.11container_name: es-node2restart: alwaysenvironment:- "ES_JAVA_OPTS=-Xms256m -Xmx256m"ulimits:memlock:soft: -1hard: -1volumes:- /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.ymlports:- 9201:9200es-node3:image: elasticsearch:5.6.11container_name: es-node3restart: alwaysenvironment:- "ES_JAVA_OPTS=-Xms256m -Xmx256m"ulimits:memlock:soft: -1hard: -1volumes:- /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.ymlports:- 9202:9200
启动容器
docker-compose up -d
安装 analysis-ik 中文分词器
docker exec -it es-node1 bashcd /usr/share/elasticsearch/pluginswget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.11/elasticsearch-analysis-ik-5.6.11.zipunzip elasticsearch-analysis-ik-5.6.11.zipmv 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
