1. JDK的安裝及配置
由于Elasticsearch依賴于JDK,且本次示範的是Elasticsearch7.4.0的叢集配置,是以需要JDK11的支援。JDK的環境配置有需要請移步:Linux下JDK安裝及配置
2. Elasticsearch叢集的搭建和Elasticsearch-head的安裝及配置
2.1 下載下傳Elasticsearch并上傳到伺服器
下載下傳位址:華為資源網站
選擇 版本為 7.4.0 的進行下載下傳
放到目錄下 :/zdrl/elasticsearch/
輸入指令進行解壓:
tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz
2.2 解壓并配置三個節點的Elasticsearch叢集
在/zdrl/elasticsearch 目錄下輸入指令
mkdir elasticsearch
mv elasticsearch-7.4.0 elasticsearch-cluster/elasticsearch9201
2.2.1 配置第一個es節點:node-9201
2.2.1.1 配置jvm.options
cd elasticsearch9201/config
vim jvm.options
修改jvm的啟動參數:
-Xms150m
-Xmx150m
2.2.1.2 配置 elasticsearch.yml
#叢集名稱
cluster.name: es-cluster
#節點名稱
node.name: node-9201
#端口
http.port: 9201
#内部節點之間溝通端口
transport.tcp.port: 9301
#是不是有資格主節點
node.master: true
#是否存儲資料
node.data: true
#ip位址
network.host: 0.0.0.0
#es7.x 之後新增的配置,節點發現
discovery.seed_hosts: ["172.16.86.142:9301", "172.16.86.142:9302", "172.16.86.142:9303"]
#es7.x 之後新增的配置,初始化一個新的叢集時需要此配置來選舉master
cluster.initial_master_nodes: ["node-9201", "node-9202", "node-9203"]
#資料存儲路徑
path.data: /zdrl/elasticsearch/elasticsearch-cluster/data/data9201
#日志存儲路徑
path.logs: /zdrl/elasticsearch/elasticsearch-cluster/logs/logs9201
由于配置了 資料存儲路徑 和 日志存儲路徑,是以在對應的位置先建立好
2.2.1.3 安裝中文分詞器ik
進入 /zdrl/elascticsearch/elasticsearch-cluster/elasticsearch9201/bin 目錄輸入如下指令:
./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.0/elasticsearch-analysis-ik-7.4.0.zip
等待下載下傳
下載下傳完成後會提示輸入y/N 來決定是否安裝
輸入 y 即可以完成安裝,安裝完成可在 elasticsearch根目錄的plugin目錄下檢視插件
2.2.2 配置第二個es節點:node-9202
2.2.2.1 直接複制第一個es檔案夾
2.2.2.2 修改 elasticsearch.yml 檔案
#叢集名稱
cluster.name: es-cluster
#節點名稱
node.name: node-9202
#端口
http.port: 9202
#内部節點之間溝通端口
transport.tcp.port: 9302
#是不是有資格主節點
node.master: true
#是否存儲資料
node.data: true
#ip位址
network.host: 0.0.0.0
#es7.x 之後新增的配置,節點發現
discovery.seed_hosts: ["172.16.86.142:9301", "172.16.86.142:9302", "172.16.86.142:9303"]
#es7.x 之後新增的配置,初始化一個新的叢集時需要此配置來選舉master
cluster.initial_master_nodes: ["node-9201", "node-9202", "node-9203"]
#資料存儲路徑
path.data: /zdrl/elasticsearch/elasticsearch-cluster/data/data9202
#日志存儲路徑
path.logs: /zdrl/elasticsearch/elasticsearch-cluster/logs/logs9202
2.2.3 配置第三個es節點:node-9203
2.2.3.1 直接複制第一個es檔案夾
2.2.3.2 修改 elasticsearch.yml 檔案
#叢集名稱
cluster.name: es-cluster
#節點名稱
node.name: node-9203
#端口
http.port: 9203
#内部節點之間溝通端口
transport.tcp.port: 9303
#是不是有資格主節點
node.master: true
#是否存儲資料
node.data: true
#ip位址
network.host: 0.0.0.0
#es7.x 之後新增的配置,節點發現
discovery.seed_hosts: ["172.16.86.142:9301", "172.16.86.142:9302", "172.16.86.142:9303"]
#es7.x 之後新增的配置,初始化一個新的叢集時需要此配置來選舉master
cluster.initial_master_nodes: ["node-9201", "node-9202", "node-9203"]
#資料存儲路徑
path.data: /zdrl/elasticsearch/elasticsearch-cluster/data/data9203
#日志存儲路徑
path.logs: /zdrl/elasticsearch/elasticsearch-cluster/logs/logs9203
2.3 啟動es叢集并驗證
2.3.1 建立esuser使用者用于啟動elasticsearch
建立 es 分組
groupadd es
建立 esuser 使用者
useradd esuser
2.3.2 配置設定權限給esuser
chgrp -R esuser elasticsearch9201
chown -R esuser elasticsearch9201
chgrp -R esuser elasticsearch9202
chown -R esuser elasticsearch9202
chgrp -R esuser elasticsearch9203
chown -R esuser elasticsearch9203
chgrp -R esuser data
chown -R esuser data
chgrp -R esuser logs
chown -R esuser logs
2.3.3 切換esuser并且啟動elasticsearch
切換 esuser 使用者
su esuser
在 /zdrl/elasticsearch/elasticsearch-cluster 目錄下輸入指令:-d 表示在背景運作
./elasticsearch9201/bin/elasticsearch -d
./elasticsearch9202/bin/elasticsearch -d
./elasticsearch9203/bin/elasticsearch -d
檢視程序:ps -ef|grep elasticsearch
2.3.4 驗證啟動結果
由于是我自己的雲伺服器,比較辣雞,起了三個es發現快當機了,是以把node-9203節點的給停掉了。
浏覽器:
http://120.77.177.194:9201/
浏覽器:
http://120.77.177.194:9202/
2.4 下載下傳Elasticsearch-head并配置
2.4.1 安裝nodejs
elasticsearch-head依賴于nodejs,是以需要先安裝nodejs
下載下傳位址:nodejs官網
下載下傳完成需要手動上傳到伺服器上,也可以直接複制下面指令進行下載下傳
wget -c https://nodejs.org/dist/v12.16.2/node-v12.16.2-linux-x64.tar.xz
下載下傳到 /zdrl/nodejs 目錄中
進行解壓:
tar -xvf node-v12.16.2-linux-x64.tar.xz
更改名稱為 nodejs12
配置nodejs環境變量
export NODE_HOME=/zdrl/nodejs/nodejs12
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
讓配置生效:
source /etc/profile
驗證:
node -v
npm -v
2.4.2 下載下傳Elasticsearch-head并配置
2.4.2.1 下載下傳Elasticsearch-head
head插件其實了解為一個項目,具有前端頁面的項目,可以選擇手動下載下傳并上傳到雲伺服器,連結如下:elasticsearch-head github下載下傳位址
也可以在伺服器上安裝 git ,使用 git 指令進行拉取
安裝 git
檢查
git --version
拉取項目
在 /zdrl/elasticsearch/elasticsearch-head 目錄中拉取
git clone https://github.com/mobz/elasticsearch-head.git
解壓
unzip elasticsearch-head-master.zip
解壓之後得到的目錄結構
2.4.2.2 安裝
進入 elasticsearch-head 項目的根目錄輸入指令進行安裝操作
即 /zdrl/elasticsearch/elasticsearch-head/elasticsearch-head-master 目錄下 進行安裝
如果報錯
則使用下面指令
npm install -g
2.4.2.3 配置Elasticsearch,使得es-head插件能夠遠端通路es
修改 elasticsearch.yml 檔案
由于elasticsearch-head插件遠端通路可能存在跨域的問題,是以需要允許跨域通路。
下面開始依次修改各個節點的 elasticsearch.yml 檔案
在 /zdrl/elasticsearch/elasticsearch-cluster 目錄下:
以 node-9201 節點為例,其他照搬即可
vim elasticsearch9201/config/elasticsearch.yml
加入以下配置
#配置開啟跨域
http.cors.enabled: true
#配置允許任何域名通路
http.cors.allow-origin: "*"
2.4.3 驗證
重新開機es
如果前面 啟動的 elasticsearch 程序沒有停止,重新開機可能會報端口占用,建議先停止程序再啟動
ps -ef|grep elasticsearch
檢視到程序并找到對應的 pid,使用指令進行終結
kill -9 pid
啟動 elasticsearch
在 /zdrl/elasticsearch/elasticsearch-cluster 目錄下
./elasticsearch9201/bin/elasticsearch -d
./elasticsearch9202/bin/elasticsearch -d
啟動elasticsearch-head
在 /zdrl/elasticsearch/elasticsearch-head/elasticsearch-head-master 目錄下執行指令:
head插件預設是以 9100 端口其中,檢視端口占用
浏覽器通路
輸入:http://ip:9100
可以看到有兩個叢集節點,至此 Elasticsearch + Elasticsearch-head 搭建完成。