elasticsearch6.x单机安装和采坑指南

下面把从0到1安装配置 elasticsearch6.x单机版的流程和过程中遇到的各种问题记录下来,并提供解决方案。

Pre-Install

下载 并安装 ES 6.2.4

  1. mkdir /opt/es
  2. ES 6.2.4.zip 下载地址 下载到/opt/es
  3. cd /opt/es , unzip 命令解压
  4. useradd es
  5. passwd es 修改 es密码
  6. sudo chown -R es:es /opt/es
  7. sudo su es
  8. bin/elasticsearch
  9. curl http://localhost:9200/

运行curl 只要返回json证明安装成功。但是这个时候只能通过 localhost访问 es,别的机器不能访问这台的ES。那么如何开启别的机器访问见下文。

遇到的坑:

1、当su es用户以后, 在运行 sudo 会报如下错误

[sudo] password for es: 
es is not in the sudoers file.  This incident will be reported.

解决方法:
给es 添加sudo的权限:

  1. 切换root
  2. vi /etc/sudoers 找到root ALL=(ALL) ALL, 然后在下面一行添加 es ALL=(ALL) ALL 备注:
    这里说下你可以sudoers添加下面四行中任意一条
    youuser ALL=(ALL) ALL
    %youuser ALL=(ALL) ALL
    youuser ALL=(ALL) NOPASSWD: ALL
    %youuser ALL=(ALL) NOPASSWD: ALL

第一行:允许用户youuser执行sudo命令(需要输入密码).
第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码).
第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.

配置 ES 远程访问

1.修改 config/elasticsearch.yml

在 es用户下修改如下配置

network.host: 0.0.0.0
http.port: 9200

启动中遇到的问题和解决方法

1. 修改 /etc/security/limits.conf 修改 linux支持最大文件句柄和最大锁内存的大小

解决 - max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

#切换到root用户修改
vim /etc/security/limits.conf
# 更改linux的最大文件描述限制要求 
* soft nofile 262144 
* hard nofile 262144
es soft nofile 262144 
es hard nofile 262144

* soft nproc 2048
* hard nproc 4096
es soft nproc 2048
es hard nproc 4096

#更改linux的锁内存限制要求 
es soft memlock unlimited 
es hard memlock unlimited

#然后 logout 重新登录 
ulimit -Hn 
262144

2. 修改 /etc/security/limits.d/90-nproc.conf 修改linux最大进程个数

解决: max number of threads [1024] for user [es] likely too low, increase to at least [2048]

#使用root
vim /etc/security/limits.d/90-nproc.conf
*          soft    nproc     2048
root       soft    nproc     2048


vi /etc/security/limits.conf

es soft nproc 4096
es hard nproc 4096

3. 修改 /etc/sysctl.conf 设置每个进程拥有最大的堆内存大小

解决: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

#使用root
vi /etc/sysctl.conf

#添加下面配置:
vm.max_map_count=655360
#更改linux禁用swapping,添加或修改如下: 
vm.swappiness = 1

#并执行命令:
sysctl -p

4. 如果使用的是阿里云或者aws

解决: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

# 切换es 用户
vi config/elasticsearch.yml

bootstrap.system_call_filter: false

5. 重启 ES

ES重启比较坑, 没有 类似于solr restart的命令,重启的话, 必须自己ps -ef | grep elasticsearch 找到进程然后kill -9,然后 在运行 bin/elasticsearch

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
慷慨打赏