elasticsearch-head安裝


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: ###一、無法連接 ![](https://img2018.cnblogs.com/blog/1202606/201906/1202606-20190621114025687-775637573.png)

原因:默認elasticsearch不支持跨域請求
解決辦法:

http.cors.enabled
http.cors.allow-origin

config/elasticsearch.yml文件末尾添加如上兩個配置,並重啟:

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

###二、正常連接elasticsearch后,無法查詢數據 ![](https://img2018.cnblogs.com/blog/1202606/201906/1202606-20190621114051119-1870425641.png)

原因: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插件是沒有上述問題的。直接安裝即可用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM