1、创建普通用户
ES 是不能使用 root 用户来启动的,必须使用普通用户来安装启动。
这里我们创建一个普通用户以及定义一些常规目录,用来存放我们的数据文件和安装包等
首先安装文件
elasticsearch-7.6.1-linux-x86_64.tar.gz
要先传到Linux服务器
1、创建 elasticsearch
用户组
[root@localhost es]# groupadd elasticsearch
2、创建jmlv用户,并设置密码
用户名称可以自己取别的,不一定要和我一样
[root@localhost es]# useradd -g elasticsearch jmlv
#设置密码为jmlv123
[root@localhost es]# passwd jmlv
更改用户 jmlv 的密码 。
新的 密码:
无效的密码: 密码包含用户名在某些地方
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
# 注意:【无效的密码】提示,可以忽略;继续输入第一遍设置的密码
或者
# 创建普通用户,用户名为 jmlv, 用户组为elasticsearch, 密码为jmlv123
[root@localhost es]# useradd jmlv -g elasticsearch -p jmlv123
3、创建es文件夹,并修改owner为jmlv用户
[root@localhost es]# mkdir -p /usr/local/es
# 解压 elasticsearch-7.6.1-linux-x86_64.tar.gz
[root@localhost es]# tar -zxvf elasticsearch-7.6.1-linux-x86_64.tar.gz -C /usr/local/es
# 修改es文件的owner为jmlv
[root@localhost es]# chown -R jmlv:elasticsearch /usr/local/es/elasticsearch-7.6.1
4、设置sudo权限,让普通用户有更大的操作权限
# 使用root用户执行visudo命令
[root@localhost es]# visudo
jmlv ALL=(ALL) ALL
5、切换jmlv用户
[root@localhost es]# su jmlv
2、修改配置文件
1、修改elasticsearch.yml
#1)创建 data 目录
[jmlv@localhost es]$ mkdir -p /usr/local/es/elasticsearch-7.6.1/data
#2)创建 log 目录
[jmlv@localhost es]$ mkdir -p /usr/local/es/elasticsearch-7.6.1/log
#3)切换到config目录
[jmlv@localhost es]$ cd /usr/local/es/elasticsearch-7.6.1/config/
#4)修改elasticsearch.yml
[jmlv@localhost config]$ vim elasticsearch.yml
cluster.name: my-app
node.name: node-1
path.data: /usr/local/es/elasticsearch-7.6.1/data
path.logs: /usr/local/es/elasticsearch-7.6.1/log
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["服务器IP"]
cluster.initial_master_nodes: ["节点名"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"
2、修改 jvm.option
修改jvm.option
配置文件,调整jvm堆内存大小
使用jmlv用户执行以下命令调整jvm堆内存大小,每个人根据自己服务器的内存大小来进行调整。
cd /usr/local/es/elasticsearch-7.6.1/config
vim jvm.options
-Xms2g -Xmx2g
3、修改系统配置,解决启动时候的问题
由于现在使用普通用户来安装es服务,且es服务对服务器的资源要求比较多,包括内存大小,线程数等。所以我们需要给普通用户解开资源的束缚
1、普通用户打开文件的最大数限制
问题错误信息描述:
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
ES因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除linux系统当中打开文件最大数目的限制,不然ES启动就会抛错
使用普通用户执行以下命令解除打开文件数据的限制
[jmlv@localhost bin]$ sudo vi /etc/security/limits.conf
# 添加如下内容: 注意*不要去掉了
* soft nofile 65536
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
此文件修改后需要重新登录用户,才会生效
2、普通用户启动线程数限制
问题错误信息描述
max number of threads [1024] for user [es] likely too low, increase to at least [4096]
修改普通用户可以创建的最大线程数
*max number of threads [1024] for user [es] likely too low, increase to at least [4096]*原因:无法创建本地线程问题,用户最大可创建线程数太小解决方案:修改90-nproc.conf
配置文件。
使用jmlv用户执行以下命令修改配置文件
Centos6
sudo vi /etc/security/limits.d/90-nproc.conf
Centos7
sudo vi /etc/security/limits.d/20-nproc.conf
找到如下内容:
* soft nproc 1024#修改为
* soft nproc 4096
3、普通用户调大虚拟内存
错误信息描述:
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
调大系统的虚拟内存
原因:最大虚拟内存太小
每次启动机器都手动执行下。
root用户
执行以下命令
#编辑 /etc/sysctl.conf,
[root@localhost bin]$ vim /etc/sysctl.conf
# 追加以下内容:
vm.max_map_count=262144
#保存后,执行:sysctl -p
备注:以上三个问题解决完成之后,重新连接secureCRT或者重新连接xshell生效
4、启动ElasticSearch
三台机器使用jmlv用户执行以下命令启动es服务
nohup /usr/local/es/elasticsearch-7.6.1/bin/elasticsearch 2>&1 &
或者后台启动ES 进入bin目录 ./elasticsearch -d
启动成功之后jps
即可看到es的服务进程,并且访问页面
http://192.168.21.130:9200/?pretty
能够看到es启动之后的一些信息
注意:如果哪一台机器服务启动失败,那么就到哪一台机器的
/usr/local/es/elasticsearch-7.6.1/log
这个路径下面去查看错误日志
关闭Linux防火墙 永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
注意:启动ES的时候出现 Permission denied,不一定都会出现
原因:当前的用户没有对XX文件或目录的操作权限
5、打开防火墙端口
如果不想关闭防火墙,只想打开某个端口,可通过如下方式
参考文章:Centos7开放及查看端口
# 切换成root用户
su root
# 查看防火墙所有开发的端口
[root@localhost bin]# firewall-cmd --zone=public --list-ports
15672/tcp
# 开发9200端口
[root@localhost bin]# firewall-cmd --zone=public --add-port=9200/tcp --permanent
success
# 配置立即生效
[root@localhost bin]# firewall-cmd --reload
success