1 準備3臺機器
服務器1 :192.168.2.89
服務器2 :192.168.2.90
服務器3 :192.168.2.91
2 在每臺機器上做好準備工作
掛載數據data文件夾,配置文件config,和plugins文件夾
[root@localhost soft]# pwd
/root/soft
[root@localhost soft]# mkdir -p ES/config
[root@localhost soft]# cd ES
[root@localhost ES]# mkdir data
[root@localhost ES]# mkdir plugins
[root@localhost ES]# cd ES/config/
[root@localhost config]# touch es.yml
[root@localhost ES]# firewall-cmd --add-port=9300/tcp
success
[root@localhost ES]# firewall-cmd --add-port=9301/tcp
success
[root@localhost ES]# firewall-cmd --add-port=9302/tcp
success
別忘了重新加載下防火牆
=============================我這邊暴露端口採用的linux的寶塔面板==============
描述:在root文件夾下,新建soft文件夾,在soft文件夾下建ES文件夾,在ES文件夾下建data,config,plugins 三個文件夾
es.yml文件內容如下,copy進去即可,copy到這臺機器ES/config/es.yml中
#集羣名
cluster.name: elasticsearch-cluster
#當前機器下的es節點名字
node.name: es-node1
#指綁定這臺機器的任何一個ip
network.bind_host: 0.0.0.0
#當前機器的ip(這樣設置,可以讓別的機器可以通過這個ip來和這個es通訊,不設置,別的機器不能通過這個ip和這臺機器上的es通訊)
network.publish_host: 192.168.2.89
#設置對外服務的http端口,默認爲9200
http.port: 9200
#設置節點之間交互的tcp端口,默認是9300
transport.tcp.port: 9300
#是否允許跨域REST請求
http.cors.enabled: true
#允許 REST 請求來自何處
http.cors.allow-origin: "*"
#節點角色設置
node.master: true
node.data: true
#有成爲主節點資格的節點列表
discovery.zen.ping.unicast.hosts: ["192.168.2.89:9300","192.168.2.90:9300","192.168.2.91:9300"]
#集羣中一直正常運行的,有成爲master節點資格的最少節點數(默認爲1)
# (totalnumber of master-eligible nodes / 2 + 1)
discovery.zen.minimum_master_nodes: 2
下載ik分詞器,版本要和es版本一致,這裏es和ik都是5.6.7的。包括kibana也是5.6.7
ik分詞器連接:https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v5.6.7
下載 elasticsearch-analysis-ik-5.6.7.zip 到桌面,在桌面上新建文件夾 ik ,把 elasticsearch-analysis-ik-5.6.7.zip 解壓到ik
文件夾裏,並刪除 .zip文件,把ik文件夾上傳到 服務器上的ES/plugins/文件下即可,其他不需要做什麼
當然你的目錄結構和我的不一樣也行,只要你自己改的清楚就行
3.調高JVM線程數限制數量
在centos窗口中,修改配置sysctl.conf
vim /etc/sysctl.conf
加入如下內容:
vm.max_map_count=262144
保存退出,在執行如下命令,讓其生效
sysctl -p
4 其他機器也是一樣。就是ES/config/es.yml文件不一樣而已,下面展示三臺機器的es.yml
機器1 192.168.2.89 的es.yml
#集羣名
cluster.name: elasticsearch-cluster
#當前機器下的es節點名字
node.name: es-node1
#指綁定這臺機器的任何一個ip
network.bind_host: 0.0.0.0
#當前機器的ip(這樣設置,可以讓別的機器可以通過這個ip來和這個es通訊,不設置,別的機器不能通過這個ip和這臺機器上的es通訊)
network.publish_host: 192.168.2.89
#設置對外服務的http端口,默認爲9200
http.port: 9200
#設置節點之間交互的tcp端口,默認是9300
transport.tcp.port: 9300
#是否允許跨域REST請求
http.cors.enabled: true
#允許 REST 請求來自何處
http.cors.allow-origin: "*"
#節點角色設置
node.master: true
node.data: true
#有成爲主節點資格的節點列表
discovery.zen.ping.unicast.hosts: ["192.168.2.89:9300","192.168.2.90:9300","192.168.2.91:9300"]
#集羣中一直正常運行的,有成爲master節點資格的最少節點數(默認爲1)
# (totalnumber of master-eligible nodes / 2 + 1)
discovery.zen.minimum_master_nodes: 2
機器二 192.168.2.90 機器下的es.yml文件,其實就是 network.publish_host: 192.168.2.90 ,和node.name (node節點名字)不一樣而已
#集羣名
cluster.name: elasticsearch-cluster
#當前機器下的es節點名字
node.name: es-node2
#指綁定這臺機器的任何一個ip
network.bind_host: 0.0.0.0
#當前機器的ip(這樣設置,可以讓別的機器可以通過這個ip來和這個es通訊,不設置,別的機器不能通過這個ip和這臺機器上的es通訊)
network.publish_host: 192.168.2.90
#設置對外服務的http端口,默認爲9200
http.port: 9200
#設置節點之間交互的tcp端口,默認是9300
transport.tcp.port: 9300
#是否允許跨域REST請求
http.cors.enabled: true
#允許 REST 請求來自何處
http.cors.allow-origin: "*"
#節點角色設置
node.master: true
node.data: true
#有成爲主節點資格的節點列表
discovery.zen.ping.unicast.hosts: ["192.168.2.89:9300","192.168.2.90:9300","192.168.2.91:9300"]
#集羣中一直正常運行的,有成爲master節點資格的最少節點數(默認爲1)
# (totalnumber of master-eligible nodes / 2 + 1)
discovery.zen.minimum_master_nodes: 2
機器三 192.168.2.91 下的es.yml文件
#集羣名
cluster.name: elasticsearch-cluster
#當前機器下的es節點名字
node.name: es-node3
#指綁定這臺機器的任何一個ip
network.bind_host: 0.0.0.0
#當前機器的ip(這樣設置,可以讓別的機器可以通過這個ip來和這個es通訊,不設置,別的機器不能通過這個ip和這臺機器上的es通訊)
network.publish_host: 192.168.2.91
#設置對外服務的http端口,默認爲9200
http.port: 9200
#設置節點之間交互的tcp端口,默認是9300
transport.tcp.port: 9300
#是否允許跨域REST請求
http.cors.enabled: true
#允許 REST 請求來自何處
http.cors.allow-origin: "*"
#節點角色設置
node.master: true
node.data: true
#有成爲主節點資格的節點列表
discovery.zen.ping.unicast.hosts: ["192.168.2.89:9300","192.168.2.90:9300","192.168.2.91:9300"]
#集羣中一直正常運行的,有成爲master節點資格的最少節點數(默認爲1)
# (totalnumber of master-eligible nodes / 2 + 1)
discovery.zen.minimum_master_nodes: 2
5 拉去鏡像,啓動鏡像:
拉去鏡像命令:(三臺機器都一樣)
docker pull elasticsearch:5.6.7
啓動鏡像命令:
機器一啓動es命令:
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 -v /root/soft/ES/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /root/soft/ES/data:/usr/share/elasticsearch/data -v /root/soft/ES/plugins:/usr/share/elasticsearch/plugins --name ES01 elasticsearch:5.6.7
機器二啓動es命令:
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 -v /root/soft/ES/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /root/soft/ES/data:/usr/share/elasticsearch/data -v /root/soft/ES/plugins:/usr/share/elasticsearch/plugins --name ES02 elasticsearch:5.6.7
機器三啓動es命令:
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 -v /root/soft/ES/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /root/soft/ES/data:/usr/share/elasticsearch/data -v /root/soft/ES/plugins:/usr/share/elasticsearch/plugins --name ES03 elasticsearch:5.6.7
命令解釋:
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" :設置jvm的初始內存和最大內存,我這裏內存不夠,所以設置小了,你可以根據你自己的情況設置
-d :後臺i啓動
-p 9200:9200 -p 9300:9300 :docker容器和宿主機的端口映射
-v /root/soft/ES/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml:-v 是外部掛載命令符,
這個意思是:把root/soft/ES/config/es.yml 掛在到es的docker容器裏,替代es容器裏原本的elasticsearch.yml
-v /root/soft/ES/data:/usr/share/elasticsearch/data :意思同上,就是把es容器的數據存到/root/soft/ES/data裏
-v /root/soft/ES/plugins:/usr/share/elasticsearch/plugins :意思同上,就是把/root/soft/ES/plugins 文件夾 替代es的docker容器原本的plugins,這裏面可以放一下es的插件,比如 ik 分析器,等,這樣做是爲了刪除docker容器時,不影響插件,而不是向其他的,到docker容器裏去裝插件,要是docker容器刪了,裏面的插件就沒了,每次都要進容器裏面裝插件。外部掛在,不存在這樣的問題,刪了就刪了,重新run一個就像,data,config和plugins都在外面。
--name ES01 elasticsearch:5.6.7 啓動的這個容器名字是 ES01 ,elasticsearch:5.6.7是啓動的es版本
啓動後可以在瀏覽器中測試 ip:port即可
如:http://192.168.2.89:9200/ ,http://192.168.2.90:9200/ ,http://192.168.2.91:9200/
6 下面安裝head插件和kibana,套路,拉取對象,啓動鏡像,即可
head插件:
docker pull mobz/elasticsearch-head:5
docker run -d -p 9100:9100 --name es-manager mobz/elasticsearch-head:5
瀏覽器訪問:http://192.168.2.89:9100/
docker pull kibana:5.6.7
docker run --name kibana -e ELASTICSEARCH_URL=http://192.168.2.89:9200 -p 5601:5601 -d kibana:5.6.7
到此結束!