1.安装ElasticSearch
2.安装nidejs
3.下载elastichsearch-head插件
https://github.com/mobz/elasticsearch-head
4.安装elastichsearch-head插件
(1)安装 grunt
grunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的工作,6.0里的head插件就是通过grunt启动的。因此需要安装一下grunt:
npm install -g grunt-cli
(2)项目install
到elasticsearch-head目录下
npm install
执行该命名可能会出现以下错误:
npm ERR! Failed at the phantomjs-prebuilt@2.1.16 install script.
此时忽略phantomjs-prebuilt@2.1.16,执行命令如下
npm install phantomjs-prebuilt@2.1.16 --ignore-scripts
启动elastichsearch-head
npm run start
验证elasticsearch-head,在浏览器中输入主机地址和端口
5.配置
因为 es-head 默认端口为9100,访问ES 9200 需要跨域,所以需要配置 es 支持跨域:
vi elasticsearch.yml
添加如下代码:
network.host: 0.0.0.0
#开启跨域访问支持,默认为false
http.cors.enabled: true
#跨域访问允许的域名地址
http.cors.allow-origin: "*"
谷歌浏览器可能打开报错,可以用edge浏览器
另外可以修改 es-head 默认ES连接地址:
app.js 4388行 this.base_uri
注意:如果页面进行数据浏览报406 Not Acceptable
问题现象:使用es客户端连接es之后,点击数据浏览的时候右边无数据,F12查看发现报了406 Not Acceptable错误
问题原因:contentType不一致导致的,前端请求的contentType是application/json;charset=UTF-8,而elasticsearch hean master的前端代码中用的是application/x-www-form-urlencoded
解决方法:
1、找到客户端安装路径
2、找到 vendor.js 文件共有两处,此文件位于/usr/src/app/_site文件夹下
将 6886行 contentType: “application/x-www-form-urlencoded” 修改为 contentType: “application/json;charset=UTF-8”
然后再将 7574行 var inspectData = s.contentType === “application/x-www-form-urlencoded” && 修改为 var inspectData = s.contentType === “application/json;charset=UTF-8” &&
3、不用重启,直接强制刷新浏览器验证。