- elasticsearch-head插件介绍:
elasticsearch-head是一个界面化的集群操作和管理工具,可以对集群进行傻瓜式操作。你可以通过插件把它集成到elasticsearch(5.0版本后不支持此方式),由于我ES使用的是6.X版本,所以我把es-head安装成一个独立webapp,它依赖Node.js库,使用Grunt工具构建,所以需要先安装Node.js和Grunt。
- 安装node.js
(1)下载node.js
[root@srv187 elasticsearch]#cd /usr/elasticsearch/
[root@srv187 elasticsearch]#wget https://nodejs.org/dist/v6.9.2/node-v6.9.2-linux-x64.tar.xz
(2)解压文件:
[root@srv187 elasticsearch]#xz -d node-v6.9.2-linux-x64.tar.xz #解压出来是tar,需要继续解压
[root@srv187 elasticsearch]#tar –xvf node-v6.9.2-linux-x64.tar
[root@srv187 elasticsearch]#mv node-v6.9.2-linux-x64 /usr/local/node //移到node目录
(3)配置环境变量
[root@srv187 elasticsearch]vi /etc/profile #打开配置文件
在配置文件中添加:
NODE_HOME=/usr/local/node #添加node_home变量
PATH= $PATH:$JAVA_HOME/bin:$NODE_HOME/bin #把node_home变量添加到环境变量中
export PATH
重新加载配置文件
[root@srv187 elasticsearch]source /etc/profile #重新加载环境变量配置文件
[root@srv187 elasticsearch]node -v #验证node.js是否安装成功,如果能查看到版本号说明安装成功
[root@srv187 elasticsearch]npm -v #验证npm工具是否安装成功,如果能查看到版本号说明安装成功
- 安装elasticsearch-head插件
下载地址:https://github.com/mobz/elasticsearch-head 把源码elasticsearch-head-master.zip下载下来,然后上传到/usr/elasticsearch/下。解压。
[root@srv187 elasticsearch]unzip elasticsearch-head-master.zip
[root@srv187 elasticsearch]mv elasticsearch-head-master /usr/elasticsearch/es-head
- 安装grunt工具
进入es-head,执行npm,使用阿里镜像
[root@srv187 elasticsearch]npm install -g grunt --registry=https://registry.npm.taobao.org #安装grunt工具
- 编译elasticsearch-head源码
[root@srv187 elasticsearch]npm install -g cnpm --registry=https://registry.npm.taobao.org #安装cnpm
[root@srv187 elasticsearch]cnpm install #使用cnpm代替npm编译es-head源码
编译过程中,如果出现错误:Get /binary-mirror-config/latest from https://registry.npm.taobao.org error: ConnectionTimeoutError: Connect timeout for 5000ms, GET https://registry.npmjs.com/binary-mirror-config/latest -2 (connected: false, keepalive socket: false, agent status: {“createSocketCount”:4,“createSocketErrorCount”:0,“closeSocketCount”:4,“errorSocketCount”:0,“timeoutSocketCount”:0,“requestCount”:0,“freeSockets”:{},“sockets”:{},“requests”:{}}, socketHandledRequests: 1, socketHandledResponses: 0)……
可以执行命令查看请求时间。
[root@srv187 elasticsearch]time curl -v https://registry.npm.taobao.org/binary-mirror-config/latest
我的机器请求时间为5秒多,这里我修改urllib.js的常量 TIMEOUT、TIMEOUTS 的 5s 为 10s。 保存后继续执行cnpm install,执行成功。
[root@srv187 elasticsearch]vim /usr/local/genlot/node/lib/node_modules/cnpm/node_modules/urllib/lib/urllib.js
编译好后es-head根目录下会出现一个叫node_modules的目录,该目录就是存放源码编译后的可执行文件。
- 插件配置修改
(1)、设置插件管理界面跨主机访问
插件默认是只有127.0.0.1才能访问,这样我们就无法跨主机访问管理界面,所以需要把它改成0.0.0.0,才能跨机访问。该配置在head插件安装目录根目录下,文件名为Gruntfile.js。
[root@srv187 es-head]vim Gruntfile.js
在port: 9100上面加一行hostname: ‘0.0.0.0’,这样其他机器就可以访问了。如果有开防火墙,记得开放9100端口。如图:
(2)、设置连接elasticsearch的地址:插件默认是连接本机es的,即127.0.0.1:9200,如果ES不在本机上或者端口不是默认端口,需要在app.js进行配置,配置文件在head插件安装目录的_site目录下。把this.base_uri = this.config.base_uri || this.prefs.get(“app-base_uri”) || “http://localhost:9200”;这行配置中的http://localhost:9200改成你elasticsearch服务所在IP地址。
[root@srv187 es-head]vim _site/app.js
(3)elasticsearch配置允许跨域访问:进入es安装目录,修改配置文件,在最后加上两行:
http.cors.enabled: true
http.cors.allow-origin: “*”
保存后重启es。
[root@srv187 elasticsearch]vim config/elasticsearch.yml
- 运行head插件
进入es-head 下,运行grunt server
[root@srv187 elasticsearch] cd es-head
[root@srv187 es-head] grunt server
如果能打印以下的信息,那就说明head插件安装并运行成功,我们可以通过http://ip:9100访问管理页面。
这里并不是后台启动,我们可以创建一个后台启动文件,使其能够后台启动。
[root@srv187 es-head]vim es-head-start.sh
文件输入以下信息,保存后执行 sh es-head-start.sh实现后台启动。
#!/bin/bash
echo "START elasticsearch-head "
nohup grunt server &exit
- 使用head插件