elasticsearch集群安装

本文详细介绍了如何在非root用户环境下安装和配置Elasticsearch集群,包括设置用户权限、安装elasticsearch、elasticsearch-head插件、Kibana以及X-Pack,还涉及到分词器的安装和遇到问题的解决方案,如调整max_map_count、处理非root用户权限问题等。
摘要由CSDN通过智能技术生成

1.创建非root用户并赋予管理员权限
由于elasticsearch不能在root用户下面执行,所以需要先创建一个非root用户并赋予root权限。具体操作如下

    创建用户es:adduser es
    修改密码:passwd es
    New UNIX password:     //在这里输入新密码
    Retype new UNIX password:  //再次输入新密码
    passwd: all authentication tokens updated successfully.

赋予es用户root权限:

修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉
Allows people in group wheel to run all commands
%wheel    ALL=(ALL)    ALL
然后修改用户,使其属于root组(wheel),命令如下:
#usermod -g root es
修改完毕,现在可以用es帐号登录,然后用命令 su –es ,即可切换到用户es.

这里在xshell中,另外打开一个48节点的连接,继续使用root用户操作文件,等运行elasticsearch的时候再使用es用户,es用户对解压操作、创建文件夹之类的操作会有权限不足的问题,所以现在root用户下下载、解压、安装软件,后面在es用户下运行即可。

2.elasticsearch的安装
在节点上找个文件夹,下载到本地,然后解压移动到opt文件夹下面:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.tar.gz
# 解压
tar zxvf elasticsearch-5.5.0.tar.gz
# 将解压后的目录移到/opt下
mv ./elasticsearch-5.5.0 /opt

然后修改config目录下的elasticsearch.yml配置文件,由于目前只有一个节点,不用设置集群相关的配置,配置如下所示:

vim /opt/elasticsearch-5.5.0/config/elasticsearch.yml(打开配置文件)

cluster.name: ela-cluster   #(集群名称,同一集群要一样)
node.name: node-1   #(节点名称,同一集群要不一样)
path.data: /opt/elasticsearch-5.5.0/data    #数据文件存储路径
path.logs: /opt/elasticsearch-5.5.0/logs    #log文件存储路径
bootstrap.memory_lock: false   #锁定内存,默认为flase
network.host: 10.1.2.48     #默认网络连接地址,写当前主机的静态IP,这里不能写127.0.0.1
http.port: 9200      #连接端口
http.cors.enabled: true      #是否支持跨域,默认为false
http.cors.allow-origin: "*"  #当设置允许跨域,默认为*,表示支持所有域名
discovery.zen.minimum_master_nodes: 2     #这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)

基本的配置内容如上,如果以后需要在多台机器上配置,需要保证集群名称一致,然后再设置discovery.zen.ping.unicast.hosts,具体设置可以百度,然后设置JVM的参数,默认情况下,jvm给了2G的内存,若服务器配置较高,建议分配一半的内存,但是不能超过32G,具体情况请按照自己电脑的内存具体情况分配,配置时需要注意-xms 和-xmx要一致,如下所示:

-Xms10g 
-Xmx10g 

以上设置完毕后,使用es用户,在/opt/elasticsearch-5.5.0目录下,运行命令

./bin/elasticsearch   #开启elasticsearch服务
./bin/elasticsearch –d  #后台启动
jps                     查看进程
14191 Elasticsearch
kill -9 14191       

启动之后,可以通过浏览器访问端口节点来查看,具体内容如下图:在这里插入图片描述,出现如图所示,即可算elasticsearch安装完成。

3.elasticsearch-head的安装
head插件可在浏览器中显示ES集群、索引等信息,本质为一个nodejs工程,需要npm来下载依赖并打包,下载node并解压:

    xz -d node-v10.15.1-linux-x64.tar.xz
    tar -xvf node-v10.15.1-linux-x64.tar.xz
    配置环境变量:
    sudo vi /etc/profile
    export NODE_HOME=/opt/node-v10.15.1-linux-x64
    export PATH=$PATH:$NODE_HOME/bin
    刷新环境变量:
    source /etc/profile
    验证node是否安装成功
    echo $NODE_HOME
    node -v
    npm -v
    安装成功之后,在nodejs安装目录下,输入:
    npm install -g grunt-cli  

然后找一个闲置文件夹,利用git将elastic-head的插件代码clone下来,

    git clone git://github.com/mobz/elasticsearch-head.git

