Elasticserach6.x之Head外掛安裝-yellowcong
阿新 • • 發佈:2019-01-23
不得不說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: "*"
修改後,檢視連線情況