docker單節點安裝elasticsearch7.1.1集群


1. 環境准備

  本次部署為單機部署三節點集群, 3maser節點, 同時也是數據節點.

#docker安裝略,拉取es鏡像
#cat /etc/redhat-release   CentOS Linux release 7.5.1804 (Core) #docker pull elasticsearch:7.1.1 #docker pull kibana:7.1.1

   新建數據持久化目錄:

mkdir -p /data/elasticsearch/{data,logs,conf,plugins}
mkdir /data/elasticsearch/data/node{1,2,3}
mkdir /data/elasticsearch/logs/node{1,2,3}
mkdir /data/elasticsearch/plugins/node{1,2,3}

  添加配置文件模板:

  node1節點配置: vim /data/elasticsearch/conf/node1.yml

# 設置集群名稱,集群內所有節點的名稱必須一致。
cluster.name: myes
# 設置節點名稱,集群內節點名稱必須唯一。
node.name: node1
# 表示該節點會不會作為主節點,true表示會;false表示不會
node.master: true
# 當前節點是否用於存儲數據,是:true、否:false
node.data: true
# 監聽地址,用於訪問該es
network.host: 0.0.0.0
# es對外提供的http端口,默認 9200
http.port: 9200
# TCP的默認監聽端口,默認 9300
transport.tcp.port: 9300
# es7.x 之后新增的配置,寫入候選主節點的設備地址,在開啟服務后可以被選為主節點
discovery.seed_hosts: ["172.19.1.11", "172.19.1.12","172.19.1.13"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# es7.x 之后新增的配置,初始化一個新的集群時需要此配置來選舉master
cluster.initial_master_nodes: ["172.19.1.11", "172.19.1.12","172.19.1.13"]
# 是否支持跨域,是:true,在使用head插件時需要此配置
http.cors.enabled: true
# “*” 表示支持所有域名
http.cors.allow-origin: "*"

  node2節點配置node2.yml:

 cluster.name: myes
 # 設置節點名稱,集群內節點名稱必須唯一。
 node.name: node2
 # 表示該節點會不會作為主節點,true表示會;false表示不會
 node.master: true
 # 當前節點是否用於存儲數據,是:true、否:false
 node.data: true
 # 監聽地址,用於訪問該es
 network.host: 0.0.0.0
 # es對外提供的http端口,默認 9200
 http.port: 9200
 # TCP的默認監聽端口,默認 9300
 transport.tcp.port: 9300
 # es7.x 之后新增的配置,寫入候選主節點的設備地址,在開啟服務后可以被選為主節點
 discovery.seed_hosts: ["172.19.1.11", "172.19.1.12","172.19.1.13"]
 discovery.zen.fd.ping_timeout: 1m
 discovery.zen.fd.ping_retries: 5
 # es7.x 之后新增的配置,初始化一個新的集群時需要此配置來選舉master
 cluster.initial_master_nodes: ["172.19.1.11", "172.19.1.12","172.19.1.13"]
 # 是否支持跨域,是:true,在使用head插件時需要此配置
 http.cors.enabled: true
 # “*” 表示支持所有域名
 http.cors.allow-origin: "*"

  node3節點配置node3.yml:

 cluster.name: myes
 # 設置節點名稱,集群內節點名稱必須唯一。
 node.name: node3
 # 表示該節點會不會作為主節點,true表示會;false表示不會
 node.master: true
 # 當前節點是否用於存儲數據,是:true、否:false
 node.data: true
 # 監聽地址,用於訪問該es
 network.host: 0.0.0.0
 # es對外提供的http端口,默認 9200
 http.port: 9200
 # TCP的默認監聽端口,默認 9300
 transport.tcp.port: 9300
 # es7.x 之后新增的配置,寫入候選主節點的設備地址,在開啟服務后可以被選為主節點
 discovery.seed_hosts: ["172.19.1.11", "172.19.1.12","172.19.1.13"]
 discovery.zen.fd.ping_timeout: 1m
 discovery.zen.fd.ping_retries: 5
 # es7.x 之后新增的配置,初始化一個新的集群時需要此配置來選舉master
 cluster.initial_master_nodes: ["172.19.1.11", "172.19.1.12","172.19.1.13"]
 # 是否支持跨域,是:true,在使用head插件時需要此配置
 http.cors.enabled: true
 # “*” 表示支持所有域名
 http.cors.allow-origin: "*"

  kibana配置文件:

server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://172.19.1.11:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true

 

2. 網絡配置

  Docker創建容器時默認采用bridge網絡,自行分配ip,不允許自己指定。

在實際部署中,我們需要指定容器ip,不允許其自行分配ip,尤其是搭建集群時,固定ip是必須的。

我們可以創建自己的bridge網絡 : mynet,創建容器的時候指定網絡為mynet並指定ip即可。

查看網絡模式: docker network ls

 

 

 創建一個新的bridge類型網絡:

docker network create --driver bridge --subnet=172.19.0.0/16 --gateway=172.19.1.1 mynet

 通過選項--network=mynet --ip 172.19.1.x 可以為新建容器指定ip地址

 

3. 創建並啟動容器

  

#節點1啟動
docker run -d --network=mynet --ip 172.19.1.11 --privileged=true \ -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -p 9200:9200 \ --name node1 -e TAKE_FILE_OWNERSHIP=true \ -v /data/elasticsearch/config/node1.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /data/elasticsearch/data/node1:/usr/share/elasticsearch/data \ -v /data/elasticsearch/logs/node1:/usr/share/elasticsearch/logs \ -v /data/elasticsearch/plugins/node1:/usr/share/elasticsearch/plugins elasticsearch:7.1.1

#節點2啟動
docker run -d --network=mynet --ip 172.19.1.12 --privileged=true \ -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -p 9201:9200 \ --name node2 -e TAKE_FILE_OWNERSHIP=true \ -v /data/elasticsearch/config/node2.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /data/elasticsearch/data/node2:/usr/share/elasticsearch/data \ -v /data/elasticsearch/logs/node2:/usr/share/elasticsearch/logs \ -v /data/elasticsearch/plugins/node2:/usr/share/elasticsearch/plugins elasticsearch:7.1.1

#節點3啟動
docker run -d --network=mynet --ip 172.19.1.13 --privileged=true \ -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -p 9202:9200 \ --name node3 -e TAKE_FILE_OWNERSHIP=true \ -v /data/elasticsearch/config/node3.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /data/elasticsearch/data/node3:/usr/share/elasticsearch/data \ -v /data/elasticsearch/logs/node3:/usr/share/elasticsearch/logs \ -v /data/elasticsearch/plugins/node3:/usr/share/elasticsearch/plugins elasticsearch:7.1.1

#kibana啟動

 docker run -d --network=mynet --ip 172.19.1.99 --privileged=true \
 -p 5601:5601 -v /data/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml \
 -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e TAKE_FILE_OWNERSHIP=true \
 --name kibana kibana:7.1.1

 

4. 登錄kibana網頁客戶端

    瀏覽器輸入http://宿主機ip:5601可登錄kibana, 可進行管理es集群操作

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM