• Elasticsearch 6.3.1、Head插件 安装及配置


     
     
    安装Elasticsearch

    Elasticsearch下载地址:https://www.elastic.co/cn/downloads/elasticsearch

    也可以直接使用wget下载到某目录下, 本文所有下载的包都放在 /home/tools 中, 解压后移到 /home/apps目录下 

    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.zip

    下载unzip工具,如果已经安装过忽略该步骤

    yum install -y unzip zip

    解压安装包 

    unzip elasticsearch-6.3.1.zip

    将解压后的文件夹移动到 /home/apps 下, 此步骤非必须,但为了后续需要安装的东西太多防止目录混乱所以与安装包分离   

     mv elasticsearch-6.3.1 /home/apps/

    到 /home/apps 下,elasticsearch 就解压完毕了,但要直接启动会报各种错误,接下来开始配置吧

    -----------------------------------  Elasticsearch配置  --------------------------------------

    注:文章默认已配置好1.8版本jdk, 如果没配置请先配置一下!

     修改elasticsearch.yml

    cd /home/apps/elasticsearch-6.3.1/config
    
    vi elasticsearch.yml

    修改如下几项(配置集群名称,这里端口默认为9200,如果需要修改可以改http.port)

    复制代码
    cluster.name: xxx-es   
    network.host: 0.0.0.0

    path.logs: /home/apps/elasticsearch-6.3.1/logs

    path.data: /home/apps/elasticsearch-6.3.1/data #默认没有该目录,需要手动新建 mkdir data

    增加以下两个配置(跨域访问)
    http.cors.enabled: true
    
    http.cors.allow-origin: "*"
    复制代码

    保存修改

    新建启动用户 (ES5.0 以后不允许使用root角色启动)

    复制代码
    #添加用户
    adduser elasticsearch
    #设置密码 passwd elasticsearch
    #授权 chown -R elasticsearch /elasticsearch-6.3.0
    #切换用户 su elasticsearch
    #启动 cd elasticsearch-6.3.0/bin ./elasticsearch
    复制代码

    启动可能会报如下错误

    切换回root角色再为该用户授权一次就可以了, 可能是启动的时候新生成了文件没有权限

    su root
    chown -R elasticsearch /home/apps/elasticsearch-6.3.1

    错误解决方案

    再启动一次,发现依旧报错

    原因:无法创建本地文件问题,用户最大可创建文件数太小 

    解决方案:

    #切换回root账户
    su root
    
    #修改limits.conf文件
    vi /etc/security/limits.conf

    在文件最底部增加如下配置

    * soft nofile 65536
    * hard nofile 131072
    * soft nproc 2048
    * hard nproc 4096

    切换回elasticsearch账号,再启动一次ES吧,又报错了

    原因:最大虚拟内存太小

     解决方案:

    #切换至root账户
    su root
    
    #修改sysctl.conf
    vi /etc/sysctl.conf

    添加如下配置

    vm.max_map_count=655360

    执行 sysctl -p 以刷新配置

    再次切换回elasticsearch用户,启动ES

     启动成功! 我们打开浏览器访问一下吧~

    防火墙配置

    发现打不开,我们之前已经配置了所有节点可以访问,并且也配置了可跨域,为什么打不开呢?

    别忘了还有防火墙在啊。需要把9200的对外访问端口打开

    在控制台输入以下命令

    #开启9200端口
    firewall-cmd --zone=public --add-port=9200/tcp --permanen

    #刷新配置
    firewall-cmd --reload

    再次访问http://192.168.193.129:9200/

    好~ES的配置到此结束

    服务启动与关闭

    直接用./elasticsearch启动一旦关闭控制台服务便会停掉,因此需要使用 ./elasticsearch -d 在后台启动

    如何关闭服务?

    ps -ef|grep elasticsearch

    杀掉对应的进程号就可以了

    -------------------------------  Elasticsearch-Head 安装及配置  --------------------------

    下载及安装

     面对这么个提示一定一脸懵逼吧,我要怎么查询数据?怎么知道有什么索引? Head 插件就是为了解决这个问题的,它提供可视化的页面方便用户查看节点信息,查询数据等。

    接下来就开始安装Head插件吧

    Elasticsearch5.0 以后head不再在plugins中直接安装了,需要独立安装

    下载地址: https://pan.baidu.com/s/1kX1cMzlb6jWvHeDr2N5e-g

    将下载后的压缩包放到 /home/tools 下

    #解压压缩包
    unzip elasticsearch-head.zip
    
    #将解压后的文件夹移动/home/apps下
    mv elasticsearch-head /home/apps

    进入head文件目录

    cd elasticsearch-head

    安装grunt用来启动head

    复制代码
    #安装grunt命令行工具grunt-cli
    npm install -g grunt-cli
    
    #安装grunt及其插件
    npm install grunt --save-dev
    
    #查看安装版本情况 
    grunt -version
    复制代码

    配置连接信息

    vi Gruntfile.js

    修改如下配置(ip 和 端口号)

     保存后配置防火墙,开放9100端口,在控制台输入

    firewall-cmd --zone=public --add-port=9100/tcp --permanent
    firewall-cmd --reload

    启动head

    grunt server

    启动成功

    在浏览器输入 http://192.168.193.129:9100

    安装完成

    服务启动与关闭

    后台方式启动

    nohup grunt server &

    关闭head

    #查询端口占用
    netstat -tunlp |grep 9100

    如果netstat没有安装,执行以下命令安装

    yum install net-tools

    #杀死进程
    kill -9 9919

    Elasticsearch-head 连接 Elasticsearch-6.0 + 检索问题

    Head 连接Elasticsearch6时其他功能都好使, 但数据浏览模块不能显示数据了,一直显示搜索中,但不返回结果


    看一下网络流可知报406 错误

    解决办法:

    cd elasticsearch-head/_site

    vi vendor.js

    修改如下

    复制代码
    #1. 6886行
    contentType: "application/x-www-form-urlencoded
    改为
    contentType: "application/json;charset=UTF-8"
    #2. 7574行 var inspectData = s.contentType === "application/x-www-form-urlencoded" && 改为 var inspectData = s.contentType === "application/json;charset=UTF-8" &&
    复制代码

    重新启动elasticsearch-head就可以正常检索了

     
  • 相关阅读:
    HDU 1847
    HDU 1717
    KMP未优化模板、
    Codeforces Round #340 (Div. 2) B. Chocolate
    HDU 1042 N!
    HDU 1018 Big Number
    HDU 1031 Design T-Shirt
    解决Windows 7删除执行过的 EXE、Bat文件有延迟的问题
    修改Android手机的“虚拟机堆大小”和android:largeHeap来防止APP内存溢出问题
    Android引用百度定位API第三方组件后导致其它.so文件无法正常加载的问题
  • 原文地址:https://www.cnblogs.com/shenwenkai/p/11462949.html
Copyright © 2020-2023  润新知