注:文章默认已配置好jdk, 如果没配置请先配置一下!
修改elasticsearch.yml
cd /home/apps/elasticsearch-6.3.1/config
vi elasticsearch.yml
修改如下几项(配置集群名称,这里端口默认为9200,如果需要修改可以改http.port)
cluster.name: xxx
network.host: 0.0.0.0
#对外提供服务的http端口,默认为9200
http.port: 9200
path.logs: /usr/apps/elasticsearch/logs
path.data: /usr/apps/elasticsearch/data #默认没有该目录,需要手动新建 mkdir data
discovery.zen.ping.unicast.hosts: ["172.168.18.113","172.168.18.112"]
增加以下两个配置(跨域访问 head会用到)
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 /usr/apps/elasticsearch
错误解决方案
再启动一次,发现依旧报错
原因:无法创建本地文件问题,用户最大可创建文件数太小
解决方案:
#切换回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://xxx.xxx.xxx.xxx:9200/
好~ES的配置到此结束
服务启动与关闭
直接用./elasticsearch启动一旦关闭控制台服务便会停掉,因此需要使用 ./elasticsearch -d 在后台启动
如何关闭服务?
ps -ef|grep elasticsearch
杀掉对应的进程号就可以了
kill -9 pid