Elasticsearch5.6.4叢集搭建
阿新 • • 發佈:2019-02-19
本次搭建的是一個三節點的叢集
(一)es的安裝
(1)下載安裝包
(2)解壓到指定目錄
(3)進入根目錄,修改config/elasticsearch.yml檔案,清空內容,新增如下配置
cluster.name: es
node.name: ${HOSTNAME}
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: ${HOSTNAME}
http.port: 9600
transport.tcp.port: 9700
discovery.zen.ping.unicast .hosts: ["host0:9700", "host1:9700"]
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
注意配置主機名與ip的對映
(4)修改檔案config/jvm.options ,設定堆記憶體,其他的根據情況調整
-Xms4g
-Xmx4g
(5)如果系統裡面有多個jdk存在,可以修改bin/elasticsearch裡面,指定jdk版本
export JAVA_HOME=/usr/java/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
(6)配置完成後分發到所有機器上
(7)寫一個啟動叢集和關閉叢集的指令碼 es.sh
注意,同級目錄下需要有一個hosts檔案,裡面按行配置所有用到的ip
#啟動叢集方法
start(){
for ip in `cat hosts`
do
echo $ip"開始啟動es節點"
ssh $ip "cd /home/search/elasticsearch && bin/elasticsearch -d -p /home/search/elasticsearch/es_pid "
done
}
#關閉叢集方法
stop(){
for ip in `cat hosts`
do
echo $ip"開始關閉es節點"
ssh $ip " cat /home/search/elasticsearch/es_pid | xargs kill -15 "
done
}
(二)head的安裝
//下載原始碼
(1)git clone git://github.com/mobz/elasticsearch-head.git
//進入根目錄
(2)cd elasticsearch-head
//安裝
(3)npm install
//啟動
(4)npm run start
這裡需要注意es5的head不再是es的外掛而是需要單獨作為一個服務提供,上面我們安裝es時,最後兩行配置屬性是開啟了es的跨域訪問,所以head作為一個單獨的服務,是可以訪問es叢集的。
此外es5的head安裝依賴nodejs環境,所以我們要安裝node 步驟如下:
這裡採用的是下載官網編譯好的二進位制包直接安裝
(1)wget https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.xz
(2)xz -d node-v8.9.4-linux-x64.tar.xz
(3)設定全域性環境變數
export NODE_HOME=/usr/local/node/8.9.4
export PATH=$NODE_HOME/bin:$PATH
(4)驗證
node-v
這裡還需要自己製作一個啟動和關閉head指令碼:
//start.sh指令碼
nohup npm run start &> es5_head.log &
//stop.sh指令碼
ps -ef | grep grunt | awk '{print $2}' | xargs kill -9
head只需要在一臺es節點上安裝即可
總結:
本文介紹了es5.6.4版本叢集的搭建以及es5的head的安裝,並給出了方便管理的啟動和關閉指令碼。至此我們的叢集已經能正常工作了。當然es5裡面還有很多其他的外掛比如典型的kibana,x-pack,kopf(最新的版本叫cerebro),這些會在後面的文章中介紹。