什么是elasticsearch-head
ElasticSearch Head是集群管理、数据可视化、增删查改、查询语句可视化工具,提供了一个直观访问ES库的方式。
elasticsearch-head有哪些主要功能
1、方便的查看集群状态,包括有多少个replication,多少个shared 2、查看索引的状态 3、可以直接浏览数据 4、提供便捷的查询方式,通过选择的方式查询 5、提供rest api方式的查询
elasticsearch-head网上流传的安装方式
1、一种是通过elasticsearch本身的插件集成进行安装 2、 利用npm和nodejs进行安装启动,github中给出的安装方法也是这种,本文就是以这种方式进行解说
安装
代码语言:javascript复制1、下载head插件
wget https://github.com/mobz/elasticsearch-head/archive/master.zip
代码语言:javascript复制[root@oa3 other]# wget https://github.com/mobz/elasticsearch-head/archive/master.zip
--2018-10-26 08:51:55-- https://github.com/mobz/elasticsearch-head/archive/master.zip
正在解析主机 github.com (github.com)... 192.30.253.112, 192.30.253.113
正在连接 github.com (github.com)|192.30.253.112|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Found
位置:https://codeload.github.com/mobz/elasticsearch-head/zip/master [跟随至新的 URL]
--2018-10-26 08:51:57-- https://codeload.github.com/mobz/elasticsearch-head/zip/master
正在解析主机 codeload.github.com (codeload.github.com)... 192.30.253.120, 192.30.253.121
正在连接 codeload.github.com (codeload.github.com)|192.30.253.120|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:921421 (900K) [application/zip]
正在保存至: “master.zip”
100%[======================================================================================================================================================================================>] 921,421 171KB/s 用时 5.3s
2018-10-26 08:52:03 (171 KB/s) - 已保存 “master.zip” [921421/921421])
代码语言:javascript复制2、解压下载好的head
unzip master.zip
解压成功后,安装目录下会多出如下文件夹
代码语言:javascript复制drwxr-xr-x. 6 root root 4096 9月 15 2017 elasticsearch-head-master
代码语言:javascript复制3、安装nodejs
wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz
代码语言:javascript复制[root@oa3 other]# wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz
--2018-10-26 09:01:42-- https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz
正在解析主机 npm.taobao.org (npm.taobao.org)... 114.55.80.225
正在连接 npm.taobao.org (npm.taobao.org)|114.55.80.225|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Found
位置:http://cdn.npm.taobao.org/dist/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz [跟随至新的 URL]
--2018-10-26 09:01:42-- http://cdn.npm.taobao.org/dist/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz
正在解析主机 cdn.npm.taobao.org (cdn.npm.taobao.org)... 182.106.155.235, 182.106.155.232, 182.106.155.233, ...
正在连接 cdn.npm.taobao.org (cdn.npm.taobao.org)|182.106.155.235|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:12189839 (12M) [application/octet-stream]
正在保存至: “node-v4.4.7-linux-x64.tar.gz”
100%[======================================================================================================================================================================================>] 12,189,839 4.04MB/s 用时 2.9s
2018-10-26 09:01:45 (4.04 MB/s) - 已保存 “node-v4.4.7-linux-x64.tar.gz” [12189839/12189839])
代码语言:javascript复制4、解压nodejs安装包
tar -zxvf node-v4.4.7-linux-x64.tar.gz
代码语言:javascript复制5、配置nodejs环境变量
vim /etc/profile
加入如下内容
代码语言:javascript复制export NODE_HOME=/oa/other/node-v4.4.7-linux-x64
export PATH=$PATH:$NODE_HOME/bin
执行
代码语言:javascript复制source /etc/profile
查看nodejs环境变量,是否配置成功
代码语言:javascript复制echo $NODE_HOME
控制台输出
代码语言:javascript复制/oa/other/node-v4.4.7-linux-x64
6、安装grunt
grunt是基于Node.js的项目构建工具,可以进行打包压缩、测试、执行等等的工作,head插件就是通过grunt启动
代码语言:javascript复制cd /oa/other/elasticsearch-head-master/
npm install -g grunt-cli
查看是否安装成功
代码语言:javascript复制grunt -version
控制台输出
代码语言:javascript复制grunt-cli v1.3.1
7、安装依赖
切换进入elasticsearch-head-master目录。如果你的网速较快,可以使用这个命令
代码语言:javascript复制npm install
不然推荐使用国内镜像
代码语言:javascript复制npm install -g cnpm --registry=https://registry.npm.taobao.org
注:如果使用npm install命令出现
代码语言:javascript复制npm ERR! phantomjs-prebuilt@2.1.16 install: `node install.js`
则再次运行
代码语言:javascript复制npm install phantomjs-prebuilt@2.1.16 --ignore-scripts
即可
注:如果使用国内镜像安装,当运行grunt server,出现
代码语言:javascript复制grunt-cli: The grunt command line interface (v1.3.1)
Fatal error: Unable to find local grunt.
If you're seeing this message, grunt hasn't been installed locally to
your project. For more information about installing and configuring grunt,
please see the Getting Started guide:
https://gruntjs.com/getting-started
则运行
代码语言:javascript复制npm install -g grunt
即可
相关配置文件修改
1、修改Elasticsearch配置文件
在elasticsearch.yml文件,添加支持跨域访问
代码语言:javascript复制http.cors.enabled: true
http.cors.allow-origin: "*"
2、修改Gruntfile.js
修改 elasticsearch-head-master/Gruntfile.js,在connect属性中,增加hostname: ‘0.0.0.0’
代码语言:javascript复制vim Gruntfile.js
修改为
代码语言:javascript复制connect: {
server: {
options: {
hostname: '0.0.0.0',
port: 9107,
base: '.',
keepalive: true
}
}
}
注:端口可以任意
3、修改连接地址(可选)
修改 elasticsearch-head-master/_site/app.js
注:esIP:esPort 为elasticsearch为es的连接地址,诸如:192.168.1.1:9200
启动elasticsearch-head
代码语言:javascript复制cd elasticsearch-head-master
grunt server
控制台输出
代码语言:javascript复制Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9107
elasticsearch-head设置后台启动与关闭
启动
直接用
代码语言:javascript复制grunt server
这种方式启动,当ssh终端关闭或者执行ctrl c命令时,head就关闭了。
所以可以执行如下命令,让head在后台运行
代码语言:javascript复制cd elasticsearch-head-master
nohup grunt server > /dev/null 2>&1 &
关闭
网传的后台关闭是用
代码语言:javascript复制ps -ef |grep head
然后执行
kill -9 进程号
但我试过了不管用。其实head的启动用是基于grunt启动,只要找出grunt进程,然后关闭进程号就行
代码语言:javascript复制[root@oa3 elasticsearch-head-master]# ps -ef | grep grunt
root 11622 1 1 14:17 ? 00:00:05 grunt
root 12097 11964 0 14:26 pts/1 00:00:00 grep --color=auto grunt
[root@oa3 elasticsearch-head-master]# kill -9 11622
当然上面的启动关闭可以做成shell脚本,方便执行。具体脚本就不提供了,很简单的,比如关闭后台的head,其shell脚本为:
代码语言:javascript复制ps -ef |grep grunt|awk '{print $2}'|xargs kill -9
最后展示一下head页面