Elasticsearch head 以下简称 ES Head
1 简介
ES Head其实是ES的Restful API可视化操作的客户端。所有功能都是基于XHR来请求ES开放的Restful API来进行一列操作。
Elasticsearch head 基本上满足所有常用操作。
Elasticsearch官方推荐使用Kibana来操作ES,功能很强大。推荐读者去学习一下。
2 安装
ES Head的安装有两种方式:
- 浏览器CRX插件
- 下载源码,使用node.js环境运行
以上两种安装方式有网络上有很多详细步骤。这里不再赘述。
此教程适用于第二种安装方式(比较好修改源码),所以读者可以用第二种方式来安装。
这里贴一个地址:https://www.cnblogs.com/xuwenjin/p/8792919.html
3 连接阿里云ES
这里所说的阿里云ES是阿里云的Elasticsearch产品。而并不是在ECS里自己安装、配置Elasticsearch。
3.1 开通阿里云ES
内容:百度搜,或者后面再补充。
PS:听君一席话,如听一席话。。。
3.2 开启阿里云ES外网访问
内容:百度搜,或者后面再补充。
PS:听君一席话,如听一席话。。。
3.3 连接阿里云ES的关键点
要连接上阿里云ES的关键点是要进行身份认证(如果你确定你的阿里云ES没有开认证的话,下面不用看了,这不是你要搜的答案)。
阿里云ES采用Basic Auth的认证方式来认证使用者的信息。关于Basic Auth的详细知识,读者需另做了解。
在这里我们要知道的是。只要为我们的HTTP请求带上Basic Auth认证信息就可以访问阿里云ES了。
以下是方法:
3.3.1 知道阿里云ES账号密码
如果阿里云ES没有开启认证的话,一般不会碰上本文描述的问题~~~
3.3.2 将账号密码变为Basic Auth的形式
这里贴一个在线工具地址:http://web.chacuo.net/safebasicauth
3.3.3 将认证请求头信息设置到ES Head 发送的每一个请求里
具体操作请看第4步。
3.4 修改ES Head代码
运行并打开ES head 管理页面,按F12打开浏览器的开发者工具。切换到Network标签,点击连接。
到这里可以发现,ES Head所有的请求都是通过vendor.js这个文件发起的请求。点击文件名,查看源码:
由上图可以发现两个关键地方:
- 所有请求由xhr.send来发送。
- headers里面的内容会被一个for循环设置到xhr的RequestHeader里
好的,现在要做的就是把Basic Auth认证信息加到headers里就可以了。
- 打开目标JS文件,进行修改
为了快速使用。我们直接将认证信息在代码里静态化设置了。如果你会一些前端知识,可以修改ES Head的页面,提供输入账号密码的功能。
注意:一定要在for循环之前添加认证信息,否则不会被设置进RequestHeader里。
至此,我们完成了ES Head代码的修改,我们已经成功了80%了。剩下的20%是还需要解决跨域的问题。
3.5 解决浏览器跨域问题
解决跨域有很多种方式。读者需要自己再去了解。笔者这里使用一个简单粗暴的方式,那就是直接关闭浏览器的跨域检测。
- 新建一个浏览器快捷方式。
- 右击,属性,修改启动参数
设置启动参数:
–disable-web-security --user-data-dir=D:\eshead-data
4 测试
使用3.5步骤创建的快捷方式打开浏览器,访问ES Head的管理页地址:
大功告成!
核心问题是:如何解决认证信息,阿里云使用Basic Auth来进行认证,那么我们就要对症下药,解决这个Basic Auth认证问题。