前言
通過前面的學習我們已經(jīng)可以往elasticsearch中存數(shù)據(jù)了掰烟,我們知道elasticsearch天生就是為海量數(shù)據(jù)和大規(guī)模集群而存在的,所以如果我們想要管理這些數(shù)據(jù)和集群呢灶,那么肯定得借助其他的一些工具進行管理,不然大家可以想象一下尘喝,我想要知道我的索引有哪些炕倘,數(shù)據(jù)量有多大,還得發(fā)送一個一個REST去查瘤运。我想管理我elasticsearch集群中所有的主機窍霞,看看它們的運行狀態(tài),集群數(shù)量拯坟,還得一臺一臺機器遠程連接進去但金。這個工作量我想任何一個運維人員都是受不了的,所有這個時候郁季,如果有一個圖形管理界面冷溃,可以讓我們集中并很直觀管理我們的數(shù)據(jù)和集群钱磅,那這個工具沒有理由不使用把!而這個圖形界面就是elasticsearch-head插件似枕。
elasticsearch-head插件介紹
elasticsearch-head是一個界面化的集群操作和管理工具盖淡,可以對集群進行傻瓜式操作。你可以通過插件把它集成到elasticsearch(5.0版本后不支持此方式),也可以安裝成一個獨立webapp凿歼。elasticsearch-head插件是使用JavaScript開發(fā)的褪迟,依賴Node.js庫,使用Grunt工具構(gòu)建答憔,所以等會我們要安裝elasticsearch-head味赃,還需要先安裝Node.js和Grunt。
elasticsearch-head主要的作用有以下這些方面:
- 顯示集群的拓撲,并且能夠執(zhí)行索引和節(jié)點級別操作
- 搜索接口能夠查詢集群中原始json或表格格式的檢索數(shù)據(jù)
- 能夠快速訪問并顯示集群的狀態(tài)
- 有一個輸入窗口,允許任意調(diào)用RESTful API虐拓。這個接口包含幾個選項,可以組合在一起以產(chǎn)生不同的結(jié)果;
- 請求方法(get心俗、put、post侯嘀、delete),查詢json數(shù)據(jù),節(jié)點和路徑
- 支持JSON驗證器
- 支持重復請求計時器
- 支持使用javascript表達式變換結(jié)果
安裝步驟
安裝node.js
1另凌、下載node.js
下載地址:https://nodejs.org/dist/v6.9.2/node-v6.9.2-linux-x64.tar.xz
,把node.js的安裝包下載下來后上傳Linux主機上
2戒幔、解壓node.js安裝包
xz -d node-v6.9.2-linux-x64.tar.xz #使用xz命令解壓xz包,解壓出來的結(jié)果是tar包
tar –xvf node-v6.9.2-linux-x64.tar #解壓tar包
mv node-v6.9.2-linux-x64 /usr/local/node
3土童、配置環(huán)境變量
vi /etc/profile #打開配置文件
NODE_HOME=/usr/local/node #添加node_home變量
PATH=$PATH:$NODE_HOME/bin #把node_home變量添加到環(huán)境變量中
export PATH NOTH_HOME
source /etc/profile #重新加載環(huán)境變量配置文件
node -v #驗證node.js是否安裝成功诗茎,如果能查看到版本號說明安裝成功
npm -v #驗證npm工具是否安裝成功,如果能查看到版本號說明安裝成功
安裝elasticsearch-head插件
1献汗、下載elasticsearch-head
下載地址:https://github.com/mobz/elasticsearch-head
把源碼下載下來敢订,下載的包名為:elasticsearch-head-master.zip
,然后上傳到Linux主機上罢吃。
2楚午、解壓elasticsearch-head源碼包
unzip elasticsearch-head-master.zip
mv elasticsearch-head-master /usr/local/es-head
3、安裝grunt工具
cd /usr/local/es-head #進入elasticsearch-head插件的源碼目錄
npm install -g grunt --registry=https://registry.npm.taobao.org #安裝grunt工具尿招,由于在國內(nèi)連接國外的鏡像速度奇慢無比矾柜,所以我們使用了國內(nèi)taobao的鏡像。
4就谜、編譯elasticsearch-head源碼
npm install #使用npm編譯es-head源碼怪蔑,但是建議大家不要用這個這種方式安裝,因為使用npm編譯源碼會下載很多依賴丧荐,這些依賴默認到國外鏡像下載缆瓣,所以速度會很慢,看下面的命令:
npm install -g cnpm --registry=https://registry.npm.taobao.org #安裝cnpm虹统,這是鏈接中國的鏡像
cnpm install #使用cnpm代替npm編譯es-head源碼
編譯好后es-head根目錄下會出現(xiàn)一個叫node_modules的目錄弓坞,該目錄就是存放源碼編譯后的可執(zhí)行文件隧甚。
那到現(xiàn)在我們已經(jīng)把elasticsearch-head插件和它的依賴都安裝好了,那接下來我們就要對他的配置進行修改渡冻,準備運行呻逆。
插件配置修改
1、設置插件管理界面跨主機訪問
插件默認是只有本機的IP才能訪問的菩帝,也就是127.0.0.1咖城,這樣我們就無法跨主機訪問head 插件的管理界面,所以需要把它改成所有IP地址都能訪問呼奢。該配置在head插件安裝目錄根目錄下宜雀,文件名為Gruntfile.js。
cd /usr/local/es-head
vi Gruntfile.js
在該配置文件中connect-server-options下添加hostname: '0.0.0.0',
這個配置握础,這樣就不限制IP地址的訪問了辐董,具體看以下配置文件截圖:
注意:要把主機防火墻9100的端口打開,這里就不寫出打開防火墻端口的命令了禀综,之前也說過很多了简烘。
2、設置連接elasticsearch的地址
head插件默認是連接本機的elasticsearch的定枷,如果你的elasticsearch和head插件是安裝在同一臺主機上孤澎,那么就不需要修改配置,如果不是安裝在同一臺主機的欠窒,就必須修改配置了覆旭,配置文件在head插件安裝目錄的_site目錄下,文件名為app.js岖妄。
vi app.js #編輯app.js文件
把this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";
這行配置中的localhost
改成你elasticsearch服務所在IP地址(如果安裝在同一臺主機就不需要修改)型将,具體看以下配置文件截圖:
3、elasticsearch配置允許跨域訪問
cd /usr/local/elasticsearch/config #進入elasticsearch存放配置文件的目錄
vi elasticsearch.ym #編輯elasticsearch配置文件
在該配置文件中最末尾添加兩個屬性:http.cors.enabled: true
和http.cors.allow-origin: "*"
使head插件可以訪問elasticsearch荐虐,具體看以下配置文件截圖:
運行和使用head插件
1七兜、因為我們剛剛修改了elasticsearch的配置,所以首先需要重啟elasticsearch
2福扬、運行head插件
cd /usr/local/es-head #先進入到head插件的安裝目錄根目錄
grunt server #使用剛剛安裝的grunt工具運行head插件
如果能打印以下的信息腕铸,那就說明head插件安裝并運行成功,并且我們通過打印信息看到忧换,它告訴我們可以通過localhost:9100訪問web服務恬惯,該web服務就是head插件的管理界面,但是這個localhost要改成head插件所在的主機的具體IP地址亚茬。接下來我們就可以通過瀏覽器來訪問head插件的管理界面了酪耳,在這管理界面中管理我們的elasticsearch服務。
Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100
3、訪問head插件管理界面
我的head插件所在的IP地址為192.168.85.133碗暗,所以我在另一臺主機的瀏覽器地址欄輸入http://192.168.85.133:9100颈将。看到的界面如下:
head插件功能
通過剛剛我們用瀏覽器訪問head插件看到的管理界面言疗,大概可以知道它有幾塊功能塊:概述晴圾、索引、數(shù)據(jù)瀏覽噪奄、基本查詢死姚、復合查詢這幾塊,我們一個一個來看看:
1勤篮、概述:
這個功能塊主要是用來管理elasticsearch集群狀況的都毒,我們可以用圖形化界面來管理集群,查看集群中各個elasticsearch節(jié)點運行狀態(tài)和節(jié)點的各種信息碰缔。后面我們學習elasticsearch集群再來詳細看看它的功能账劲。
2、索引:
這部分功能塊是讓我們管理整個elasticsearch的索引的金抡,它展示了索引的列表瀑焦,并且我們可以在上面以圖形化的方式創(chuàng)建索引:
3、數(shù)據(jù)瀏覽:
這部分功能塊顧名思義就是瀏覽elasticsearch中的數(shù)據(jù)的梗肝,我們可以查看整個elasticsearch所有數(shù)據(jù)榛瓮,也可以根據(jù)索引、類型统捶、字段組合查詢出我們想要看的數(shù)據(jù)榆芦,左邊藍色背景的界面就是用于查詢的,其中字段查詢是可以精確查詢和模糊查詢喘鸟,右邊就是展示出具體的數(shù)據(jù)了。展示的數(shù)據(jù)列表中驻右,有索引什黑、類型和各個字段的數(shù)據(jù),在列表最上方還有顯示數(shù)據(jù)查詢所消耗的時間:
4堪夭、基本查詢:
基本查詢其實就相當于我們基礎班學的高級查詢了愕把,不過它的功能要強大很多,可以做各種組合查詢森爽,其實就是以圖形化的界面來查詢數(shù)據(jù)恨豁,不需要我們手動寫RESTful API去查詢,對于想要簡單快速查詢數(shù)據(jù)的情景下還是挺好用的爬迟,但是它只能做查詢搜索橘蜜,不能創(chuàng)建、修改和刪除數(shù)據(jù),如果想要執(zhí)行這些操作计福,那就只能用下一個功能塊“復合查詢”了跌捆。
5、復合查詢:
復合查詢就是發(fā)送RESTful API到elasticsearch服務執(zhí)行象颖,然后它返回執(zhí)行結(jié)果給我們佩厚,所以,我們使用head管理界面中的復合查詢功能塊说订,就可以不需要postman了抄瓦。