ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

elasticsearch-head安装

2019-06-21 12:03:28  阅读:271  来源: 互联网

标签:head vendor root js elasticsearch docker 安装


elasticsearch-head第三方的查询工具
elasticsearch-head git

环境:
elasticsearch6.x

docker安装:

查询镜像:

$ docker search elasticsearch-head
INDEX       NAME                                                         DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/mobz/elasticsearch-head                            elasticsearch-head front-end and standalon...   46                   
docker.io   docker.io/alivv/elasticsearch-head                           elasticsearch-head front-end and standalon...   6                    
docker.io   docker.io/jeanberu/elasticsearch-head                        ElasticSearch:1 with elasticsearch-head pl...   6                    [OK]
...

拉取镜像:

$ docker pull docker.io/mobz/elasticsearch-head:5    
....

elasticsearch-head:5 标准版本(最新),兼容elasticsearch 5.x和6.x版本服务

运行:

$ docker run -d --name elastic-head -p 9100:9100 mobz/elasticsearch-head:5

访问地址:http:ip:9100


QA:

一、无法连接

原因:默认elasticsearch不支持跨域请求
解决办法:

http.cors.enabled 是否支持跨域,默认为false
http.cors.allow-origin 当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?://localhost(:[0-9]+)?/

config/elasticsearch.yml文件末尾添加如上两个配置,并重启:

$ tail -n 2 config/elasticsearch.yml 
http.cors.enabled: true
http.cors.allow-origin: "*"


二、正常连接elasticsearch后,无法查询数据

原因:elasticsearch-head是第三方客户端,默认的contentType:application/x-www-form-urlencoded标头不符合ES6.x新增的安全机制。新版本进行严格的内容类型检查,防止跨站点请求伪造攻击。
解决办法:修改elasicsearch-head程序中的有关 contentType的设置,设置成符合安全机制的contentType:application/json;charset=UTF-8

$ docker exec  -it elastic-head bash
root@26a619845111:/usr/src/app# cd _site/
root@26a619845111:/usr/src/app/_site# ls -l
total 780
-rw-r--r-- 1 root root  14908 Feb 22  2016 app.css
-rw-r--r-- 1 root root 143298 Jan  6  2017 app.js
drwxr-xr-x 2 root root     61 Nov  3  2015 base
drwxr-xr-x 2 root root    154 Nov  3  2015 fonts
-rw-r--r-- 1 root root   2860 Jun 28  2016 i18n.js
-rw-r--r-- 1 root root   1043 Jan  6  2017 index.html
drwxr-xr-x 2 root root    111 Jan  6  2017 lang
-rw-r--r-- 1 root root  21643 Feb 22  2016 vendor.css
-rw-r--r-- 1 root root 605341 Jun 21 01:58 vendor.js

#修改vendor.js的第6886和7574行,将application/x-www-form-urlencoded改为application/json;charset=UTF-8

修改好的vendor.js文件:https://blog-static.cnblogs.com/files/dance-walter/vendor.js

重新启动服务:

$ docker kill elastic-head
$ docker rm elastic-head
$ mkdir -p /usr/src/app/_site/ #新建目录,并将vendor.js文件上传。docker启动时映射此文件即可
$ docer run -d --name elastic-head -p 9100:9100 -v /usr/src/app/_site/vendor.js:/usr/src/app/_site/vendor.js mobz/elasticsearch-head:5

正常查询:


官网解释:https://www.elastic.co/cn/blog/strict-content-type-checking-for-elasticsearch-rest-requests

最后:
chrome浏览器里的elasticsearch-head插件是没有上述问题的。直接安装即可用。

标签:head,vendor,root,js,elasticsearch,docker,安装
来源: https://www.cnblogs.com/dance-walter/p/11063723.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有