等下载完成之后,修改head插件源码,此处需要修改两处位置:

  • 1.目录为elasticsearch-head/Gruntfile.js,修改内容如下所示:

       connect: {
      	server: {
          	options: {
          	port: 9100,
          	hostname: '*', 
          	base: '.',
         	 keepalive: true
     }
       }
    
  • 2.目录为:elasticsearch-head/site/app.js,需要将:

      this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";
    

修改为对应的节点与端口,此处为48节点:

    this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://10.1.2.48:9200";

然后启动elasticsearch服务,在根目录下输入:

    ./bin/elasticsearch 

启动elasticsearch,注意此处需要切换到es用户下执行,否则就会报错。之后在head目录下输入:

npm install
cd elasticsearch-head/node_modules/grunt/bin/
./grunt server &

运行head插件,启动浏览器,输入 10.1.2.48:9100 即可访问head查看elasticsearch的运行状况。
3.安装kibana以及x-pack
下载安装kibana并移动到opt目录下,也就是elasticsearch的安装目录

    wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.0-linux-x86_64.tar.gz
    sha1sum kibana-5.5.0-linux-x86_64.tar.gz 
    tar -xzf kibana-5.5.0-linux-x86_64.tar.gz
    # 将解压后的目录移到/opt下
    mv ./kibana-5.5.0 /opt  

注意此处kibana的版本同elasticsearch的版本一致,包括head,完成之后,修改配置文件,在config目录下kibana.yml,修改以下参数:

    server.port: 5601
    server.host: "10.1.2.48"
    elasticsearch.url: "http://10.1.2.48:9200"

完成之后,就可以启动kibana查看了,启动命令如下:

    ./opt/kibana-5.5.0/bin/kibana

在浏览器输入 http://10.1.2.48:5601 即可查看。
接下来安装x-pack,注意x-pack安装需要在kibana安装之后才可以进行,安装的同时需要停掉kibana和elasticsearch服务,首先在ES目录下安装

    bin/elasticsearch-plugin install x-pack

此处下载安装需要很久,大概需要一个半小时,希望耐心等待,在安装过程中会出现两个请求,都选择y就行,如图所示在这里插入图片描述
完成之后,在kibana的目录下安装

    bin/kibana-plugin install x-pack

同样需要等很久,大概一个多小时,下载完成,请耐心等待,同时在$ES_HOME/config/elasticsearch.yml文件中添加以下配置

    xpack.security.enabled: false

以上算是监控组件基本安装完成,接下来需要安装一个中文分词器IK即可。
4.安装分词器
https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v5.5.3
下载和自己es版本匹配的分词器,此处本文选择5.5.0版本的下载,下载zip格式的文件,然后移动到elasticsearch5.5.0的plugins文件夹下,此处是下载到本地,然后通过可视化界面winscp操作完成的,然后进入plugins文件夹下,解压文件:

    unzip -d ik elasticsearch-analysis-ik-5.5.0.zip

然后就可以删除elasticsearch-analysis-ik-5.5.0.zip,只留下ik文件夹,之后重启ES服务,之后进行分词器测试,输入下面内容,出现如下图所示的情况,即可算分词器安装完成:

    curl -XGET 'http://10.1.2.48:9200/_analyze?pretty&analyzer=ik_smart' -d '联想 是全球最大的笔记本厂商'

在这里插入图片描述
.至此,ES及其基本插件安装完成,下面的内容是安装过程中踩的坑以及对应的解决方法。

  1. elastic search报错——“failed to obtain node locks, tried [[/opt/elasticsearch-5.5.0/data/ela-cluster]] with lock id [0]; maybe these locations are not writable or multiple nodes were started without increasing [node.max_local_storage_nodes] (was [1])?”,此处翻译为绑定节点失败,引起的原因是之前运行的ES没有正常关闭,解决方法:

           1.jps  #查看用户正在运行的进程以及进程号
           2.kill -9 进程号  #关闭此进程
           3../bin/elasticsearch   #重新启动ES
    
  2. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144],报错原因是max_map_count太小,解决方法:修改max_map_count的值:

             sudo sysctl -w vm.max_map_count=262144  
             more /proc/sys/vm/max_map_count         #查看是否修改为262144
    

    重新启动ES

  3. elasticsearch which: no java in (/sbin:/bin:/usr/sbin:/usr/bin) Could not find any executable java。此处是非root用户es操作时,会报没有访问权限的错误,用sudo命令启动时,就会报这个错误,解决方法:使用root账户修改elasticsearch目录的权限为es:es即为:

            chown root:es -R /opt/elasticsearch-5.5.0
    

    然后使用es账户不用sudo启动,直接./bin/elasticsearch就可以启动了

  4. 由于48节点之前没有安装unzip的相关服务,导致安装分词器解压那块老出现-bash:unzip 未找到命令,此时需要下载安装zip与unzip服务,:

             yum -y install zip unzip
    

    等待下载完成之后,再次unzip解压即可。

  5. can not run elasticsearch as root,最常见的问题,解决方法:创建其他非root用户并赋予root权限与文件所属权限

  6. max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] 解决方法:设置最大的打开文件数:
    ulimit -n 65536
    ulimit -a #查看是否修改成功

  7. bootstrap checks failed,解决方法:修改系统limits.conf文件

            # vi /etc/security/limits.conf
            添加如下内容
            * soft nofile 65536
            * hard nofile 131072
            * soft nproc 2048
            * hard nproc 4096
            备注:* 代表Linux所有用户名称(比如 hadoop)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值