引言:elasticsearch-head是一个用于管理Elasticsearch的web前端插件。该插件在es5之前用命令/bin/plugin install mobz/elasticsearch-head 但在es5中可以以独立服务的形式进行安装使用。本文将介绍如何操作。
Step1, 安装nodejs和npm
1
|
yum -y
install
nodejs npm
|
Step2, 下载源码并安装
1
2
3
|
git clone https:
//github
.com
/mobz/elasticsearch-head
.git
cd
elasticsearch-
head
/
npm
install
|
此处有坑:
注:如果出现下面问题:
npm WARN elasticsearch-head@0.0.0 license should be a valid SPDX license expression
原因:spdx license,开源软件或者其他合作类软件的一个使用声明,查看官网https://spdx.org/licenses/,“License Text”里的内容
解决问题:打开elasticsearch-head目录下的package.json文件,找到license位置,修改为上面这个网站上存在Identifier
Apache内容修改为Apache-2.0
Step3,es配置修改&elasticsearch-head插件源码修改
① 修改elasticsearch.yml,增加跨域的配置(需要重启es才能生效)
1
2
|
http.cors.enabled:
true
http.cors.allow-origin:
"*"
|
② 编辑head/Gruntfile.js,修改服务器监听地址,增加hostname属性,将其值设置为*。
以下两种配置都是OK的
# Type1
1
2
3
4
5
6
7
8
9
10
|
connect: {
hostname
:
'*'
,
server: {
options: {
port: 9100,
base:
'.'
,
keepalive:
true
}
}
}
|
# Type 2
1
2
3
4
5
6
7
8
9
10
|
connect: {
server: {
options: {
hostname
:
'*'
,
port: 9100,
base:
'.'
,
keepalive:
true
}
}
}
|
③ 编辑head/_site/app.js,修改head连接es的地址,将localhost修改为es的IP地址
# 原配置
1
|
this.base_uri = this.config.base_uri || this.prefs.get(
"app-base_uri"
) ||
"http://localhost:9200"
;
|
# 将localhost修改为ES的IP地址
1
|
this.base_uri = this.config.base_uri || this.prefs.get(
"app-base_uri"
) ||
"http://YOUR-ES-IP:9200"
;
|
Step4,启动elasticsearch-head
1
|
cd
elasticsearch-
head
/ && .
/node_modules/grunt/bin/grunt
server
|
注意:
① 此时elasticsearch-head为前台启动,如果终端退出,那么elasticsearch-head服务也会随之关闭。
② 在非elasticsearch-head目录中启动server会失败!因为grunt需要读取目录下的Gruntfile.js。
So,你需要将之放到后台进行运行,nohup,&,screen等各种方法请各位随意选择~
ps:我会用screen来做类似的操作~