之前安裝集群是在一台服務器上的,現在試試多台服務器上,其實步驟差不多。
本次采用docker-compose安裝。
==================elasticsearch集群 多台式==================
准備服務器
192.168.89.141
192.168.89.142
// 每台機器增加目錄配置文件 mkdir -p /home/soft/elasticsearch/config mkdir -p /home/soft/elasticsearch/data mkdir -p /home/soft/elasticsearch/logs mkdir -p /home/soft/elasticsearch/plugins/ik // 下載鏡像 docker pull 192.168.89.132/third/elasticsearch:7.1.1 docker pull 192.168.89.132/third/kibana:7.1.1 // 下載分詞器 cd /home/soft/elasticsearch/plugins/ik wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.1.1/elasticsearch-analysis-ik-7.1.1.zip // 解壓 unzip elasticsearch-analysis-ik-7.1.1.zip rm -rf elasticsearch-analysis-ik-7.1.1.zip
新增docker-compose.yml 文件
192.168.89.142
vi docker-compose.yml docker-compose.yml version: '3' services: es10: # 服務名稱 image: 192.168.89.132/third/elasticsearch:7.1.1 # 使用的鏡像 container_name: es10 # 容器名稱 restart: always # 失敗自動重啟策略 environment: - node.name=node142 # 節點名稱,集群模式下每個節點名稱唯一 - network.publish_host=192.168.89.142 # 用於集群內各機器間通信,其他機器訪問本機器的es服務 - network.host=0.0.0.0 # 設置綁定的ip地址,可以是ipv4或ipv6的,默認為0.0.0.0, - discovery.seed_hosts=192.168.89.141,192.168.89.142 # es7.x 之后新增的配置,寫入候選主節點的設備地址,在開啟服務后可以被選為主節點 - cluster.initial_master_nodes=192.168.89.141 # es7.x 之后新增的配置,初始化一個新的集群時需要此配置來選舉master - cluster.name=ms-es-cluster # 集群名稱,相同名稱為一個集群 - bootstrap.memory_lock=false # 內存交換的選項,官網建議為true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" # 設置內存 ulimits: memlock: soft: -1 hard: -1 volumes: - /home/soft/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml # 將容器中es的配置文件映射到本地,設置跨域, 否則head插件無法連接該節點 - /home/soft/elasticsearch/data:/usr/share/elasticsearch/data # 存放數據的文件, 注意:這里的esdata為 頂級volumes下的一項。 - /home/soft/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件目錄 - /home/soft/elasticsearch/logs:/usr/share/elasticsearch/logs #插日志目錄 ports: - 9200:9200 # http端口 - 9300:9300 # es節點直接交互的端口,非http
192.168.89.141 ,與192.168.89.142對比只有發布ip、節點名稱不一樣,其他都一樣
vi docker-compose.yml docker-compose.yml version: '3' services: es10: # 服務名稱 image: 192.168.89.132/third/elasticsearch:7.1.1 # 使用的鏡像 container_name: es10 # 容器名稱 restart: always # 失敗自動重啟策略 environment: - node.name=node141 # 節點名稱,集群模式下每個節點名稱唯一 - network.publish_host=192.168.89.141 # 用於集群內各機器間通信,其他機器訪問本機器的es服務 - network.host=0.0.0.0 # 設置綁定的ip地址,可以是ipv4或ipv6的,默認為0.0.0.0, - discovery.seed_hosts=192.168.89.141,192.168.89.142 # es7.x 之后新增的配置,寫入候選主節點的設備地址,在開啟服務后可以被選為主節點 - cluster.initial_master_nodes=192.168.89.141 # es7.x 之后新增的配置,初始化一個新的集群時需要此配置來選舉master - cluster.name=ms-es-cluster # 集群名稱,相同名稱為一個集群 - bootstrap.memory_lock=false # 內存交換的選項,官網建議為true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" # 設置內存 ulimits: memlock: soft: -1 hard: -1 volumes: - /home/soft/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml # 將容器中es的配置文件映射到本地,設置跨域, 否則head插件無法連接該節點 - /home/soft/elasticsearch/data:/usr/share/elasticsearch/data # 存放數據的文件, 注意:這里的esdata為 頂級volumes下的一項。 - /home/soft/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件目錄 - /home/soft/elasticsearch/logs:/usr/share/elasticsearch/logs #插日志目錄 ports: - 9200:9200 # http端口 - 9300:9300 # es節點直接交互的端口,非http
都增加配置文件
vi elasticsearch.yml 內容如下很少: network.host: 0.0.0.0 http.cors.enabled: true # 設置跨域,主要用於head插件訪問es http.cors.allow-origin: "*" # 允許所有域名訪問
后台啟動容器:
chmod 777 docker-compose.yml docker-compose up -d
訪問測試:
單台:
http://192.168.89.142:9200
集群:
http://192.168.89.142:9200/_cat/nodes?pretty
配置密碼,步驟與之前的一致。注意,主節點只寫一個,否則會出現節點沒完全啟動問題
https://www.cnblogs.com/a393060727/p/12971290.html