前言
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启动的时候追加两个配置文件属性即可防止跨域。
#在文件末尾添加即可 http.cors.enabled: true http.cors.allow-origin: "*"
到这里,基本需要注意的点都说到了,然后开始启动吧。
#切回到head的主目录下,执行如下命令 npm run start
可以看到如上图所示,已经发布成功了,接下来启动elasticsearch即可。。
这里如有需要,可以看我上一篇的单例搭建elasticsearch:
http://www.voidcn.com/article/p-wjzstrea-brp.html[elsearch@192 elasticsearch-6.1.1]$ ./bin/elasticsearch -d
本地访问一下看看效果!结果发现页面访问不通,后来突然想起来没有关闭防火墙,关闭后成功访问。如下图:
至此。。。完成。。。感觉Linux下确实是各种环境依赖问题。。
精彩评论