环境:
- 操作系统: CentOS7.0
- Elasticsearch 版本:6.2.2
- 采用方式:解压方式
- 必须先安装好java,建议使用jdk1.8
- 检查java脚本 java -version
安装配置:
1、进入安装软件菜单,看每个人习惯,我的是安装在/usr/local,目录下
cd /usr/local
2、下载Elasticsearch包:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz
3、解压:
tar -xzvf elasticsearch-6.2.2.tar.gz
4、重命名文件夹
mv elasticsearch-6.2.2.tar.gz elasticsearch
5、配置启动用户
ES不能使用root账号启动,新增elsearch用户用于启动
# 添加用户组
groupadd elsearch
#添加用户
useradd elsearch -g elsearch -p elsearch
#修改elasticsearch所有者为elsearch
chown -R elsearch:elsearch elasticsearch
#进入文件夹配置config的权限
cd elasticsearch
#es配置文件需要有读写权限
chmod -R 775 config
6、启动
#切换用户
su elsearch
#启动脚本
./bin/elasticsearch
### 已正常启动,此时,开多一个窗口,curl 127.0.0.1:9200,可以正常返回数据
浏览器IP访问,发现访问不到,因此需要开通外网权限
7、开通ip权限
#修改配置文件,将文件中的network.host改为0.0.0.0
vi config/elasticsearch.yml
8、重启服务,此时遇到错误
ERROR: bootstrap checks failed
max file descriptors [65535] for elasticsearch process likely too low, increase to at least [65536]
解决方式:
用root账号
vim /etc/security/limits.conf
在最后添加:
#xxxx - nofile 131072
#xxxx 为用户名,即elsearch
elsearch - nofile 131072
修改完保存即可。
切换回,elsearch,执行ulimit -Hn,看看是否生效
ulimit -Hn
若不生效,则进行排查。排查步骤如下:
1、检查/etc/ssh/sshd_config 中UsePAM yes选项是否开启
2、检查/etc/pam.d/system-auth 中是否存在session required pam_limits.so这一项
3、检查/etc/pam.d/login 中是否将pam_limits.so文件被加入到启动文件中存在session required /lib64/security/pam_limits.so这一项
解释(1、2):UsePAM yes选项开启后,表示启用pam模块,在/etc/pam.d/sshd中默认已存在一项session include password-auth配置,include表示需要password-auth模块需要通过认证,在/etc/pam.d/system-auth里还应该存在session required pam_limits.so这一项,表示使用/etc/security/limits.conf这个配置
解释(3):要让limits.conf文件配置能够生效,必须将pam_limits.so模块文件加入到启动文件中,故应在/etc/pam.d/login配置文件中添加session required /lib64/security/pam_limits.so这一项
排查后重新登录一下用户就可以生效了,如果还未生效就要逐个排查/etc/pam.d下相关连的文件是否将session required pam_limits.so这一下项注释或删除了
排查完,重新登录账号,执行ulimit -Hn,发现已经生效
9、重启服务,服务正常,ip访问正常,输入ip:9200,可正常访问
10、把服务器设置为后台启动
#启动服务,-d(后台启动)
./bin/elasticsearch -d
参考: