1. 程式人生 > >Elasticserach6.x之Head外掛安裝-yellowcong

Elasticserach6.x之Head外掛安裝-yellowcong

不得不說Elasticsearch是個坑,6.x的外掛安裝和2.x的真尼瑪差別真的好大啊。下面寫了詳細的安裝過程,以及安裝過程中遇到的坑,希望大家引以為戒,在配置環境的時候,注意版本的問題,安裝教程,把版本資訊弄清楚。這個head外掛依賴於nodejs,phantomjs

安裝目錄

節點 服務 目錄
192.168.66.100:9200 elasticsearch /usr/local/elastic/elasticsearch-6.0.1
nodejs /usr/local/nodejs/node-v8.9.0-linux-x64
phantomjs /usr/local/phantomjs/phantomjs-2.1.1-linux-x86_64
192.168.66.100:9100 head /usr/local/elastic/plugins/elasticsearch-head-master

安裝前準備

nodejs安裝

安裝nodejs,同時還需要安裝grunt,通過修改/etc/profile來配置nodejs的環境變數不要用,所以通過軟連線來配置

#管網地址
https://nodejs.org/en/download/

#我的伺服器地址
http://yellowcong.qiniudn.com/node-v8.9.0-linux-x64.tar
.xz #解壓,注意是 tar.xz檔案 tar -xvf /usr/local/nodejs/node-v8.9.0-linux-x64.tar.xz #建立node的軟連線 ln -s /usr/local/nodejs/node-v8.9.0-linux-x64/bin/node /usr/bin/node ln -s /usr/local/nodejs/node-v8.9.0-linux-x64/bin/npm /usr/bin/npm #設定nodejs安裝軟體的代理伺服器 npm config set registry https://registry.npm.taobao.org #執行npm,安裝grunt npm install -g grunt npm install -g grunt-cli
#建立軟連線 grunt ln -s /usr/local/nodejs/node-v8.9.0-linux-x64/bin/grunt /usr/bin/grunt

phantomjs安裝

這個js是在head編譯的時候需要

#官網下載地址
https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2

#我自己的下載地址
wget http://yellowcong.qiniudn.com/phantomjs-2.1.1-linux-x86_64.tar.bz2

# 下載好後進行解壓(由於是bz2格式,要先進行bzip2解壓成tar格式,再使用tar解壓)
bzip2 -d phantomjs-2.1.1-linux-x86_64.tar.bz2

# 再使用tar進行解壓到/usr/local/目錄下邊
tar -xvf phantomjs-2.1.1-linux-x86_64.tar -C /usr/local/

# 安裝依賴軟體
yum -y install wget fontconfig

# 最後一步就是建立軟連線了(在/usr/bin/目錄下生產一個phantomjs的軟連線,/usr/bin/是啥目錄應該清楚,不清楚使用 echo $PATH檢視)
ln -s /usr/local/phantomjs/bin/phantomjs /usr/bin/ 

測試
這裡寫圖片描述

安裝head

#下載地址
wget http://yellowcong.qiniudn.com/elasticsearch-head-master.zip

#安裝unzip解壓工具(如果沒有unzip,就需要安裝這個)
yum install -y unzip 

#解壓檔案到 head
unzip elasticsearch-head-master.zip 

#進入head的目錄
cd elasticsearch-head-master/

#安裝一下這個bzip2 ,如果沒有,在編譯head,會報錯
yum install -y bzip2

#安裝(進入 elasticsearch-head-master)的目錄,執行安裝命令
sudo npm install

#配置head
#head的啟動埠是9100
vim Gruntfile.js
options: {
    //配置0.0.0.0 表示匹配這個主機的所有ip,匹配不上的就會走這個了
        hostname:'0.0.0.0',
        port: 9100,
        base: '.',
        keepalive: true
}

#啟動服務
grunt server

進入了 elasticsearch-head-master目錄,然後安裝
這裡寫圖片描述

設定繫結的ip
這裡寫圖片描述

啟動head服務
這裡寫圖片描述

啟用http配置

#修改elasticsearch.yml配置檔案
vim config/elasticsearch.yml

#加入下面配置
http.cors.enabled: true 
http.cors.allow-origin: "*"

訪問測試
這裡寫圖片描述

錯誤合集

/usr/bin/env: node: 沒有那個檔案或目錄

這裡寫圖片描述

沒有找到node這個命令,需要建立軟連線到usr/bin目錄

ln -s /usr/local/nodejs/node-v8.9.0-linux-x64/bin/node /usr/bin/node

tar (child): bzip2:無法 exec: 沒有那個檔案或目錄

Download already available at /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
Verified checksum of previously downloaded file
Extracting tar contents (via spawned process)
Error extracting archive
Phantom installation failed { Error: Command failed: tar jxf /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
tar (child): bzip2:無法 exec: 沒有那個檔案或目錄
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now

這裡寫圖片描述

解決方案

#安裝解壓包
yum install -y bzip2

Error: EACCES: permission denied

#需要使用sudo 用管理員來安裝,不然沒有許可權
sudo npm install

這裡寫圖片描述

head沒有連線上叢集

可以發現叢集沒有連線上的問題
這裡寫圖片描述

修改config/elasticsearch.yml配置

#修改elasticsearch.yml配置檔案
vim config/elasticsearch.yml

#加入下面配置
http.cors.enabled: true 
http.cors.allow-origin: "*"

這裡寫圖片描述

修改後,檢視連線情況
這裡寫圖片描述

參考文章