平时需要测试的时候没有那么多虚拟机做多台机器的集群搭建,所以就在一台机器上部署 elasticsearch 的集群搭建。本次我的测试环境是三个节点,使用 elasticsearch 7.2 版本。 #### 方法一: 直接使用docker-compose启动 **注意**:挂载目录需要先给777权限,不然会报错,错误没截图,忘记了 ``` chmod 777 -R /data/{els,els-slave,els-slave-2}/ ``` **docker-compose.yml** ``` version: '3' services: es-master: image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0 container_name: master environment: - cluster.name=myels - node.name=master - network.publish_host=es-master - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - cluster.initial_master_nodes=master,node1,node2 - discovery.seed_hosts=master,node1,node2 volumes: - /data/els/data:/usr/share/elasticsearch/data - /data/els/logs:/usr/share/elasticsearch/logs ports: - 9200:9200 - 9300:9300 networks: - es7net es-node1: image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0 container_name: node1 environment: - cluster.name=myels - node.name=node1 - network.publish_host=es-node1 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - cluster.initial_master_nodes=master,node1,node2 - discovery.seed_hosts=master,node1,node2 volumes: - /data/els-slave/data:/usr/share/elasticsearch/data - /data/els-slave/logs:/usr/share/elasticsearch/logs networks: - es7net es-node2: image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0 container_name: node2 environment: - cluster.name=myels - node.name=node2 - network.publish_host=es-node2 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - cluster.initial_master_nodes=master,node1,node2 - discovery.seed_hosts=master,node1,node2 volumes: - /data/els-slave-2/data:/usr/share/elasticsearch/data - /data/els-slave-2/logs:/usr/share/elasticsearch/logs networks: - es7net networks: es7net: driver: bridge ``` #### 方法二:docker-compose启动,挂载配置文件 **目录结构** ``` /data/elk/es7-cluster ├── docker-compose.yml ├── master │ └── elasticsearch.yml ├── node-1 │ └── elasticsearch.yml └── node-2 └── elasticsearch.yml ``` **docker-compose.yml** ``` version: '3' services: es-master: image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0 container_name: master environment: - "ES_JAVA_OPTS=-Xms512m -Xmx512m" volumes: - /data/els/data:/usr/share/elasticsearch/data - /data/els/logs:/usr/share/elasticsearch/logs - ./master/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml ports: - 9200:9200 - 9300:9300 networks: - es7net es-node1: image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0 container_name: node1 environment: - "ES_JAVA_OPTS=-Xms512m -Xmx512m" volumes: - /data/els-slave/data:/usr/share/elasticsearch/data - /data/els-slave/logs:/usr/share/elasticsearch/logs - ./slave-1/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml ports: - 9201:9201 - 9301:9301 networks: - es7net es-node2: image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0 container_name: node2 environment: - "ES_JAVA_OPTS=-Xms512m -Xmx512m" volumes: - /data/els-slave-2/data:/usr/share/elasticsearch/data - /data/els-slave-2/logs:/usr/share/elasticsearch/logs - ./slave-2/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml ports: - 9202:9202 - 9302:9302 networks: - es7net networks: es7net: driver: bridge ``` #### **es-master节点** ``` cluster.name: myels node.name: es-master node.master: true node.data: true network.host: 0.0.0.0 network.publish_host: 192.168.0.3 http.port: 9200 transport.tcp.port: 9300 cluster.initial_master_nodes: - es-master - es-node1 - es-node2 discovery.seed_hosts: - 192.168.0.3:9301 - 192.168.0.3:9302 http.cors.enabled: true http.cors.allow-origin: "*" ``` **es-node1节点** ``` cluster.name: myels node.name: es-node1 node.master: true node.data: true network.host: 0.0.0.0 http.port: 9201 transport.tcp.port: 9301 network.publish_host: 192.168.0.3 cluster.initial_master_nodes: - es-master - es-node1 - es-node2 discovery.seed_hosts: - 192.168.0.3:9300 - 192.168.0.3:9302 http.cors.enabled: true http.cors.allow-origin: "*" ``` **es-node2 节点** ``` cluster.name: myels node.name: es-node2 node.master: true node.data: true network.host: 0.0.0.0 network.publish_host: 192.168.0.3 http.port: 9202 transport.tcp.port: 9302 cluster.initial_master_nodes: - es-master - es-node1 - es-node2 discovery.seed_hosts: - 192.168.0.3:9300 - 192.168.0.3:9302 http.cors.enabled: true http.cors.allow-origin: "*" ``` #### 参考 ``` https://www.cnblogs.com/zenan/p/10983580.html ``` 最后修改:2019 年 08 月 30 日 11 : 40 AM © 著作权归作者所有