zoukankan      html  css  js  c++  java
  • 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插件是没有上述问题的。直接安装即可用。

  • 相关阅读:
    ElasticSearch「1」本地安裝Elasticsearch 6.0.1 + Elasticsearch-head插件
    HDFS Erasure Coding介绍
    Cassandra VS HBase
    Hadoop入门 【1】 下载源码,构建
    HBase ProcedureV2 分析
    github创建maven项目过程
    ruby, gem install 出现网络错误
    Ketama Consisent Hash
    [转]产品经理 书目录
    [算法]动态规划之最长公共子序列
  • 原文地址:https://www.cnblogs.com/dance-walter/p/11063723.html
Copyright © 2011-2022 走看看