前言
elasticsearch-head是一个界面化的集群操作和管理工具,可以对集群进行傻瓜式操作。在网上看到两种安装方式,一种是通过elasticsearch本身的插件集成进行安装(这种方式好像不适用新版,我并没有研究出来怎么安装。。。),还有一种是利用npm和nodejs进行安装启动,这种方式相当于独立的一个进行去发布了这个插件,而github中给出的安装方法也是这种,所以新版的elasticsearch,我推荐用这种方式去安装。。
而最新版(elasticsearch6.1.1)的elasticsearch-head插件安装需要各种环境,安装得也不是一番丰顺,特此记录一下。
若有错误,还望指出!
环境
- linux虚拟机,centos7
- elasticsearch-head的zip包,github网址如下:https://github.com/mobz/elasticsearch-head
- nodejs的linux对应位数下载:https://nodejs.org/en/download/
如下图,这个是二进制已经编译好的压缩包,我在虚拟机中下载的就是这个。
安装
解压后如下图所示:
进入bin中可以看到最下面的三个可执行文件
#如何检查是否安装成功了呢?此处有两个命令
一定要cd到bin的目录下进行操作,因为你的/user/bin下并没有配置相关的软连接
./node -v
./npm -v
此处第一个node的命令可以顺利执行,不会报错,而执行./npm -v会报错如下:
/usr/bin/env: node: 没有那个文件或目录
此时需要配置环境变量即可,修改/etc/profile,行尾追加如下命令
#第一个是你安装的node路径
export NODE_HOME=/opt/nodejs/node-v8.9.4-linux-x64/
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
#执行此命令让其生效
source /etc/profile
上面的操作都做完后,在执行查看版本命令即可查出。
[root@192 bin]# ./node -v
v8.9.4
[root@192 bin]# ./npm -v
5.6.0
到这里,npm和nodejs算是安装成功了!继续回归我们的elasticsearch-head插件的安装。
进入到elasticsearch-head主目录,如下图:
在此处运行:
npm install
它会自动的从相应的地址进行下载对应的依赖包,从而放入到node_modules中去。。。
地址下载慢的问题:
#使用淘宝的镜像库进行下载,速度很快
npm config set registry https://registry.npm.taobao.org
安装过程中出现错误:
Please report this full log at https://github.com/Medium/phantomjs
npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v4.4.3
npm ERR! npm v3.10.9
npm ERR! code ELIFECYCLE
npm ERR! phantomjs-prebuilt@2.1.14 install: `node install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the phantomjs-prebuilt@2.1.14 install script 'node install.js
解决方案如下:
#忽略脚本继续进行安装
npm install phantomjs-prebuilt@2.1.14 --ignore-scripts
最终安装成功!成功后当前目录多了一个node_modules文件夹。。
启动head插件
第一步先不要着急启动,因为我是用虚拟机进行的搭建,所以希望的是本机也可以进行对应的ip网址访问,于是经各种查询探索,有2处需要注意:
- 修改Head主目录下的Gruntfile.js
- 修改elasticsearch下的配置文件
①先说修改Gruntfile.js
打开这个js文件找到如下图所示的地方,默认文件中是没有hostname属性的,我们需要手动添加。
connect: {
server: {
options: {
port: 9100,
base: '.',
keepalive: true,
hostname: '*'
}
}
}
修改后别忘了保存。。
②修改elasticsearch 的启动配置文件
[elsearch@192 config]$ vim elasticsearch.yml
这里说下为什么需要修改配置文件:
上图是从github上截的图
大致意思是,head插件连接elasticsearch需要注意的点:
因为head插件是一个独立进程,启动后是一个独立的服务器外加端口,比如我的虚拟机ip地址:http://192.168.0.111:9100/
而elasticsearch启动后也是一个独立的进程,ip地址:http://192.168.0.111:9200/
这样两个独立进程,虽然服务器ip地址相同,但是端口不同,此时会发生跨域的情况。。
于是官方给出这样一段话,我们在对elasticsearch启动的时候追加两个配置文件属性即可防止跨域。
#在文件末尾添加即可,此处需要注意yml的格式问题(有的博友已经遇到了不生效,详见评论---20180927)
http.cors.enabled: true
http.cors.allow-origin: "*"
到这里,基本需要注意的点都说到了,然后开始启动吧。
#切回到head的主目录下,执行如下命令
npm run start
可以看到如上图所示,已经发布成功了,接下来启动elasticsearch即可。。
这里如有需要,可以看我上一篇的单例搭建elasticsearch:
http://blog.csdn.net/s740556472/article/details/78992596
[elsearch@192 elasticsearch-6.1.1]$ ./bin/elasticsearch -d
本地访问一下看看效果!结果发现页面访问不通,后来突然想起来没有关闭防火墙,关闭后成功访问。如下图:
至此。。。完成。。。感觉linux下确实是各种环境依赖问题。。